Ecrivons un programme … ou presque

Je parle d’informatique depuis 2 ans mais j’en oublie les bases. Certes les langages ont évolué. J’en parle notamment dans ‘Jurassic Code’ et surtout dans ‘Le verbe et l’écrivain’. Les langages sont nombreux. Et ils partagent une base commune qui se matérialise sous forme d’algorithme. Il s’agit d’une façon parlante pour décrire les actions/instructions que va réaliser votre programme. 

On entend parler de ‘pseudo-code’, l’algorithme d’un programme est bien plus que cela. Il s’agit d’une base qui, si elle est bien écrite, se traduit naturellement quelque soit le langage ou la technologie. Il s’agit donc d’un véritable code même s’il n’est pas compréhensible par un ordinateur. 

Le périmètre

Pour commencer votre algorithme, il faut définir le périmètre de votre programme. Quelles sont ces entrées et ses sorties ? Quel traitement va-t-il réaliser ? Les entrées et sorties sont définies par des variables ou des objets. Le traitement réalisé est décrit par des instructions. Si ces instructions se répètent, elles peuvent être regroupées dans des fonctions et des procédures

Fonctions et procédures sont en réalité des sous-programmes. Elles possèdent des entrées et des sorties et réalisent un traitement. Elles sont donc décrites en parallèle du programme. Ce qui distingue les 2 est que la fonction n’a qu’une seule sortie. 

Les variables sont des éléments dont la valeur peut changer dans le temps du programme. Une variable est une information. Elle est de type simple : un texte, une lettre, un booléen (vrai ou faux), une valeur binaire, un nombre entier ou décimal. Les variables peuvent être internes aux programmes. Une variable peut ne pas être changée. On parle alors de constante.

Les objets sont des éléments complexes. Un objet se compose de variables ou d’autres objets plus simples. Il possède aussi des fonctions, appelées méthodes. Mais on y reviendra dans un autre article. L’objet ‘rendez-vous’ se compose d’un motif, d’une date et d’une durée. Une durée, c’est un nombre entier et une unité (minute, heure, …). 

Les instructions

Maintenant que le périmètre est défini, voyons, la liste d’instruction que peut contenir un programme ou un sous-programme. La première des instruction est l’affectation : ‘←‘. Cette instruction permet de modifier la valeur de la variable.

Le second type d’instruction est le test. Il permet de déclencher des instructions suivant une condition. C’est le classique ‘Si condition Alors Instructions A Sinon Instruction B FinSi’. La condition peut se baser sur une variable ou une fonction.

Troisième type d’instruction : les boucles. Elles permettent la répétition d’un bloc d’instruction tant qu’une condition est respectée. Ce sont les boucles ‘Tant que’. La boucle ‘Pour’ n’est qu’un cas particulier. 

Dernier type d’instruction pour cet article : les interactions avec l’utilisateur. Retenons en 2. ‘Afficher’ permet de montrer une information à l’utilisateur. ‘Lire’ permet de récupérer une information saisie par l’utilisateur dans une variable. 

L’algorithme se base sur une convention. Si celle-ci vous semble incomplète, vous pouvez en définir une autre tant que vous en donnez les clés à ceux qui vont le traduire en langage machine. Passons maintenant aux travaux pratiques et écrivons le jeu du ‘Plus ou Moins’. 

L’exemple

Programme ‘Plus ou Moins’
    Entrée : Nombre_à_Trouver de type Entier
    Sortie : Resultat de type Texte
    Autres variables :
        Nombre_Essais de type Entier

Traitement :
    Nombre_Essais ← 10
    Tant que Nombre_Essais > 0 ou Nombre_à_Trouver ≠ Nombre_saisi 
        Nombre_Essais ← Nombre_Essais - 1
        Afficher ‘Saisir un nombre : ’
        Lire Nombre_saisi
        Si Nombre_saisi < Nombre_à_Trouver Alors
            Afficher ‘Plus !’
        Fin Si       
        Si Nombre_saisi > Nombre_à_Trouver Alors
            Afficher ‘Moins !’
        Fin Si       
    Fin Tant
    Si Nombre_Essais > 0 Alors
        Afficher ‘Bravo !!! Tu as gagné !!!’
        Resultat← ‘Victoire’
    Sinon 
        Afficher ‘Perdu. Le nombre était ’ Nombre_à_Trouver 
        Resultat ← ‘Défaite’
    Fin Si

Conclusion

Il est bien sûr possible d’améliorer l’algorithme pour rendre le jeu plus accessible à l’utilisateur. Ce n’est pas l’objectif ici. Le but de l’algorithme est de poser le problème et ainsi de prendre du recul. L’erreur classique du développeur débutant est de coder directement. Le risque est alors de ne pas atteindre son objectif. Alors, si vous bloquez sur un programme : prenez un papier et un crayon. 

Partager l'article !!

J’ai de la chance !!!