Cours Les Sous-Programmes
Cours Les Sous-Programmes
Cours Les Sous-Programmes
Introduction :
Un sous-programme est une étape d’un programme qui peut être implémentée sou forme d’un module
qui peut être soit une fonction ou une procédure.
Un sous programme est un module contenant un ensemble d’instructions destiné a effectué une tâche
bien déterminée.
II. les fonctions :
1. Définition :
Une fonction est un sous-programme qui permet de retourner un seul résultat de type simple (entier, réel,
caractère, chaîne, booléen, scalaire énuméré).
Une fonction ne retourne jamais un tableau.
a) Dans l’algorithme
0) DEF FN Nom_ fonction (liste_paramètres_formels : types) : type_fonction
1) action 1
2) action 2
3) …
n) action n
n+1) Nom_fonction ← résultat
n+2 ) fin Nom_ fonction.
b) En pascal
Function Nom_fonction (liste_paramètres_formels : types ) : type_fonction ;
Var listes_objets_locaux : leurs types ;
Begin
action 1 ;
action 2 ;
….
action n-1 ;
action n ;
Nom_ fonction := résultat ;
End ;
III. les Procédures :
1. Définition :
Une procédure est un sous-programme qui permet de retourner zéro, un ou plusieurs résultats de type
simple ou de type composé.
2. Syntaxe :
a) Algorithme
0) DEF PROC Nom_ Procedure(liste_paramètres_formels : types)
1) action1
2) action2
3) …
n) action_n
n+1 ) fin Nom_ Procedure.
b) Pascal
Procedure Nom_ Procedure (liste_paramètres_formels : types ) ;
Var listes_objets_locaux : leurs types ;
Begin
action1 ;
action2 ;
….
action n-1 ;
action n ;
End ;
Page 1
3. Passage des paramètres :
Lors d’un appel d’une procédure, il y a un transfert des données entre les paramètres effectifs et les
paramètres formels, ce transfert s’appelle passage des paramètres
On a deux modes de passage :
a) Passage par variable :
Le transfert des données se fait dans les deux sens : paramètres effectifs paramètres formels
Dans ce cas, le paramètre formel est précédé par le mot réservé var
Toute modification des paramètres formels entraîne automatiquement la modification des paramètres
effectifs correspondant
b) Passage par valeur :
Le transfert des données se fait dans un seul sens : paramètres effectifs paramètre formel
Toute modification des paramètres formels n’entraîne pas la modification des paramètres effectifs.
RQ : Les paramètres effectifs et les paramètres formels doivent s’accorder de points de vue nombre, type
et ordre.
Ex1 : Ecrire un programme intitulé Occurrence qui permet de déterminer et afficher le nombre
d’occurrences (nombre de répétition) d’un réel X strictement positif dans tableau T de N réels (5≤ N ≤20).
Ex2 : Ecrire un programme pascal qui permet de calculer et afficher le plus grand commun diviseur de
deux nombres entiers strictement positifs A et B par la méthode d’Euclide
Cette méthode consiste à remplacer A par B et B par le reste de la division de A par B, répéter ce traitement
jusqu’à obtenir B=0, le dernier reste non nul est le PGCD.
Ex3 : On appelle poids d’un mot la somme des produits de la position de chaque voyelle contenue dans
le mot multipliée par son rang dans l’alphabet français.
Une lettre a la même position en majuscule et en minuscule.
Ecrire un algorithme d’u programme qui calcule et affiche le poids d’un mot donné non vide.
Exemple :
Le mot « Epreuve » a pour poids 165 car :
(1*5) + (4*5) + (5*21) + (7*5) = 165
Ex4 : Deux entiers naturels strictement positifs m et n sont dits nombres amis si et seulement si la somme
des diviseurs de m sauf lui-même est égale à n et la somme des diviseurs de n sauf lui-même est égale m.
Ecrire un programme en Pascal qui permet de déterminer puis d'afficher si deux entiers donnés m et n
sont amis ou non.
Ex5 : Ecrire une analyse d’un programme intitulé palindrome permettant de lire une chaîne non vide, et
de vérifier si elle est palindrome.
NB : Une chaîne palindrome se lit de gauche à droite et de droite à gauche.
Exemples de mots palindromes : OMO, AZIZA, AZZA, LAVAL
Ex6 : Ecrire l’algorithme d’un programme qui permet de saisir un entier >2 puis déterminer s’il est
premier ou non. Un nombre est dit premier s’il n’est divisible que par 1 et lui-même.
Ex7 : Ecrire une analyse d’un programme permettant de déterminer et d'afficher la moyenne d'une classe
MC de n élèves (25 n 3) ainsi que le nombre d'élèves qui ont une moyenne supérieure ou égale à MC.
Les moyennes des élèves sont des réels de l'intervalle [0, 20].
Ex8 : Ecrire un algorithme d’un programme qui saisit un tableau A de n (5<=n<=20) chaînes de
caractères, cherche et affiche la longueur de la chaîne la plus longue puis toutes les chaînes ayant cette
longueur.
Ex9 : Ecrire un programme Pascal intitulé positif_négatif qui calcul et affiche le nombre des entiers
positifs et le nombre des entiers négatifs contenus dans un tableau T de N entiers (N > 0).
Ex10 : Ecrire un programme Pascal qui permet de calculer et d’afficher la somme des factorielles des
chiffres d’un entier n donné (n > 0). On donne 0! = 1.
Exemple : Si n=13 alors 7 sera affiché (1! + 3 ! =7)
Page 2