Définition : 2 Les structures de contrôle conditionnelles permettent à un programme de modifier son traitement en fonction d’une condition.
I - Forme simple 3
I.1. forme simple réduite 4
Activité 1 : 5 un vendeur décide faire une remise de 10% pour les clients dont le montant d’achat dépasse 100 DT. Donner la grille d’analyse d’un programme qui permet de saisir le montant M puis d’afficher le net à payer.
6 Analyse: Nom: Remise Résultat: écrire(M) Traitement: Si (M>100) alors M M-M*10% Fin si Données: M=donnée TDO: ObjetType/nature MRéel
Syntaxe : 7 Au analyse et algorithme: Si condition Alors Traitement Fin si
I.2. Forme simple alternative 8
Activité 3 : 9 le même vendeur décide de faire un remise de 5% pour les achats inferieur à 100 DT.
10 Analyse: Nom: Remise Résultat: écrire(M) Traitement: Si (M>100) alors M M-M*10% Sinon M M-M*5% Fin si Données: M=donnée TDO:
Syntaxe 11 Au algorithme et l’analyse: Si condition Alors traitement 1 Sinon Traitement 2 Fin si Syntaxe en PASCAL: If condition then Begin Traitement 1; End Else Begin traitement 2; End;
II. Forme généralisé : 12
Activité 3 : 13 le même vendeur décide d’appliquer une nouvelle stratégie : -pour les achats inférieurs ou égaux à 100 DT, remise de 5% -pour les achats entre 100 et 200 DT, remise de 10% -pour les achats entre 200 et 300 DT, remise de 15% -pour les achats supérieurs à 300 DT, remise de 20%
14 Analyse: Nom: Remise Résultat: écrire(M) Traitement: Si M<=100 alors M M-M*0.05 Sinon Si M<= 200 alors M M-M*0.1 Sinon Si M<= 300 alors M M-M*0.15 Sinon M M-M*0.2 Fin si Données: M=donnée TDO:
Syntaxe 15 Au algorithme et l’analyse: {initialisations} Si condition1 Alors traitement 1 Sinon Si condition2 Alors Traitement Sinon Si condition n-1 Alors Traitement n-1 Sinon Traitement n Fin si Au algorithme et l’analyse: {initialisations} Si condition1 Alors traitement 1 Sinon Si condition2 Alors Traitement Sinon Si condition n-1 Alors Traitement n-1 Sinon Traitement n Fin si Syntaxe en PASCAL: {initialisations} If condition1 then Traitement 1 Else if condition2 then traitement Else If condition n-1 then Traitement n-1 Else Traitement n; End; Syntaxe en PASCAL: {initialisations} If condition1 then Traitement 1 Else if condition2 then traitement Else If condition n-1 then Traitement n-1 Else Traitement n; End;
Remarques 16 Condition est une expression booléenne qui peut donner soit la valeur vrai ( true ) soit la valeur faux ( false ). Au niveau de Turbo Pascal, lorsque Traitement 1 ou traitement 2 comporte plus qu’une instruction, il faut encadrer ce traitement entre ( Begin et End;). [initialisation] est une séquence d'instruction qui contiendra les éventuelles initialisations. Condition (s) peut être simple ou complexe (une condition complexe combine entre plusieurs conditions simples à l'aide des opérateurs logiques). qui peut donner soit la valeur vrai (true ) soit la valeur faux ( false ). Dans un programme Pascal, le point virgule ( ; ) avant le ELSE est interdit.
17 Application: Ecrire un programme pascal qui permet de : Calculer la moyenne d’un élève à partir de trois notes m1, m2 et m3 de coefficients respectifs 1, 2 et 2. Afficher la mention correspondante. MoyenneMention Moyenne ≥ ≤ moyenne < ≤ moyenne < ≤ moyenne < 12 moyenne < 10 Très bien Bien Assez bien Passable faible
Les structures conditionnelles à choix Chapitre 3 : Les structures de contrôle conditionnelles 18
activité Chapitre 3 : Les structures de contrôle conditionnelles 19 Donner l’analyse d’un programme qui permet de demander à l’utilisateur de saisir un entier et il affiche le nom du jour correspondant. Exemple num_jour =1 il affiche Lundi,…
Chapitre 3 : Les structures de contrôle conditionnelles 20 La déduction de l’algorithme est simple et on va utiliser la structure généralisée mais on va utiliser une nouvelle structure plus lisible que l’on appelle structure conditionnelle à choix.
Chapitre 3 : Les structures de contrôle conditionnelles 21 Algorithme 1) Début jour 2) Ecrire (‘’Entrer un entier’’) 3) Lire(num_j) 4) Selon num_j faire 1: nom_jour ←’’Lundi’’ 2: nom_jour ←’’Mardi’’ 3: nom_jour ←’’Mercredi’’ 4: nom_jour ←’’Jeudi’’ 5: nom_jour ←’’Vendredi’’ 6: nom_jour ←’’Samedi’’ 7: nom_jour ←’’Dimanche’’ sinon nom_jour ←’’jour inexistant’’ Fin selon 5) Ecrire(nom_jour) 6) Fin jour
III.1:Définition Chapitre 3 : Les structures de contrôle conditionnelles 22 Une structure de contrôle conditionnelle est dite à choix lorsque le traitement dépend de la valeur que prendra le sélecteur, Ce scalaire doit être de type scalaire(entier ou caractère). Cette structure permet d’éviter le recours à une longue structure conditionnelle généralisée et offre une meilleure lisibilité de la solution.
III.2 : Syntaxe Chapitre 3 : Les structures de contrôle conditionnelles 23 Au analyse Selon sélecteur faire valeur1: traitement1 valeur2: traitement2 valeur3: traitement3 ….. valeur_n: traitement_n sinon Traitement n+1 Fin selon
Chapitre 3 : Les structures de contrôle conditionnelles 24 En Pascal Case sélecteur of valeur1: Begin traitement1; end valeur2: Begin traitement2; end valeur3: Begin traitement3; end ………. valeur_n: Begin traitement_n; end else Begin traitement_n+1; end End;
Remarques Chapitre 3 : Les structures de contrôle conditionnelles 25 La partie SINON est facultative Si le traitement admet une seule instruction, en PASCAL on peut éliminer BEGIN et END On peut toujours remplacer la structure de contrôle conditionnelle à choix multiple par la structure de contrôle conditionnelle généralisée, mais l’inverse n’est pas toujours vrai
Application Chapitre 3 : Les structures de contrôle conditionnelles 26 Ecrire un programme qui permet de convertir l’âge d’un enfant avec sa catégorie. ‘’Bébé’’ de 1 à 5 ans ‘’Poussin’’ de 6 à 7 ans ‘’Pupille’’ de 8 à 9 ans ‘’Minime’’ de 10 à 11 ans ‘’Cadet’’ de 12 à 14 ans ‘’Junior’’ de 15 à 17 ans ‘’Espoir’’ de 18 à 20 ans ‘’Tu as dépassé l’âge de l’enfance’’ plus que 20 ans