1.87k likes | 2.24k Views
Problème :. Jeux pédagogique ( gestion des ressources). Aider les deux nobles paysans Ahmed et Ali de partager leur huile d’olive en deux quantités égaux dans les conditions suivantes : Quantité : 8 litres; Resource : 1 bidon de 8L; 1 bidon de 5L;
E N D
Problème : Jeux pédagogique (gestion des ressources) • Aider les deux nobles paysans Ahmed et Ali de partager leur huile d’olive en deux quantités égaux dans les conditions suivantes : • Quantité : 8 litres; • Resource : 1 bidon de 8L; • 1 bidon de 5L; • 1 bidon de 3L. • situation : le bidon de 8L est complètement remplit et les autres sont vides; • Question : Ecrire les étapes a suivre afin de partager l’huile. Algorithmique et programmation MPSI/TSI/PCSI
Résolution du jeux : La situation actuel est : B8←8L, B5←0L, B3←0L. La situation souhaite est : B8←4L, B5←4L, B3←0L. Résolution du jeux : • B8←8L, B5←0L, B3←0L; • B8←3L, B5←5L, B3←0L; • B8←3L, B5←2L, B3←3L; • B8←6L, B5←2L, B3←0L; • B8←6L, B5←0L, B3←2L; • B8←1L, B5←5L, B3←2L; • B8←1L, B5←4L, B3←3L; • B8←4L, B5←4L, B3←0L. Algorithmique et programmation MPSI/TSI/PCSI
CPGE Algorithmique de base MPSI-TSI-PCSI 2013/2014 Algorithmique et programmation MPSI/TSI/PCSI
Etapes de réalisation d’un programme Enoncé du problème Cahier des charges Algorithme Programmation Résultats Algorithmique et programmation MPSI/TSI/PCSI
Intérêt : • séparation analyse/codage (pas de préoccupation de syntaxe) • Qualités : • Exact (fournit le résultat souhaité) ; • Efficace (temps d’exécution, mémoire occupée) ; • Clair (compréhensible) ; • Général (traite le plus grand nombre de cas possibles) ; • … • Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et efficaces Algorithmique et programmation MPSI/TSI/PCSI
Notion d’algorithme I) Définition de l’algorithme : Un algorithme est une suite d’actions appliquées sur des données dans un ordre logique afin d’obtenir des résultats. Exemple : Réaliser une opération de calcule grâce à la calculatrice, tel que 2+7 : • Début • Allumer la calculatrice • Taper la touche • Taper la touche + • Taper la touche • Taper la touche = • Puis on obtient le résultat 9 à l’écran • Fin Algorithmique et programmation MPSI/TSI/PCSI
Remarque : • La résolution d’un problème se fait par la méthode suivante(analyse) : • Déterminer les données (entrés) ; • Déterminer le résultat (sortie) ; • Déterminer le processus de transformation des données en résultat (traitement). Exercice d’application : Calculer la somme de deux nombres réels. • L’analyse : • Les données fournies : • Deux nombre réel A et B • Le résultat désiré : • La somme S de deux nombres Algorithmique et programmation MPSI/TSI/PCSI
Le processus de transformation des données en résultat : • Additionner les deux nombres A et B pour obtenir le résultat S II) Notion de données : 1) Les constantes : Une constante est une donnée fixe qui ne varie pas tout le long de l’algorithme. Exemples : Pi (π)=3,14 ; g=9,81 N/g ;R=8,31 SI ; Na=6,02 1023 ; e=1,6 10-19 2) Les variables : Une variable est le nom d’un espace mémoire (case mémoire) dont le contenu peut changer pendant l’exécution d’un algorithme. Exemples : Nom_eleve ; note_eleve ; Prix_unitaire ; x ; nom4 Algorithmique et programmation MPSI/TSI/PCSI
3) Les caractéristiques d’une donnée : Pour définir une donnée il faut préciser les éléments suivants : • Le nom de la donnée (identificateur) ; • Le type de donnée (caractère, chaîne de caractères, entier, réel, booléen, …) ; • La nature de la donnée (constante, variable). Règles : • Les données (variables et constantes) doivent être déclarées avant d’être utilisées ; • Le choix des noms de variables est soumis à quelques règles : • Un nom doit commencer par une lettre alphabétique ; • Doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) ; • Doit être différent des mots réservés du langage ; • La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé ; Algorithmique et programmation MPSI/TSI/PCSI
Conseil : Pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées. Remarque : En pseudo-code algorithmique, on va respecter les règles citées, même si on est libre dans la syntaxe. Rappel : • Toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration préalable ; • En pseudo-code, on va adopter la forme suivante pour la déclaration de variables : Variables liste d'identificateurs : type Exemples : • Variables i, j,k : entier • x, y : réel • OK : booléen • ch1, ch2 : chaîne de caractères Algorithmique et programmation MPSI/TSI/PCSI
Remarques : • Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre, les types offerts par la plupart des langages sont: Type numérique (entier ou réel) : • Entier court (codé sur 2 octets) ; • Entier long (codé sur 4 ou 8 octets) ; • Réel simple précision (codé sur 4 octets) ; • Réel double précision (codé sur 8 octets). Type logique ou booléen : Deux valeurs VRAI ou FAUX, TRUE ou FALSE, 0 ou 1. Type caractère : Exemples : Lettres majuscules, minuscules, chiffres, symboles, …. ’A’, ’a’, ’1’, ’?’, … Type chaîne de caractère : Exemples : Toute suite de caractères. "Nom, Prénom", "code postale:1000", "CPGE ", … • Pour le type numérique on va se limiter aux entiers et réels sans considérer les sous types. Algorithmique et programmation MPSI/TSI/PCSI
III) Les instructions de base : 1) Instruction de lecture : Cette instruction permet de lire les données à travers le clavier, appelée également Instruction d’entrée. L’instruction de lecture est notée : Syntaxe : Lire (Variable) Exemples : Lire (Note_eleve4) ; Lire (x) ; Lire (A8) 2) Instruction d’écriture: Cette instruction permet d’afficher un message, le contenu d’une variable et/ou le résultat d’une opération de calcul, appelée aussi Instruction de sortie. L’instruction d’écriture est représentée par : Syntaxe : Ecrire (Variable) ; Ecrire ("message") ; Ecrire (opération de calcul) Exemples : Ecrire (Note_eleve4) ; Ecrire ("Bonjour") ; Ecrire ((Note_eleve4+x)/3) ; Ecrire (x,A8,x+A8) Algorithmique et programmation MPSI/TSI/PCSI
X X Y 3) L’affectation (Assignation): Cette instruction permet d’attribuer une valeur à une variable, elle est représentée par une flèche dirigée vers la gauche "←". Syntaxe : Variable ← valeur, une autre variable ou bien une expression Exemples : X ← 12 Y ← X X ← Y+4 Y+4 12 12 16 12 X Algorithmique et programmation MPSI/TSI/PCSI
Exercice1 : Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ? • Algorithme : • Version1 : • Version2 : Algorithme Affectation1 Variables A, B, C : Entier Debut A←3 B←7 A←B B←A+5 C←A+B C←B-A Ecrire (A,B,C) Fin Algorithme Affectation2 Variables A, B : Entier Debut A←1 B←2 A←B B←A Ecrire (A,B) Fin Les deux dernières instructions (Version2) permettent-elles d’échanger les valeurs de A et B ? Exercice2 : Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B Algorithmique et programmation MPSI/TSI/PCSI
Exercice d’application : Ecrire un algorithme qui permet de lire deux nombres réels et d’afficher leur moyenne. • L’analyse du problème : • Les données fournies : • Deux nombres réels • Le résultat désiré : • La moyenne des deux nombres réels • La transformation des données en résultat : • Appliquer la relation qui donne la moyenne de deux nombres. • Algorithme : • Version1 : L’en-tête Algorithme Moyenne1 Variables A, B, C : Réel Debut Lire (A) Lire (B) C ← (A+B)/2 Ecrire (C) Fin Algorithme Moyenne1 Variables A, B, C : Réel Debut Lire (A,B) C ← (A+B)/2 Ecrire (C) Fin Les déclarations Le corps Algorithmique et programmation MPSI/TSI/PCSI
Version2 : L’en-tête Algorithme Moyenne2 Variables A, B, C : Réel Debut Ecrire ("Donner la valeur de A") Lire (A) Ecrire ("Donner la valeur de B") Lire (B) C ← (A+B)/2 Ecrire ("La moyenne de A et B est :",C) Fin Les déclarations Le corps Ou bien : Algorithme Moyenne2 Variables A, B, C : Réel Debut Ecrire ("Donner la valeur de A et de B") Lire (A,B) C ← (A+B)/2 Ecrire ("La moyenne de A et B est :",C) Fin Algorithmique et programmation MPSI/TSI/PCSI
Remarques : • Par convention, l’algorithme note certains des opérateurs différemment : • Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant • (du plus prioritaire au moins prioritaire) : • ^ (la puissance) ; • * , / (multiplication, division) ; • mod (modulo) ; • + , - (addition, soustraction). Exemples : 2 + 3 * 7 vaut 23 • En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations • à effectuer en priorité : Exemples : (2 + 3) * 7 vaut 35 Algorithmique et programmation MPSI/TSI/PCSI
Langages informatiques I) Définition : Définition : Un langage informatique est un outil permettant de donner des ordres (instructions) à la machine. • Intérêt : écrire des programmes (suite consécutive d’instructions) destinés à effectuer une tâche donnée ; • Contrainte : être compréhensible par la machine. II) Langage machine : • Langage binaire : l’information est exprimée et manipulée sous forme d’une suite de bits ; • Un bit (binary digit) = 0 ou 1 (2 états électriques) ; • Une combinaison de 8 bits= 1 Octet 28=256 possibilités qui permettent de coder tous les caractères alphabétiques, numériques, et symboles tels que ?,*,&, … ; • Le code ASCII (American Standard Code for Information Interchange) donne les correspondances entre les caractères alphanumériques et leurs représentations binaires. Exemple : ?=00111100 A= 01000001 • Les opérations logiques et arithmétiques de base (addition, multiplication, …) sont effectuées en binaire. Algorithmique et programmation MPSI/TSI/PCSI
Compilateur Exécution exemple.exe exemple.c fichier source fichier exécutable Code source en langage évolué Langage machine Compilateur ou Interpréteur II) Langage haut niveau : • Intérêts multiples pour le langage haut niveau : • Proche du langage humain «anglais» (compréhensible) ; • Permet une plus grande portabilité (indépendant du matériel) ; • Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …). • Nécessite un traducteur (compilateur/interpréteur) ; • Exécution plus ou moins lente selon le traducteur. 1) Compilateur/interpréteur: • Compilateur : traduire le programme entier une fois pour toutes : • + plus rapide à l’exécution ; • + sécurité du code source ; • - il faut recompiler à chaque modification. Algorithmique et programmation MPSI/TSI/PCSI
Interprétation+Exécution fichier source exemple.py • Interpréteur : traduire au fur et à mesure les instructions du programme à chaque exécution. • + exécution instantanée appréciable pour les débutants ; • - exécution lente par rapport à la compilation. 1) Langages python (Code python): A) Définition d’un langage de programmation : Un langage de programmation est un langage informatique composé d’un ensemble d’instructions pouvant être traduites et exécutées par un ordinateur. Exemple : Basic, Pascal, COBOL, Fortaran, C, C++, LOGO, Python,… Algorithmique et programmation MPSI/TSI/PCSI
B) Définition d’un programme: Un programme est une suite ordonnée d’instructions, compréhensibles par l’ordinateur, appliqué à des données afin d’obtenir des résultats. C) L’identificateur : Un identificateur en langage python doit débuter par une lettre suivie par un nombre de lettres ou de chiffres. Exemple : x, max, val4 D) Les types de données : • Le type entier : Pas de valeur limite explicite, correspond au moins au long int du C (-263 à 263 ). • Le type réel : Correspond au double du C (-1.7 10308à +1.7 10308). Algorithmique et programmation MPSI/TSI/PCSI
Le type chaine de caractères : Ce type sert à manipuler les caractères. • Le type booléen : Ce type prend la valeur False pour faux et la valeur True pour vrai. C) Les instructions : i) l’instruction d’entrée : L’instruction de lecture est symbolisée par input, elle permet le transfert des données vers la mémoire centrale . Syntaxe : l’identificateur=input() Exemple : x=input() ii) l’instruction de sortie: L’écriture se fait de façon semblable que la lecture à l’aide de l’instruction print. Syntaxe : print(l’identificateur) Exemple : print(x) Algorithmique et programmation MPSI/TSI/PCSI
iii) l’instruction d’affectation : Cette instruction permet de mettre une valeur dans une variable. Le symbole de l’affectation est = Syntaxe : variable = valeur Exemple : x=4 Remarques : • print permet d’afficher un texte. • Les codes de format : Algorithmique et programmation MPSI/TSI/PCSI
Etapes de réalisation d’un programme Enoncé du problème Cahier des charges Algorithme Programme source Interprétation et Exécution Résultats Algorithmique et programmation MPSI/TSI/PCSI
Structures de contrôle de base (Algorithme et Programmation) I) Structure séquentielle : Définition : La structure séquentielle est une suite d’instructions qui s’exécute l’une après l’autre dès le début jusqu'à la fin dans un algorithme. Exemple : Calcul de la moyenne des deux nombres réels A et B. Algorithme Algorithme Moyenne Variables A, B, Moyenne : Réel Debut Ecrire ("Donner la valeur de A") Lire (A) Ecrire ("Donner la valeur de B") Lire (B) Moyenne ← (A+B)/2 Ecrire ("La moyenne de A et B est :",Moyenne ) Fin Langage python # Programme Moyenne A=input('Donner A:') B=input('Donner B:') A=float(A) B=float (B) Moyenne=(A+B)/2 print("La moyenne de",A,"et",B,"=",Moyenne) Algorithmique et programmation MPSI/TSI/PCSI
II) Structure alternative : 1) Définition : La structure alternative permet d’exécuter un bloc d’instructions ou un autre en fonction de la réponse de la condition. 2) Structure alternative simple : Cette structure permet d’effectuer certaines opérations ou au contraire de ne rien faire. Syntaxe : Algorithme Si condition alors Instruction ou suite d'instructions Finsi Langage python ifcondition: ou ifcondition: Instruction Instructions Cette instruction se lit : Si la condition est vérifiée alors le bloc d’instructions serait exécuté, sinon il serait ignoré. Algorithmique et programmation MPSI/TSI/PCSI
Exemple : Algorithme Si Moyenne=10 alors Ecrire ("Juste la moyenne") Finsi Langage python if Moyenne= =10: print("Juste la moyenne") Remarques : Algorithmique et programmation MPSI/TSI/PCSI
3) Structure alternative complète : Cette structure permet d’exécuter un bloc d’instructions ou un autre en fonction d’une condition. Syntaxe : Algorithme Si condition alors InstructionsA Sinon InstructionsB Finsi Code python ifcondition: ou ifcondition: InstructionAInstructionsA else : else : InstructionBInstructionsB Cette instruction se lit : Si la condition est vérifiée alors le bloc d’instructionsA sera exécuté et le bloc, d’instructionsB sera ignoré. Sinon le bloc d’instructionsB sera exécuté et le bloc d’instructionsA sera ignoré. Exemple : Algorithme Si Moyenne=10 alors Ecrire ("Juste la moyenne") Sinon Ecrire ("La moyenne est différente de 10") Finsi Langage python if Moyenne= =10: print("Juste la moyenne") else : print("La moyenne est différente de 10") Algorithmique et programmation MPSI/TSI/PCSI
4) Structure alternative imbriquée: Cette structure est utilisée quand on a plus de deux conditions. Syntaxe : Algorithme Si (condition1) alors InstructionsA Sinon Si (condition2) alors InstructionsB Sinon Si (condition3) alors InstructionsC Sinon InstructionsD Finsi Finsi Finsi Langage python ifcondition1: InstructionsA elifcondition2: InstructionsB elifcondition3: InstructionC else : InstructionD Algorithmique et programmation MPSI/TSI/PCSI
Exemple1 : Algorithme Si (Moyenne=10) alors Ecrire ("Juste la moyenne") Sinon Si (Moyenne<10) alors Ecrire ("La moyenne est inferieure à 10") Sinon Ecrire ("La moyenne est supérieure à 10") Finsi Finsi Langage python ifMoyenne= =10 : print("Juste la moyenne") elifMoy<10 : print("La moyenne est inferieure à 10") else : print("La moyenne est supérieure à 10") Exemple2 : Algorithme Algorithme Temperature_eau Variable Temperature : Entier Debut Ecrire ("Entrez la température de l’eau :") Lire (Temperature) Si (Temperature<=0) Alors Ecrire ("C’est de la glace") Sinon Si (Temperature<=100) Alors Ecrire ("C’est du liquide") Sinon Ecrire ("C’est du vapeur") Finsi Finsi Fin Langage python # Programme Temperature Eau Temperature=input('Entrez la température de l’eau:') Temperature=int(Temperature) ifTemperature<=0 : print("C’est de la glace") elifTemperature<=100 : print("C’est du liquide") else : print("C’est du vapeur") Algorithmique et programmation MPSI/TSI/PCSI
Exemple3 : Algorithme Algorithme gestion_feu Variable Couleur : caractere Debut Ecrire ("De quelle couleur est le feu?") Lire (Couleur) Si ((Couleur = ‘V’)OU(Couleur = ‘v’)) Alors Ecrire ("Je passe") Sinon Si ((Couleur = ‘O’)OU(Couleur = ‘o’)) Alors Ecrire ("Je ralentis") Sinon Si ((Couleur = ‘R’)OU(Couleur = ‘r’)) Alors Ecrire ("Je m’arrête") Sinon Ecrire ("Cette couleur n’est pas une couleur de feu") Finsi Finsi Finsi Fin Code python # Programme Gestion Feu Couleur=input('De quelle couleur est le feu?') if Couleur= ='V' or Couleur= ='v': print("Je passe") elif Couleur= ='O' or Couleur= ='o': print("Je ralentis") elif Couleur= ='R' or Couleur= ='r': print("Je m’arrête") else: print("Cette couleur n’est pas une couleur de feu") Algorithmique et programmation MPSI/TSI/PCSI
5) Structure de choix: Cettestructurepermet d’effectuer un choix parmi plusieurs cheminement proposés. Syntaxe : Algorithme Selon que identificateur vaut Valeur 1 faire Instructions 1 Valeur 2 faire Instructions 2 Valeur n faire Instructions n Autrement que Instructions n+1 Finselon Langage python Algorithmique et programmation MPSI/TSI/PCSI
Exemple : Algorithme Algorithme gestion_feu1 Variable Couleur : caractere Debut Ecrire ("De quelle couleur est le feu?") Lire (Couleur) Selon que Couleur vaut ‘V’ ‘v’ faireEcrire ("Je passe") ‘O’ ‘o’ faireEcrire ("Je ralentis") ‘R’ ‘r’ faireEcrire ("Je m’arrête") Autrement queEcrire ("Cette couleur n’est pas une couleur de feu") Finselon Fin Code python # Programme Gestion Feu Couleur=input('De quelle couleur est le feu?') if Couleur= ='V' or Couleur= ='v': print("Je passe") elif Couleur= ='O' or Couleur= ='o': print("Je ralentis") elif Couleur= ='R' or Couleur= ='r': print("Je m’arrête") else: print("Cette couleur n’est pas une couleur de feu") Algorithmique et programmation MPSI/TSI/PCSI
II) Instructions itératives (les boucles) : Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre de fois. On distingue trois sortes de boucles en langages de programmation. • Les bouclesPour; • Les bouclesTant que; • Les bouclesJusqu’à ; 1) Les boucles Pour ou avec compteur: On y répète des instructions en faisant évoluer un compteur (variable particulière) entre une valeur initiale et une valeur finale. Syntaxe : Algorithme Pour compteurallant de initialeàfinale parpas Faire Instructions FinPour Langage python forcompteur in range(initiale,finale+1,pas) : suite d'instructions Algorithmique et programmation MPSI/TSI/PCSI
Algorigramme : Exemple : Algorithme Algorithme Compteur Variable i : entier Debut Pour i allant de 1à5 parpas 1 Faire Ecrire (" La valeur de i est : " ,i) FinPour Fin Langage python # Programme Compteur for i in range(1,6) : print("La valeur de i=",i) Algorithmique et programmation MPSI/TSI/PCSI
Pas peut ne pas être mentionné, car par défaut sa valeur est égal à 1. Dans ce cas, le nombre d'itérations est égal à finale - initiale+ 1 ; • Initiale et finale peuvent être des valeurs, des variables définies avant le début de la boucle ou des expressions de même type que compteur. Remarque : • Le nombre d'itérations dans une boucle Pour est connu avant le début de la boucle ; • Il faut éviter de modifier la valeur du compteur (et finale) à l'intérieur de la boucle. En effet, une telle action : • perturbe le nombre d'itérations prévu par la boucle Pour ; • rend difficile la lecture de l'algorithme ; • présente le risque d'aboutir à une boucle infinie. Algorithmique et programmation MPSI/TSI/PCSI
Exemple : Algorithme Algorithme Compteur Variable i : entier Debut i←0 Pour i allant de 1à5 Faire i←i-1 Ecrire (" La valeur de i est : " ,i) FinPour Fin Langage python # Programme Compteur for i in range(1,6) : i=i-1 print("La valeur de i=",i) Algorithmique et programmation MPSI/TSI/PCSI
2) Les boucles Tant que: On y répète des instructions tant qu'une certaine condition est réalisée. i) boucle Tant que … Faire : Syntaxe : Algorithme TantQuecondition Faire instructions FinTantQue Langage python whilecondition : suite d'instructions Exemple : Algorithme Algorithme Compteur Variable i : entier Debut i←0 TantQuei<=5 Faire Ecrire (" La valeur de i est : " ,i) i←i+1 FinTantQue Fin Langage python # Programme Compteur i=0 while i<6 : print("La valeur de i=",i) i=i+1 Algorithmique et programmation MPSI/TSI/PCSI
i) boucle Faire…Tant que : Syntaxe : Algorithme Faire instructions TantQuecondition Langage python Exemple : Algorithme Algorithme Compteur Variable i : entier Debut i←0 Faire Ecrire (" La valeur de i est : " ,i) i←i+1 TantQuei<=5 Fin Langage python Algorithmique et programmation MPSI/TSI/PCSI
Algorigramme : • La condition (dite condition de contrôle de la boucle) est évaluée avant chaque itération ; • Tant que la condition est vraie, on exécute les actions ; • Si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est après FinTantQue. Remarques : • Le nombre d'itérations dans une boucle TantQue n'est pas connu au moment d'entrée dans la boucle. Il dépend de l'évolution de la valeur de condition ; • Une des instructions du corps de la boucle doit absolument changer la valeur de condition de vrai à faux (après un certain nombre d'itérations), sinon le programme tourne indéfiniment ; Algorithmique et programmation MPSI/TSI/PCSI
Attention aux boucles infinies !!!! Exemple de boucle infinie : Algorithme Algorithme Infinie Variable i : entier Debut i ← 1 TantQuei>0 Faire Ecrire("La valeur de i=",i) i ← i+1 FinTantQue Fin Langage python # Programme Compteur i=1 whilei>0 : print("La valeur de i=",i) i=i+1 Choix d'un type de boucle : • Si on peut déterminer le nombre d'itérations avant l'exécution de la boucle, il est plus naturel d'utiliser la boucle Pour ; • S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de la boucle, on fera appel à TantQue. Algorithmique et programmation MPSI/TSI/PCSI
3) Boucle Faire…Jusqu’à: Syntaxe : Algorithme Faire Instructions Jusquacondition Langage python Exemple : Algorithme Algorithme Compteur Variable i : entier Debut Faire Ecrire (" La valeur de i est : " ,i) Jusquai>5 Fin Langage python Algorithmique et programmation MPSI/TSI/PCSI
Lien entre Pour et TantQue : La boucle Pour est un cas particulier de TantQue(cas où le nombre d'itérations est connu et fixé). Tout ce qu'on peut écrire avec Pour peut être remplacé avec TantQue (la réciproque est fausse). Exemple : Algorithme Pour compteurallant de initialeàfinale parpas Faire Instructions FinPour Langage python forcompteur in range(initiale,finale+1,pas) : suite d'instructions Peut être remplacé par : Algorithme Algorithme Compteur Variable compteur : entier Début compteur ← initiale TantQuecompteur <= finale Faire Instructions compteur ← compteur+1 FinTantQue Fin Langage python # Programme Compteur compteur =initiale whilecompteur <= finale : Instructions compteur = compteur+1 Algorithmique et programmation MPSI/TSI/PCSI
3) Boucle imbriquées : Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas, on aboutit à des boucles imbriquées. Exemple : Algorithme Algorithme Boucle Imbriquée Variable A,B,Moy : Reels Reponse : caractère Début Reponse=‘o’ TantQueReponse=‘O’ OU Reponse=‘o’ Faire Ecrire (" Donner A et B :") Lire(A,B) Moy=(A+B)/2 Ecrire("La moyenne de ",A, "et",B, "est",Moy) Si (Moy=10) alors Ecrire ("Juste la moyenne") Sinon Si (Moy<10) alors Ecrire ("La moyenne est inferieure à 10") Sinon Ecrire ("La moyenne est supérieure à 10") Finsi Finsi Ecrire(" Voulez -Vous Continuer à exécuter ce programme? O/N ") Lire(Reponse) TantQueReponse<>‘O’ ET Reponse<> ‘o’ ET Reponse<> ‘N’ ET Reponse<> ‘n’ Faire Ecrire(" Donner une réponse O/N ") Lire(Reponse) FinTantQue FinTantQue Ecrire("Merci, Au revoir!!!!") Fin Algorithmique et programmation MPSI/TSI/PCSI
Langage python # Programme Boucle Imbriquée Reponse='o' whileReponse=='o' or Reponse=='O' : A=input('Donner A:') B=input('Donner B:') A=int(A) B=int(B) Moy=(A+B)/2 print('La moyenne de',A,'et',B,'est',Moy) ifMoy==10: print("Juste la moyenne") elifMoy<10: print("La moyenne est inferieure à 10") else: print("La moyenne est supérieure à 10") print(" Voulez -Vous Continuer à exécuter ce programme? O/N") Reponse=input() whileReponse!='o' andReponse!='O' andReponse!='N' and Reponse!='n': print("Donner une réponse O/N") Reponse=input() print("Merci, Au revoir!!!!") Algorithmique et programmation MPSI/TSI/PCSI
L’instruction break : Boucle 1 Boucle 1 Boucle 2 Boucle 2 Boucle 4 Boucle 4 Fin Boucle 4 Fin Boucle 2 Fin Boucle 2 Fin Boucle 4 Boucle 3 Boucle 3 Fin Boucle 1 Fin Boucle 3 Fin Boucle 1 Fin Boucle 3 Elle sert à interrompre le déroulement d’une boucle. L’instruction Continue : Elle permet de passer au tour de boucle suivant. Imbrications de boucles : Imbrications autorisées Imbrications interdites Algorithmique et programmation MPSI/TSI/PCSI
Exercice1 : Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N dépasse strictement 100. Algorithme Algorithme somme2 Variables som, i : entier Debut som ← 0 i ← 1 TantQue (som <=100) Faire som ← som + i i ← i+1 FinTantQue Ecrire ("La valeur cherchée est N= ",i-1) Fin Langage python # Programme Somme100 i=0 Som=0 while Som<=100: Som=Som+i i=i+1 print("La valeur cherchée est N =",i-1) Algorithmique et programmation MPSI/TSI/PCSI
Exercice2 : Donner un programme qui Calcul x à la puissance n où x est un réel non nul et n un entier positif ou nul. Algorithme Algorithme puissance Variables x, puiss : réel n, i : entier Debut Ecrire (" Entrez la valeur de x ") Lire (x) Ecrire (" Entrez la valeur de n ") Lire (n) puiss ← 1 Pour i allant de 1 à n Faire puiss← puiss*x FinPour Ecrire (x, " à la puissance ", n, " est égal à ", puiss) Fin Langage python # Programme Puissance x=int(input("Entrez la valeur de x:")) n=int(input("Entrer la valeur de n:")) puiss=1 for i in range(1,n+1): puiss=puiss*x print(x,"à la puissance",n,"est égal à",puiss) Algorithmique et programmation MPSI/TSI/PCSI
Exercice3 : Donner un programme qui Calcul la factorielle d’un nombre entier n. Algorithme Algorithme factorielle Variables n,fact : entier Debut Ecrire (" Entrez la valeur de n") Lire (n) fact← 1 Pour i allant de 1 à n Faire fact← fact*i FinPour Ecrire (" La factorielle de", n ,"est :", fact) Fin Langage python # Programme Puissance n=int(input("Entrer la valeur de n:")) fact=1 for i in range(1,n+1): fact=fact*i print("La factorielle de",n,"est:",fact) input() Algorithmique et programmation MPSI/TSI/PCSI
Exercice4 : Déterminez un algorithme permettant de calculer le terme de rang n de la suite de. Fibonacci. Avec : U0=U1=1 et Un=Un-1+Un-2. Algorithme Algorithme Fibonacci Variables n, j, A,B,C : entier Debut B ← 1 C ← 1 Ecrire (" Donner La valeur de n ") Lire (n) Si(n=0 OU n=1)alors Ecrire (" La valeur Un=1") Sinon Pour j allant de 2 à n Faire A ←B + C C ← B B ← A FinPour Ecrire (" La valeur Un=",A) Finsi Fin Langage python # Programme Fibonacci n=int(input("Entrer la valeur de n:")) B=1 C=1 if n= =0 or n= =1 : print("La valeur U",n,"=1") else: for j in range(2,n+1): A=B+C C=B B=A print("La valeur U",n,"=",A) input() Algorithmique et programmation MPSI/TSI/PCSI