2nde PG : Programmation - Algorithmes Définition : Un algorithme est une liste d’instructions à suivre, qui à partir de données, permettent d’obtenir des résultats clairement définis en un nombre fini d’étapes. calcul d’une valeur, existence d’une solution numérique, choix d’un chemin à suivre . . . Exemple : Décomposition d’un calcul Il s’agit simplement de considérer le calcul d’un nombre comme une suite d’étapes élémentaires. Pour un nombre quelconque x, on calcule le nombre 2(x − 1)2 + 4. Éventuellement déclarer les variables x et y 1 début Multiplier Prendre un Retrancher Élever au 2 Saisir x ; Lire la valeur par 2 nombre x 1 carré 3 y ← x−1 ; Retrancher 1 4 y ← y2 ; Élever au carré Ajouter 4 5 y ← 2×y ; Multiplier par 2 6 y ← y+4 ; Ajouter 4 7 Afficher le résultat ; 2(x − 1)2 + 4 8 fin Algorithme 1 : Langage algorithmique - Langage naturel voici l’algorithme traduit en langage machine pour Algobox 1 2 3 4 5 6 7 8 9 10 11 VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x y PREND_LA_VALEUR x-1 y PREND_LA_VALEUR pow(y,2) y PREND_LA_VALEUR 2*y y PREND_LA_VALEUR y+4 AFFICHER y FIN_ALGORITHME Notions de variable et d’affectation : Variable : dans un programme, une variable correspond à un emplacement de la mémoire de la calculatrice ou de l’ordinateur. Elle est repérée par un nom et contient une valeur. Affectation : L’instruction affectation permet d’attribuer une valeur à une variable. « A prend la valeur 2 » signifie que la valeur 2 est affectée à la variable de nom A Notions de boucles, de conditions : Les boucles permettent d’itérer un processus un certain nombre de fois Exemple : Pour k allant de 1 à N Tant que « condition » faire La condition permet de tester si une expression est vraie ou fausse Exemple : Si « condition » (est vraie) alors . . . Sinon . . . 1 2 3 4 5 6 7 VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE n EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n http://lycee.lagrave.free.fr 8 POUR k ALLANT_DE 1 A n 9 DEBUT_POUR 10 TRACER_SEGMENT (x,y)->(x,y+1) 11 y PREND_LA_VALEUR y+1 12 TRACER_SEGMENT (x,y)->(x+1,y) 13 x PREND_LA_VALEUR x+1 14 FIN_POUR 15 FIN_ALGORITHME 1/1