Algorithmique et structure de données I Cours 2: Les structures conditionnelles et répétitives Dr. Ahlem Baccouche Dr. Jihène Tounsi ISG de Sousse Email: [email protected] 1 Plan du cours Les structures conditionnelles La structure SI…alors La structure Selon Les structures répétitives ou itératives 2 La boucle POUR La boucle Tant que La boucle Répéter…tant que La structure conditionnelle Le code écrit séquentiellement peut être interrompue par une condition. La condition permet d’accéder à une portion du code qui ne peut être exécutée que si et seulement si la condition est Vraie. L’évaluation de la condition donne lieu à résultat de type booléen. La condition peut être: Simple : une expression avec des opérateurs relationnels Composée : plusieurs conditions simples reliées par des opérateurs logiques 3 Exemple : x compris entre 2 et 6 : (x > 2) ET (x < 6) La structure conditionnelle réduite Syntaxe Instruction i Si Vrai Si (<expression relationnelle>) alors <instruction> …. <instruction> Condition Bloc d’instruction A Fin Si Instruction n Exécuter une portion du code dans un cas particulier 4 Si la condition est Vraie alors exécuter bloc A Si la condition est fausse passer au reste du programme Application 1 Ecrire un algorithme Absolue qui permet d’afficher la valeur absolue d’un entier. P.S: sans utiliser la fonction prédéfinie ABS 5 La structure conditionnelle simple Syntaxe Instruction i Si Vrai Bloc d’instruction A Condition Sinon Bloc d’instruction B Si (<expression relationnelle>) alors <instruction> …. <instruction> Sinon <instruction> …. <instruction> Instruction n Fin Si Choix d’un chemin entre deux alternatives au niveau d’une portion du code 6 Si la condition est Vraie alors exécuter bloc A L’ordinateur = Machine Si la condition est fausse exécuter bloc B = ne fais que ce qu’on lui dis de faire Application 2 Ecrire un algorithme Paire qui permet de saisir un entier et d’afficher un message : « entier pair » ou « entier impair ». 7 La structure conditionnelle imbriquée Imbrication de plusieurs structure SI…alors…Sinon Fermeture de la dernière structure ouverte jusqu’à arriver à la première L’imbrication se fait au niveau du Si et / ou du sinon Exemple de Syntaxe Si (<condition>) alors <instruction> …. <instruction> Sinon Si (<condition>) alors <instruction> …. <instruction> Sinon <instruction>… Fin Si 8 Fin Si La structure à choix multiple La structure est utile quand on dépasse les 2 choix. Une seule condition ou liste des valeurs est exécutée. Syntaxe Selon <variable> (liste de) valeur(s) : instruction… (liste de) valeur(s) : instructions… … [autres: instructions] Fin Selon 9 Application 3 Ecrire un algorithme Mention qui permet d’afficher la mention d’un étudiant à partir de sa moyenne. Les Mentions sont : Redoublant Passable, Assez bien, Bien, Très bien et Excellent Ecrire un algorithme Calculette qui permet d’afficher le résultat d’une opération arithmétique (+, -, *, /). 10 P.S : à considérer le cas de deux entiers seulement. Utiliser la structure SI Utiliser la structure Selon Plan du cours Les structures conditionnelles La structure SI…alors La structure Selon Les structures répétitives ou itératives 11 La boucle POUR La boucle Tant que La boucle Répéter…tant que Les structures itératives ou répétitives Les structures itératives ou répétitives servent à exécuter plusieurs fois un bloc d’instructions. Une structure itérative est appelée aussi une boucle. Il existe deux types de boucle La boucle avec un nombre d’itération connu La boucle à condition avec un nombre d’itération non connu à l’avance 12 La boucle Pour La boucle Tant que La boucle Répéter…jusqu’à La structure POUR compteur ←Valeur initiale Le compteur n'a pas atteint la Valeur finale Vrai instructions compteur ← compteur + pas Faux Syntaxe Sortie de la boucle Pour compteur de VI à VF pas=<entier> <instruction> …. <instruction> Fin Pour 13 La structure Pour La sortie de la boucle Pour se fait quand le nombre d’itérations est atteint La structure de la boucle est composée de : Un compteur de type entier (ou caractère) qui doit être déclaré avant de l’utiliser. La valeur initiale, qui est un entier ou un caractère, représente la valeur de départ du compteur. La valeur finale, qui est un entier ou un caractère, représente la valeur d’arrêt du compteur. Le pas de variation est un entier qui peut être positif ou négatif 14 Si pas positif Vinitiale+ pas Si pas négatif Vinitiale - pas Application 4 Ecrire un algorithme Aléa qui permet d’afficher 10 nombres aléatoires dont les valeurs sont entre 0 et 101. Ecrire un algorithme Factoriel qui permet d’afficher le factoriel d’un nombre positif 15 P.S : n! = n*n-1* n-2….* 2 La structure Tant que Instruction Syntaxe Vrai Condition Instruction <Initialisation> Tant que <condition> <instruction> …. <instruction> <incrémentation> Fin tant que Faux 16 La structure Tant que La structure Tant que est utilisé quand: le nombre d’itérations est inconnu Le bloc d’instructions dans la boucle peut ne jamais être exécuté La sortie de la boucle Tant que se fait quand la condition est fausse. Risque de boucle infinie si la condition est mal posée ou si le point d’arrêt n’est pas clairement établi L’initialisation de la condition sert à obtenir le premier élément L’incrémentation se fait généralement à la fin des instructions afin d’obtenir l’élément suivant. 17 Application 5 Ecrire un algorithme Somme qui permet d’afficher le premier nombre entier N tel que la somme de 1 à N dépasse strictement 100 18 La structure Répéter…tant que Syntaxe <Initialisation> instructions condition faux 19 Répéter vrai <instruction> …. <instruction> <incrémentation> Tant que<condition> La structure Répéter…tant que Contrairement à Tant que, la boucle Répéter s’exécute au moins une fois. On exécute les instructions puis on vérifie la condition. La boucle s’arrête quand la condition retourne faux. 20 Application 6 Ecrire un algorithme Positif qui permet de saisir un entier positif entre 0 et 50 Ecrire un algorithme Lettre permettant de saisir une lettre et de l’afficher en majuscule. Réécrire l’algorithme Calculette qui permet d’afficher le résultat de plusieurs opérations arithmétique (+, -, *, /). 21 P.S : L’utilisateur saisit les opérations une par une et le calcul s’arrête lorsque l’utilisateur entre (=). Choix de la boucle à utiliser Utilisation de la boucle POUR Utilisation de la boucle TANT QUE Si le nombre d’itération est connu à l’avance. Si le nombre d’itération est inconnu à l’avance. Le bloc d’instruction de la boucle s’exécute que si la condition est Vraie. Utilisation de la boucle REPETER 22 Si nous avons besoin de contrôler la saisie de données, on utilise la boucle REPETER. Si le nombre d’itération est inconnu à l’avance. Le bloc d’instruction de la boucle s’exécute au moins une fois avant la vérification de la condition d’arrêt. 23