1. Devoirs et examens sur : www.Kiteb.net
Sous programmes– Fiche 1 -Fonctions & procédures
Algorithme du programme principale
Exercice1 :
0) Début calcul
Écrire un programme qui permet de saisir Algorithme de la procédure Afficher :
Exercice2 :
deux entiers a et b >0 puis permuter leurs 0) DEF Proc Afficher( a : entier, b :entier) Écrire un programme qui permet de saisir 1)PROC Saisir(x,y)
valeurs enfin les afficher.
1) Ecrire("a=", a, " b=",b)
deux entiers x et y <=9 puis calculer la 2)p ← FN puissance(xy)
3)Ecrire(''X à la puissance y ='',p)
Pour résoudre ce problème on va utiliser les 2) Fin Afficher
puissance xy enfin afficher le résultat.
4)Fin calcul
modules suivants : saisir, permuter et afficher
Algorithme de la procédure permuter:
Pour résoudre ce problème on va utiliser les Algorithme de la procédure saisir :
Analyse du programme principale :
0)DEF PROC Saisir(var a, var b) ;
0) Def proc permuter (VAR a :entier,VAR b :entier) modules suivants :
Nom : permutation
1)Répéter
1) c a
procédure saisir(x,y)
Résultat= PROC Afficher (a,b)
Ecrire(''x= '') , lire(x)
2) a b
fonction puissance(x,y)
(a,b)= PROC permuter (a,b)
Ecrire(''y= ''), lire(y)
3) b c
(a,b)= PROC Saisir (a,b)
Analyse du programme principale :
Jusqu'a (a<=9) et (y<=9)
4)Fin permuter
Fin Permutation
Nom: calcul
2)Fin saisir
Résultat= Ecrire(''X à la puissance y ='',p)
Algorithme de la fonction puissance :
Tableau de Déclaration de Objet Globaux
Traduction Pascal :
p ← FN puissance(x,y)
0)DEF FN puissance(x,y:entier):entier
objet
Type/nature
Program permutation ;
(x,y)=PROC saisir(x,y)
1) [m ← 1] pour i de 1 à y faire
Uses wincrt ;
A,b
Entier
Fin calcul
m ← m*x
Var a,b :integer;
objets globaux
Afficher, permuter, saisir Procédures
FinPour
Tableau de Déclaration des Objets Globaux
Analyse de la procédure Afficher :
2) puissance ← m
Procedure saisir( VAR a : integer ; VAR b :integer);
DEF PROC Afficher (a :entier , b :entier)
Objets
Type/Nature
Begin
3)Fin puissance
passage par variable
Résultat=
repeat
Programme pascal :
x,y,p
Entier
Ecrire("a=",a, "b=",b)
writeln(‘a=’) ; readln(a);
Program calcul ;
saisir
procédure
Fin Afficher
writeln(‘b=’) ; readln(b);
Uses wincrt ;
puissance
fonction
Analyse de la procédure permuter :
until (a>0) and (b>0);
Var x , y , p : integer ;
Def proc permuter ( VAR a : entier, VAR b :entier)
End ;
Analyse de la procédure saisir :
Résultat=c a
Procedure saisir(var x,y:integer) ;
paramètres Formels
DEF PROC saisir( var x: entier, var y : entier) Begin
ab
Procedure permuter( VAR x :integer; VAR y:integer); Résultat=Répéter
bc
Repeat
Var c: integer;
objets locaux
x=donnée(''x= '')
Fin permuter
Writeln('x= ');readln(x) ;
Begin
y=donnée(''y= '')
T.D.O locaux
Writeln('y= ');readln(y) ;
C:=x;
Jusqu'a (a<=9) et (y<=9)
Until (x<=9) and (y<=9)
objet
Type/nature
x:=y;
Fin Saisir
End ;
c
Entier
y:=c;
Analyse de la procédure saisir:
Passage par valeur
Function puissance(x,y:integer):longint ;
End ;
Analyse de la fonction puissance :
DEF PROC Saisir (VAR a : entier, VAR b :entier)
DEF FN puissance( x: entier, y : entier) : entier Var i:integer;m:longint ;
Résultat=Répéter
Begin
Résultat= puissance ← m
Procedure afficher( a : integer ; b :integer);
A=donnée("a=")
M:=1 ;
m= [m ← 1] pour i de 1 à y faire
Begin
B= donnée("b=")
For i:=1 to y do
m ← m*x
Writeln(‘a=’,a,’b=’,b);
Jusqu'à (a>0) et (b>0)
M:=m*x
FinPour
End ;
Fin Saisir
Fin puissance
Puissance:=m ;
Begin
Tableau de Déclaration des Objets Locaux End ;
Algorithme du programme principal
Saisir(a,b);
appel d’une procédure
0) Début permutation
Objets
Type/Nature
Begin
Permuter(a,b);
1) Proc saisir(a,b)
saisir(x,y) ;
Afficher(a , b );
m,i
Entier
2) Proc permuter(a,b)
P:=puissance(x,y) ;
appel d’une fonction
End.
3) Proc afficher(a,b)
Writeln('X à la puissance y =',p) ;
paramètres effectifs
4) Fin permutation
End.