Vous êtes sur la page 1sur 14

Séance 8

Algorithmique 1
Les structures de contrôle
• On appelle structure de contrôle toute instruction servant à contrôler le déroulement de
l’enchaînement des instructions à l’intérieur d’un programme, ces instructions peuvent
être des instructions conditionnelles ou itératives.

La syntaxe du langage C
• Parmi les structures de contrôle, on distingue :
• structures de choix
• if….else (choix conditionnel)
• switch (choix multiple)
• structures répétitives ou itérative ou boucle
• for
• while
• do…while
• Branchement inconditionnel
• Break, goto, continue

2019/2020 MIPC 2
Les structures de contrôle : if-else

• La construction if-else (si-sinon) est la construction logique de base du


langage C qui permet d'exécuter un bloc d'instructions selon qu'une

La syntaxe du langage C
condition est vraie ou fausse.
• Syntaxe
○ Forme 1
 if (expression) instruction-1;
la forme if est ici dans sa forme la plus simple. Si expression est vraie, instruction-1
est exécutée. Si expression est fausse, instruction-1 est ignorée.
Exemple: if(age<10)
printf(‘’enfant ’’);

2019/2020 MIPC 3
Les structures de contrôle : if-else
Syntaxe
○ Forme 2
 if (expression) instruction-1;

La syntaxe du langage C
else instruction-2;
Si expression est vraie, instruction-1 est exécutée, sinon c’est instruction-2 qui est exécutée.
○ Forme 3
 if (expression-1)
instruction-1;
else if (expression-2)
instruction-2;
else
instruction-3;
Les instructions if sont imbriquées. Si expression-1 est vraie, instruction-1 est exécutée.
Dans le cas contraire expression-2 est évaluée si cette dernière est vraie instruction-2 est
exécutée. Si les deux expressions sont fausses, c’est instruction-3 qui est exécuté
2019/2020 MIPC 4
Les structures de contrôle : if-else
• Exemples:
• Exemple 1

La syntaxe du langage C
○ if (salaire >45.000)
tax=0.30;
else
tax=0.25;
• Exemple 2
○ if (age <18)
printf(‘’mineur’’);
else if (age <65)
printf(‘’adulte’’);
else
printf(‘’personne agée’’);

2019/2020 MIPC 5
Les structures de contrôle : if-else
#include <stdio.h>
main ()
{ int i;
printf("Tapez un nombre entier positif ou negatif: ");
scanf("%d", &i);
if (i<0) {
i=-i;
printf("J'ai remis i à une valeur positive.\n");
}
else {
printf("Vous avez tapé un nombre positif.\n");
}
}
2019/2020 MIPC 6
Les structures de contrôle : Switch
• L’instruction switch est l’instruction de contrôle la plus souple du
langage C. Elle permet à votre programme d’exécuter différentes

La syntaxe du langage C
instructions en fonction d’une expression qui pourra avoir plus de
deux valeurs.
• On l’appelle aussi l’instruction d’aiguillage. Elle teste si une
expression prend une valeur parmi une suite de constantes, et
effectue le branchement correspondant si c’est le cas.

2019/2020 MIPC 7
Les structures de contrôle : Switch
Syntaxe

La syntaxe du langage C
switch (<condition>) {
case <valeur 1> : <action 1>; break;
case <valeur 2> : <action 2>; break;

default : <action n>;
}

2019/2020 MIPC 8
Les structures de contrôle : Switch
• Remarques :
• Le fonctionnement de cette instruction est le suivant :

La syntaxe du langage C
• expression est évaluée ;
• s’il existe un énoncé case avec une constante qui est égale à la valeur de
l’expression, le contrôle est transféré à l’instruction qui suit cet énoncé;
• si un tel case n’existe pas, et si énoncé default existe, alors le contrôle est
transféré à l’instruction qui suit l’énoncé default ;
• si la valeur de l’expression ne correspond à aucun énoncé case et s’il n’y a pas
d’énoncé default, alors aucune instruction n’est exécutée.
• Attention.
• Lorsqu’il y a branchement réussi à un case, toutes les instructions qui le suivent
sont exécutées, jusqu’à la fin du bloc ou jusqu’à une instruction de rupture
(break).

2019/2020 MIPC 9
Les structures de contrôle : Switch
#include<stdio.h>
main() {
int a,b,y;

La syntaxe du langage C
char operateur;
Printf(‘’ Entrez un opérateur (+, -,* ou /):’’);
Scanf(‘’%c’’,&operateur);
Printf(‘’ Entrez deux entiers:’’);
Scanf(‘’%d’’,&a); Scanf(‘’ %d’’,&b);
switch(operateur){
case’-’ : y=a-b; printf(‘’%d’’,y);break;
case’+’ : y=a+b; printf(‘’%d’’,y); break;
case’*’ : y=a*b; printf(‘’%d’’,y); break;
case’/’ : y=a/b; printf(‘’%d’’,y); break;
default : printf(‘’opérateur inconnu\n’’);break;
}
}
2019/2020 MIPC 10
Tests imbriqués: exercice

Le prix de photocopies dans une reprographie varie selon le nombre demandé: 0,5 DH la copie
pour un nombre de copies inférieur à 10, 0,4DH pour un nombre compris entre 10 et 20 et 0,3DH
au-delà.

Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées, qui


calcule et affiche le prix à payer

2020/2021 MIPC 11
Tests imbriqués: corrigé de l'exercice
#include <stdio.h>
main(){
int copies; float prix;

printf ("Nombre de photocopies : ");


scanf (" %d ",&copies);
if copies < 10
prix = copies*0.5;
else if copies < 20
prix = copies*0.4;
else
prix = copies*0.3;

printf (“Le prix à payer est : %f”, prix);


}

2020/2021 MIPC 12
Tests imbriqués: Exercice 2

Écrire l’algorithme du traitement qui calcule le discriminant DELTA d’un trinôme du second degré AX2
+ BX + C et qui, en fonction de son signe, calcule la ou les racines réelles du trinôme ou affiche, si
besoin est qu’il n’y a pas de racine réelle.

Les trois coefficients A, B et C seront saisis au clavier avant traitement.

2020/2021 MIPC 13
Tests imbriqués: corrigé de l'exercice 2
#include<stdio.h>
#include<math.h>
main(){
float A, B, C, Delta, X1, X2;
scanf ("%f %f %f",&A, &B, &C);
Delta =pow( B, 2) – 4* A*C;

if (Delta < 0)
printf( ‘’ le trinome n’a pas de racine reelle ’’);
else
if (Delta > 0) {
X1 = (-B + sqrt(delta)) / (2*A);
X2 = (-B - sqrt(delta)) /( 2*A);

printf (‘’ le trinome possede deux racines reelles :%f \t %f ‘’, X1, X2);

else
{ X1 = (-B ) / (2*A);
printf (‘’ le trinome possede une racine reelle : %f‘’, X1);
}

}
2020/2021 MIPC 14

Vous aimerez peut-être aussi