Outils pour utilisateurs

Outils du site


cours:progra1

Ceci est une ancienne révision du document !


Algorithme

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 :

  • Je sais ce qu'est un algorithme et les règles qu'il respecte.
  • Je sais écrire sous forme d'algorithme la solution d'un problème informatique simple.

Nous allons étudier ici l'algorithme qui fait parti de cette étape, la plus importante de la programmation.

Algorithme

Un algorithme est une méthode générale pour atteindre la solution d'un problèmes. C'est une suite finie et non ambigüe d’opérations simples permettant de le résoudre. Il est exprimé en langage naturel (français) et en respectant certaines règles comme l'indentation.

  • Un algorithme s'exprime dans un langage naturel
  • Il n'est pas un programme mais une méthode
  • 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.

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)
  • Une flèche qui remonte indique une boucle.

Exemple

La méthode utilisée à la leçon précédente pour convertir un nombre décimal en nombre binaire peut être écrite sous la forme d'un algorithme.

Ci dessous sa traduction graphique (organigramme) et textuelle (algorithme).

01  Demander un nombre entre 0 et 255 inclus
02  Mettre dans la variable NOMBRE la réponse
03  Si NOMBRE < 0 ou > 255
04      Signaler l'erreur
05      Arrêter le programme
06  Mettre la variable SEUIL à 128
07  Mettre la variable RÉPONSE à vide
08  Répéter jusqu'à SEUIL < 1 
09      Si NOMBRE < SEUIL alors
10          Écrire un 0 à droite de RÉPONSE
11      Sinon
12          Écrire un 1 à droite de RÉPONSE
13          Faire NOMBRE = NOMBRE - SEUIL
14      Faire SEUIL = SEUIL / 2
15  Lire RÉPONSE
  • variables : Lignes 6, 7, 14 … je note une valeur, le résultat d'un calcul, une information à me rappeler plus tard
  • répétitions : Les lignes 9 à 14 sont répétées 8 fois avant d'exécuter la ligne 15.
  • conditions : Si NOMBRE < SEUIL j'exécute la ligne 10 puis la 14 ; Si NOMBRE >= SEUIL j'exécute les lignes 12 et 13 avant d'aller à 14

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.

cours/progra1.1643204278.txt.gz · Dernière modification: 2022/01/26 14:37 de mrcjl