Vous êtes sur la page 1sur 7

M. L.

HASNAOUI UMI-EST Algorithmique et Base de Programmation

Chapitre 3 :
Les instructions et les structures de contrôle

1. Les instructions en C

Une instruction permet d'exécuter une action (copier une valeur dans une
variable, appeler une fonction, évaluer une expression pour décider des
prochaines instructions à exécuter, etc.) dans un programme. On distingue
trois types d’instructions dans le langage C:

 les instructions-expressions (appelées aussi instructions simples)


 les instructions de contrôle (appelées aussi structures de contrôle)
 les blocs (appelées aussi instructions composées)

2. Les instructions-expressions

On appelle une instruction-expression une expression suivie d'un point-


virgule. Bien qu'on puisse former une instruction-expression à partir de
n'importe quelle expression (3*n+2; a<0; etc.), les seules constructions
qui aient un sens sont les appels de fonction et les expressions qui
modifient un «contenant»:

 les expressions d'incrémentation (exemple: i++;)


 les expressions de décrémentation (exemple: --n;)
 les expressions d'affectation (exemple: m = 0;)
 les expressions d'affectation élargie (exemple: n += 5;)

3. Les instructions de contrôle


Les instructions de contrôle sont les instructions qui modifient
l'exécution séquentielle (l'ordre normal d'exécution) des instructions. Ils
se divisent en trois groupes:

 les instructions sélectives


 les instructions itératives
 les instructions de branchement

Page 1 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

3.1. Les instructions sélectives


Les instructions sélectives permettent de choisir (ou de sélectionner) une
instruction à exécuter parmi plusieurs instructions (qui seront ignorées). Le
langage C offre deux types d'instructions sélectives:

- l'instruction sélective if (appelée aussi if-else)


- l'instruction sélective switch

a. L'instruction sélective if
Voici la syntaxe de cette instruction:

if (expression) instruction_1

else instruction_2

Si expression est vraie alors on exécute instruction_1;

si expression est fausse alors on exécute instruction_2

La forme imbriquée du if:

Puisqu'une instruction peut être une instruction de contrôle, et donc en


particulier, une instruction sélective if, on peut facilement construire le
schéma suivant qui permet de choisir entre plusieurs instructions:

if (expression_1) instruction_1

else if (expression_2) instruction_2

else if (expression_3) instruction_3

[else instruction_n+1]

Il est aisé de constater, d'après le mécanisme de l'instruction sélective if,


que la ième expression évaluée à vraie entraînera l'exécution de la ième
instruction, toutes les autres instructions étant ignorées. La seule façon
pour la nième+1 instruction soit exécutée (celle associée à la clause else)
est que toutes les expressions précédentes aient été évaluées fausses.

Page 2 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

b. L'instruction sélective switch

Il est utile de pouvoir choisir un traitement parmi plusieurs en fonction de la


valeur d'une variable entière.

La différence avec if… else if…else est qu’avec switch, la condition d’aiguillage
doit porter sur la comparaison d’une variable entière avec des valeurs
constantes, et non sur une condition quelconque

La syntaxe de l'instruction switch est :

switch( expr ) Les instructions entre crochets sont optionnelles

{
case constante_1 : [suite d'instructions 1 ;]
[break ;]
case constante_2 : [suite d'instructions 2 ;]
[break ;]
...
case constante_n : [suite d'instructions n ;]
[break ;]
[ default : suite d'instructions ]
}

Exemples d’applications

1. Ecrire les programmes permettant de trouver le maximum de 2 entiers

#include<stdio.h>

main()
{
int x, y, Max ;

/ * saisie des valeurs de x, y */

printf(“donnez les valeurs de x, y : ”) ;

scanf(“%d%d”,&x,&y,) ;

Page 3 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

/ * comparaisons */

if (x>y)

Max= x;

else

Max= y;

printf(“le maximum est =%d”, Max);

2. Soit n un nombre entier donné entre 1 et 7, écrire l’algorithme (en pseudo


code), qui permet d’afficher le jour correspondant ( 1 :Lundi, 2 Mardi….7 :
Dimanche).

#include<stdio.h>
#include<stdlib.h>
main () {
int jour;
printf("entrer le numéro du jour: ");
scanf("%d",&jour);
switch(jour){
case 1: printf("c'est lundi\n"); break;
case 2: printf("c'est mardi\n"); break;
case 3: printf("c'est mercredi\n"); break;
case 4: printf("c'est jeudi\n"); break;
case 5: printf("c'est vendredi\n"); break;
case 6: printf("c'est samedi\n"); break;
case 7: printf("c'est dimanche\n");
default: printf("erreur,tapez un numéro entre 1 et 7 : \n");}
system("pause");
}
break : permet au programme de sortir cest le cas est valide Si l’utilisateur rentre 2 le
programme affichera c’est mardi et sortira du switch

Page 4 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

3.2. Les instructions itératives

Les instructions itératives permettent de répéter (ou d'itérer) l'exécution d'une


instruction aussi longtemps que nécessaire. Les instructions itératives (appelées
aussi boucles) sont les plus importantes car c'est avec ce mécanisme que le
programmeur peut tirer profit de la puissance de calcul phénoménale d'un
ordinateur. Le langage C offre trois types d'instructions itératives:

 l'instruction itérative do...while


 l'instruction itérative while
 l'instruction itérative for

a. L'instruction itérative do...while

Voici la syntaxe de cette instruction:

Do instruction

while (expression);

Elle permet de répéter instruction tant que la condition spécifiée par


expression est valide. Il est important de noter que la condition de
continuation (expression) est évaluée après avoir exécutée au moins une
fois instruction. Si la valeur de expression est (vraie), l'exécution de
instruction est répétée; dans le cas contraire, l’itération se termine.

b. L'instruction itérative while

Voici la syntaxe de cette instruction:

while (expression)

instruction

Elle permet de répéter instruction tant que la condition spécifiée par


expression est valide. Il est important de noter que la condition de

Page 5 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

continuation (expression) est évaluée avant d'avoir exécutée instruction


(il est donc possible que instruction ne soit jamais exécutée). Si la
valeur de expression est (vraie), l'exécution de instruction est effectuée;
dans le cas contraire, la boucle est terminée.

c. L'instruction itérative for

Voici la syntaxe de cette instruction:


for ([expr1]; [expr2]; [expr3]) instruction

L'expression expr1 est appelée l'initialisation car il s'agit souvent d'une


expression d'affectation pour un indice. L'expression expr2 est appelée la
condition. L’expression expr3 est appelée le contrôle itératif puisqu'en
général, on s'en sert pour modifier le résultat de la condition de
continuation.

Exemple d’application des boucles

Ecrire un programme C qui demande un nombre N de départ de type


entier et qui calcule la somme des entiers jusqu’à ce nombre.

1+ 2 + 3 + 4 +…..N

1. Utilisez la boucle do ….. while


2. Utilisez for.
3. Utilisez la boucle while

Solution

//Code do while();

#include<stdio.h>

main () {

int N,i,som=0;

printf("entrer un nombre entier : ");

scanf( "%d" , &N);

i=1 ;

Page 6 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

do {

som=som+i;

I = i+1 ;

} while(i<=N);

printf("la somme est : %d\n" , som);

////Code for()

#include<stdio.h>
main () {
int N,i,som=0;
printf("entrer un nombre entier : ");

scanf("%d",&N);
for(i=1;i<=N;i++)
som=som+i;
printf("la somme est:%d\n",som);
}
//Code while();
#include<stdio.h>

int main () {

int N , I , som= 0 ;

printf("entrer un nombre entier : ");

scanf(" %d", &N);

i=1 ;

while(i<=N){ som=som+i;

i=i+1;}

printf("la somme est:%d\n",som);

Exécution

Entrer un nommbre entier : 3

La somme est 6

Page 7 2020/2021

Vous aimerez peut-être aussi