Matière : Algorithmique et programmation 1
Nombre de pages : 4 Classe : 1ère Année GC 01-02-05
Enseignantes : Mme Sondes [Link] AU: 2020/2021
TP2 : Les structures de contrôle et les structures itératives
1 Les structures de contrôle :
Les structures de contrôle du langage C permettent d’utiliser des constructions du type
Si...Alors...Sinon, Faire...Tant que, etc. Ces structures itératives et conditionnelles reposent sur des
tests et donc sur l’évaluation d’expressions booléennes. Il faut également noter que toutes les
structures de contrôle présentées ci-après peuvent être imbriquées les unes dans les autres.
1.1 Expressions booléennes
Il n’y a pas de type booléen en langage C (contrairement au Pascal, et au C++ par exemple). En C :
– la valeur 0 équivaut à faux ;
— la valeur non-zéro équivaut à vrai
Les opérateurs «classiques» pour effectuer des tests sont :
< (<=) inférieur (ou égal) > (>=)supérieur (ou égal) == égal != différent
Question 1: || ou logique && et logique ! négation
1.2 Alternative simple : Si ... Alors ... Sinon
if ( <expression_booléenne> )
{/∗instruction ( s ) lorsque la condition est vraie ∗/}
else
{/∗instruction ( s ) lorsqu ’ elle est fausse∗/}
1.3 Alternative multiple : Dans le cas ou... Faire
L’alternative multiple permet d’exécuter des instructions en fonction de l’examen de la valeur d’une
variable qui fait office de sélecteur. Voyons sa syntaxe sur un exemple :
int choix ;
switch(choix)
{ case 1: case 2: case 3: /∗ i n s t r u c t i o n s dans le cas 1 , 2 ou 3 ∗/
break;
case 4: /∗ in s t r u c t i o n s dans le cas 4 ∗/
break;
1
default : /∗ i n s t r u c t i o n s par défaut ∗/
Dans cet exemple, on construit une alternative multiple en distinguant les trois situations suivantes :
le cas où la variable choix vaut 1, 2 ou 3
le cas où elle vaut 4
tous les autres cas
Il faut noter d’une part que le mot clef break est nécessaire pour quitter la structure de contrôle une
fois les instructions exécutées pour un cas donné. D’autre part, il n’est pas nécessaire dans cette
structure de grouper les instructions dans un bloc {...}
2 Structures itératives
Le langage C possède trois structures itératives :
–une structure post-testée «Faire .. TantQue ...»;
— une structure pré-testée «TantQue ... Faire ...»;
˜ une boucle «Pour» qui est en réalité une généralisation de la précédente.
2.1 Boucle «faire ... tant que ...»
Syntaxe : do {<bloc> } while ( <condition> ) ;
Voyons son utilisation sur un exemple :
int compteur=1;
do
{ printf("3␣x␣%d␣=␣%d\n" ,compteur ,3∗compteur );
compteur++;
} while (compteur<=10);
On notera que cette boucle est dite «post-testée» dans le sens où le test est effectué après avoir exécuté
les instructions, par conséquent celles-ci sont exécutées au moins une fois.
2.2 Boucle «Tantque ... Faire ...»
Syntaxe : while (<condition>) {<bloc >}
Pour afficher la même table de multiplication on pourrait écrire :
int compteur=1;
while (compteur<=10)
{ printf("3␣x␣%2d␣=␣%2d\n" ,compteur ,3∗compteur );
compteur++;
2
}
Ici le test précède les instructions (la boucle est dite «pré-testée») par conséquent les instructions
peuvent ne jamais être exécutées.
2.3 Boucle «pour»
On peut observer que cette structure de contrôle :
for ( <initialisation> ; <test> ; <incrémentation> ) contient trois clause séparées par des ‘;’ :
Une clause d’initialisation <initialisation> (on peut initialiser plusieurs variables en séparant
les affectations par des virgules);
Une clause de test <test>; Tant qu'elle est vraie, la boucle s'exécute ; elle se stoppe dès qu'elle
devient fausse.
Une clause d’incrémentation <incrémentation>(on peut également utiliser plusieurs
instructions d’incrémentation séparées par des virgules).
Exercices :
Exercice 1 : Ecrire un programme en c qui permet de déterminer le maximum de deux entiers saisis à
partir du clavier. (En utilisant if.. else puis en utilisant l’opérateur de condition :?)
Exercice 2 : Ecrire un programme en c qui permet de vérifier la parité d’un entier saisi à partir du
clavier. (En utilisant la structure if et la structure switch).
Exercice 3 : Ecrire un programme qui affiche en toutes lettres le nom du jour à partir du numéro du
jour de la semaine (entier compris entre 1 et 7).
Exercice 4 : Ecrire un programme qui vérifie si une année est bissextile ou non. Une année est dite
bissextile (366 jours) si elle est divisible par 4 et (n’est pas divisible par 100) ou divisible par 400.
Exercice 5 : Ecrire un programme qui saisit le numéro du mois et affiche le nombre de jours de ce
mois. Pour le cas de février, il comporte 29 jours si l’année est bissextile autrement 28 jours.
Exercice 6 : Ecrire un programme en c qui permet d’afficher le résultat de réussite d’un étudiant
suivant la valeur de sa moyenne. Si moyenne >=10 « admis »
Si 8< =moyenne < 10 « racheté »
Si moyenne <8 « redoublant »
Exercice 7 : Un étudiant passe 3 examens. Il est déclaré admis si :
Soit il a eu au moins 9 points à chaque examen.
Soit la moyenne des trois examens est au moins égale à 10 et la plus basse note est au moins
égale à 8.
Ecrire un programme qui saisit les trois notes d’examen, qui détermine et affiche le résultat final.
3
Exercice 8 : Ecrire un programme qui saisit les trois coefficients a, b et c d’une équation de second
degré et qui détermine et affiche la solution de l’équation dans l’ensemble des réels.
Exercice 9 : Ecrire un programme en c qui permet de tester si un caractère saisi à partir du clavier est
une voyelle.
Exercice 10 : Ecrire un programme en c qui permet d’afficher un message indiquant la nature d’un
caractère saisi (alphabet majuscule, alphabet minuscule) puis de convertir ce caractère : le caractère
majuscule en son équivalent miniscule et vice versa.
Exercice 11 : Un vendeur de voitures propose à ses clients la formule des ventes suivantes :
Une voiture neuve : remise de 18%.
Une voiture qui a roulé jusqu’à 50 000 km : remise de 22%.
Une voiture qui a roulé jusqu’à 100 000 km : remise de 35%.
Une voiture qui dépasse 100 000 km : remise de 45%.
Ecrire un programme en c qui détermine le prix de vente d’une voiture.
Exercice 12 : Ecrire un programme en c qui permet de vérifier la parité de n entiers saisis à partir du
clavier.
Exercice 13 : Ecrire un programme en c qui permet de vérifier la parité de n entiers saisis à partir du
clavier avec n est un entier entre 5 et 10.
Exercice 14 : Ecrire un programme en c qui permet d’afficher le code ascii de toutes les lettres
françaises.