Conseils utiles

Pseudocode et organigrammes

Pin
Send
Share
Send
Send


Pseudocode - un langage compact, souvent informel, pour décrire des algorithmes, qui utilise les mots-clés de langages de programmation impératifs, mais omet les détails et la syntaxe spécifique qui ne sont pas essentiels pour comprendre l'algorithme. Conçu pour présenter l'algorithme à l'homme, et non pour la traduction par ordinateur et l'exécution ultérieure du programme.

Pseudocode

Lorsqu'ils enseignent le pseudo-code, de nombreux auteurs tentent de formaliser le pseudo-code et de lui donner l'apparence d'un langage de programmation, généralement le langage Pascal (fu, sucks). Je vais utiliser une approche légèrement différente - nous aurons des phrases usuelles avec un pseudo-code.

Qu'est-ce que le pseudo-code? Ceci est un enregistrement des commandes informatiques en langage humain commun. En conséquence, le programmeur obtient une forme intermédiaire entre le langage courant et le langage de programmation.

Prenons un exemple. Habituellement, les situations qui n’ont rien à voir avec la pratique sont choisies comme exemples. Nous allons considérer un exemple complètement différent, qui se retrouve constamment dans la pratique. Supposons que nous ayons dans un jeu de stratégie une carte de taille 64 par 64 cellules. Pour chaque personnage du jeu, vous devez vérifier qu'il ne va pas au-delà de la carte. Les coordonnées sont désignées par x (horizontal), y (vertical). De toute évidence, les coordonnées de tout caractère doivent être comprises dans l'intervalle [1. 64]. La phrase précédente est une pensée qui doit être exprimée dans un langage de programmation.

Puisque nous n’avons pas encore commencé à apprendre le C ++, écrivons cette idée en utilisant le pseudocode. De plus, les propositions doivent être construites uniquement à l'aide des constructions de base que nous avons étudiées dans la leçon précédente:

Ces quatre phrases limitent le mouvement du personnage. C'est du pseudo-code. Nous avons pu mettre en œuvre l'ensemble de la tâche à l'aide de quatre succursales et d'une succursale, chacune ayant un opérateur. Maintenant, ce pseudo-code peut être facilement traduit dans n’importe quel langage de programmation. Faisons-le pour C ++. Pour ce faire, dans le pseudocode, vous devez remplacer certains mots par des équivalents anglais et les actions mathématiques doivent être écrites dans un langage mathématique. Le mot si en anglais sera si (lu comme si):

C'est aussi un pseudo-code, même s'il est déjà plus proche des langages de programmation. Dans cette version du pseudocode, nous avons perdu quelque chose. Dont les coordonnées sont vérifiées ici? Pour indiquer que x, y sont les coordonnées des personnages du jeu, nous les écrirons par un point: unit.x, unit.y. Ici, vous pouvez voir que x et y appartiennent à l'unité et non au bâtiment ou à l'arbre. Regardons la nouvelle option:

Il s’agit toujours de pseudo-code, mais il ne contient aucune redondance - nous nous sommes débarrassés de tous les mots supplémentaires. Cette option est très proche des langages de programmation. En C ++, le code final ressemblera à ceci:

Ce code C ++ fonctionne complètement! En passant, nous allons utiliser un code très similaire dans arkanoid pour contrôler le ballon.

Ici, j'ai montré trois options pour le pseudocode. Au début, vous utiliserez la première option, en écrivant le code sous forme de phrases en russe. Si vous êtes suffisamment occupé, le pseudo-code devient inutile au bout de trois semaines, lorsque vous parvenez à apprendre les constructions de base du langage de programmation, mais au début, c'est une chose très utile.

L'exemple simple que nous avons examiné ci-dessus nous montre clairement ce que fait le programmeur.

Qu'est-ce qu'un programmeur devrait pouvoir faire?

La tâche principale du programmeur est la suivante: traduire les pensées dans un langage compris par les ordinateurs. Voyons comment cela se passe.

Tout d'abord, nous voulions créer une stratégie, puis nous avons commencé à réfléchir aux différentes parties du futur programme. Nous voulons donc que le jeu se déroule sur un champ limité de 64 * 64 cellules. La règle suivante en découle: tout personnage du jeu doit être dans ce champ. Chaque personnage a des coordonnées qui spécifient son emplacement sur la carte. Pour vous assurer que le personnage est à l'intérieur du champ, vous devez vérifier si le personnage a traversé l'un des quatre côtés du champ. Nous pouvons maintenant écrire un pseudo-code (ou un code tout de suite, si nous connaissons assez bien un langage de programmation):

En conséquence, dans une phrase: "Tout personnage du jeu doit figurer dans le champ 64 * 64" - quatre branches sont apparues, chacune d’elles étant composée d’un opérateur.

La chose la plus difficile et la plus importante au début de l’enseignement de la programmation est d’apprendre à traduire les idées du langage humain en langages de programmation (les principaux outils dont nous avons parlé dans la dernière leçon).

Organigrammes

Un organigramme est une représentation graphique d'un programme.

Les organigrammes sont construits à partir de blocs individuels. De plus, différents moyens de langages de programmation sont décrits dans différents blocs sur les schémas fonctionnels. Par exemple, la condition sur laquelle est construite la branche est représentée par un losange. L'opérateur dans lequel les informations sont traitées est représenté par un rectangle. Discutons les différents blocs plus en détail.

Tout programme a un début et une fin. Dans les organigrammes, le début et la fin des programmes sont indiqués par des rectangles aux angles arrondis. Dans ces rectangles sont écrits les mots: "Début", "Fin".

Les organigrammes distinguent deux types d’opérateurs: les opérateurs de traitement de données et les opérateurs d’entrée / sortie.

L'unité de traitement de données est représentée par un rectangle. Dans l'opérateur de traitement de données, différents calculs sont effectués (addition, soustraction, division, multiplication de nombres). Regardons un programme simple avec trois opérateurs:

Comme vous pouvez le constater, les blocs sont reliés par des lignes avec des flèches. Les flèches indiquent la séquence des blocs.

Le deuxième type d'opérateurs dans les schémas fonctionnels est constitué de blocs d'entrée / sortie de données. Ils sont désignés comme des quadrangles à côtés biseautés. Dans de tels blocs, les données sont entrées / sorties: impression des données à l'écran, obtention des coordonnées du curseur de la souris, réception des touches du clavier sur lesquelles l'utilisateur a appuyé:

Dans les deux images précédentes, nous voyons l'exécution séquentielle des instructions. Voyons maintenant comment les branches sont affichées dans les organigrammes. Pour créer des branches dans les diagrammes, utilisez un bloc de conditions, indiqué par un losange:

Si la condition enregistrée dans le losange est satisfaite, le code est exécuté le long de la ligne oui et s'il n'est pas satisfait, la branche non est exécutée.

Dans la dernière leçon, nous avons vu des exemples de branches dans lesquelles il y avait plus de deux branches. Pour implémenter de telles branches à l'aide de blocs de conditions, vous devez utiliser l'incorporation de ces blocs les uns dans les autres.

Il est également possible de créer des branches avec une seule branche. Dans les organigrammes, cela ressemblera à ceci:

Notez qu'il n'est pas nécessaire de tracer des lignes à gauche et à droite du bloc de conditions, il est également possible d'en bas. Dans ce cas, seules deux branches doivent quitter le bloc de branche: l'une qui remplit la condition, l'autre qui ne satisfait pas la condition.

Dans la même image, j'ai montré quelques nouvelles choses: des ellipses et des cercles.

Des points de suspension sont utilisés pour indiquer que plusieurs opérateurs sont manquants à ce stade.

Le cercle dit que c'est une continuation du code qui a été commencé ailleurs ou que le code sera continué ailleurs. Les cercles sont particulièrement utiles pour dessiner des schémas fonctionnels sur du papier. En utilisant des cercles, vous pouvez casser le code si le programme ne figure pas sur une page.

Si vous avez besoin de casser le code avec plusieurs branches, les cercles sont numérotés.

Le bloc suivant est utilisé pour indiquer les cycles dans les diagrammes:

À l'intérieur du pentagone, la condition pour continuer le cycle est écrite. Si la condition est remplie, le code de la boucle est également exécuté. Notez que le code de la boucle revient toujours au début de la boucle. Si la condition n'est pas remplie, l'instruction suivante après l'exécution de la boucle est exécutée.

Et maintenant, voyons à quoi ressemblera le diagramme du programme, dont nous avons examiné le pseudocode ci-dessus:

J'ai amélioré le programme un peu. Ici, non seulement les coordonnées d'une unité sont vérifiées, mais également celles de toutes les unités du jeu. Les unités elles-mêmes sont stockées dans le tableau des unités. Il y a vingt unités dans le jeu. Pour vérifier les coordonnées de toutes les unités, utilisez la variable current (current - current, lue comme carrent) L'image ne montre pas deux choses: comment le courant variable est augmenté et que x et y sont vérifiés pour l'unité actuelle.

L'augmentation du courant devrait se produire après toutes les branches, mais avant que le processeur ne revienne au début du cycle. J'ai raté ce moment où je faisais un dessin (et maintenant je suis réticent à le corriger).

Conclusion

Ici, en général, et tout cela selon le pseudo-code et les organigrammes. J'ai raté quelques points, j'espère, j'ajouterai plus tard.

La chose la plus importante que vous devriez avoir apprise: le pseudo-code et les organigrammes sont des outils auxiliaires pour la création de programmes. Utiliser ou ne pas les utiliser dépend de vous - nous ne sommes pas à l'école. Il est possible que la création de pseudocodes et la création d’organigrammes vous aident à comprendre les premiers programmes. Mais vous devez le faire vous-même, dans mes leçons, je n'utilise ni l'un ni l'autre.

Autres options de pseudocodes

L’utilisation du pseudocode a pour objectif principal de permettre à une personne de comprendre l’algorithme, de rendre la description plus perceptible que le code source d’un langage de programmation. Le pseudocode est largement utilisé dans les manuels scolaires et les publications scientifiques et techniques, ainsi que dans les premières étapes du développement de programmes informatiques. Les organigrammes et les motifs de dragon peuvent être vus comme une alternative graphique au pseudo-code.

Contrairement aux langages de programmation, aucune norme n'est définie pour la syntaxe de pseudo-code et l'auteur de chaque publication peut utiliser son pseudo-code d'origine. En pratique, les auteurs empruntent généralement les constructions dont ils ont besoin à un ou plusieurs langages de programmation connus et courants. De nos jours, les éléments syntaxiques de langages tels que Pascal, C, Java sont généralement empruntés, Algol était souvent utilisé dans des publications plus anciennes.

Les éléments techniques, tels que la description des variables, le code dépendant du système, l'allocation de mémoire et les opérations de désallocation, sont exclus du pseudo-code, à moins qu'ils ne soient des éléments essentiels de l'algorithme considéré. Les expressions mathématiques sont souvent incluses dans le pseudocode sous la forme qu'elles sont habituellement écrites en mathématiques, et non dans les langages de programmation, et certains fragments du pseudocode peuvent être des expressions d'une langue naturelle (russe, anglais, etc.).

Autres options de pseudocodes

Dans certains cas, un pseudo-code est un système d'instructions d'une machine abstraite, par exemple un P-code, un pseudo-code d'une machine MIX fictive, etc. et lancé dans le programme d'émulation de cette machine hypothétique.

Regarde la vidéo: Algorithmie #2 - pseudo-code (Mai 2022).

Pin
Send
Share
Send
Send