Les structures de contrôle et instructions composées

1. Séquence ou suite

Traduction en Pascal

Begin
Instruction 1;

Instruction 2;
................
Instruction n;
End

Exemple: Echanger le contenu des variables x et y

Traduction en Pascal

Program Echange;
Var
x,y,t: Real;

Begin
{Initialisation de x et y}
t:= x; x := y; y := y;
End.

2. Alternative ou structure conditionnelle

Alternative simple Exemple: Trouver la valeur absolue de la variable a
If Condition Then Traduction de Action If a < 0 Then a := -a
Alternative générale Exemple: Trouver le maximum des 2 nombres
If Condition Then
Traduction de Action1
Else

Traduction de Action2
If a > b Then Max := a
Else Max := b

Exemple : Echanger le contenu de la variable c avec le contenu de cette variable (a ou b) qui a plus grande valeur

If a>b Then
Begin

t:=a; a:=c; c:=t;
End
Else Begin
t:=b; b:=c; c:=t
end;

3. Structure répétitive (boucle)(itération)

Répétitive "tant que"

While condition Do
Traduction de Action

Exemple: Compter les nombres entiers lus jusq'au on lit -100.

Program Compter;
Var n,c:Integer;

Begin
c:=0; Read(n);
While n<> -100 Do
Begin
  c:=c+1; Read(n);
End;
Writeln('c=',c);
End.

La boucle pour

est équivalent à

Traduction
For i:=d To f Do
Traduction de Action

Exemple: Sommer tous les entiers dans l'intervalle [M,N]

Program Somme;
Var i,M,N,s :Integer;
Begin
 Write('Entrez M,N:'); Readln(M,N);
 s:=0;
 For i := M To N Do s:= s+i;
 Writeln(s);
End.
La boucle "pour" décroissante:
For i := d Downto f Do
Traduction de l'action

Répétitive "jusqu'au"

est équivalent à

Traduction :
Repeat
Traduction de Action
Until condition

Exemple: Calculer la valeur approchée de la racine carrée de C avec une exactitude e.

Program Racine_Carree;
Var
C,eps,Xa,Xn :Real;
Begin
 Write('Entrez C et eps:'); Readln(C,eps);
 Xn := 1;
 Repeat
  Xa := Xn;
  Xn := 0.5*(Xa + C/Xa);

 Until Abs(Xn - Xa) <= eps;
 Writeln('La Racine carrée de',C:8:3,' est ',Xn:8:3);
End.

Exemple : Calculer le ppcm des deux entiers.

Program ppcm;
Var
 a,b,ma,mb : Integer;
Begin
 {Lire a,b}
 ma := a; mb := b;
 While ma <> mb Do
  If ma < mb Then ma := ma + a Else mb := mb + b;
 {Afficher ma}
End.

4. Choix

case e of
c1: Traduction de A1;
c2: Traduction de A2;
...
cn: Traduction de An
else
Traduction de B
end

Exemple 1: Partie de la calculatrice

case op of
 '+': r:= a+b;
 '-': r:= a-b;
 '*': r:= a*b;
 '/': If b<>0 Then r := a/b
   else {erreur}
 else {erreur}
end;