La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 if INTRODUCTION : Pourquoi les instructions alternatives ?

2 CYCLE 3 : Alternatives Faire des choix dans un programme en C INTRODUCTION : Pourquoi les instructions alternatives ?

3 3 Pourquoi les instructions Alternatives ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition DONNEES en Entrée PROGRAMME

4 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

5 5 Pourquoi les instructions Alternatives ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition TRAITEMENT DONNEES en Entrée PROGRAMME

6 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

7 7 Pourquoi les instructions Alternatives ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition TRAITEMENT DONNEES en Entrée DONNEES en Sortie (résultats du programme) PROGRAMME

8 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

9 9 Pourquoi les instructions Alternatives ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition int main() { unsigned short nbProduit; // nombre produits achetés floatprixTotal; // prix à payer constfloat 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

10 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 na 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

11 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

12 12 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Pourquoi se servir dune 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.

13 13 Les conditions logiques INTRODUCTION 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 ab a==b c

14 14 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition

15 15 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition OpérateurNomEn C ==Egal== Différent!= >Strictement supérieur> Supérieur ou égal>=

16 16 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Les opérateurs Logiques BOOLEENS FAUXFAUXFAUX FAUXVRAI VRAI VRAIFAUX VRAI VRAIVRAIVRAI expression1expression2expression1 OU expression2

17 17 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Les opérateurs Logiques BOOLEENS FAUXFAUXFAUX FAUXVRAI FAUX VRAIFAUX FAUX VRAIVRAIVRAI expression1expression2expression1 ET expression2

18 18 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Les opérateurs Logiques BOOLEENS VRAIFAUX FAUX VRAI expressionNON(expression)

19 19 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Exemple dévaluation dexpression 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.5 r 30. d QUE VAUT lexpression Logique ? VRAI r==3.5 d>30. NON(r==3.5) FAUX

20 CYCLE 3 : Alternatives Faire des choix dans un programme en C 1.1- Comment écrire linstruction SI - (SINON) ? if { } else { } 1.2- Comment marche cette instruction ? 1- AIGUILLAGE SIMPLE sur CONDITION Instruction alternative SI - SINON

21 CYCLE 3 : Alternatives Faire des choix dans un programme en C 1.1- Comment écrire linstruction SI - (SINON) ? if { } else { } Instruction alternative SI - SINON

22 Comment écrire linstruction SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition int main() { /* Aiguillage en fonction dune condition logique : if (condition) {instructions 1; } else {instructions 2; } */ } Instruction : SI - (SINON)

23 Comment écrire linstruction 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

24 Comment écrire linstruction SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Rôle de lInstruction : SI - SINON Le SI - SINON réalise un aiguillage à 2 voies exclusives (lune ou lautre, mais pas les 2). Le SI réalise un filtre, une protection contre certaines erreurs prévisibles.

25 Comment écrire linstruction SI-(SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition int main() { unsigned short nbProduit; // nombre produits achetés floatprixTotal; // prix à payer constfloat 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

26 Comment écrire linstruction SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition int main() { unsigned short nbProduit; // nombre produits achetés floatprixTotal; // prix à payer constfloat 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

27 Comment écrire linstruction 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 1Instructions 2 Condition VRAIE Condition FAUSSE

28 CYCLE 3 : Alternatives Faire des choix dans un programme en C 1.2- Comment marche cette instruction ? Instruction alternative SI - SINON

29 Comment marche le SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Principe dexé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.

30 Comment marche le SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition condition logique ? Bloc dinstructions 1 VRAI Suite du programme Principe dexécution dune instruction SI - SINON : if (condition) { instructions 1; } else { instructions 2; } FAUX Bloc dinstructions 2

31 Comment marche le SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition condition logique ? Bloc dinstructions 1 VRAI Suite du programme Principe dexécution dune instruction SI : if (condition) { instructions 1; } FAUX

32 Comment marche le SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Simulations dexécution du SI - SINON : INSTRUCTIONPROCESSEUR 1- if évaluation condition logique : FAUX INSTRUCTIONPROCESSEUR 1- if évaluation condition logique : VRAI 2- {exécution bloc dinstructions 1 3- }suite du programme après la fin du SI 2- else{exécution bloc dinstructions 2

33 Le programme effectue une division protégée : – CAS 1 : diviseur non nul – CAS 2 : diviseur nul

34 Comment marche le SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition {floata, 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 :

35 35 1- Déclaration variables Réservation mémoire 2- Saisies Attente, conversion, affectation 3- if Evaluation (b 0.): FAUX 5- } FSI-FIN InstructionProcesseurMémoire 4- else{ Afficher(Erreur) Erreur Simulation dexécution du programme de Division protégée

36 36 1- Déclaration variables Réservation mémoire InstructionProcesseurMémoire Simulation dexécution du programme de Division protégée a &a 5.0 b &b Saisies attente, conversion, affectation 3- if Evaluation (b 0.): VRAI 4- { resu= a/b - calcul: 5./2. - affectation 5- Afficher(resu) 2.5

37 CYCLE 3 : Alternatives Faire des choix dans un programme en C 2.1- Comment écrire linstruction SI - SINONSI - (SINON) ? if { } else if { } else{ } 2.2- Comment marche cette instruction ? 2-AIGUILLAGE MULTIPLE sur CONDITIONS Instruction alternative SI – SINON SI – SINON

38 CYCLE 3 : Alternatives Faire des choix dans un programme en C 2.1- Comment écrire linstruction SI - SINONSI - (SINON) ? if { } else if { } else{ } Instruction alternative SI – SINON SI – SINON

39 Comment écrire le SI – SINON SI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition {/* Aiguillage en fonction dune condition logique : if (condition 1) {instructions 1; } else if (condition 2) {instructions 2; }... else {instructions 3; } */

40 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 nest pas limité

41 Comment écrire le SI - SINONSI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Rôle de lInstruction : 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 nutiliser aucune des voies.

42 Comment écrire le SI alors - SINONSI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Exemple : DECOUPAGE DINTERVALLES 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

43 43 floatnote; printf("\n\t\tNote : "); scanf("%f",¬e); // NOTE obtenue à lexamen if (note < 10)// Aiguillage sur la MENTION en fonction de la note obtenue {printf("Refus"); // note<10 } else if (note < 12)// note 10 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]

44 Comment écrire le SI alors - SINONSI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Aiguillage à plusieurs chemins : le choix entre les blocs dinstructions dépend des valeurs combinées des conditions logiques. Bilan du rôle du SI - SINON SI - (SINON) Instructions 1Instructions 2 C1 Vrai C1 Faux et C2 Vrai C1 Faux et C2 Faux Instructions 3

45 CYCLE 3 : Alternatives Faire des choix dans un programme en C 2.2- Comment marche cette instruction ? Instruction alternative SI – SINON SI – SINON

46 Comment marche le SI - SINONSI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Principe dexé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 quune 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 nest VRAIE, le CPU exécute le dernier else.

47 Comment marche le SI - SINONSI - (SINON) ? INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Principe dexécution du SI - SINON SI - SINON : if (condition 1) { instructions 1; } else if (condition 2) { instructions 2; }... else { instructions 3; } SINON FAUX VRAI Instruc 1 VRAI Instruc 2Instruc 3 condition logique 2 ? FAUX condition logique 1? Suite du programme...

48 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 2 Exécution instruc 1 si :V -- Exécution instruc 2 si : FV Exécution instruc 3 si : FF Le CPU narrive sur un else if que si les conditions des if précédents sont FAUSSES

49 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


Télécharger ppt "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."

Présentations similaires


Annonces Google