Structogramme
Le structogramme ou graphe NSD, modèle[1] proposé par Nassi-Shneidermann, est une description graphique des instructions nécessaires à la résolution d'un problème. Il s'agit de graphes emboîtés qui permettent de représenter des traitements séquentiels, des tests et des répétitions.
Les éléments suivant la norme DIN 66261
[modifier | modifier le code]Un structogramme se lit du haut vers le bas, comme d'ailleurs n'importe quel code source. Voici les éléments et structures les plus importants :
Généralités
[modifier | modifier le code]En général, le nom du programme ou de la méthode est écrit en haut du structogramme. On distingue entre un structogramme d'un simple programme et celui d'une méthode (procédure ou fonction) :
Programme
[modifier | modifier le code]Le structogramme d'un programme a des coins "carrés".
Méthode
[modifier | modifier le code]Le structogramme d'une procédure ou fonction est représenté avec des coins "ronds". Si la méthode possède des paramètres ou donne un retour, cela est généralement aussi noté dans l'entête.
Voici l'exemple d'un programme qui calcule l'aire d'un cercle.
Instruction
[modifier | modifier le code]Les instructions sont écrites dans des boîtes carrées.
Voici un exemple d'un programme qui calcule la somme de deux nombres entrés au clavier.
- Tout d'abord, le programme lit le nombre "A",
- puis le nombre "B".
- Ensuite il calcule la somme des deux et sauvegarde celle-ci dans la variable "SOMME".
- Finalement, le résultat, c'est-à-dire le contenu de la variable "SOMME", est affiché à l'écran.
Structure alternative
[modifier | modifier le code]Ces structures permettent de distinguer, sur base d'une condition, dans quelle direction le programme doit évoluer. En effet, le programme peut ainsi distinguer deux ou plusieurs voies et exécuter en fonction de cela différentes instructions.
La structure "si"
[modifier | modifier le code]La structure alternative permet au programme de distinguer, selon une expression booléenne (=condition) donnée, deux cas différents. Le résultat de l'expression booléenne est soit VRAI, soit FAUX. Si le résultat est VRAI, la partie gauche (V) du structogramme est exécutée, sinon, la partie droite (F) est suivie.
(V) se trouve toujours à gauche et (F) toujours à droite.
Il est aussi possible, que la partie droite reste vide, c'est-à-dire qu'aucune instruction ne soit exécutée si la condition est fausse. Dans ce cas on dessine le symbole de l'ensemble vide dans la case (F).
La structure "cas"
[modifier | modifier le code]La structure "cas" permet de distinguer plusieurs cas selon la valeur d'une expression donnée. Elle permet de distinguer théoriquement un nombre illimité de cas. Si aucun des cas donnés ne valide l'expression, la dernière colonne "sinon" est exécutée.
(dans l'exemple ci-dessus, il n'y a pas d'instructions à exécuter, c'est pourquoi toutes les colonnes contiennent des ensembles vides.)
Structure répétitive
[modifier | modifier le code]Une structure répétitive, encore appelée une "boucle", permet de répéter une ou plusieurs instructions un certain nombre de fois. Il existe différents types de structures répétitives:
La structure "pour"
[modifier | modifier le code]La structure répétitive "pour" sert à répéter des instructions données un certain nombre de fois. Cette structure peut être utilisée si on connaît d'avance le nombre de répétitions dont on a besoin. La forme générique dans la norme DIN 66261 est la suivante:
Hors norme, la boucle "pour" est souvent représentée comme un "C".
Cette boucle possède un compteur <COMPTEUR> qui va d'une valeur initiale <VAL_DEBUT> à une valeur finale <VAL_FIN>. À chaque étape, le compteur est incrémenté généralement d'une unité.
Ainsi, le programme suivant affiche 10 fois le mot "Hello" à l'écran.
La structure "tant que"
[modifier | modifier le code]Dans la norme DIN 66261, la boucle TANT QUE a la même forme que la boucle POUR, c'est-à-dire la forme d'un "L" retournée. La condition est mise dans l'en-tête comme pour la boucle POUR.
La condition se présente sous la forme "TANTQUE (i < j)"
La structure "répéter"
[modifier | modifier le code]Fortement similaire à la structure de la boucle TANTQUE, elle diffère au niveau de sa forme. Si la boucle TANTQUE forme un "L" retourné, la boucle RÉPÉTER forme un "L", la condition est mise dans le pied du "L".
Notes et références
[modifier | modifier le code]- Il existe plusieurs méthodes graphiques pour décrire un algorithme. Elles permettent de décrire les différentes opérations sous forme d’un schéma indiquant les différents ordres et conditions traités.
Annexes
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]- Organigramme de programmation
- DRAKON, langage algorithmique de programmation visuelle
Liens externes
[modifier | modifier le code]- A short history of structured flowcharts (Nassi-Shneiderman Diagrams), de Ben Shneiderman
Bibliographie
[modifier | modifier le code]- I. Nassi, B. Shneiderman, Flowchart techniques for structured programming, SIGPLAN Notices XII, .
Logiciels
[modifier | modifier le code]- Nessi dessinez, éditez et interprétez vos structogrammes (GPL)
- Structorizer – éditeur de structogrammes pour Linux, Mac OS X & Microsoft Windows, licence GNU General Public License
- Code::Blocks EDI orienté C++ permettant la création de diagrammes de Nassi-Schneiderman