cycle 3 : alternatives faire des choix dans un programme en c 1- aiguillage simple sur condition :...

49
CYCLE 3 : Alternatives Faire 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 ?

Upload: marielle-merlin

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CYCLE 3 : Alternatives Faire des choix dans un programme en C 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

43

float note; printf("\n\t\tNote : "); scanf("%f",&note); // 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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else

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