Nassi-Shneiderman, diagramma di
Nassi-Shneiderman, diagramma di metodo grafico di rappresentazione di un algoritmo impiegato in particolare qualora si voglia esprimere l’algoritmo in un linguaggio di programmazione procedurale. Il metodo è dovuto a due esperti statunitensi di informatica, teorica e applicata, I. Nassi e B. Shneiderman. Esso prevede una descrizione del flusso di istruzione in blocchi che possono essere contenuti uno nell’altro. I diagrammi di Nassi-Shneiderman hanno forti analogie con i → diagrammi di flusso ma, a differenza di questi, introducono simboli già strutturati; per questo motivo prendono anche il nome di diagrammi strutturati (structured chart). Per ciascuno degli schemi fondamentali esiste una specifica rappresentazione; i vari diagrammi non sono collegati fra loro con simboli di interconnessione, come accade nei diagrammi di flusso, ma risultano giustapposti gli uni agli altri. Le strutture di controllo previste (→ Böhm-Jacopini, teorema di) sono:
• la sequenza, rappresentata con blocchi successivamente discendenti
dove A1 e A2 sono due istruzioni o gruppi di istruzioni da eseguire in successione;
• l’alternativa, regolata da un controllo C, rappresentata con uno schema che distingue due possibili percorsi
dove l’esecuzione dell’algoritmo procede verso la sequenza di istruzioni A1 se il valore logico del controllo è vero e verso la sequenza B1 se esso è falso;
• il ciclo iterativo non enumerato, nei due possibili casi:
dove, rispettivamente, il controllo C avviene prima di eseguire o dopo aver eseguito l’istruzione A;
• il ciclo iterativo enumerato:
dove l’esecuzione delle istruzioni nel corpo del ciclo dipende dall’incremento del valore della variabile contatore I, e si arresta quando questa supera il valore N.
Per esempio, il diagramma di Nassi-Shneiderman per rappresentare l’algoritmo che individua il maggiore tra due elementi distinti a e b è il seguente: