Cours C (Séance 2)
Cours C (Séance 2)
Cours C (Séance 2)
Introduction
▪ Les structures de contrôles permettent de réaliser des tests, et suivant le résultat de ces tests, d’exécuter des parties de code différentes.
1
Les structures de contrôle 56
► Définition
❑ Les instructions conditionnelles sont des structures de contrôle qui permettent à un programme d'effectuer des actions différentes en
L’instruction conditionnelle « if »
Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions seulement si une condition est vraie.
❑ Organigramme
Suite du programme
2
Les structures de contrôle 58
L’instruction conditionnelle « if »
Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions seulement si une condition est vraie.
❑ Syntaxe
L’instruction conditionnelle « if »
Cette structure de contrôle permet d'exécuter une instruction ou une suite d'instructions seulement si une condition est vraie.
❑ Exemple
3
Les structures de contrôle 60
instruction1’ instruction1’
instruction2’ instruction2’
…… ……
Suite du programme
4
Les structures de contrôle 62
Suite du programme
5
Les structures de contrôle 64
6
Les structures de contrôle 66
Suite du programme
valeur1 : Instruction 1 Instruction1; break; ▪ discret signifie qu'il s'agit d'une valeur spécifique plutôt que
valeur2 : Instruction 2 casevaleur2 :
d'une plage continue de valeurs (1..5 × )
valeur3 : Instruction 3 Instruction2; break;
…… casevaleur3 :
Instruction3; break; Le mot clé "break" indique la sortie de la structure
Sinon conditionnelle.
……
Traitement par défaut default: Instruction
Fin si par défaut Le mot clé "default" précède la liste d'instructions qui sera
} exécutée si l'expression n'est jamais égale à une des valeurs.
7
Les structures de contrôle 68
► Exercice d’application
▪ Écrire un programme qui permet de saisir le n° de mois puis affiche la saison correspondante.
▪ Exemple :
8
Les structures de contrôle 70
► Exercice d’application
▪ Écrire un programme qui permet de saisir le n° de mois puis affiche la saison correspondante.
int mois;
printf(" Tapez un mois : ") ;
scanf ("%d", &mois);
if (mois==1 || mois==2 || mois==12) else if (mois==9 || mois==10 || mois==11 )
printf (" saison printemps ") ; printf(" La valeur donnée n’est pas entre 1 ..12 ") ;
else if (mois==6 || mois==7 || mois==8 ) // message affiché si aucune des cases n’est vraie
► Exercice d’application
▪ Écrire un programme qui permet de saisir le n° de mois puis affiche la saison correspondante.
int mois;
printf(" Tapez un mois : ") ;
scanf ("%d", &mois);
switch (mois) {
case 1 : case 2 : case 12: printf (" saison hiver") ; break;
case 3 : case 4 : case 5: printf (" saison printemps ") ; break;
case 6 : case 7 : case 8: printf (" saison été ") ; break;
case 9 : case 10 : case 11: printf (" saison automne ") ; break;
default : printf(" La valeur donnée n’est pas entre 1 ..12 ") ; // message affiché si aucune des cases n’est vraie
}
9
Les structures de contrôle 72
▪ La boucle while,
▪ La boucle do … while,
▪ La boucle for
► La boucle while
❑ Définition :
▪ La structure répétitive WHILE ou "TantQue… Faire " permet de répéter un traitement tant qu'une expression conditionnelle est vraie.
▪ On voit donc que la structure répétitive "WHILE" a un point commun avec la structure conditionnelle: si la condition n'est pas vraie,
10
Les structures de contrôle 74
► La boucle while
❑ Organigramme :
Oui
instruction1’
instruction2’
……
Suite du programme
► La boucle while
❑ Syntaxe :
En Algorithmique En langage C
Toutes les conditions sont entre deux parenthèses (……).
11
Les structures de contrôle 76
► La boucle while
❑ Exemple :
❑ Définition :
▪ La structure répétitive "DO WHILE" ou "Répéter…Tant que " permet de répéter un traitement Tant qu'une condition est vraie.
▪ On voit donc que la structure répétitive "DO WHILE" a aussi un point commun avec la structure conditionnelle: si la condition à la fin n'est
12
Les structures de contrôle 78
❑ Organigramme :
instruction1’
instruction2’
……
Condition
= Vrai
Oui
Dans cette structure la condition est testée à la fin
Non pour garantir que le bloc d’instructions est
exécuté au moins une fois
Suite du programme
❑ Syntaxe :
En Algorithmique En langage C
Lorsque " do" est rencontré l'instruction ou le bloc d’instructions qui
suit le est exécutée, puis la condition est testée,
Répéter do si elle est vérifiée la boucle est répétée,
sinon l‘exécution continue à la première instruction après le "While"
{
Instruction1 Instruction1
Instruction2 Instruction2 S'il y a plusieurs instructions après le "do" , on les encadre
…… …… par des accolades : { }
Jusqu’à (condition) }while ( condition) ; Toutes les conditions sont entre deux parenthèses (……)
L’instruction "While (condition)" est suivie d'un point-virgule ;
(contrairement à la version de la structure répétitive WHILE)
13
Les structures de contrôle 80
❑ Exemple :
► La boucle for
❑ Définition :
▪ La structure répétitive FOR est une structure répétitive qui itère le même traitement pour une plage de valeurs entières comprises entre
14
Les structures de contrôle 82
► La boucle for
❑ Organigramme :
instruction_d’initialisation
Les conditions s'expriment avec des
opérateurs logiques ou des opérateurs de
comparaisons.
Condition
Vrai? Non
Oui
instruction1’
instruction2’
……
instruction_d’incrémentation
Suite du programme
15
Les structures de contrôle 84
► La boucle for
❑ Exemple :
Affichage ?
int i ; // Déclaration d’une variable d’identificateur « i » de type « int »
La valeur de i est : 0
for (i=0 ; i<5 ; i++) {
La valeur de i est : 1
printf(" La valeur de i est : %d \n ", i) ; // Message pour afficher la valeur courante de i
La valeur de i est : 2
}
La valeur de i est : 3
La valeur de i est : 4
1 3
for (instruction_init ; condition ; instruction_increment){ 2/4
… 2
}
Suite du programme
❑ Définition :
▪ Il est possible de faire une imbrication pour tous les types de boucle. Cela consiste à placer une boucle dans le corps d'une autre boucle.
▪ On peut même imbriquer des boucles de types différents, comme une boucle for dans une boucle while.
▪ En théorie, il n'y a pas de limite au nombre d'imbrications possibles en C. Cependant, en pratique, le nombre d'imbrications est limité par
Imbrication des boucles de même type Imbrication des boucles de type différent
16
Les structures de contrôle 86
En Algorithmique En langage C
❑ Exemple:
1-1
int i, j; // Déclaration de deux variables « i » et « j » de type « int »
1-2
for (i = 1; i <= 3; i++) {
Résultat ? 1-3
for (j = 1; j <= 3; j++) {
2-1
printf("%d - %d \n", i, j); // Message pour afficher les valeurs courantes de i et j
2-2
}
2-3
}
3-1
3-2
3-3
17
Les structures de contrôle 88
❑ Précaution :
▪ Il est important de faire attention aux variables utilisées dans une boucle imbriquée.
▪ En effet, une variable déclarée dans la boucle externe est accessible dans la boucle interne.
▪ Il est donc important de ne pas modifier la valeur de cette variable dans la boucle interne.
→ cela pourrait affecter le comportement de la boucle externe.
► Exercice d’application
Donner un programme qui permet d’afficher une pyramide ou un triangle rectangle de n lignes en étoiles.
Exemple : n=5
*
**
***
****
*****
18
Les structures de contrôle 90
► Exercice d’application
Solution :
#include <stdio.h>
int main() {
int n, i , j;
printf("Donner le nombre de lignes : ") ; scanf ("%d", &n);
for (i = 1; i <= n; i++) { // Boucle externe (for) pour les lignes
for (j = 1; j <= i; j++) {// Boucle interne (for) pour les étoiles
printf("* ");
}
printf("\n");
}
return 0;
}
▪ L'instruction break
▪ L'instruction continue
▪ L'instruction goto
19
Les structures de contrôle 92
► L'instruction break
▪ L'instruction break peut être utilisée dans n'importe quelle boucle.
▪ Cette instruction provoque alors une interruption et une sortie immédiate de la boucle.
▪ Syntaxe : break ;
Exemple Exécution
► L'instruction continue
▪ L'instruction continue intervient également pour interrompre l'exécution des boucles
▪ Cette instruction ne provoque pas la sortie complète de la boucle, mais plutôt l'interruption de l'itération courante et le passage à
l'itération suivante de cette boucle.
▪ Syntaxe : continue ;
Exemple Exécution
int i; Début de l’itération 1
for(i=1 ; i <= 5 ; i++) { Début de l’itération 2
printf(" Début de l'itération %d \n", i) ; Début de l’itération 3
if (i < 3) Bonjour
continue ; Début de l’itération 4
printf(" Bonjour \n") ; Bonjour
} Début de l’itération 5
Bonjour
20
Les structures de contrôle 94
► L'instruction goto
▪ L'instruction goto provoque un branchement immédiat du programme à un endroit prédéfini.
▪ Les boucles, les tests sont interrompus.
▪ L'endroit où reprend le programme est défini par une étiquette suivie du symbole.
▪ Syntaxe : goto NomEtiquette ; … NomEtiquette ;
Exemple Exécution
int i; Début de l'itération 1
for(i=1 ; i <= 5 ; i++) { Bonjour
printf(" Début de l'itération %d \n", i) ; Fin de l'itération 1
printf(" Bonjour \n") ; Début de l'itération 2
if (i == 3) Bonjour
goto Sortie ; Fin de l'itération 2
printf(" Fin de l'itération %d \n", i) ; Début de l'itération 3
} Bonjour
Sortie : printf(" Après la boucle \n") ; Après la boucle
21