1 / 49

CYCLE 3 : Alternatives Faire des choix dans un programme en C

CYCLE 3 : Alternatives Faire des choix dans un programme en C. INTRODUCTION : Pourquoi les instructions alternatives ?. 1- AIGUILLAGE SIMPLE sur CONDITION : if-else. 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else if. CYCLE 3 : Alternatives Faire des choix dans un programme en C.

henrik
Download Presentation

CYCLE 3 : Alternatives Faire des choix dans un programme en C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CYCLE 3 : Alternatives Faire des choix dans un programme en C INTRODUCTION : Pourquoi les instructions alternatives ? 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else if

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

  3. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition DONNEES en Entrée Pourquoi les instructions Alternatives ? PROGRAMME

  4. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Pourquoi les instructions Alternatives ? 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. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition DONNEES en Entrée Pourquoi les instructions Alternatives ? PROGRAMME TRAITEMENT

  6. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Pourquoi les instructions Alternatives ? 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. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition DONNEES en Sortie (résultats du programme) DONNEES en Entrée Pourquoi les instructions Alternatives ? PROGRAMME TRAITEMENT

  8. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Pourquoi les instructions Alternatives ? DECLARER les DONNEES (Variables et/ou Constantes) Exécution LINEAIRE Très limitée INITIALISER des Variables AFFICHER à l’écran les demandes de valeurs SAISIR au clavier les valeurs de Variables FAIRE des CALCULS AFFICHER à l’écran les résultats du programme

  9. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Pourquoi les instructions Alternatives ? 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

  10. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition COMMENT ECRIRE les INSTRUCTIONS POUR PRENDRE en COMPTE un CHOIX POSSIBLE ? • Si le client n’a pas droit a réduction : calcul standard • Si le client a droit à réduction : autre calcul Pourquoi les instructions Alternatives ? si réduction si pas réduction CALCUL 2 CALCUL 1 ? PLUSIEURS CHEMINS avec AIGUILLAGES

  11. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Pourquoi les instructions Alternatives ? ALTERNATIVES AIGUILLAGE SIMPLE Avec CONDITION AIGUILLAGE MULTIPLE Avec CONDITION SI (droit à réduction) alors Calcul 1 SINON SI (pas droit à réduction) Calcul 2 FSI SI (droit à réduction) alors Calcul 1 SINON Calcul 2 FSI

  12. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Les expressions logiques donnent une valeur VRAIE ou FAUSSE : elles serviront donc à faire du raisonnement dans le programme. Les conditions logiques 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

  13. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Les conditions logiques Expression logique a≠b a==b c<b NON(a) b ET c • Pour les conditions • Opérateurs Logiques • a, b, c : tous les types • Résultat : VRAI/FAUX

  14. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Les conditions logiques Opérateurs LOGIQUES Opérateurs BOOLEENS Opérateurs de COMPARAISON

  15. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Les conditions logiques Opérateurs logiques comparaison booléen

  16. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition expression1 expression2 expression1 OU expression2 FAUX FAUX FAUX FAUX VRAI VRAI VRAI FAUX VRAI VRAI VRAI VRAI Les conditions logiques Les opérateurs Logiques BOOLEENS OU

  17. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition expression1 expression2 expression1 ET expression2 FAUX FAUX FAUX FAUX VRAI FAUX VRAI FAUX FAUX VRAI VRAI VRAI Les conditions logiques Les opérateurs Logiques BOOLEENS ET

  18. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition expression NON(expression) VRAI FAUX FAUX VRAI Les conditions logiques Les opérateurs Logiques BOOLEENS NON

  19. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition QUE VAUT l’expression Logique ? 3.5 r d 30. Les conditions logiques 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.) r==3.5 NON(r==3.5) d>30. VRAI FAUX FAUX FAUX

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

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

  22. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition else OPTIONNEL 1.1- Comment écrire l’instruction SI - (SINON) ? Instruction : SI - (SINON) int main() { /* Aiguillage en fonction d’une condition logique : if (condition) { instructions 1; } else { instructions 2; } */ }

  23. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition PAS de ; à la fin du if(condition) et du else 1.1- Comment écrire l’instruction SI - (SINON) ? 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

  24. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 1.1- Comment écrire l’instruction SI - (SINON) ? 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.

  25. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition aiquillage à 2 voies 1.1- Comment écrire l’instruction SI-(SINON) ? • Exemple SI - SINON 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); }

  26. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition filtre, protection des calculs 1.1- Comment écrire l’instruction SI - (SINON) ? • Exemple SI 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); }

  27. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Instructions 1 Instructions 2 Condition VRAIE Condition FAUSSE 1.1- Comment écrire l’instruction SI -(SINON) ? 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.

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

  29. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 1.2- Comment marche le SI - (SINON) ? Principe d’exécution du SI - SINON : if (condition) { instructions 1; } else { instructions 2; } • Si la condition logiqueest VRAIE, lesinstructions 1 du if sontexécutées. • Si la condition logiqueest FAUSSE, le CPU exécute les instructions 2 du else.

  30. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition condition logique ? FAUX VRAI Bloc d’instructions 1 Bloc d’instructions 2 1.2- Comment marche le SI - (SINON) ? Principe d’exécution d’une instruction SI - SINON : if (condition) { instructions 1; } else { instructions 2; } Suite du programme

  31. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition condition logique ? FAUX VRAI Bloc d’instructions 1 1.2- Comment marche le SI - (SINON) ? Principe d’exécution d’une instruction SI : if (condition) { instructions 1; } Suite du programme

  32. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition INSTRUCTION PROCESSEUR 1- if évaluation condition logique :VRAI 2- { exécution bloc d’instructions 1 3- } suite du programme après la fin du SI INSTRUCTION PROCESSEUR 2- else{ exécution bloc d’instructions 2 1- if évaluation condition logique :FAUX 3- } suite du programme après la fin du SI 1.2- Comment marche le SI - (SINON) ? Simulations d’exécution du SI - SINON :

  33. Démo division protégée DivisionProtégée.exe Le programme effectue une division protégée : • CAS 1 : diviseur non nul • CAS 2 : diviseur nul

  34. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 1.2- Comment marche le SI - (SINON) ? • Exemple DIVISION PROTEGEE : { 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 !"); } }

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

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

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

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

  39. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition else OPTIONNEL 2.1- Comment écrire le SI – SINON SI - (SINON)? { /* Aiguillage en fonction d’une condition logique : if (condition 1) { instructions 1; } else if (condition 2) { instructions 2; } ... else { instructions 3; } */

  40. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 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é 2.1- Comment écrire le SI - SINONSI - (SINON)? À NOTER !! int main() { if (condition 1) { instructions 1; } else if (condition 2) { instructions 2; } else { instructions 3; } } Règle de programmation : lisibilité code • Indentations dans les accolades des if et du else

  41. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 2.1- Comment écrire le SI - SINONSI - (SINON)? 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.

  42. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition note [0 [10 [12 [14 [16 20] 2.1- Comment écrire le SI alors - SINONSI - (SINON)? • Exemple : DECOUPAGE D’INTERVALLES Le programme affiche la mention obtenue à un examen VOIE restante TB VOIE 3 AB VOIE 4 B VOIE 2 Passable VOIE 1 Refus

  43. note [0 [10 [12 [14 [16 20] aiquillage à 5 voies floatnote;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)// 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 }

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

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

  46. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition 2.2- Comment marche le SI - SINONSI - (SINON)? Principe d’exécution du SI - SINON SI - SINON : if (condition 1) { instructions 1; } else if (condition 2) { instructions 2; }... else { instructions 3; } • Le CPU évalue successivement les conditions logiques des if, de haut en bas. • Dès qu’une condition est VRAIE, le CPU exécute les instructions associées. • A la fin de cette exécution, le CPU sort du SI. • Si aucune condition n’est VRAIE, le CPU exécute le dernier else.

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

  48. INTRODUCTION • AIGUILLAGE SIMPLE / condition • AIGUILLAGE MULTIPLE / condition Le CPU n’arrive sur un else if que si les conditions des if précédents sont FAUSSES 2.2- Comment marche le SI – SINONSI - (SINON)? Exécution du SI - SINON SI - SINON : condition 1 condition 2 Exécution instruc 1 si : V -- Exécution instruc 2 si : F V Exécution instruc 3 si : F F

  49. découpage d'intervalle RésultatsExamen 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

More Related