Vous êtes sur la page 1sur 8

Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

CHAPITRE 3
STRUCTURES DE CONTRÔLE CONDITIONNELLES

Objectif

 Connaître les structures algorithmiques utilisées pour exprimer l’idée de choix.

Eléments de contenu
 Définition d’une structure conditionnelle
 La structure conditionnelle simple
 La structure alternative
 La structure conditionnelle à choix multiple.

©Equipe pédagogique Algo1 ISET Jendouba Page 1 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

CHAPITRE 3
STRUCTURES DE CONTRÔLE CONDITIONNELLES

I- STRUCTURES CONDITIONELLES SIMPLES :


Pour que le choix d'un traitement à effectuer puisse dépendre des données fournies par
l'utilisateur, le principe est le suivant :

 on doit prévoir un calcul à résultat booléen (vrai ou faux), c'est à dire écrire une
expression avec des opérateurs donnant un résultat booléen, par exemple : (x<=4) et
(2*x>=2)
 on prévoit les traitements à effectuer ou à ne pas effectuer selon le résultat (vrai ou
faux) de ce calcul, selon les données fournies par l'utilisateur.

Tous les langages de programmation offrent divers moyens de contrôler de cette façon les
traitements à effectuer.

Pour l'écriture d'un algorithme (indépendant d'un langage particulier) on utilise les
constructions suivantes :

 la construction conditionnelle simple : si... alors


 la construction alternative : si... alors... sinon

Pour résoudre des problèmes plus complexes (plus de 2 cas), on peut de plus :

 composer ces constructions entre elles,


 composer avec des opérations booléennes,
 ou utiliser une construction prévoyant un choix selon des valeurs énumérées.

1- La structure conditionnelle simple

Syntaxe

La structure conditionnelle permet de construire une instruction complexe de la forme :

©Equipe pédagogique Algo1 ISET Jendouba Page 2 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

si (expression booléenne ) alors


instruction 1
instruction 2
...
fin si

Cette structure a le fonctionnement suivant :

 l'expression booléenne est tout d'abord calculée,


 puis les instructions comprises entre alors et fin si ne sont exécutées que si le
résultat du calcul donne vrai.
 puis la suite, s'il y en a une après fin si, est exécutée dans les 2 cas.

2- La structure alternative

a) En algorithmique
Syntaxe

La structure alternative permet de construire une instruction complexe de la forme :

si expression booléenne alors


instruction 1
instruction 2
...
Sinon
instruction 1'
instruction 2'
...
fin si

Cette structure a le fonctionnement suivant :

 l'expression booléenne est tout d'abord calculée,


 si le résultat du calcul donne vrai, les instructions 1, 2 ...sont exécutées,
 si le résultat du calcul donne faux, les instructions 1', 2' ...sont exécutées,
 puis la suite, s'il y en a une après fin si, est exécutée dans les 2 cas.

b) Traduction en C
Syntaxe

©Equipe pédagogique Algo1 ISET Jendouba Page 3 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

if ( <expression> )
<bloc d'instructions 1>
else <bloc d'instructions 2>

Avec :
 La partie <expression> peut désigner :

 une variable d'un type numérique


 une expression fournissant un résultat numérique.

 La partie <bloc d'instructions> peut désigner :

 un bloc d'instructions compris entre accolades,


 une seule instruction terminée par un point-virgule.

Exemple 1

Ecrire un programme qui lit un entier au clavier et affiche entier positif, s’il est supérieur
ou égal à zéro, ou affiche entier négatif s’il est strictement négatif.

#include <stdio.h>
void main()
{
int x;
printf(“saisir un entier”);
scanf(“%d”, &x);
if (x>=0)
{
printf(“entier positif”); //ce bloc contient une seule instruction
}
else
{
printf(“entier négatif”); //ce bloc contient une seule instruction
}
}

Remarque
Les blocs qui suivent le if et le else contiennent une seule instruction. Les accolades sont donc
facultatives. Le programme peut s’écrire ainsi :
#include <stdio.h>
void main()
{
int x;
printf(“saisir un entier”);
scanf(“%d”, &x);

©Equipe pédagogique Algo1 ISET Jendouba Page 4 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

if (x>=0) printf(“entier positif”);


else printf(“entier négatif”);
}

Exemple 2

Ecrire un programme qui lit deux entiers différents, et affiche le maximum

#include <stdio.h>
void main()
{
int x,y;
printf(“saisir deux entiers ”);
scanf(“%d%d”, &x,&y) ;
if (x>y) printf(« le maximum est %d », x) ;
else printf(« le maximum est %d », y) ;
}

Application 1
Ecrire un programme C qui accepte un caractère du clavier et affiche :
- Minuscule si le caractère est minuscule.
- Majuscule si le caractère est majuscule.
- Chiffre si le caractère est différent des cas précisés.
Application 2
Ecrire un programme C qui détermine le montant à payer par un abonné à la STEG, sachant
qu’il :
- Paye des frais fixes s’élevant à 500 millimes.
- Paye sa consommation en électricité selon un tarif à tranches :
 70 millimes par KHW pour 100 premiers KHW.
 85 millimes par KHW pour 150 KHW suivants.
 95 millimes par KHW pour la fraction de consommation qui excède les
250 KHW.

II- STRUCTURE CONDITIONELLE À CHOIX MULTIPLE :

Cette dernière construction diffère des précédentes, car elle ne fait pas usage d'expression
booléenne.

©Equipe pédagogique Algo1 ISET Jendouba Page 5 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

On l'utilise quand, en fonction d'une seule donnée, on souhaite effectuer un et un seul


traitement parmi une série de traitements possibles.

a) En algorithmique

Syntaxe

La structure conditionnelle au choix permet de construire une instruction complexe de la


forme :

selon expression faire


valeur1 : instruction 1.1
instruction 1.2
...
valeur2 : instruction 2.1
instruction 2.2
... ...
sinon : instruction n.1
instruction n.2
...
fin selon

Cette structure a le fonctionnement suivant :

 l'expression est tout d'abord calculée, elle doit avoir un résultat de type "énumérable",
c'est-à-dire dont on peut énumérer les valeurs : en pratique de type entier ou caractère,
 si le résultat du calcul donne une des valeurs prévues, alors les instructions
correspondantes sont exécutées,
 si le résultat du calcul donne une valeur qui n'était pas prévue, les instructions
associées au cas sinon sont exécutées. Le cas sinon est facultatif.

Exemple

Cette construction est pratique pour la partie d'algorithme suivante, dans laquelle on suppose
que la variable jour contient un entier - compris entre 1 et 7 - représentant le jour de la

©Equipe pédagogique Algo1 ISET Jendouba Page 6 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

semaine (du lundi au dimanche). L'algorithme affiche en toutes lettres le nom du jour
correspondant.

...
selon jour faire
1 : ecrire('Lundi')
2 : ecrire('Mardi')
3 : ecrire('Mercredi')
4 : ecrire('Jeudi')
5 : ecrire('Vendredi')
6 : ecrire('Samedi')
7 : ecrire('Dimanche')
sinon : ecrire('Erreur')
fin selon
...

b) Traduction en C
Syntaxe
switch (expression)
{
case constante_1: [suite_inst_1] ; break ;
case constante_2: [suite_inst_2] ; break ;
case constante_3: [suite_inst_3] ; break ;
[default: suite_inst] ;
}

Exécution du switch…case :
1. Évaluer l’expression figurant après le mot switch
2. Rechercher dans le bloc qui suit s’il existe une étiquette de la forme
«constante_i» correspondant à la valeur ainsi obtenue (évaluation de l’expression) :
 Si c’est le cas, on se branche à l’instruction figurant après cette étiquette
 Dans le cas contraire on passe à l’instruction qui suit le bloc
Remarque: l’instruction break demande de sortir du bloc

Exemple

#include <stdio.h>
void main()
{
int x;
printf(“saisir un entier “);
scanf(“%d”, &x);
switch (x)

©Equipe pédagogique Algo1 ISET Jendouba Page 7 sur 8


Cours Algorithmique1 Chapitre3 : Structures de contrôle conditionnelles

{
case 1: printf(« Lundi » ) ;
break;
case 2: printf(« Mardi » ) ;
break;
case 3: printf(« Mercredi » ) ;
break;
case 4: printf(« Jeudi » ) ;
break;
case 5: printf(« Vendredi » ) ;
break;
case 6: printf(« Samedi » ) ;
break;
case 7: printf(« Dimanche » ) ;
break;
default: printf(« Autre » ) ;
}
}

©Equipe pédagogique Algo1 ISET Jendouba Page 8 sur 8

Vous aimerez peut-être aussi