Algoritmusok ábrázolása

Nem volt egyszerű dolog a számítógép programozását megtanulni. Az első segítséget Neumann János adta a programozóknak, mivel olyan (jól megjegyezhető és világosan áttekinthető) jeleket honosított meg, amelyekkel a legbonyolultabb algoritmus is leírható. Néhány ilyen (ma már szabványosított) jelölést láthatunk az ábrán. Ezekkel például a már említett csonkagúla-számítási algoritmus a következő alakban írható le:

A gépi algoritmusok fontos eleme a logikai elágazás. Ez teszi lehetővé, hogy egy feladatban a pillanatnyi részeredménytől függően többféle változatban is folytatódjék az algoritmus. Jól szemlélteti lehetőségeinket (és elkövethető hibáinkat is) a következő kis történet:

Sobri Jóska betyárbandája egy csárdában ütötte fel tanyáját. A vezér utasította egyik betyárját, hogy

  menjen ki az útkereszteződéshez,

  rejtőzzék el, és várjon.

  Ha jön egy kereskedő, üsse le,

  vegye el minden pénzét, majd

  nézze meg, hogy mennyi az idő. Ha már elmúlt este 8 óra, térjen vissza a csárdába,

  ha nem, várjon tovább.

Sobri Jóska hiába várta vissza a betyárt, az - fegyelmezetten végrehajtva az utasítást - éhen halt az útkereszteződésnél. Miért? Hol volt a hiba? Úgy mondjuk, örökös ciklusba került: várt csak várt, hiszen csak azután nézhette meg az időt, ha éppen leütött egy kereskedőt. Ha 8 óra után nem jött több áldozat, "szegény" betyár hiába várt.

Elkerülhette volna az örökös ciklust, ha az alábbi ábra szerint járt volna el:

Akármilyen nevetségesnek is tűnik ez a feladat, kezdő programozók gyakran beleesnek ilyen hibába, és utólag (folyamatábra nélkül) nehéz kideríteni a tévedést. A gyakorlatban a logikai feltételek - amelyek alapján a gépet döntésre kell kényszeríteni - nagyon sokfélék lehetnek. A programozó ötletességén is múlik, hogy (célszerű utasítássorozattal) gyors és eredményes, jól működő programot tud-e készíteni.

Ezért célszerű, hogy lehetőség szerint minden esetben készítsünk a logikai felépítésnek jól megfelelő folyamatábrát.