



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Cours de Algo de Mme Hind Elouedi pour L1-TI
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




Objectif général : Utiliser les structures décisionnelles dans la construction des algorithmes.
I.1. Exemple introductif Souvent, on est confronté à des situations où il faut faire un choix en se basant sur des critères qui sont exprimés par des conditions. Cette notion est exprimée par les structures décisionnelles ou conditionnelles. Voici dans ce qui suit un exemple qui explique cette notion. Exemple On se propose de déterminer les différents résultats relatifs aux moyennes des étudiants d’une institution. Pour ce faire, il faut avoir la moyenne déjà calculée puis la faire passer à travers des filtres ou ce qu’on appelle tests ou encore conditions. Si elle vérifie l’une des conditions, la mention correspondante sera communiquée. Les filtres à exprimer sont les suivants : Si (moyenne 0) et (moyenne < 10) Alors le résultat est : Redouble. Si (moyenne 10) et (moyenne < 12) Alors le résultat est : Admis Passable. Si (moyenne 12) et (moyenne < 14) Alors le résultat est : Admis Assez Bien. Si (moyenne 14) et (moyenne < 16) Alors le résultat est : Admis Bien. Si (moyenne 16) et (moyenne 20) Alors le résultat est : Admis Très Bien. Si (moyenne > 20) ou (moyenne < 0) Alors le résultat est : Moyenne invalide. L’évaluation de chacune des conditions donne deux valeurs possibles, Vrai ou Faux , c’est une valeur logique. Si la condition a la valeur Vrai , le traitement qui suit est alors effectué. I.2. Définition de choix On a vu, jusqu'ici, qu'on peut souvent rencontrer des situations qui ne peuvent pas être traitées par les seules séquences utilisant les instructions de base. En effet, on a besoin parfois de choisir entre deux ou plusieurs traitements selon la réalisation ou non d'une certaine condition, d'où la notion de traitement conditionnel. On peut distinguer trois structures de traitement conditionnel : Une structure conditionnelle simple : dans laquelle on a à choisir entre deux traitements au plus. On distingue deux structures conditionnelles simples : Une structure conditionnelle à un seul choix (structure simple réduite). Une structure conditionnelle à deux choix (structure simple complète). Une structure conditionnelle à plusieurs choix (structure généralisée) : dans laquelle on a la possibilité de choisir un traitement parmi plusieurs.
II.1. structure conditionnelle à un seul choix La structure conditionnelle à un seul choix se présente comme suit : Figure 3. 1 : Structure alternative simple à un seul choix II.2. Structure alternative à deux choix La structure conditionnelle à deux choix se présente comme suit : Figure 3.2 : Structure alternative simple à deux choix Remarque Si l'expression logique mentionnée après le mot Si , a la valeur logique Vrai , on exécute ce qui figure après le mot Alors ; si l'expression logique a la valeur logique Faux , on exécute ce qui figure après le mot Sinon. Exemple 1 L’algorithme suivant permet de lire un nombre entier, puis de vérifier s'il est pair ou impair. Déclarer deux variables de type entier : une pour recevoir un nombre à partir du clavier, l'autre pour recevoir le reste de la division entière par 2. Calculer, à l'aide de la fonction Mod , le reste de la division entière du nombre par 2. Tester pour voir si le reste est égal à 0, dans ce cas le nombre est pair ; dans le cas contraire le nombre est impair. Algorithme Pair_Impair Variable nombre, reste : Entier Début Ecrire ("Donnez un nombre entier : ") Lire (nombre) reste nombre Mod 2 Si (reste = 0) -- ou bien Si (nombre Mod 2 = 0) Alors Ecrire ("Le nombre ", nombre, " est pair") Sinon Ecrire ("Le nombre ", nombre, " est impair") FinSi Fin Si (expression_logique) Alors bloc d'instructions Sinon bloc d'instructions FinSi Si (expression_logique) Alors Instruction 1 Instruction 2 ... Instruction n FinSi
Algorithme Calcul_remise_Version Variable Montant, Remise : Réel Taux : Entier Début Ecrire ("Montant? (en Dinars) :") Lire (Montant) Si (Montant 2000) Alors Taux 0 Sinon Si (Montant = 5000) Alors Taux 5 Sinon Taux 10 FinSi FinSi Remise Montant * Taux / 100 Montant Montant – Remise Ecrire ("Montant Net :", Montant) Fin Remarque Notez que beaucoup d'autres formulations sont possibles. Ainsi, par exemple, on peut éviter l'emploi de choix imbriqués en utilisant trois structures conditionnelles simples : Si (Montant 2000) Alors Taux 0 FinSi Si (Montant = 2000) Et (Montant = 5000) Alors Taux 5 FinSi Si (Montant 5000) Alors Taux 10 FinSi III. 2. Structure Selon La structure conditionnelle Selon est utilisée pour sélectionner une séquence possible d'instructions parmi plusieurs. Elle ressemble à la structure Si...Alors...Sinon , mais elle est plus efficace lorsqu'il s'agit de tester la même variable plusieurs fois pour des valeurs fixes. Sa forme se présente de la manière suivante : Figure 3.4 : Structure généralisée Selon Selon Sélecteur Faire Liste_valeurs1 : instructions exécutées si Sélecteur est inclus dans Liste_valeurs Liste_valeurs2 : instructions exécutées si Sélecteur est inclus dans Liste_valeurs ... Liste_valeursN : instructions exécutées si Sélecteur est inclus dans Liste_valeursN [ Sinon : instructions à exécuter si rien ne correspond] FinSelon
Sélecteur : est un identificateur de variable ou une expression de type scalaire. Liste_valeurs1..Liste_valeursN : ce sont des valeurs servant aux tests. Elles peuvent être données sous forme de constantes et/ou d'intervalles constants de type compatible avec le sélecteur. Liste_Valeurs1 (exemple 1 : 1..10 / exemple 2 : 1,3,5,7,9 / exemple 3 : 1..10, 20..30) [...] : bloc facultatif. Remarque Si le contenu du sélecteur mentionné après le mot Selon correspond à une valeur parmi les listes des valeurs mentionnées après le mot Faire , on exécute toutes les instructions qui suivent cette valeur jusqu'à la liste de valeurs suivante. Si rien ne correspond, on exécute les instructions qui figurent après le mot Sinon. Puis l'algorithme sort de la structure et continue l'exécution après le mot FinSelon. Exemple 1 Cet algorithme permet de saisir une date sous la forme jj , mm , aa et d'afficher le nombre de jours du mois mm et le nombre de jours qui restent pour la fin de ce mois. Analyse Déclarer 5 variables de type entier : 3 variables ( jj , mm et aa ) pour recevoir la date. 1 variable ( jtot ) pour recevoir le nombre total de jours du mois mm. 1 variable ( jreste ) pour calculer le nombre de jours restant pour la fin du mois mm. Lire la date sous la forme demandée. Sélectionner le bon mois. Déterminer les valeurs des variables jtot et jreste en tenant compte des années bissextiles. Une année bissextile se dit de l’année de 366 jours sui revient généralement tous les 4 ans. Algorithme Jours Variable jj, mm, aa, jtot, jreste : Entier Début Ecrire ("Donnez la date sous la forme JJ MM AA : ") Lire (jj, mm, aa) --on suppose que la date saisie par l'utilisateur est valide Selon mm Faire 1, 3, 5, 7, 8, 10, 12 : jtot 31 --Janvier, Mars, Mai, Juillet, Août, Oct., Déc. 4, 6, 9, 11 : jtot 30 --Avril, Juin, Sept. et Nov. Sinon : --mois de Février Si (aa Mod 4 = 0) --année bissextile (février a 29 jours) Alors jtot 29 Sinon jtot 28 FinSi FinSelon jreste jtot – jj Ecrire ("Le mois ", mm, " a ", jtot, " jours et il reste encore ", jreste, " jours pour sa fin") Fin