Vous êtes sur la page 1sur 8

Matière : ALGP

Chapitre 1

LYCEE SECONDAIRE BARDO PROFESSEUR: MME Fehri Mejri Hanen


 DISCIPLINE : Informatique MATIERE: Informatique
Niveau: 4ème Scientifique

Chapitre Les sous programmes

Objectifs
 Décomposer un problème en sous problèmes élémentaires
 Présenter les solutions sous forme de procédures et de fonctions
 Présenter les solutions sous forme d’algorithmes puis de programmes

PLAN DU COURS

Enseignante: Mme Fehri Mejri Hanen Page 1 sur 8


Matière : ALGP
Chapitre 1

I. Introduction : P145
II. L’analyse modulaire
1) Définition : P146
2) Intérêts : P146
3) Activité 1
Ecrire un programme qui remplit un tableau T par n entiers aléatoires compris entre 100 et
400 ((8<n≤60) puis détermine et affiche :
 Le plus petit élément de T
 Un tableau A qui contient les entiers cubiques de T affichés dans l’ordre
décroissant
NB : un entier est dit cubique si la somme de ses chiffres au cube est égale à lui-même
(153=1 +53+33)
3

Exemple
Pour n=9 et le tableau T suivant :

253 153 265 324 370 187 369 371 389

Le programme affiche :
 Le plus petit élément du tableau est : 153
 Le tableau A : 371 370 153
 Analyse du programme Principal

Analyse Paramètres Résultat Type du


modifiées Retourné sous-
programme
NOM : ACT1
Resultat=Proc Afficher(P,A,X) 0 0 Procédure
P=FN Petit(T,n) 0 1 Fonction
A,X←Proc Cubique(T,n,A,x) 2 2 Procédure
T=Proc Remplir(T,n) 1 1 Procédure
N=Proc saisie (n) 1 1 Procédure
Fin Act1
4) Conclusion
 Une procédure est un sous-programme qui lit des paramètres et peut modifier 1 ou
plusieurs de ces paramètres. Ainsi, une procédure retourne 0 ou plusieurs résultats.
 Une fonction est un sous-programme qui lit des paramètres sans les modifier et retourne un
et un seul résultat de type simple
 Le programme principal fait appel à des sous programmes. On dit qu’il s’agit d’un
programme appelant et les sous programmes correspondent à des programmes appelés
 Un programme appelé peut être réutilisé plusieurs fois par le programme appelant.

Enseignante: Mme Fehri Mejri Hanen Page 2 sur 8


Matière : ALGP
Chapitre 1

 Lors de l’appel, les paramètres du programme appelé sont nommés des paramètres
effectifs (sur lequels se fait l’effet du sous-programme)
 Les objets déclarés dans le TDO du programme principal sont appelés des objets globaux
III. Les fonctions
1) Activité : Analyse de la fonction petit
2) Notion de paramètres formels et objets locaux
 Les objets déclarés dans le TDO du sous programme sont appelés des objets globaux
 Les paramètres formels sont les paramètres définit au niveau de l’entête d’un sous
programme. Ils définissent d’une manière générale le sous programme (Voir P 164)
3) Vocabulaire et syntaxe

4) Application : Ecrire un programme qui lit un entier et affiche sa factorielle

Enseignante: Mme Fehri Mejri Hanen Page 3 sur 8


Matière : ALGP
Chapitre 1

IV. Les procédures


1) Activité : Analyse de la procédure saisie, remplir, cubique, afficher
2) Vocabulaire et syntaxe

3) Notions de passage par variable et passage par valeur


a) Activité
Questions :
PROGRAM EXERCICE; a) Après l’exécution de la procédure Remplace, afficher les
VAR x, y: INTEGER; valeurs finales de x et y, Justifier votre réponse

PROCEDURE Remplace (VAR x = ………………………………………………………………..


a:INTEGER ; b:INTEGER); …………………………………………………………………….
BEGIN y = …………………………………………………………………
a:=b; ………………………………………………………………………
b:=2*b; b) Mettre une croix dans la case adéquate.
END;
Paramètre formel Paramètre effectif
BEGIN {Programme principal} x
x:=3; y
a
y:=5;
b
Remplace(x, y);
WRITELN (’x=’, x,’ y=’, y);
END.

Enseignante: Mme Fehri Mejri Hanen Page 4 sur 8


Matière : ALGP
Chapitre 1

Objets globaux Objets locaux Passage par


Valeur avant Valeur après appel variable :
appel Communication
dans les deux sens
Programme
principal x 3 x 5

y 5 y 5
Sous
Programme a a 5
remplace
b b
10 Passage par
variable :
Communication
dans un seul sens

b) Conclusion
 Lorsqu’un paramètre va être modifié par une procédure. Le passage du paramètre se fait
par variable et le paramètre formel est précédé par le mot réservé var.
 Lorsqu’un paramètre est utilisé seulement par une procédure. On dit que le passage de
paramètre est par valeur.
 Pour les fonctions, le passage des paramètres se fait par valeur seulement
 Passage par valeur
Au moment de l'appel, la valeur du paramètre effectif est copiée dans la variable locale
désignée par le paramètre formel correspondant. L'appelant impose à l'appelé une pure
lecture des valeurs des paramètres effectifs. Les paramètres transmis par valeur font
communiquer l'information dans un seul sens: du sous-programme (ou programme )
appelant vers le sous-programme appelé. Ce mode est utilisé pour les procédures et les
fonctions
Exemple : Valeur de y après appel reste 5 or la valeur du b après appel est modifié est égal à
10
 Passage par variable
Toute modification de la valeur du paramètre formel dans le programme appelé entraîne au
moment de retour à l'appelant une modification de la valeur du paramètre effectif
correspondant. Ce mode est utilisé seulement pour les procédures
Le mode de passage par valeur ne modifie pas le paramètre effectif même si le sous
programme modifie le paramètre formel, alors que le passage par variable transmet toute
modification du paramètre formel au paramètre effectif

Enseignante: Mme Fehri Mejri Hanen Page 5 sur 8


Matière : ALGP
Chapitre 1

4) Application 2 Soit le programme pascal suivant :


Program traitement ; Function coder(ch2: ……………….):……………….;
Uses wincrt ; Var I:……………;
Ph1:…………..;
Var texte,ch :string ; Begin
Ph1:=’’;
Procedure saisie (var ph:string); for i:=1 to length(ch2) do
Var Test:Boolean; If (Majus(ch2[i]) in [‘A’,’E’,’I’,’O’,’U’,’Y’]) then
ph1:=concat(ph,ch2[i]);
Function verif(ch1:………….):…………
Var i:………; coder:=ph1;
V:Boolean; End;
Begin
I:=1; v:=true; Begin
While ((ch1<>’’) and (v=true) and {programme principal}
(i<=length(ch1) ) do Saisie(texte);
If (Majus(ch1[i]) in [“A”..”Z”] ) then Ch:=coder(texte);
i:=i+1 Write(ch) ;
Else v:=false; End.
Verif:=………
End;
Objets Objets Paramètres Paramètres
Begin globaux locaux formels effectifs
Repeat Procédure
Readln(ph); saisie
Test:=verif(ph); Fonction
Until (ph<>’’) and (Test=true); coder
End; Fonction
verif

Conclusion
 Tous les objets tels que les constantes, les types, les variables et éventuellement d'autres
fonctions déclarés dans un sous-programme sont dits locaux à celui-ci.
 Les objets utilisés dans un sous-programme et non déclarés dans celui-ci sont des objets
globaux déclarés dans la zone déclaration du programme appelant.
Application
Ecrire un programme qui lit une chaine non vide, totalement alphébétique et dont la taille ne
dépasse pas 30 caractéres puis détermine et affiche :
 Le nombre de voyelles de cet chaine
 La chaine totalement majuscules

Enseignante: Mme Fehri Mejri Hanen Page 6 sur 8


Matière : ALGP
Chapitre 1

Enseignante: Mme Fehri Mejri Hanen Page 7 sur 8


Matière : ALGP
Chapitre 1

c) Paramètres formels et paramètres effectifs


 Les paramètres formels sont les paramètres qui se trouvent dans l'entête du sous-
programme.
DEF FN SomDiviseurs (n1 : entier) : entier
 Les paramètres effectifs sont les paramètres qui figurent (dans le programme ou sous-
programme appelant) au niveau de l'appel du sous-programme.
 Les paramètres formels et effectifs doivent correspondre en nombre, genre et ordre
d) Passage par valeur et Passage par variable
 Passage par valeur
Au moment de l'appel, la valeur du paramètre effectif est copiée dans la variable locale
désignée par le paramètre formel correspondant. L'appelant impose à l'appelé une pure
lecture des valeurs des paramètres effectifs. Les paramètres transmis par valeur font
communiquer l'information dans un seul sens: du sous-programme (ou programme )
appelant vers le sous-programme appelé. Ce mode est utilisé pour les procédures et les
fonctions
Exemple : Valeur de y après appel reste 5 or la valeur du b après appel est modifié est égal à
10
 Passage par variable
Toute modification de la valeur du paramètre formel dans le programme appelé entraîne au
moment de retour à l'appelant une modification de la valeur du paramètre effectif
correspondant. Ce mode est utilisé seulement pour les procédures
Le mode de passage par valeur ne modifie pas le paramètre effectif même si le sous
programme modifie le paramètre formel, alors que le passage par variable transmet toute
modification du paramètre formel au paramètre effectif

Enseignante: Mme Fehri Mejri Hanen Page 8 sur 8

Vous aimerez peut-être aussi