Débutant

Comprendre un énoncé pour écrire un algorithme

Comprendre un énoncé pour écrire un algorithme

Lorsque l’on débute, que ce soit lorsque l’on apprend en autodidacte ou dans une salle de classe, on acquiert des connaissances et on nous montre des exemples à mettre en oeuvre. Et lorsque l’on vous donne un exercice à faire malgré que vous avez compris le cours, vous avez le symptôme de la page blanche.

Vous savez que vous avez les connaissances et que vous avez compris les informations que l’on vous a communiquées, mais vous n’arrivez pas à les ressortir.

Imaginez la programmation comme un puzzle : il y a d’un côté les pièces du puzzle et de l’autre le plan pour bien les utiliser et les placer. Un cours en classe ou un tuto va vous faire acquérir les pièces, mais très souvent ou maladroitement on ne vous donne pas le plan. Où plutôt on vous le donne sans comment vous en servir ou l’appliquer.

Acquérir ce plan et savoir l’utiliser le plus rapidement et le plus tôt possible va vous permettre non seulement de prendre des raccourcis en programmation, mais également la bonne attitude à avoir pour résoudre tous les problèmes que vous pourrez rencontrer en programmation.

Je vais vous donner quelques tips à appliquer pour décortiquer un énoncé d’algorithme afin de pouvoir vaincre le syndrome de la page blanche. Je considère donc que vous avez déjà les bases en algorithmique et que vous avez déjà essayé d’en faire. Le but de l’article n’est pas d’écrire un algorithme en entier, mais de vous montrer le raisonnement et les étapes pour arriver à l’écrire dans ses grandes lignes.

Commitstrip dora la codeuse

Source : http://www.commitstrip.com/fr/2014/07/16/and-they-started-to-learn-code-at-primary-school/

Repérer chaque élément de l’énoncé

Lire l’énoncé c’est une chose. Lire l’énoncé pour le comprendre en est une autre. En général les énoncés sont assez complet et précis pour ne pas poser de problème, mais il peut y arriver qu’il puisse manque de précision ou qu’il soit complètement incompréhensible au premier abord.

Si c’est le cas, alors abordez l’énoncé d’une autre façon en repérant tout simplement les éléments clés et pertinent de votre énoncé. Vous devez les isoler et les reformuler avec vos propres mots et inclure des mots-clés algorithmiques tel que les instructions si, pour, répéter, tant que, etc.

Je vous donne un exemple avec un énoncé trouvé sur la toile :

Écrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.

Il y a plusieurs éléments à prendre en compte et les voici dans l’ordre reformuler de manière plus précise :

  • Écrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne
    • On doit demander à l’utilisateur de saisir un nombre entre 10 et 20
  • jusqu’à ce que la réponse convienne
    • cela sous-entend que l’on va faire répéter l’opération jusqu’à ce que l’utilisateur entre une valeur comprise entre 10 et 20
  • En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! »
    • Si la réponse est supérieure à 20, on lui affichera le message « Plus petit »
  •  et inversement, « Plus grand ! » si le nombre est inférieur à 10
    • De même si c’est inférieur à 10, on affichera « Plus grand »

Vous voyez ? Rien qu’avec cet exercice simple, votre algorithme commence à se dessiner et il suffit d’appliquer tout simplement vos connaissances algorithmiques pour l’écrire et résoudre votre énoncé.

Il vous manque une information essentielle

Il peut arriver qu’avec cette méthode vous puissiez bien dessiner votre algorithme, mais qu’il y a une partie de l’énoncé que vous ne comprenez pas. Et bien souvent vous ne la comprenez pas parce que vous ne connaissez pas le terme ou ce qu’on vous demande.

Par exemple, si je vous demande de m’écrire un algorithme qui me permet de réaliser l’équation de Schrödinger je suis fort à parier que beaucoup de monde ne savent ce que fait cette équation.

Et je vous rassure j’en fais partie. C’est un sérieux problème, car c’est précisément ce qu’on attend de l’algorithme. Heureusement de nos jours, ce manque d’informations peut être vite comblé grâce à Internet ou par la personne qui a exposé l’énoncé.

Vous devez en abuser et poser toutes les questions complémentaires pour obtenir les informations manquantes à votre compréhension de votre problème. Et gardez en tête que vous ne devez pas avoir peur ou même honte de le faire. En fait c’est tout à fait naturel !

C’est même un prérequis de poser des questions, de faire répéter ou de ne pas comprendre directement quelque chose chez un développeur.

Réaliser votre algorithme

Une fois le manque d’informations comblées et que vous avez identifiées chaque partie importante de l’énoncé, il ne vous reste plus qu’à créer votre algorithme. Logiquement vous avez tous les points clés de votre algorithme et il ne reste plus qu’à réaliser votre algorithme.

Dans notre exemple énoncé, nous savons que nous devons demander à l’utilisateur de donner un nombre et de répéter cette demande si celui-ci n’est pas compris entre 10 et 20. On lui indiquera un plus petit si le nombre est plus grand que 20 et un plus grand si le chiffre est plus petit que 10.

Avez-vous remarqué les mot-clés en gras lorsque nous avons décortiqué le problème ? Il suffit de les reprendre pour constituer votre algorithme.

Pour résumer, vous allez avoir pour cet algorithme :

  • une instruction où vous allez notifier à l’utilisateur qu’il doit entrer un nombre compris entre 10 et 20
  • Une instruction « répéter » avec la condition « jusqu’à » ce que le nombre entré soit plus petit 20 et plus grand que 10
    • Dans l’instruction répéter, vous allez
      • Demander d’entrer le nombre
      • Vérifier le nombre
        • Si le nombre est plus petit que 10, vous allez afficher « Plus grand » 
        • Si le nombre est plus grand que 20, vous allez afficher « Plus petit » 

Et ensuite il ne vous reste plus qu’à transformer tout cela en langage algorithmique :

Variable N en Entier
Debut
Ecrire “Entrez un nombre entre 10 et 20 »
Répéter
Lire N
Si N < 10 Alors
Ecrire “Plus grand !”
SinonSi N > 20 Alors
Ecrire “Plus petit !”
FinSi
Jusqu’à  N > 10 et N < 20
Fin

Note : l’utilisation d’un tant que pourrait aussi faire l’affaire, mais vu que l’on exécute au moins une fois l’instruction, le répéter sera plus approprié.

En plus de cela, le tant que nous obligerait d’avoir une instruction en plus en initialisant la variable N à 0 ou 20 par exemple pour au moins rentrer dans l’instruction.

Une dernière chose à savoir sur les énonces d’algorithme

Vous demandez certainement pourquoi les énoncés d’algorithme sont bidon et pourris ? Vous avez raison de vous poser la question et également de le penser, car je suis comme vous. Oui les énoncés que vous pouvez avoir en cours de programmation sont pourris.

Ce sont très souvent des énoncés pour résoudre des formules de maths ou toute autre chose qui soyons honnête ,vous n’aurez jamais à faire dans votre carrière. Manque d’inspiration ou très fanboy de maths ? Je ne sais pas, mais je vous conseille de ne pas y prêter attention.

Ce n’est pas le sujet en lui qui est intéressant dans l’exercice. Ce sont les compétences que vous allez acquérir en les résolvant qui seront intéressantes. 2 d’entre elles notamment à savoir devenir autodidacte et savoir affronter un problème à résoudre.

Résoudre des problèmes d’algorithmique doit vous apprendre à avoir la bonne attitude pour les résoudre comme je vous l’ai montré en plus de savoir en écrire bien entendu. Cet exercice doit donc vous faire obtenir la double compétence.

De même que vous devez avoir le réflexe de rechercher de l’information supplémentaire pour acquérir de nouvelles connaissances si vous jugez que la problématique n’est pas précise ou que vous ne comprenez pas quelques choses.

C’est très important d’avoir ses compétences en tant que développeur.

Gardez donc bien cela en tête et cela vous permettra de supporter les énoncés bidon que l’on vous expose.

Bonus en vidéo

Si vous avez lu tout l’article, alors mes félicitations.

Les personnes qui ont lu cet article ont aussi lu :  Quel langage de programmation choisir pour débuter ?

Néanmoins de manière textuelle ce n’est pas forcément clair ou simple à comprendre la démarche.

J’ai donc choisi de réaliser le travail également avec une série de vidéo que vous pouvez voir dès maintenant juste en dessous.

Bon visionnage !

Partager ce contenu
  • 14
    Partages

2 Comments

  1. My

Leave a Comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

%d blogueurs aiment cette page :