I diagrammi di Nassi-Shneiderman (per semplicità d'ora in poi DNS) sono un linguaggio grafico per la scrittura di algoritmi, sviluppato nel 1972 Isaac Nassi e Ben Shneiderman. Questo linguaggio mantiene la immediatezza visiva dei flow chart, ma nello stesso tempo presenta una struttura simile a quella dei moderni linguaggi di programmazione strutturati. In particolare i DNS hanno strutture diverse per rappresentare le selezioni e i cicli.
Un DNS (detto anche strutturogramma), come un flowchart, è diviso in blocchi. I principali di questi blocchi sono:
1) IL BLOCCO PROCESSO
Il blocco processo rappresenta l'intero programma (o una sua subroutine o funzione, nel caso dei programmi suddivisi in sottoprogrammi). Esso viene rappresentato da un rettangolo con un nome. All'interno di tale blocco, si trovano le istruzioni del programma.
2) SEQUENZE DI ISTRUZIONI
Una sequenza di istruzioni semplici è rappresentata semplicemente come una serie di blocchi rettangolari uno sotto l'altro:
3) SELEZIONI
Una selezione a due vie è rappresentata in questo modo:
Il caso di sinistra rappresenta una selezione in cui c'è un'azione (S) sia sulla condizione (cond) vera (V) che su quella falsa (F); il caso di destra invece presenta un'azione (S) solo sulla condizione falsa (F).
4) CICLI
Un ciclo invece si rappresenta in questo modo:
dove cond è la condizione che fa ripetere il ciclo.
Un esempio dovrebbe essere sufficiente per illustrare meglio l'uso di questo linguaggio. Consideriamo nuovamente l'algoritmo per il calcolo dell'elevamento a potenza. Scritto nel linguaggio DNS diventa:
Si osservi come le sequenze di istruzioni possono "incastrarsi" all'interno dei blocchi di selezione (in giallo) e ciclo (in blu). Non c'è limite al numero di istruzioni che è possibile inserire in una selezione o in un ciclo.
Come mostra l'esempio qui sotto, è possibile inserire un blocco dentro un altro (nel caso specifico, una selezione è stata inserita in un ciclo):
STRUCTORIZER: un programma multi piattaforma per disegnare ed eseguire diagrammi di Nassi-Shneiderman
precedente - successiva
Sito realizzato in base al template offerto da
http://www.graphixmania.it