TP4 Les Boucles

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C.

Zatout

Les boucles
Les boucles en algorithmique sont utilisées lorsqu’on veut répéter un bloc d’instructions jusqu’à la
vérification d’une certaine condition. Le langage C, comme en algorithmique, offre 3 types de
boucles qui sont : la boucle ‘for’, la boucle ‘while’ et la boucle ‘do .. while’.

1 La boucle ‘For’
Algorithmique Langage C
Pour <idf_compteur> de <BI> à <BS> for (<initialisation>;<condition>;<mise à jour>)
Faire {
//bloc d’instructions à exécuter ; //bloc d’instructions à exécuter ;
Fait ; }

La boucle ‘for’ fonctionne comme suit :


1. au début de l’exécution, l’initialisation de la variable (indice) se fait une et une seule fois ;
2. la condition est évaluée, et si elle est vraie, le bloc d’instructions est exécuté. Si la condition
est fausse alors, le bloc ne sera pas exécuté ;
3. à la fin de l’exécution du bloc, la mise à jour de la variable aura lieu ;
4. aller à (2).

2 La boucle ‘While’
Algorithmique Langage C
Tant que (<condition>) while(<condition>)
Faire {
//bloc d’instructions à exécuter ; //bloc d’instructions à exécuter ;
Fait ; }

Comme la boucle ‘for’, l’évaluation de la condition est faite avant l’exécution du bloc
d’instructions. L’évolution de l’évaluation de la condition doit se faire dans de corps de la boucle
afin d’éviter une boucle infinie.
On appelle une boucle infinie, une boucle dont sa condition reste toujours vraie durant l’exécution.
Exemple : while(1){//bloc d’instructions à exécuter ;} est une boucle infinie.

1
Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C. Zatout

3 La boucle ‘Do .. while’


Algorithmique Langage C
Répéter do{
//bloc d’instructions à exécuter ; //bloc d’instructions à exécuter ;
Tant que (<condition >) ; } while(<condition>) ;

Le bloc d’instructions dans la boucle ‘do .. while’ est exécuté au moins une fois. Contrairement aux
boucles précédentes, l’évaluation de la condition est effectuée après l’exécution du bloc
d’instructions. Le bloc est exécuté tant que la condition est vérifiée.

Exemples
La somme des N premiers nombres :

En utilisant l’instruction ‘for’ :

Remarque : il est plus juste d’initialiser i dans la boucle ‘for’ et la boucle ‘while’ à 1. Le résultat
reste toujours vrai, mais on améliore la performance en termes de temps d’exécution : on évite
l’exécution inutile de l’instruction ‘s+=i’ lorsque ‘i=0’ (s+=0). Toutefois, l’initialisation de i à 0
dans le cas de la boucle ‘do .. while’ est obligatoire !

2
Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C. Zatout

En utilisant l’instruction ‘while’ :

En utilisant l’instruction ‘do .. while’ :

3
Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C. Zatout

Exécution :

Solution plus complète :


Puisque la somme de N premiers nombres n’existe pas lorsque N est négatif, alors on assure que le
N soit positif :

4
Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C. Zatout

Exercices (Série TD)


1. Écrire l’algorithme qui affiche les tables de multiplication de 1 à 9 dans la plage de 1 à 9.
2. L’affichage de l’alphabet complet (‘A’ à ‘Z’) ou (‘a’ à ‘z’).
3. Déterminer si A est divisible par B. Avec A et B des entiers positifs.

5
Section 2 : G2, G4 / Section 4 : G1, G3 ,G4 C. Zatout

4. Calculer An en utilisant uniquement l’opération de multiplication, N strictement positif.


5. Écrire l’algorithme permettant de déterminer le PGCD de deux nombres entiers A et B en
utilisant la méthode euclidienne.
◦ par soustractions successives.
◦ par la division euclidienne.
6. Soit N caractères quelconques, calculer le nombre d’occurrences des caractères ‘E’ et le
nombre d’occurrence de ‘e’.
7. Soit N nombres réels quelconques, calculer le nombre d’occurrence d’une valeur VAL
donnée.
8. Recherche du minimum et du maximum dans un ensemble de N nombres.
9. Calcul du quotient et reste de la division de deux entiers A et B sans utiliser l’opération de
division.
10. Déterminer tous les diviseurs d’un entier X donné.
11. Déterminer si un nombre entier X est premier ou non.
12. Le calcul de la somme des nombres parfaits compris entre 10 et N.
13. L’affichage du nombre de lettres majuscules et celui de lettres minuscules à partir d’une
séquence de caractères se terminant par le caractère '#'.
14. Écrire un algorithme qui pour un entier donné calcule la somme des chiffres qui le compose.
15. Écrire un algorithme qui calcule la somme d’ordre N de Sn définie comme suit en utilisant
seulement les opérateurs de base (sans l’utilisation de l’opérateur de puissance).
N
(−1)i+1
Sn=∑ .
i=0 xi

Vous aimerez peut-être aussi