Chapitre 4 :�Les boucles en algorithmique et en langage C
MIPC
1
2019/2020
Les types de boucle
MIPC
2
2019/2020
La boucle Tant que
TantQue (condition)
instructions
FinTantQue
MIPC
3
2019/2020
condition
instructions
Faux
Vrai
Boucle Tant que : exemple simple
Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N dépasse strictement 100
Algorithme tantq
Var
som, i : entier;�Debut
i ← 0;
som← 0;
TantQue (som <=100)
i ← i+1;
som ← som+i;
FinTantQue
Ecrire (" La valeur de la i est : ", i); � Ecrire (" La valeur de la somme est : ", som);
Fin
MIPC
4
2019/2020
Les structures de contrôle : while
while (condition)
une-instruction;
while (condition) {
Des instructions;
}
}
MIPC
5
2019/2020
La syntaxe du langage C
Les structures de contrôle :while
#include <stdio.h>
main ()
{ int i=1, N;
printf("N=\n"); scanf("%d",&N);
while (i <= N) {
printf("%d ", i); printf("\n");
i = i+1;}
}
MIPC
6
2019/2020
La syntaxe du langage C
Les structures de contrôle :while
while imbriqué
#define MAX 4
int i=0,j;
while (i < MAX ) {
j=0;
while (j < MAX ) {
printf(" position : %d \t %d\n",i,j);
j++;
}
i++;
}
MIPC
7
2019/2020
La syntaxe du langage C
La boucle Pour
Pour compteur allant de initiale à finale par pas valeur du pas
instructions
FinPour
MIPC
8
2019/2020
i n'a pas atteint finale
instructions
Faux
Vrai
i 🡨initiale
i 🡨i + pas
La boucle Pour
Remarques :
MIPC
9
2019/2020
Boucle Pour :
Exemple : Pour i allant de 1 à 5
i 🡨 i -1; � écrire(" i = ", i) ;
Finpour
MIPC
10
2019/2020
Déroulement de la boucle Pour
MIPC
11
2019/2020
Boucle Pour : exemple
MIPC
12
2019/2020
Algorithme Plus-Grand-Element: Réécriture de l’algorithme précédent mais avec une boucle ``Pour’’
Entrée: n entiers S1,…, Sn
Sortie: grand contenant le plus grand élément
Algo plus-grand (S,n)
Debut
Grand 🡨 S1;
Pour i =1 à n Faire
Si Si > grand alors // une plus grande valeur a été trouvée
grand 🡨 Si;
FinSi
FinPour
Ecrire (grand);
Fin
Lien entre Pour et TantQue
Pour compteur allant de initiale à finale par pas valeur du pas
instructions ;
FinPour
peut être remplacé par : (cas d'un pas positif)
compteur ← initiale;
TantQue compteur <= finale
instructions ;
compteur ← compteur+pas;
FinTantQue
MIPC
13
2019/2020
Lien entre Pour et TantQue: exemple
MIPC
14
2019/2020
Calcul de x à la puissance n avec la boucle Pour et la boucle TantQue
x : un réel non nul
n : entier positif ou nul
Solution avec la boucle Pour
Algorithme puissance
Var
x, puiss : réel ;
n, i : entier;
Début� Ecrire (" Entrez respectivement les valeurs de x et n ");
Lire (x, n);
puiss ← 1;
Pour i allant de 1 à n
puiss← puiss*x ; � FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss);
Fin
MIPC
15
2019/2020
Solution avec la boucle Tant Que
Algorithme puissance
Var
x, puiss : réel ;
n, i : entier;
Début� Ecrire (" Entrez respectivement les valeurs de x et n ");
Lire (x, n);
puiss ← 1; i ← 1;
TantQue (i<=n);
puiss← puiss*x ; � i ← i+1;
FinTantQue
Ecrire (x, " à la puissance ", n, " est égal à ", puiss);
Fin
MIPC
16
2019/2020
Algorithme de la fonction factorielle : Exemple
Entrée : n de type naturel
Sortie : factoriel (n) = 1*2*3*…..*(n-1)*n
MIPC
17
2019/2020
Algorithme de la fonction factorielle
MIPC
18
2019/2020
Algorithme / tantque |
Calcul factorielle 1 Variables i, f, n : Naturel; Début lire(n); i ← 1; f ← 1; tant que (i < n) i ← i+1; f ← f * i; Fin de tant que écrire (f); Fin |
Algorithme / Pour |
Calcul factorielle 2 Variables i, f, n : Naturel; Début lire(n); f ← 1; pour i variant de 2 à n f ← f * i; Fin pour écrire (f); Fin |
Boucles imbriquées
Pour i allant de 1 à 5
Pour i allant de 1 à i
écrire("O") ;
FinPour
écrire("X") ;
FinPour
MIPC
19
2019/2020