Les Piles
Enseignante responsable : Olfa JEMAI
Exercice 1 :
/* pour identifier tous les chiffres qui composent un
nombre, on procède par des divisions successives par 10
Exemple : 2345 10
5 234 10
4 23 10
3 2 10
2 0
*/
1
Exercice 2 :
Var
x :entier
Début
creerpile(P2)
creerpile(P3)
tantque (P1 ≠ null) faire
depiler(P1,x)
si (x mod 2 = 0) alors
empiler(P2,x)
sinon
empiler(P3,x)
finsi
fin tantque
Fin
Exercice 3 :
1-
Procédure prefixe(exp_par : chaine, var exp_pref :chaine)
Var
i :entier
P :pile
x :caractère
Début
Exp_pref’’
Creerpile(P)
pour i de long(exp_par) à 1 par pas -1 faire
si (operateur(exp_par[i])=faux ) alors
concat(exp_par[i],exp_pref)
sinon
si (operateur(exp_par[i])=vrai ) alors
empiler(P, exp_par[i])
sinon
si exp_par[i]=’(‘ alors
concat(sommetpile(P),exp_pref)
depiler(P,x)
2
finsi
finsi
finsi
fin pour
Fin
2-
Var
P : pile
i : entier
opr1,opr2 :entier
r :réel
Début
creerpile(P)
pour i de long(exp_pref) à 1 par pas -1 faire
si (operateur(exp_pref[i])=faux ) alors
empiler(P, exp_pref[i])
sinon
si binaire(exp_pref[i]) alors
depiler(P,opr1)
depiler(P,opr2)
roperationb(opr1,exp_pref[i],opr2)
empiler(P, r)
sinon
depiler(P,opr1)
roperationu(opr1,exp_pref[i])
empiler(P, r)
finsi
finsi
fin pour
eval_pref sommetpile(P)
fin