Mémo - 03 - Choix

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

IUT de CHARTRES Département GEII

III. Choix
III.1 Branchement Conditionnel : SI … ALORS …
La structure algorithmique « SI … ALORS … » permet un branchement conditionnel vers une action ou
un ensemble d’actions si et seulement si la condition est vraie. Cette structure permet un choix.

Un organigramme de programmation peut être :

SI :
ALORS :
Condition ?

Action(s) si Condition VRAIE

FIN_SI :

Un algorithme peut être :


SI (condition)
ALORS
Action(s) si la condition est Vraie
FIN_SI

Le codage en langage C utilise l’instruction « if » :


if (condition)
{
// Action(s) si la condition est Vraie
}

III.1.1 Action(s)
Une action est commandée par une instruction.
Un ensemble d’actions nécessite un ensemble d’instructions.

En langage C, un ensemble d’instructions est encadré par des accolades « { » et « } ».

 Les accolades sont facultatives lorsqu’il y a une seule instruction.

III.1.2 Condition Booléenne


La condition est booléenne dont la valeur est :
 soit FAUSSE (ou false) associé à la valeur nulle en langage C,
 soit VRAI (ou true) associé à une valeur non-nulle, positive ou négative, en langage C.

Une condition booléenne est usuellement la valeur résultante d’une fonction booléenne qui utilise des
opérateurs booléens et également des opérateurs arithmétiques ou des opérateurs de comparaison.

Les opérateurs, présentés au chapitre I, ont des priorités entre eux.

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 1


IUT de CHARTRES Département GEII
Considérons quelques exemples, en langage C :

 Les conditions suivantes sont vraies :


1 ; 1+1 ; -5.0 ; 5.0*8 ; -8*3.0
 Les conditions suivantes sont fausses :
0 ; 0*1 ; 5-5 ; 5.0+2.0-7.0

 La condition suivante est vraie si la valeur de n est nulle :


n == 0
 La condition suivante est vraie si n est différent de 8 :
n != 8
 La condition suivante est toujours vraie car l’instruction affecte 8 à n puis la valeur de n,
égale à la valeur non-nulle 8, est évaluée comme vraie :
n = 8

 La condition suivante est vraie si le double de n est supérieur à 3 :


2 * n > 3
 Les conditions suivantes sont vraies si le n ajouté de 2 est inférieur ou égal à 5 :
2 + n <= 5 ; ( 2 + n ) <= 5
 La condition suivante est toujours vraie car si ( n <= 5 ) renvoie 0 si faux ou bien 1 si vrai :
2 + ( n <= 5 )

 La condition suivante est vraie si la valeur de n est comprise dans l’intervalle 3 exclus et 9
inclus :
( n > 3 ) && ( n <= 9 )
 La condition suivante est vraie si la valeur de n est inférieure égale à 3 ou strictement
supérieure à 9, soit comprise hors de l’intervalle 3 exclus et 9 inclus :
( n <= 3 ) || ( n > 9 )
 La condition suivante est vraie si la valeur de n est non comprise dans l’intervalle 3 exclus
et 9 inclus, soit encore comprise hors de l’intervalle 3 exclus et 9 inclus :
(! ( ( n > 3 ) && ( n <= 9 ) ) )

L’utilisation de parenthèses rend lisible les niveaux de priorité.

On notera que la comparaison de caractères est réalisée à partir de la valeur entière de leur code ASCII.
Par exemple, en langage C, les conditions suivantes sont vraies :
'a' < 'b' // 97 < 98
'Z' < 'a' // 90 < 97
'0' == 48 // 48 == 48
'0' + 9 > '5' // 48 + 9 < 53
'0' * 2 < 'a' // 48 * 2 < 97

 En langage C, les opérateurs de comparaison ne fonctionnement pas avec des chaînes de


caractères.

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 2


IUT de CHARTRES Département GEII
III.2 Branchement Conditionnel : SI … ALORS … SINON …
La structure algorithmique « SI … ALORS … SINON … » permet un branchement conditionnel vers
une action ou un ensemble d’actions si la condition est vraie, ou vers une action alternative ou un
ensemble d’actions alternatives si la condition est fausse.

Un organigramme de programmation peut être :

SI :
ALORS : SINON :
Condition ?

Action(s) si Condition VRAIE Action(s) si Condition FAUSSE

FIN_SI :

Un algorithme peut être :


SI (condition)
ALORS
Actions si la condition est Vraie
SINON
Actions si la condition est Fausse
FIN_SI

Le codage en langage C utilise les instructions « if » et « else » :


if (condition)
{
// Actions si la condition est Vraie
}
else
{
// Actions si la condition est Fausse
}

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 3


IUT de CHARTRES Département GEII
III.3 Branchement Multiple : SELON … FAIRE …
La structure algorithmique « SELON … FAIRE … » permet un branchement conditionnel multiple vers
une série d’actions selon plusieurs cas pour la valeur d’un sélecteur.
Cette structure permet des choix multiples.

Un organigramme de programmation peut être :


SELON :

Cas_1 ?

Cas_2 ?

Action(s) si Cas_1 VRAI Action(s) si Cas_2 VRAI Action(s) si Cas Autres

FIN_SELON :

Un algorithme peut être :


SELON selecteur FAIRE
Cas_1 : Action(s) si selecteur = Cas_1
Cas_2 : Action(s) si selecteur = Cas_2

Cas_Autres : Action(s) si Cas Autres
FIN_SELON_QUE

Le codage en langage C utilise les instructions « swich », « case » et « default » :


switch (selecteur)
{
case Cas_1:
// Action(s) si selecteur = Cas_1
break;
case Cas_2:
// Action(s) si selecteur = Cas_2
break;
...
default:
// Action(s) si selection Différent des Cas Proposés
}

 Cette structure algorithmique peut être remplacée par un enchaînement de « SI … ALORS …


SINON .. ».

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 4


IUT de CHARTRES Département GEII
III.3.1 Sélecteur
Le sélecteur est une variable entière, obligatoirement :
 du type entier (int),
 ou du type caractère (car) dont le code ASCII a une valeur entière.

La valeur du sélecteur peut être obtenue par :


 une lecture, notamment après une saisie par l’utilisateur,
 ou le résultat d’un calcul.

III.3.2 Exemple
Pour l’exemple, le programme permet que le choix de l’utilisateur agisse sur la variable entière n telle que :
 n est initialisée à 5 si le choix de l’utilisateur vaut 0,
 n est incrémentée puis plafonnée à 10 si le choix de l’utilisateur vaut 1 ou 2,
 n est remise à 0 pour tout autre valeur du choix de l’utilisateur.

On propose le code en langage C :


switch (choix)
{
case 0 : n = 5;
break;
case 1 :
case 2 :
n = n + 1 ;
if (n > 10)
n = 10 ;
break;
default :
n = 0;
}

Le sélecteur est la variable entière choix.


L’instruction « switch » demande au programme le branchement sur la constante correspondant à la
valeur du sélecteur, ici choix.
Si choix vaut 0, le code provoque un branchement vers « case 0 : » qui provoque l’affectation de 5 à la
variable entière n.
L’instruction « break » provoque la sortie de la structure « switch() { } », après l’accolade finale. En son
absence, on poursuivrait le traitement par l’incrémentation de n puis le test de plafonnement.
Si choix vaut 1, le code provoque un branchement vers « case 1 : ».Si n vaut 2, le code provoque un
branchement vers « case 2 : ». Dans ces 2 cas, la variable n est incrémentée puis est affectée à 10 à sa
valeur excède 10.
On constate ici que :
 Il est possible d’associer un même traitement à plusieurs valeurs de choix, ou « case ».
 Un traitement est réalisé par une instruction ou un ensemble d’instructions, et se termine
par l’instruction « break ».
Si choix ne vaut ni 0, ni 1, ni 2, le code provoque un branchement à « default » qui provoque ici la remise
à 0 de la variable n. Etant en dernière position, l’instruction « break » est inutile.

Le branchement « default », facultatif, est toujours placé en dernier.

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 5


IUT de CHARTRES Département GEII
III.4 Opérateur Ternaire
En informatique, un opérateur ternaire est un opérateur avec 3 arguments.
En langage C, l’opérateur ternaire « … ? … : … » est un opérateur conditionnel qui peut remplacer une
structure « if … then … else … ».

L’opérateur ternaire « … ? … : … » se présente sous la forme suivante :


(condition) ? (action1 si condition vraie) : (action2 si condition fausse);

Selon la condition (en première position), l’action 1 (en deuxième position) est réalisée si la condition est
vraie (ou true), ou alors l’action 2 (en troisième position) est réalisée si la condition est fausse (ou false).
 Les valeurs produites par action1 et action2 doivent être de même type.

Considérons quelques exemples, en langage C :


 La valeur de m est à 1 si la valeur entière i présente un signe « moins », ou à 0 si la valeur
entière i présente un signe « plus » :
m = (i < 0) ? 1 : 0;
Cette ligne de code équivaut à :
if (i < 0)
m = 1;
else
m = 0;

 La valeur de m prend la valeur maximale entre i et j :


m = (i > j) ? i : j;
Cette ligne de code équivaut à :
if (i > j)
m = i;
else
m = j;

 La ligne de code suivante affiche un 's' pour le pluriel si le nombre n de cartes est supérieur
à 1, sinon un espace est affiché (et non un élément vide pour que l’opérateur ternaire
renvoie une valeur du même type caractère) :
printf("Le joueur a %d point%c.\n", n, (n > 1) ? 's' : '');

 La ligne de code suivante affiche « positif » ou « negatif » selon la valeur entière de n :


(n > 0) ? printf("positif\n") : printf("negatif\n");

R1-08 TP Informatique - Frédéric AULERY, Christian ORIEUX, Bruno SOHIER page 6

Vous aimerez peut-être aussi