Initiation à la programmation/L'algorithme

Début de la boite de navigation du chapitre
L'algorithme
Icône de la faculté
Chapitre no 2
Leçon : Initiation à la programmation
Chap. préc. :Généralités
Chap. suiv. :Les variables en programmation
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Initiation à la programmation : L'algorithme
Initiation à la programmation/L'algorithme
 », n'a pu être restituée correctement ci-dessus.

C'est l'outil que nous utiliserons pour décrire le comportement d'un programme.

Un algorithme est la description du comportement à l'aide de blocs fonctionnels élémentaires sur des valeurs (objets) connues.

L'algorithme est indépendant du langage de programmation.

Une fois l’algorithme écrit, il suffit au programmateur de le traduire dans le langage de programmation adéquat.

Règles d'écritures des algorithmesModifier

Les algorithmes sont écrits en langage courant compréhensible par toute personne.

C'est un processus systématique, de résolution, par le calcul, d'un problème permettant de décrire les étapes vers le résultat.

Il se compose comme une suite finie et non ambiguë d'opérations permettant de donner la réponse au problème.

Les commentairesModifier

Dans ce cours, ils sont encadrés par des accolades, {ceci est un commentaire}, ce n'est pas une règle générale.

Ils sont là uniquement pour renseigner le lecteur lorsqu'il prend connaissance de l’algorithme. Ils n'apportent rien au niveau du fonctionnement, mais sont très utiles lors de la maintenance par exemple. Ils spécifient à quoi correspondent les variables utilisées. Ils peuvent former une notice explicative.

Les blocs graphiquesModifier

On peut se servir de blocs graphiques pour décrire les différentes actions qui doivent avoir lieu. C'est un langage graphique pour débuter, mais ce type d'écriture devient rapidement lourd à manipuler. On préférera par la suite utiliser les structures de contrôles (ou de composition).

 

Marque le début et la fin d'un bloc fonctionnel

 

Description d'une opération d'entrée ou de sortie avec des modules de dialogue H/M.

 

Décrit une instruction.

 

Test, selon le résultat du test (exemple : A est bien égal à 2, test vrai, on continuera la série d'instructions qui part de la branche vrai ; inversement si A est différent de 2, test faux, alors on continuera la série d'instructions qui part de la branche faux) le bloc fonctionnel poursuit vers un chemin ou l'autre.

Les structures de contrôles (ou compositions séquentielles)Modifier

L'écriture d'un algorithme consiste à décrire de façon statique (du texte) le comportement dynamique d'un système. Pour ce faire, nous disposons de trois possibilités :

  • enchainer les actions (exécution séquentielle) ;
  • choisir entre plusieurs solutions en faisant des tests ;
  • répéter les actions avec des boucles.

À savoir que de manière la plus générale, possible, le système se contente d'exécuter les instructions qu'il rencontre l'algorithme les unes à la suite des autres et ceux quels que soient la nature de ces instructions (boucle, test, etc.). On appelle cet chainement, la séquentialité.

La séquentialité (l'enchainement ou composition séquentielle)Modifier

Exécution inconditionnelle d'une suite d'instructionsModifier

Lorsque plusieurs instructions doivent être exécutées successivement, on donnera la suite de ces instructions dans l’ordre où elles doivent être exécutées.

Les actions seront portées sur des lignes successives, (ou sur une même ligne) et seront séparées par le caractère « ; » qui a deux rôles :

  • indiquer la fin d'une instruction (on parle aussi de séparateur).
  • indiquer que le processus n’est pas fini.
 
L'algorigramme de l'algorithme exemple.
Début
    instruction 1 ;
    instruction 2 ;
Fin

Les instructions sont exécutées les unes à la suite des autres.

Les test SI (sélection)Modifier

Composition conditionnelle : exécution conditionnelle d'une actionModifier

On provoque certain événement que si la condition est remplie SI condition ALORS instruction(s). La condition est une proposition booléenne dont on vérifie la valeur « vrai » ou « faux », si « vrai », on exécute l'instruction suivante.

 
Symbole conditionnelle
SI condition (…)
    ALORS instruction 1 ;
… { fin de SIALORS … }

Si la condition est « vrai », alors l'instruction est exécutée. Sinon, elle ne l'est pas.

Composition alternative : exécution conditionnelle de l’une des deux instructionsModifier

On provoque une instruction si la condition est vérifiée et une autre si elle ne l’est pas : SI condition ALORS instruction 1 SINON instruction 2.

 
Symbole alternative
SI condition (…)
    ALORS instruction 1 ;
    SINON instruction 2 ;
… { fin de SIALORSSINON … }

Si la condition est « vrai », alors l'instruction est exécutée. Sinon, c’est l’instruction 2 qui sera exécutée.

Composition sélective : exécution conditionnelle de l’une parmi plusieurs instructionsModifier

Idem aux deux précédentes en un peu plus compliquée. Il faut respecter le fait que toutes les conditions s'excluent mutuellement.

suivant indicateur faire
    valeur 1 : instruction 1 ;
    valeur 2 : instruction 2 ;
    …
    valeur n : instruction n ;
… { fin de suivant indicateur faire }

Il est nécessaire que le champ des valeurs recouvre tous les choix possibles, sinon il y aura une erreur (effet de bord). Une façon de palier à cela est d'ajouter :

valeur n : instruction n ;
    autre : instruction n + 1 ;
… { fin de suivant indicateur faire }

Les boucles (itération)Modifier

Composition itérative : exécution multiple d'une même instructionModifier

On exécute l’instruction tant que la condition est vraie tant que condition (…) faire instruction.

 
Symbole tant que faire
tant que condition (…)
    faire instruction 1 ;
… { fin de tant quefaire … }

Tant que la condition est « vraie », alors l'instruction 1 est exécutée. Sinon, elle finit.

Une boucle tant que n'est pas exécutée si la condition est fausse au départ, ainsi l’instruction ne sera pas faite.

Composition itérative : exécution multiple d'une même instruction ; autre formeModifier

On provoque toujours la même instruction tant que la condition n'est pas remplie répéter instruction(s) tant que condition (…).

 
Symbole répéter jusqu'à
répéter instruction 1 tant que condition (…)
… { fin de répétertant que … }

On trouve aussi l'écriture

répéter instruction 1 jusqu'à condition (…)
… { fin de répétertant que … }

Tant que la condition est « vraie », alors l'instruction 1 est exécutée. Sinon, elle finit.

L'instruction 1 est exécutée au moins une fois, à la différence de la boucle précédente, ce qui peut provoquer des erreurs, on préférera donc utiliser la première forme de boucle tant quefaire et non fairetant que.

Avec ces quelques structures de contrôle, on peut faire déjà pas mal de choses en algorithme (puis en programmation). Mais rappelez-vous de la règle d'or : vos algorithmes doivent être clairs.