Algorithmique et programmation procédurale Chap II : Décisions, Itérations. Lajouad Rachid Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Les conditionnelles Si l'on veuille conditionner l'exécution d'un algorithme, par exemple la résolution d'une équation du second degré est conditionnée par le signe de ∆ •Si .. Alors .. Sinon .. Finsi •Cas ou … FinCas Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Si .. Alors .. Sinon .. Finsi Mode de fonctionnement de la structure si…sinon… Début condition !=0 oui instruction1 non instruction2 Fin Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Si .. Alors .. Sinon .. Finsi • Sa syntaxe est : Si ExpressionBooléenne alors suite d'instructions executees si l'expression est vrai [Sinon suite d'instructions executees si l'expression est fausse] FinSi Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Exercice • Valeur absolue. • Mention (Faible, Passable, Assez Bien, Bien, Excellent). • Equation de 2nd degré : (cas a=0, cas b=0, D>0, D=0, D<0 « pas de solutions dans ℜ »). Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale En langage C if (condition) { instructions; }// ou instruction; [else { instructions; } // ou instruction; ] Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale TP • Valeur absolue. • Ajouter une seconde. • Mention (Faible, Passable, Assez Bien, Bien, Excellent). • Equation de 2nd degré Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Cas ou … FinCas Début valeur == CONSTANTE_1 Mode de fonctionnement de la structure switch…case… oui non valeur == CONSTANTE_2 non instruction1 break oui instruction2 instruction3 Fin Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Cas ou … FinCas Lorsque l'on doit comparer une même variable avec plusieurs valeurs, on peut remplacer cette suite de si par l'instruction cas, Sa syntaxe est : CasOu v vaut v1 : action1 [v21,v22,. . . ,v2m : action2 v31 . . . v32 : action3 . . . vn : actionn [autre : action]] FinCas Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Exercices • Mois de 30 jours. • La saison à partir du numéro de mois. • Le nom du jour à partir de son numéro. Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale En langage C switch (expression) { case val1: instruction 1; break ; case val2: instruction 2; break ; ... case valN: instruction N; break ; default: instruction D ; } Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale TP • Mois de 30 jours. • La saison à partir du numéro de mois. • Le nom du jour à partir de son numéro. Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Les itérations Pourquoi une itération ? Exécuter plusieurs fois (de manière bornée ou non) une suite d'instructions Pourquoi une itération ? Il existe deux grandes categories d'itérations : •Les itérations déterministes : le nombre de boucle est défini a l'entrée de la boucle •les itérations indéterministes : l'exécution de la prochaine boucle est conditionnée par une expression booléenne Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Itérations déterministes • Sa syntaxe est : Pour id ← valdébut a valfin Faire instructions a exécuter a chaque boucle FinPour Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Mode de fonctionnement de la structure pour Début initialisation condition != 0 non oui instruction modification Fin Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Exercices • Calcul de la somme des n premiers entiers • Calcul du factoriel. • Développement limité de ex Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale En langage C for (expre(s)1; expre(s)2; expre(s)3) { instruction(s); instruction(s); instruction(s); } Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Exercices • Calcul de la somme des n premiers entiers • Calcul du factoriel d’un entier. • Développement limité de ex Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Itérations non déterministes L'instruction tant que : TantQue ExpressionBooléenne faire instructions FinTantQue Ou L'instruction répéter jusqu'a ce que : Répéter instructions JusquACeQue ExpressionBooléenne Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Itérations non déterministes Mode de fonctionnement de la structure tant que Début condition != 0 oui instruction non Fin Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Exercices • donnez l’algorithme pour afficher les dizaines entre 0 et 100. Le résultat affiché sera : 10 20 30 40 50 60 70 80 90 100 • écrivez un programme qui affiche le triangle de pascal pour un nombre de lignes entré au clavier. Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale En langage C while (condition) instruction /* ou */ while (condition) { /* bloc d‟instructions */ } Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale En langage C do { instruction(s); … } while (condition) Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale TP • donnez le programme pour afficher les dizaines entre 0 et N (saisie au clavier). Le résultat affiché sera : 10 20 30 40 50 60 70 80 90 100 • écrivez un programme qui affiche le triangle de pascal pour un nombre de lignes entré au clavier. Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale Questions Lycée Technique Ibn Sina Lajouad Rachid : Algorithmique et programmation procédurale