L’ALGORITHME Qu’est ce qu’un algorithme ? C’est un ensemble d’évènements répertoriés, validés, ordonnés afin d’arriver à l’objectif attendu. Il permet ensuite d’écrire un programme dans un langage particulier. Aujourd’hui, les langages de programmation sont multiples et variés. On pourrait citer le Vb, le Vbscript, le VBA, le Python, le Javascript, …. Et dans une certaine mesure le Html et le PHP. Un algorithme s’écrira toujours avec une certaine structure. Le nom du programme La déclaration des données constantes La déclaration des données variables Début 1 Saisie des données 2 Le traitement (calcul à réaliser) 3 L’affichage des données résultats Fin Un programme portera toujours un nom significatif Il faut déclarer les données avec lesquelles le traitement aura lieu. Qu’est ce qu’une constante ? C’est une donnée qui ne se modifiera pas ou de façon peu fréquente. Elle est placée en début de programme, car si elle doit être modifiée, elle se retrouvera facilement. Elle portera un nom et se verra attribuée une valeur. Par exemple TVA = 19,6% Qu’est ce qu’une variable ? C’est une donnée qui prendra différentes valeurs (suivant les besoins de l’utilisateur). Elle portera également un nom et sera typée (réel, entier, caractère, chaîne de caractères, booléen). Il faut enfin utiliser des instructions. Afficher cette instruction permet de voir le contenu de la variable à l’écran Saisir cette instruction permet à l’utilisateur de taper la valeur d’une variable au clavier. ce symbole correspond à la notion d’affectation. On attribue une valeur à la variable. Christelle HOUALET Page - 1 - Académie de Limoges Lycée Suzanne Valadon Nous allons partir d’un exemple un peu simpliste, puis le compléter : Nom premier algo Variables : À l’écran apparaîtra uniquement ceci Message : chaîne de caractères Début Message « Bonjour » Bonjour Afficher Message Fin Que voyons-nous dans ce premier algorithme ? La structure, ainsi que l’affectation d’une valeur à une variable Nom deuxième algo Variables : Message : chaîne de caractères Reponse : chaîne de caractères (ou booléen) Début Message « Bonjour » Afficher Message Afficher « Voulez-vous saisir un nouveau message ? (oui / non) » Saisir Reponse Si Reponse = « oui » Alors afficher « saisir votre nouveau message » saisir Message afficher Message Sinon afficher « vous n’avez rien à dire ??!?!! » Finsi Afficher « Au revoir » Fin Que propose ce nouvel algorithme ? Que permet de faire la nouvelle variable ? Nouvelle variable Reponse qui permet de préciser s’il y a un nouveau message. Mise en place d’une structure alternative ou conditionnelle. Elle exécute le traitement après examen de la condition énoncée. Si la condition est vérifiée, l’exécution passe par le Alors, à défaut il passe par le Sinon (s’il existe, ce n’est pas obligatoire). Cette structure est utilisée par les logiciels tableur Christelle HOUALET Page - 2 - Académie de Limoges Lycée Suzanne Valadon Nom troisième algo Variables : Message : chaîne de caractères Reponse : chaîne de caractères (ou booléen) Début Message « Bonjour » Afficher Message Afficher « Voulez-vous saisir un nouveau message ? (oui / non) » Saisir Reponse Si Reponse = « non » Alors afficher « il n’y a pas de nouveau message » Sinon si Reponse = « oui » Alors afficher «quel est le nouveau message ? » saisir Message afficher Message sinon afficher « vous n’avez pas saisi oui ou non !!!!» finsi Finsi Afficher « Au revoir » Fin Quelle modification a été apportée par ce nouvel algorithme ? Structure conditionnelle, mais cette fois imbriquée. Il n’y a pas de limite dans les imbrications. Si ce n’est la lisibilité. Il serait alors préférable d’utiliser une structure Selon Cas Christelle HOUALET Page - 3 - Académie de Limoges Lycée Suzanne Valadon Nom quatrième algo Variables : Message : chaîne de caractères Reponse : chaîne de caractères (ou booléen) Début Message « Bonjour » Afficher Message Répéter Afficher « Voulez-vous saisir un nouveau message ? (oui / non) » Saisir Reponse Jusqu’à Reponse = « oui » ou Reponse = « non » Si Reponse = « oui » Alors afficher «quel est le nouveau message ? » saisir Message afficher Message Sinon afficher « vous n’avez rien à dire ??!?!! » Finsi Afficher « Au revoir » Fin Qu’effectue cette nouvelle modification à l'algorithme ? Cette nouvelle modification permet de tester la réponse saisie par l’utilisateur. La question lui sera reposée jusqu’à ce qu’il saisisse oui ou non. Ou autrement dit elle sera posée tant que la réponse sera différente de oui ou de non. On utilise alors une structure itérative ou répétitive : répéter jusqu’à Christelle HOUALET Page - 4 - Académie de Limoges Lycée Suzanne Valadon Nom cinquième algo Variables : Message : chaîne de caractères Reponse : chaîne de caractères (ou booléen) Début Message « Bonjour » Afficher Message Afficher « Voulez – vous afficher un nouveau message ? (oui/non) » Saisir Reponse Tant que Reponse = « oui » Afficher « Saisir votre nouveau message » Saisir Message Afficher « ************************************************************* » Afficher Message Afficher « ************************************************************* » Afficher « Voulez – vous afficher un nouveau message ? (oui/non) » Saisir Reponse FinTantQue Si Reponse = « non » Alors afficher « vous n’avez plus rien à dire ?! » Finsi Afficher « Au revoir » Fin Quelles sont les nouvelles modifications apportées à l’algorithme ? On utilise cette fois une nouvelle structure itérative ou répétitive : tantque fintantque. Tant que la condition est satisfaite, le traitement s’effectue. Différence entre répéter et tantque : Le traitement s’effectue au moins une fois avec le répéter, puisque la condition d’arrêt est dans la structure. Alors que le passage dans le tantque est soumis à la validité de la condition qui est mis en place avant la structure soit par une affectation, soit par la réponse à une question. Christelle HOUALET Page - 5 - Académie de Limoges Lycée Suzanne Valadon Nom sixième algo Variables : Message : chaîne de caractères Reponse : chaîne de caractères (ou booléen) Compteur : entier Début Compteur 0 Message « Bonjour » Afficher Message Afficher « Voulez – vous afficher un nouveau message ? (oui/non) » Saisir Reponse Tant que Reponse = « oui » Afficher « Saisir votre nouveau message » Saisir Message Afficher Message Compteur compteur + 1 Afficher « Voulez – vous afficher un nouveau message ? (oui/non) » Saisir Reponse Fin tantque Afficher « vous avez saisi », compteur , « messages. » Afficher « Au revoir » Fin Quelles sont les nouvelles modifications apportées à l’algorithme ? Introduction d’un compteur qui permet de dénombrer le nombre de messages saisi par l’utilisateur. Le compteur s’initialise toujours, par défaut à 0, mais c’est possible de faire autrement. Il se place toujours dans l’itération, au niveau qui vous semble le plus judicieux. Christelle HOUALET Page - 6 - Académie de Limoges Lycée Suzanne Valadon Nom septième algo Variables : Message : chaîne de caractères Début Message « Bonjour » Afficher Message Afficher « vous allez saisir quatre messages » Pour i = 1 à 4 Afficher « Saisir un nouveau message ? » Saisir Message Afficher Message Finpour Afficher « Au revoir » Fin Quelles sont les nouvelles modifications apportées à l’algorithme ? Introduction d’une nouvelle structure itérative. Cette structure est particulière puisqu’elle suppose que l’on connaisse le nombre d’itérations à mettre en œuvre, à l’avance. La valeur de i (« compteur ») s’incrémente (augmente) automatiquement d’un pas de 1 si on ne précise rien. La structure complète s’écrit Christelle HOUALET pour i allant de 1 à n pas de z Page - 7 - finpour Académie de Limoges Lycée Suzanne Valadon Nom huitième algo Variables : Message : chaîne de caractères n : entier Début Message « Bonjour » Afficher Message Afficher « combien de messages voulez-vous saisir ? » Saisir n Pour i = 1 à n Afficher « Saisir un nouveau message ? » Saisir Message Afficher Message Finpour Afficher « Au revoir » Fin Quelles sont les nouvelles modifications apportées à l’algorithme ? Même type de structure sauf que l’on veut pouvoir faire varier le nombre d’itérations. L’astuce est alors de le faire saisir par l’utilisateur en début de programme. APPLICATION : Vous allez créer, dans un premier temps, un algorithme qui permette de calculer la moyenne d’un élève pour une matière, ensuite pour toute une classe, ou encore la moyenne pour un élève pour un trimestre, et pourquoi pas faire afficher un message suivant la valeur de la moyenne. Piste de réflexion : Quelles sont les données à obtenir ? Quelles sont les données obtenues par un traitement. Quelles sont les données que je souhaite afficher ? Quelle structure dois-je mettre en place ? Quelles constantes ? Quelles variables ? Quel compteur (s’il y en a un ? ) ? Christelle HOUALET Page - 8 - Académie de Limoges Lycée Suzanne Valadon