![Page 1: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/1.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
1- AIGUILLAGE SIMPLE sur CONDITION :
if-else
2-AIGUILLAGE MULTIPLE sur CONDITIONS
if-else if
INTRODUCTION : Pourquoi les instructions alternatives ?
![Page 2: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/2.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
INTRODUCTION : Pourquoi les instructions alternatives ?
![Page 3: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/3.jpg)
3
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
DONNEES en Entrée
PROGRAMME
![Page 4: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/4.jpg)
4
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
DECLARER les DONNEES
(Variables et/ou Constantes)
INITIALISER des Variables
AFFICHER à l’écran les demandes de valeurs
SAISIR au clavier les valeurs de Variables
![Page 5: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/5.jpg)
5
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
TRAITEMENTDONNEES en Entrée
PROGRAMME
![Page 6: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/6.jpg)
6
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
DECLARER les DONNEES
(Variables et/ou Constantes)
INITIALISER des Variables
AFFICHER à l’écran les demandes de valeurs
SAISIR au clavier les valeurs de Variables
FAIRE des CALCULS
![Page 7: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/7.jpg)
7
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
TRAITEMENTDONNEES en Entrée
DONNEES en Sortie
(résultats du programme)
PROGRAMME
![Page 8: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/8.jpg)
8
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
DECLARER les DONNEES
(Variables et/ou Constantes)
INITIALISER des Variables
AFFICHER à l’écran les demandes de valeurs
SAISIR au clavier les valeurs de Variables
AFFICHER à l’écran les résultats du programme
FAIRE des CALCULS
Exécution LINEAIRE
Très limitée
![Page 9: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/9.jpg)
9
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ unsigned short nbProduit; // nombre produits achetés
float prixTotal; // prix à payer
const float PRIX_UNIT= 10.; //10 E/produit
// saisie du nombre de produits achetés
printf("\nNombre de produits achetés : ");
scanf("%hu",&nbProduit);
// calcul du prix à payer
prixTotal= nbProduit * PRIX_UNIT;
printf("\nPrix Total : %.2f",prixTotal);
}
Exécution LINEAIRE
UN SEUL CHEMIN
![Page 10: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/10.jpg)
10
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
COMMENT ECRIRE les INSTRUCTIONS
POUR PRENDRE en COMPTE un CHOIX POSSIBLE ?1. Si le client n’a pas droit a réduction : calcul standard
2. Si le client a droit à réduction : autre calcul
?PLUSIEURS CHEMINS avec AIGUILLAGES
CALCUL 1 CALCUL 2
![Page 11: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/11.jpg)
11
Pourquoi les instructions Alternatives ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
AIGUILLAGE SIMPLE
Avec CONDITION
AIGUILLAGE MULTIPLE
Avec CONDITION
SI (droit à réduction) alors
Calcul 1
SINON
Calcul 2
FSI
ALTERNATIVES
SI (droit à réduction) alors
Calcul 1
SINON SI (pas droit à réduction)
Calcul 2
FSI
![Page 12: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/12.jpg)
12
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Pourquoi se servir d’une expression logique ?
SI (a > b) ALORS Afficher("Le maximum est a")
(a>b) : expression logique à évaluer comme tout calcul
soit a= 3 et b=2 ; dans ce cas, (a>b) VRAI
Les expressions logiques donnent une valeur VRAIE ou FAUSSE : elles serviront donc à faire du raisonnement dans le programme.
![Page 13: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/13.jpg)
13
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Expression logique
Pour les conditions Opérateurs Logiques a, b, c : tous les types Résultat : VRAI/FAUX
a≠b
a==b
c<b
NON(a)
b ET c
![Page 14: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/14.jpg)
14
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
![Page 15: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/15.jpg)
15
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Opérateur
Nom En C
== Egal ==
≠ Différent !=
> Strictement supérieur
>
Supérieur ou égal
>=
< Strictement inférieur
<
Inférieur ou égal
<=
Opérateurs logiques
Opérateur
Nom En C
NON Non logiqu
e
!
OU Ou logiqu
e
||
ET Et logiqu
e
&&
![Page 16: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/16.jpg)
16
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Les opérateurs Logiques BOOLEENS
FAUX FAUX FAUXFAUX VRAI VRAIVRAI FAUX VRAIVRAI VRAI VRAI
expression1 expression2 expression1 OU expression2
![Page 17: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/17.jpg)
17
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Les opérateurs Logiques BOOLEENS
FAUX FAUX FAUXFAUX VRAI FAUXVRAI FAUX FAUXVRAI VRAI VRAI
expression1 expression2 expression1 ET expression2
![Page 18: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/18.jpg)
18
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Les opérateurs Logiques BOOLEENS
VRAI FAUXFAUX VRAI
expression NON(expression)
![Page 19: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/19.jpg)
19
Les conditions logiquesINTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Exemple d’évaluation d’expression Logique
r est un réel qui vaut 3.5 et d est un réel qui vaut 30.
NON(r==3.5) OU (d>30.)
3.5r
30.d
QUE VAUT l’expression Logique ?
VRAI
r==3.5 d>30. NON(r==3.5)
FAUX FAUX FAUX
![Page 20: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/20.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
1.1- Comment écrire l’instruction
SI - (SINON) ?
if { } else { }
1.2- Comment marche cette instruction ?
1- AIGUILLAGE SIMPLE sur CONDITION
Instruction alternative SI - SINON
![Page 21: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/21.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
1.1- Comment écrire l’instruction
SI - (SINON) ?
if { } else { }
Instruction alternative SI - SINON
![Page 22: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/22.jpg)
22
1.1- Comment écrire l’instruction SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ /* Aiguillage en fonction d’une condition logique :
if (condition)
{ instructions 1;
}
else
{ instructions 2;
} */
}
Instruction : SI - (SINON)
![Page 23: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/23.jpg)
23
1.1- Comment écrire l’instruction SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ if (condition)
{ instructions 1;
}
else
{ instructions 2;
}
}
À NOTER !!
Règle de programmation : lisibilité code Indentations dans les
accolades du if et du else
PAS de ; à la fin du if(condition) et du else
![Page 24: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/24.jpg)
24
1.1- Comment écrire l’instruction SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Rôle de l’Instruction :
SI - SINON
Le SI - SINON réalise un aiguillage à 2 voies exclusives (l’une ou l’autre, mais pas les 2).
Le SI réalise un filtre, une protection contre certaines erreurs prévisibles.
![Page 25: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/25.jpg)
25
1.1- Comment écrire l’instruction SI-(SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ unsigned short nbProduit; // nombre produits achetés
float prixTotal; // prix à payer
const float PRIX_UNIT= 10.; //10 E/produit
// saisie du nombre de produits achetés
printf("\nNombre de produits achetés : "); scanf("%hu",&nbProduit);
// calcul du prix en fonction du droit à réduction (20% pour plus de 10 produits)
if (nbProduit<10) { prixTotal= nbProduit * PRIX_UNIT; }
else { prixTotal= nbProduit * PRIX_UNIT * 0.8; }
printf("\nPrix Total : %.2f",prixTotal);
}
Exemple SI - SINON
![Page 26: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/26.jpg)
26
1.1- Comment écrire l’instruction SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ unsigned short nbProduit; // nombre produits achetés
float prixTotal; // prix à payer
const float PRIX_UNIT= 10.; //10 E/produit
// saisie du nombre de produits achetés
printf("\nNombre de produits achetés : "); scanf("%hu",&nbProduit);
// calcul du prix en fonction du droit à réduction (20% pour plus de 10 produits)
prixTotal= nbProduit * PRIX_UNIT;
if (nbProduit>=10) { prixTotal= prixTotal * 0.8; }
printf("\nPrix Total : %.2f",prixTotal);
}
Exemple SI
![Page 27: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/27.jpg)
27
1.1- Comment écrire l’instruction SI -(SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Bilan du rôle du SI - SINON
Aiguillage à 2 chemins :
le choix entre instructions 1 et instructions 2 dépend de la valeur de la condition logique.
Instructions 1
Instructions 2
Condition
VRAIE
Condition FAUSSE
![Page 28: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/28.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
1.2- Comment marche cette instruction ?
Instruction alternative SI - SINON
![Page 29: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/29.jpg)
29
1.2- Comment marche le SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Principe d’exécution du SI - SINON :
if (condition)
{ instructions 1;
}
else
{ instructions 2;
}
• Si la condition logique est VRAIE, les instructions 1 du if sont exécutées.
• Si la condition logique est FAUSSE, le CPU exécute les instructions 2 du else.
![Page 30: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/30.jpg)
30
1.2- Comment marche le SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
condition logique ?
Bloc d’instructions 1
VRAI
Suite du programme
Principe d’exécution d’une instruction SI - SINON :
if (condition)
{ instructions 1;
}
else
{ instructions 2;
}
FAUX
Bloc d’instructions 2
![Page 31: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/31.jpg)
31
1.2- Comment marche le SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
condition logique ?
Bloc d’instructions 1
VRAI
Suite du programme
Principe d’exécution d’une instruction SI :
if (condition)
{ instructions 1;
}
FAUX
![Page 32: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/32.jpg)
32
1.2- Comment marche le SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Simulations d’exécution du SI - SINON :
INSTRUCTION PROCESSEUR
1- if évaluation condition logique : FAUX
INSTRUCTION PROCESSEUR
1- if évaluation condition logique : VRAI2- { exécution bloc d’instructions 13- } suite du programme après la fin du SI
3- } suite du programme après la fin du SI2- else{ exécution bloc d’instructions 2
![Page 33: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/33.jpg)
Le programme effectue une division protégée :
– CAS 1 : diviseur non nul– CAS 2 : diviseur nul
![Page 34: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/34.jpg)
34
1.2- Comment marche le SI - (SINON) ?
INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
{ float a, b, div;
// saisie des 2 réels
printf("\n\t\tDonner les 2 reels : "); scanf("%f%f",&a,&b);
// protection division par 0
if (b != 0) // division possible
{ div= a/b; printf("\n\n\t\tResultat de la division : %.2f",div);
}
else // message d'erreur : division impossible
{ printf("\n\n\t\tERREUR ! Le diviseur est nul !");
}
}
Exemple DIVISION PROTEGEE :
![Page 35: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/35.jpg)
35
resu&resu a&a b&b 1- Déclaration
variables
Réservation mémoire
a&a5.2
b&b0.0
2- Saisies
Attente, conversion, affectation
3- if Evaluation
(b0.): FAUX
5- } FSI-FIN
Instruction Processeur
Mémoire
4- else{ Afficher(“Erreur”)
Erreur
Simulation d’exécution du programme de Division protégée
![Page 36: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/36.jpg)
36
resu&resu a&a b&b 1- Déclaration
variables
Réservation mémoire
Instruction Processeur
Mémoire
Simulation d’exécution du programme de Division protégée
a&a5.0
b&b2.0
2- Saisies
attente, conversion, affectation
3- if
Evaluation (b0.): VRAI
4- { resu= a/b - calcul: 5./2. - affectation
resu&resu2.5
5- Afficher(resu) 2.5
![Page 37: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/37.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
2.1- Comment écrire l’instruction
SI - SINONSI - (SINON) ?
if { } else if { } else{ }
2.2- Comment marche cette instruction ?
2-AIGUILLAGE MULTIPLE sur CONDITIONS
Instruction alternative SI – SINON SI – SINON
![Page 38: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/38.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
2.1- Comment écrire l’instruction
SI - SINONSI - (SINON) ?
if { } else if { } else{ }
Instruction alternative SI – SINON SI – SINON
![Page 39: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/39.jpg)
39
2.1- Comment écrire le
SI – SINON SI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
{ /* Aiguillage en fonction d’une condition logique :
if (condition 1)
{ instructions 1;
}
else if (condition 2)
{ instructions 2;
}
...
else
{ instructions 3;
} */
![Page 40: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/40.jpg)
40
2.1- Comment écrire le
SI - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
int main()
{ if (condition 1)
{ instructions 1;
}
else if (condition 2)
{ instructions 2;
}
else
{ instructions 3;
}
}
À NOTER !!
Règle de programmation : lisibilité code Indentations dans les accolades
des if et du else
PAS de ; à la fin du if(condition 1), du else if (condition 2) et du else
Le nombre de else if n’est pas limité
![Page 41: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/41.jpg)
41
2.1- Comment écrire le
SI - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Rôle de l’Instruction :
SI - SINON SI – (SINON)
Le SI - SINON SI - SINON réalise un aiguillage à plusieurs voies exclusives (une seule voie est empruntée).
Le SI - SINON SI réalise un aiguillage à plusieurs voies également, mais il est possible de n’utiliser aucune des voies.
![Page 42: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/42.jpg)
42
2.1- Comment écrire le
SI alors - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Exemple : DECOUPAGE D’INTERVALLES
Le programme affiche la mention obtenue à un examen
note [0 [10 [12 [14 [16 20]
VOIE 1
Refus
VOIE 2
Passable
VOIE 3
AB
VOIE 4
B
VOIE restante
TB
![Page 43: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/43.jpg)
43
float note; printf("\n\t\tNote : "); scanf("%f",¬e); // NOTE obtenue à l’examen
if (note < 10) // Aiguillage sur la MENTION en fonction de la note obtenue
{ printf("Refus"); // note<10
}
else if (note < 12) // note10 et note<12
{ printf("Passable"); // note [10,12[
}
else if (note < 14) // note 10 ET note 12 ET note<14
{ printf("AB"); // note [12,14[
}
else if (note < 16) // note 12 ET note 14 ET note<16
{ printf("B"); // note [14,16[
}
else // note 14 ET note 16
{ printf("TB"); // note 16
}
note [0 [10 [12 [14 [16 20]
![Page 44: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/44.jpg)
44
2.1- Comment écrire le
SI alors - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Aiguillage à plusieurs chemins :
le choix entre les blocs d’instructions dépend des valeurs combinées des conditions logiques.
Bilan du rôle du SI - SINON SI - (SINON)
Instructions 1
Instructions 2
C1 Vrai
C1 Faux et C2 Vrai
C1 Faux et C2 Faux Instructions 3
![Page 45: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/45.jpg)
CYCLE 3 : AlternativesFaire des choix dans un programme en C
2.2- Comment marche cette instruction ?
Instruction alternative SI – SINON SI – SINON
![Page 46: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/46.jpg)
46
2.2- Comment marche le
SI - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Principe d’exécution du SI - SINON SI - SINON :
if (condition 1)
{ instructions 1;
}
else if (condition 2)
{ instructions 2;
}...
else
{ instructions 3;
}
1. Le CPU évalue successivement les conditions logiques des if, de haut en bas.
2. Dès qu’une condition est VRAIE, le CPU exécute les instructions associées.
3. A la fin de cette exécution, le CPU sort du SI.
4. Si aucune condition n’est VRAIE, le CPU exécute le dernier else.
![Page 47: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/47.jpg)
47
2.2- Comment marche le
SI - SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Principe d’exécution du SI - SINON SI - SINON :
if (condition 1)
{ instructions 1;
}
else if (condition 2)
{ instructions 2;
}...
else
{ instructions 3;
}
SINONFAUX
VRAI
Instruc 1VRAI
Instruc 2
Instruc 3
condition logique 2 ?
FAUXcondition logique 1?
Suite du programme
...
![Page 48: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/48.jpg)
48
2.2- Comment marche le
SI – SINONSI - (SINON) ?INTRODUCTION
I) AIGUILLAGE SIMPLE / condition
II) AIGUILLAGE MULTIPLE / condition
Exécution du SI - SINON SI - SINON :
condition 1 condition 2Exécution instruc 1 si : V -- Exécution instruc 2 si : F V
Exécution instruc 3 si : F F
Le CPU n’arrive sur un else if que si les conditions des if précédents sont FAUSSES
![Page 49: CYCLE 3 : Alternatives Faire des choix dans un programme en C](https://reader035.vdocuments.us/reader035/viewer/2022070407/568142dc550346895daf36d7/html5/thumbnails/49.jpg)
Le programme affiche la mention à un examen en fonction de la note obtenue :– [0,10[ : REFUS– [10,12[ : PASSABLE– [12,14[ : AB– [14,16[: B– [16,20] : TB