Cours N 7 Langage Pascal Structures Rptitives Dpartement
































- Slides: 32
Cours N° 7 : Langage Pascal Structures Répétitives Département des Sciences Techniques. Université Ammar Thelidji – Laghouat.
Sommaire • Introduction. • Structures répétitives: • La boucle Tant que (WHILE). • La boucle Répéter (REPEAT). • La boucle Pour (FOR). • Boucles imbriquées. • Exercice.
Introduction
Introduction Les boucles permettent de répéter l’exécution d’une groupe d’instructions ((plusieurs fois)) En langage PASCAL il existe 3 boucles: WHILE, FOR, REPEAT
Les structures répétitives
1. La boucle Tant que (While)
La boucle Tant que (While) • On y répète des instructions tant qu’une certaine condition est Vraie. While (condition) Do Begin <Action> End;
Exemple Calculer la somme suivante: S = 2 + 4 + 6 + 8 + … + (2*N) (N est un entier positif non nul) (Utiliser la boucle Tant que (While))
La boucle Tant que (While) • Le nombre d'itérations dans la boucle « While » n'est pas connu au moment d'entrée dans la boucle. Il dépend de la valeur de condition. • Une des instructions de la boucle doit absolument changer la valeur de la condition de vrai à faux (après un certain nombre d'itérations), sinon le programme va tourner indéfiniment (boucle infinie).
Algorithme somme; Variables: N, i, S: entier; Début Lire(N); i ← 1; S ← 0; Tant que (i <= N) Faire S ← S + (2*i); i ← i + 1; Fin. Tq; Ecrire (S); Fin. Programme Pascal Program somme; Var N, i, S: Integer; begin readln(N); i : = 1; S : = 0; While ( i <= N ) do begin S: = S + (2*i); i : = i +1; end; Writeln(S); end.
Exemple de la boucle (While) « Calcul la somme » S = 2 + 4 + 6 + 8 + … + (2*N) par exemple: N = 6.
Exemples de programme Pascal Program somme; Var N, i, S: Integer; 1 2 3 4 5 begin N : = 6; i : = 1; S : = 0; While ( i <= N ) do begin S: = S + (2*i); i : = i +1; end; Writeln(S); end. i = 7, 1, N = 6 2, 3, 4, 5, 6, S = 42. SS==fin 12 20 30 620 +de +(2 (2 la**3) 1) 2) boucle 4) 5) 6) 1 2 3 5 N 6 6 i S 1 1 7 0 42
2. La boucle Répéter (Repeat)
La boucle Répéter (Repeat) • On y répète des instructions jusqu’à ce qu’une certaine condition soit réalisée. Repeat <Des instructions> Until (Condition d’arrêt);
La boucle Répéter (Repeat) • La condition d’arrêt est évaluée après chaque itération. • Les instructions entre Repeat et Until sont exécutées au moins une fois et leur exécution est répétée jusqu’à ce que la condition soit vraie.
Exemple Ecrire un programme PASCAL qui calcule le nombre de bits dans la conversion binaire d’un nombre décimal N. Par exemple N=9 , (9) = (1001)2 10 => nombre de bits est égale à : 4 (Utiliser la boucle répéter (Repeat))
Algorithme bits; Variables: N, A, nb: entier; Début Lire(N); A← N; nb ← 0; Répéter A ← A div 2; nb ← nb + 1; Jusqu’à (A=0); Ecrire (nb); Fin. Programme Pascal Program bits; Var N, A, nb: Integer; begin readln(N); A : = N; nb : = 0; Repeat A : = A div 2; nb : = nb +1; Until ( A = 0 ); Writeln(nb); end.
Exemple de la boucle (Repeat) « Nombre de bits » Par exemple N = 9, (9)10 = (1001)2 => nombre de bits est égale à : 4
Exemples de programme Pascal Program bits; 1 2 3 4 5 Var N, i, nb: Integer; begin N : = 9; A : = N; nb : = 0; Repeat A : = A div 2; nb : = nb +1; Until ( A = 0 ); Writeln(nb); end. A A== 4, 9, 2, N 1, 0, N == 99 nb = 43210 1 2 3 5 N N 9 9 9 A A nb nb 9 9 0 0 1 4
3. La boucle Pour (For)
La boucle Pour (For) For compt : = Begin <Action> End; <val_initiale> To <val_finale> Do
La boucle Pour (For) • Compt: Compteur est une variable de type entier, elle doit être déclarée. • Généralement on utilise la variable « i » . • val_initiale & Val_finale : peuvent être des valeurs, des variables définies avant le début de la boucle ou des expressions de même type que le compteur (Type entier).
Exemple Calcul la valeur de (P=XN) P= X * X *…. * X N fois X est réel non nul. N est un entier positif non nul. -----------(Utiliser la boucle pour (For))
Algorithme puissance; Variables: N, i: entier; X, P: réel; Début Lire(X, N); P← 1; Pour i ← 1 à N Faire P ← P * X; Fin. Pour; Ecrire (P); Fin. Programme Pascal Program puissance; Var N, i: Integer; X, P: real; Begin readln(X, N); P: = 1; For i : = 1 To N Do P: = P * X; Writeln(P); End.
Exemple de la boucle (For) « Puissance d’un nombre N (P=X ) Par exemple X= 2, N= 3 => La puissance P = 23=8 »
Exemple de programme Pascal Program puissance; i = 213 , N = 3 P= P= ( 1( 1(* 12* 2*) 2*) 2) * 2 Var N, i: Integer; X, P: real; 1 2 3 4 5 Begin X : = 2 ; N : = 3 ; P : = 1 ; For i : = 1 To N Do P: = P * X ; Writeln(P); End. 1 2 3 5 X 2 2 N P 3 3 3 1 8
Les Boucles imbriquées
Les boucles imbriquées • Les instructions d'une boucle peuvent être luimême des instructions itératives. Dans ce cas, on aboutit à des boucles imbriquées. Pour compt 1 ← <val_initiale> à <val_finale> faire Pour compt 2 ← <val_initiale> à <val_finale> faire <Action> Fin. Pour;
Exemple des boucles imbriquées : Ecrire le programme PASCAL qui permet d’afficher à l’écran le dessin suivant : j Indices 1 2 i 3 4 5 1 2 * * * # * * 3 4 5 … # * * * #
Algorithme Dessin; Programme Pascal Program Dessin; Var i, j: Integer; Variables: i, j: entier; Début Pour i ← 1 à 5 Faire Pour j ← 1 à i Faire Ecrire (‘*’ ); Fin. Pour; Begin For i: = 1 To 5 Do begin For j: = 1 To i Do Write (‘*’); Ecrire (‘#’); Fin. Pour; Fin. writeln (‘#’); end.
Exercice
Exercice Ecrire un programme PASCAL qui calcule la somme des diviseurs d’un nombre entier N. Déduire le programme qui permet de vérifier si le nombre N est Parfait ou non. Remarque: Un nombre est dit parfait s’il est égal à la somme de ses diviseurs hormis lui-même: Exemple: 6 = 1+2+3 , 28= 1+2+4+7+14