Le pseudocode doit décrire toute la logique de l'algorithme afin que la programmation devienne une tâche de traduction de lignes de pseudocode en code réel.
Pour chacun des éléments suivants, expliquons pourquoi chaque pseudocode pourrait être considéré comme un « bon » ou un « mauvais » exemple de pseudocode :
Exemple 1.1 :
PROGRAM IsEvenOrOdd:
var num = number;
IF (num % 2 === 0)
THEN Print "even";
ELSE Print "odd";
ENDIF;
END.
Q. Qu’en pensons-nous ?
R. Ce n’est pas un bon exemple. Ici, nous utilisons "var" dans notre pseudocode alors qu'il devrait être lu en anglais simple ! De plus, nous ne devrions pas utiliser la syntaxe javascript "===" dans notre conditionnel. Un non-programmeur saurait-il que
num % 2 === 0
indique un nombre pair ?
Exemple 1.2 :
PROGRAM IsEvenOrOdd:
Read number;
IF (number divided by two has no remainder)
THEN Print the number is even;
ELSE Print the number is odd;
ENDIF;
END.
Q. Qu’en pensons-nous ?
R. C'est mieux. C'est plus proche de l'anglais. Il indique clairement ce que nous essayons de réaliser et comment, sans nous enliser dans les détails du code. Même quelqu'un qui ne code pas peut nous aider à vérifier notre logique. Un nombre qui peut être divisé par deux, proprement – sans laisser de reste – est-il pair ? Y a-t-il autre chose d'étrange ?
De Soyez créatif aujourd’hui
Exemple 2.1 :
Make PB&J Sandwich:
Gather bread, peanut butter and jelly.
Apply peanut butter to slice of bread.
Apply jelly to another slice of bread.
Bring the two slices of bread together.
Eat and enjoy.
Q. Qu’en pensons-nous ?
R. C’est un bon point de départ. C’est un bon ensemble d’instructions et intuitif à suivre. Cependant, nous ne savons toujours pas quelles sont les étapes physiques nécessaires.
Prenez une seconde pour imaginer. Imaginez si vous n'aviez jamais préparé de sandwich auparavant. Jamais. Pensez aux instructions dont vous auriez besoin pour ce premier sandwich. Un ordinateur n'a pas de véritable mémoire. Chaque fois qu’il démarre une tâche, il n’a aucun souvenir de l’avoir exécutée auparavant. Nous devons le dire à chaque étape, à chaque fois. Nous devons les décomposer en étapes plus petites pour que l’ordinateur puisse les comprendre.
Exemple 2.2 :
PROGRAM MakePB&JSandwich:
Grab a paper plate;
Open bread container;
Grab bread package;
Untwist bread package;
Open bread bag and remove two slices;
Place slices on paper plate;
Grab a plastic knife;
Open peanut butter jar;
Use knife to scoop out peanut butter;
Apply peanut butter to one slice of bread;
Spread peanut butter on slice;
Place knife on plate;
Close peanut butter jar;
Open jelly bottle;
Squeeze jelly onto second bread slice;
Close jelly bottle;
Place down jelly;
Pick up knife;
Spread jelly on slice;
Bring two slices of bread together;
Cut slices in half down the middle;
Throw knife in the trash;
Pick up one half of sandwich;
Enjoy;
END.
Q. Qu’en pensons-nous ?
A. La séquence de cet exemple est très complète ! Cependant, nous supposons toujours dans certaines conditions que nos ustensiles ou ingrédients existent déjà. Et si nous n’avions plus d’assiettes ? Allons-nous plutôt prendre une serviette pour y déposer notre sandwich ? Et si nous n'avions plus de gelée ? Allez-vous jeter le sandwich ou le manger avec juste du beurre de cacahuète ?
Les ordinateurs ne sont pas intelligents. Nous devons leur donner des instructions étape par étape pour tenir compte des conditions. Ils ne peuvent pas s’adapter pour apporter des changements sans qu’on leur le dise explicitement. La programmation est une série de tâches qui ne peuvent être réalisées que si un certain nombre de conditions sont remplies.
Les ordinateurs ne peuvent pas s’adapter, mais nous le pouvons. Votre premier passage au pseudocode ne couvrira probablement pas tout. Une fois que vous en saurez plus, vous pourrez revenir pour mettre à jour et refactoriser votre pseudocode.
Le pseudocode ne consiste pas seulement à écrire les étapes que vous connaissez déjà. C'est un outil pour vous aider à résoudre le problème. Avant de pouvoir écrire du pseudocode pour résoudre le problème, nous devons connaître le problème.
Voici quelques étapes qui peuvent vous aider à résoudre les problèmes :
Enfin, nous prenons des mesures. C'est à ce moment-là que nous commençons enfin à écrire du code. Nous nous battons dur pour faire de petits pas, vérifions que chaque étape réalise ce que nous voulons, ce que nous attendons, avant de continuer. Si nous en faisons trop à la fois et que les choses se cassent, ce qui arrive toujours, nous ne saurons pas quelle est la cause du problème. Nous ne saurons pas à quelle partie faire confiance. Les humains prospèrent grâce à des victoires faciles. Nous devons voir des progrès. Rappelez-vous cela. Utilisez ça. Célébrez vos victoires.
Q. Quelle est la place du pseudocode dans ces étapes ?
A. Décomposer OU commencer petit
Ce processus est itératif. Nous continuons à tourner en rond et à répéter les étapes précédentes, mais à un niveau différent.
Lorsque nous abordons un problème pour la première fois, nous voyons la situation dans son ensemble. "Break it down" nous fait faire de grands pas. Ensuite, nous prenons l'une de ces étapes et « le décomposons ». Maintenant, en commençant petit, nous écrivons du pseudocode pour illustrer le problème.
Le pseudocodage prouve que nous avons identifié le problème, que nous l'avons compris conceptuellement et que nous l'avons décomposé en petites étapes que nous pouvons suivre.
Il n’existe pas de syntaxe fixe pour le pseudocode. Il faut juste que ce soit clair, simple et concis.
Si vous vous sentez bloqué, n'hésitez pas à utiliser cette syntaxe :
Référencement : introduction au pseudocode
Structure générale du pseudocode
PROGRAM <ProgramName>:
<Do Stuff>
END.
Sélection : instructions IF/ELSE
IF (<Condition>)
THEN <Statements>;
ELSE <Statements>;
ENDIF;
Itération : BOUCLE
WHILE (<Condition>)
ENDWHILE;
Suivez les instructions dans starter_code/pseudo_code_practice.md