2. B2. Az algoritmusok leírása pszeudokóddal

A könyvünkben több mint 80 algoritmust definiáltunk részletesen. Ahelyett hogy egy programozási nyelvet választottuk volna (és ahelyett, hogy azt kockáztattuk volna, hogy a nyelvet nem ismerő olvasó elveszti a fonalat), úgy döntöttünk, hogy pszeudokóddal írjuk le az algoritmusokat. Ezek legtöbbje érthető lesz azoknak, akik Javát, C++-t, Lispet vagy hasonló nyelveket használnak. Helyenként azonban matematikai formulákat, illetve mindennapi nyelvet használunk olyan részek leírásához, amelyek máskülönben nehezebben lennének olvashatók. Néhány egyéni vonásról is szót kell ejtenünk.

Statikus változók. A static kulcsszót egy olyan változó megjelölésére használjuk, amely kezdeti – vagy a rákövetkező értékadásból adódó – értékét a függvény első hívásánál kapja meg, és megtartja a függvény minden azt követő hívásánál. A statikus változó tehát hasonlít egy globális változóra abban, hogy a függvény egyedi hívását túléli, értéke azonban csak a függvényen belül férhető hozzá. A könyv ágensprogramjai statikus változókat „memória” létesítésére használnak. A statikus változókat kezelő programok „objektumként” implementálhatók olyan objektumorientált nyelvekben, mint a Java vagy a Smalltalk. A funkcionális nyelvekben az implementálásuk könnyen oldható meg a lambda-kifejezés végrehajtásával egy olyan környezeten belül, amelyben a szükséges változót definiáltuk.

Függvények mint értékek. A függvények és eljárások jelölésére nagybetűs neveket, a változók jelölésére pedig kis-, dőlt betűs neveket használunk. Egy függvényhívás legtöbb esetben tehát FN(x) képet nyújt. Megengedjük azonban, hogy egy változó függvényértéket is felvehessen. Ha az f értéke például a négyzetgyökfüggvény, akkor az f (9) által visszaadott érték a 3.

A tömbök 1-től kezdődnek. Ha másképpen nincs specifikálva, egy tömb első indexe mindig 1, ahogy ez a matematikában szokás, és nem 0, mint a Javában vagy a C-ben.

A beljebb szedett bekezdés fontos. A beljebb szedett bekezdést a hurok vagy a feltételes kifejezés hatáskörének megjelölésére használjuk, mint például a Python nyelvben, ellentétben a Javával és a C++-szal (ahol a zárójelezés használatos), illetve a Pascallal és a Visual Basickel (ahol egy end használatos).