Ceci est une ancienne révision du document !
Algorithme (S) 5ème
Pour piloter le fonctionnement de nombreux objets techniques, on fait appel à des programmes. Mais avant de écrire un programme sur l'ordinateur, il faut réfléchir au problème à résoudre et trouver la solution à appliquer. Un programme ne pourra fonctionner correctement que s'il a été réfléchi et prévoit tous les cas de fonctionnement possible.
Compétences :
CT 1.3 – CT 2.5 – CT 2.7 - DIC 1.5 : Imaginer des solutions pour produire des objets et des éléments de programmes informatiques en réponse au besoin.
CT 3.1 - OTSCIS 2.1 : Exprimer sa pensée à l’aide d’outils de description adaptés : croquis, schémas, graphes, diagrammes, tableaux.
CT 4.2 – CT 5.5 -
IP 2.3 : Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs.
J’ai acquis la compétence si :
Nous allons étudier ici l'algorithme qui est la parti la plus importante de la programmation. L'algorithme est la solution du problème. Il fonctionnera avec n'importe quel langage de programmation.
Les étapes de la programmation
“Écrire un algorithme” est la 1ère étape de ce qui mis bout à bout permettra à un ordinateur d'exécuter une tâche.
Pour utiliser un programme informatique afin résoudre un problème à l'aide d'un microcontrôleur ou d'un ordinateur, il faut :
Définir l'algorithme. Il permet, en français, d'expliquer la solution permettant de résoudre le problème et de vérifier que tous les cas de fonctionnement aient été prévus. Si l'algorithme ne fonctionne pas le programme ne pourra pas fonctionner.
Traduire l'algorithme en un programme. En fonction du type de problème et du matériel disponible, l'algorithme doit être traduit dans un des nombreux langages de programmation disponibles. C'est une manière normalisée et compréhensible par tous les programmeurs (de n'importe quel pays) d'exprimer la solution.
Interpréter ou compiler le programme en code machine le programme, bien que normalisé, est toujours un langage humain. Un programme déjà existant permet toutefois l'effectuer une nouvelle traduction en la seule chose compréhensible par l'ordinateur, une suite de 0 et 1, le code machine.
Programmer comporte 3 étapes :
Résoudre et expliquer le problème à l'aide d'un langage textuel ou graphique dans le langage natif du programmeur : L'algorithme ou organigramme
Traduire l'algorithme en un des nombreux langages de programmation existant afin de le mettre sous une forme normalisée et internationale : Le programme
Faire effectuer à un programme une nouvelle traduction dans le langage de l'ordinateur : Le code machine
Algorithme
Un algorithme s'exprime dans le langage textuel naturel au programmeur
Il n'est pas réellement un programme mais une méthode à suivre adaptée au problème
Il utilise des pseudo instructions (faire, répéter …, si … alors … sinon …) pour exprimer chaque action
Il est structuré grâce à des indentations (décalages en début de lignes) dans le but d'être plus facilement lisible et compréhensible.
Une recette de cuisine est un algorithme.
Problème exemple
Je veux compter de 0 à 20, 2 par 2 (+2)
Mettre un compteur à 0 (condition de début)
Répéter jusqu'à ce que le compteur soit >20 (condition de fin). [20 fait parti du comptage d'où compteur>20 pour que le comptage s'arrête]
…. Dire la valeur du compteur (communiquer les résultats)
…. Faire l'opération compteur + 2 (Comptage 2 par 2)
Tout ce qui est décalé “indenté” (3 et 4) doit être répété jusqu'à la fin.
Un algorithme est une méthode générale pour atteindre la solution d'un problème. C'est une suite finie et non ambigüe d’opérations simples permettant de résoudre le problème. Il est exprimé en langage naturel (pour nous en français) et en respectant certaines règles comme l'indentation.
Organigramme
Un algorithme peut être représenté graphiquement sous la forme d'un organigramme. Pour comprendre son déroulement, il suffit de suivre les flèches qui relient les blocs. Chaque forme de bloc correspond à un type d'instruction :
Les rectangles indiquent les actions internes au programme (affectation de variable, calcul …)
Les parallélogramme indiquent une entrée/sortie d'information
Les losanges indiquent les conditions/choix et disposent de 2 sorties (vrai ou faux)
Les flèches indiquent le sens de lecture. Une flèche qui remonte signale une répétition.
Un organigramme est aussi une méthode générale pour atteindre la solution d'un problèmes. Il est exprimé sous une forme plus graphique mais toujours en français et en respectant certaines règles.
Exemple
L'algorithme du thermostat qui régule le chauffage oeut être écrit de la manière suivante.
Ci dessous sa traduction graphique (organigramme) et textuelle (algorithme).
01 Mettre la chaudière à l'arrêt pour des raisons de sécurité
02 Éteindre le voyant de chauffage
03 Répéter indéfiniment
04 Lire la valeur de CONSIGNE
05 Lire la sonde de TEMPÉRATURE
06 Si TEMPÉRATURE < CONSIGNE alors
07 Mettre la chaudière en marche
08 Allumer le voyant de chauffage
09 Sinon
10 Arrêter la chaudière
11 Éteindre le voyant de chauffage
variables : Lignes 4 et 5 la valeur de la CONSIGNE et de la TEMPÉRATURE sont rangées dans 2 variables.
répétitions : Lignes 3 le programme est répété indéfiniment à partir d'ici jusqu'à son arrêt (coupure énergie).
conditions : Si TEMPÉRATURE < CONSIGNE j'exécute les lignes 07 et 08 ; Sinon j'exécute les lignes 10 et 11. Après la ligne 8 ou 11 le programme continuerai à la ligne 12 qui n'existe pas, il reprend donc à la boucle ligne 3 qu'il a mémorisé.
Pour aller plus loin
Si j'ai correctement pensé la solution de mon problème informatique et si je l'ai correctement rédigé, n'importe qui qui lit mon algorithme ou organigramme doit arriver à un résultat correct quelles que soit les données.