Nassi -Shneidermanův diagram je grafickým znázorněním strukturovaných algoritmů a programů vyvinutých v roce 1972 americkými postgraduálními studenty Benem Schneidermanem a Isaacem Nassim.
Vzhledem k tomu , že strukturované programování nepoužívá bezpodmínečné skoky , Ben Schneiderman se rozhodl, že šipky používané ve vývojových diagramech nejsou potřeba k psaní strukturovaných algoritmů. Poté, co přišel na různé způsoby zobrazení hlavních řídicích struktur (sekvencí, větví a cyklů ), pak společně s Isaacem Nusseym svůj nápad do detailu rozpracoval. Společně napsali článek „Flowchart Technique for Structured Programming“, který byl publikován ve vědeckém časopise SIGPLAN Notices v srpnu 1973.
Nassi-Schneidermanovy diagramy se v některých zemích rozšířily, zejména v Německu , kde pro ně dokonce vyvinuli oficiální normu Německého institutu pro normalizaci : DIN 66261.
Nassi-Schneidermanovy diagramy mají oproti vývojovým diagramům řadu výhod při vývoji strukturovaných algoritmů a programů:
Všechny prvky Nassi-Schneidermanova diagramu mají obdélníkový tvar a liší se pouze svým vnitřním obsahem.
Prováděná akce (včetně příkazu jazyka v programu nebo dílčího úkolu v algoritmu) je v Nassi-Schneidermanových diagramech znázorněna jako obdélník, ve kterém je zapsáno označení akce (příkazu) nebo formulace dílčího úkolu.
Příklad zadání dílčího úkolu:
Najděte nejmenší prvek v poli |
Příklad záznamu spustitelného příkazu (při psaní programu v jazyce Pascal ):
writeln('Ahoj světe!') |
Při psaní sekvenční prováděcí struktury se prvky kreslí vertikálně jeden po druhém. V tomto případě musí mít všechny prvky sekvence stejnou šířku – díky tomu má celá sekvence také obdélníkový tvar. Například:
Otevřete soubor pro čtení |
Přečtěte si první řádek souboru |
Vytiskněte načtenou hodnotu na obrazovku |
zavřít soubor |
Zápis stejného algoritmu ve formě Nassi-Schneidermanova diagramu pomocí jazyka Pascal :
reset(f) |
readln(f, str) |
writeln(str) |
zavřít (f) |
Struktura jednoduché větve je znázorněna jako obdélník rozdělený vodorovnou čarou na dvě části. Nahoře je záhlaví větve a dole jsou dvě větve větve oddělené svislou lištou. Záhlaví nakreslí dvě čáry vedoucí z horních rohů na začátek čáry oddělující větve. V trojúhelníku získaném nahoře je zapsána podmínka větvení, do dvou spodních trojúhelníků nad větvemi jsou podepsány hodnoty podmínky odpovídající těmto větvím, například „pravda“ a „nepravda“, nebo "Ano i ne".
Struktura vícenásobného výběru je znázorněna podobně jako struktura jednoduché větve, pouze hlavní větev a trojúhelník nad ní jsou rozděleny svislými čarami na mnoho částí. Výraz přepínače je zapsán v horním trojúhelníku, odpovídající hodnoty přepínače jsou zapsány nad větvemi.
Opakující se struktura s podmínkou na začátku je nakreslena jako obdélník, uvnitř kterého je v pravé dolní části nakreslen další obdélník. Nad vnitřním obdélníkem je napsán název cyklu a uvnitř je tělo cyklu.
Příklad zápisu cyklu s předběžnou podmínkou (v tomto příkladu je tělem cyklu sekvence dvou akcí):
Od smyčky s předpokladem se liší pouze tím, že vnitřní obdélník je nakreslen v pravé horní části vnějšího a pod ním je napsán nadpis.
Příklad zápisu cyklu s postcondition (v tomto příkladu je tělem cyklu sekvence dvou akcí):
Vnitřní obdélník je nakreslen na pravé straně a nedotýká se horní a dolní části vnějšího obdélníku. Podmínka smyčky je napsána nahoře.