Plan du cours Algorithmique et structure de données I Les structures conditionnelles Cours 2: Les structures conditionnelles et répétitives La structure SI…alors La structure Selon Les structures répétitives ou itératives La boucle POUR La boucle Tant que La boucle Répéter…jusqu’à Dr. Jihène Tounsi ISG de Sousse Site web: http://www.jihenetounsi.com Email: [email protected] 1 2 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. La structure conditionnelle réduite Si Vrai Simple : une expression avec des opérateurs relationnels Composée : plusieurs conditions simples reliées par des 3 <instruction> …. <instruction> Condition Fin Si Instruction n Exécuter une portion du code dans un cas particulier opérateurs logiques Si (<expression relationnelle>) alors Bloc d’instruction A L’évaluation de la condition donne lieu à résultat de type booléen. La condition peut être: Syntaxe Instruction i Exemple : x compris entre 2 et 6 : (x > 2) ET (x < 6) 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 La structure conditionnelle simple Syntaxe Instruction i Si Vrai Condition Sinon Bloc d’instruction B Bloc d’instruction A 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 5 6 Application 2 Ecrire un algorithme Paire qui permet de saisir un entier et d’afficher un message : « entier pair » ou « entier impair ». 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 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 Fin Si 7 8 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 Application 3 Ecrire un algorithme Mention qui permet d’afficher la mention d’un étudiant à partir de sa moyenne. Ecrire un algorithme Calculette qui permet d’afficher le résultat d’une opération arithmétique (+, -, *, /). Selon <variable> (liste de) valeur(s) : instruction… (liste de) valeur(s) : instructions… … [autres: instructions] Fin Selon 9 10 Plan du cours Les structures conditionnelles P.S : à considérer le cas de deux entiers seulement. Utiliser la structure SI Utiliser la structure Selon La structure SI…alors La structure Selon Les structures répétitives ou itératives La boucle POUR La boucle Tant que La boucle Répéter…jusqu’à 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 11 12 La boucle Pour La boucle Tant que La boucle Répéter…jusqu’à La structure POUR La structure Pour compteur ←Valeur initiale Le compteur n'a pas atteint la Valeur finale Vrai instructions compteur ← compteur + pas 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 : Faux Syntaxe Sortie de la boucle Pour compteur de VI à VF pas=<entier> <instruction> …. <instruction> 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 Fin Pour 13 14 Application 4 La structure Tant que Ecrire un algorithme Aléa qui permet d’afficher 10 nombres aléatoires dont les valeurs sont entre 0 et 101. Instruction Ecrire un algorithme Factoriel qui permet d’afficher le factoriel d’un nombre positif Si pas positif Vinitiale+ pas Si pas négatif Vinitiale - pas Vrai Condition P.S : n! = n*n-1* n-2….* 2 Instruction Fin tant que Faux 15 Syntaxe <Initialisation> Tant que <condition> <instruction> …. <instruction> <incrémentation> 16 La structure Tant que La structure Tant que est utilisé quand: Application 5 le nombre d’itérations est inconnu Le bloc d’instructions dans la boucle peut ne jamais être exécuté d’afficher le premier nombre entier N tel que la somme de 1 à N dépasse strictement 100 La sortie de la boucle Tant que se fait quand la condition est fausse. Ecrire un algorithme Somme qui permet 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 18 La structure Répéter…jusqu’à La structure Répéter…jusqu’à 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 Vrai. Syntaxe <Initialisation> instructions Répéter Faux condition <instruction> …. <instruction> <incrémentation> Jusqu’à <condition> Vrai 19 20 Application 6 Ecrire un algorithme Positif qui permet de saisir un entier positif entre 0 et 50 Choix de la boucle à utiliser Utilisation de la boucle POUR Utilisation de la boucle TANT QUE 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 23 P.S : L’utilisateur saisit les opérations une par une et le calcul s’arrête lorsque l’utilisateur entre (=). 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 Si le nombre d’itération est connu à l’avance. 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.