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.

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Premier programme en C :
Préparez – vous EN HAUT : Sujet (A) GO ! EN BAS : Sujet (B)
Le pluriel des noms
Algorithmique (suite)
Algorithmes et structures de données Cours 3
Calculs de complexité d'algorithmes
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
M. DELTA A ETE CHOISI CETTE ANNEE PAR LE RECTEUR POUR CORRIGER LEPREUVE DE MATHEMATIQUE DU DPECF (DIPLÔME PREPARATOIRE AUX ETUDES COMPTABLES ET FINANCIERE).
Les numéros
Sud Ouest Est Nord Individuel 36 joueurs
dividende = (quotient × diviseur) + reste
Identités remarquables : introduction Les 3 identités remarquables
Tests et itérations Programmes séquentiels ne résolvent pas tous les problèmes exemple simple : calcul des racines d'un polynôme de d° 2 dans R Algorithme.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
CYCLE 6 : FONCTIONS FONCTIONS avec paramètres en Entrée 1- Pourquoi les FONCTIONS peuvent échanger des données en E entre elles ? 2- Comment écrire des.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Langage C Révision.
Python La structure alternative
La structure conditionnelle simple
Récursivité.
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Synchronisation et communication entre processus
Structures de contrôle de l’exécution
La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013.
Cours de physique générale I Ph 11
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Sémantique axiomatique
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
1.2 COMPOSANTES DES VECTEURS
Titre : Implémentation des éléments finis sous Matlab
Particularités des calculs
ACDI IUT de Paris – 05 février CR-MD - v1.20 Enquête POST-DUT Informatique 03 1 Les diplômés de 2003 Claude Ratard - Vélizy.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Algorithme et programmation
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
1 INETOP
Calculs et écritures fractionnaires
Introduction à l’algorithmique
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
8PRO107 Éléments de programmation
Titre : Implémentation des éléments finis en Matlab
3ème partie: les filtres
Répéter dans un programme avec une Instruction itérative
Sommaire Calculs simples Distributivité simple
Structures alternative et répétitive
L’essentiel du langage C
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Equation différentielle de 2ème ordre
Règles calcul au quotidien  4 = ?. Règles calcul au quotidien  4 = ?
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Notions de pointeurs en C
CYCLE 6 : FONCTIONS Faire un programme en C avec des FONCTIONS 1- A quoi servent les FONCTIONS ? 2- Comment écrire un programme avec FONCTIONS ? 3- Comment.
Les Chiffres Prêts?
Les tests.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Transcription de la présentation:

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 ?

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

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

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

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 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 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 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 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 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 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 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<b NON(a) b ET c

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

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>= <Strictement inférieur< Inférieur ou égal<= Opérateurs logiques OpérateurNomEn C NONNon logique! OUOu logique|| ETEt logique&&

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 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 Les conditions logiques INTRODUCTION I)AIGUILLAGE SIMPLE / condition II)AIGUILLAGE MULTIPLE / condition Les opérateurs Logiques BOOLEENS VRAIFAUX FAUX VRAI expressionNON(expression)

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

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

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

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)

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

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.

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

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

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

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

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.

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

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

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

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

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

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

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

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; } */

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é

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.

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 floatnote; printf("\n\t\tNote : "); scanf("%f",&note); // 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]

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

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

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.

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...

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

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