Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Nápoveda
Premenné
Operátory
Riadiace štruktúry
Funkcie
Elementy, objekty a ich hierarchická štruktúra
Príklad



Ostatné kapitoly
Umelé ryby
Umelé mravce
GeNeSiS


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Riadiace štruktúry

GeNeSiS obsahuje tieto riadiace štruktúry:

  1. if/elif/else/end - riadiaca štruktúra pre vetvenie programu;
  2. while/end - riadiaca štruktúra pre vytváranie cyklov;
  3. for/end - riadiaca štruktúra pre vytváranie cyklov;
  4. foreach/end - riadiaca štruktúra pre vytváranie cyklov.

Riadiaca štruktúra if/elif/else/end slúži na vytváranie "vetiev" príkazov. Všeobecný zápis je nasledovný:

if (výraz1)
blok_príkazov_1
elif (výraz2)
blok_príkazov_2
else
blok_príkazov_3
end

Bloky elif a else sú nepovinné, počet elif blokov je neobmedzený. Vyhodnocovanie jednotlivých blokov prebieha sekvenčne zhora nadol, ak sa daný blok vyhodnotí ako pravdivý (true), tzn. že jeho hodnota je iná ako 0, vykoná sa príslušný blok príkazov. Ak sú všetky bloky vyhodnotené ako nepravdivé (false), vykoná sa (ak existuje) blok else.

Riadiaca štruktúra while/end slúži vytváranie cyklov. Všeobecná syntax je nasledovná:

while (výraz)
bloky_príkazov
end

Ak sa výraz vyhodnotí ako pravdivý, vykonajú sa bloky_príkazov a opäť sa vyhodnotí výraz. Takto sa celý cyklus opakuje dovtedy, kým je výraz vyhodnocovaný ako parvdivý, ak sa však vyhodnotí ako nepravdivý, program pokračuje vo vykonávaní príkazu, ktorý nasleduje za štruktúrou while (tj. pokračuje prvým príkazom za end).

Riadiaca štruktúra for/end slúži podobne ako while na vytváranie cyklov. Všeobecný tvar je nasledovný:

for (iniciálna_hodnota_iterátora; výraz; inkrementácia_iterátora)
bloky_príkazov
code>end

Riadiaca štruktúra foreach/end prechádza bloky_príkazov pre každý argument v zozname_argumentov práve raz, pričom hodnotu argument-u priradí iteračnej premennej iteračná_premenná. Syntax je nasledovná:

foreach iteračná_premenná (arument_1 [argument_2 ...])
bloky_príkazov
end

Pozrite si nasledujúci príkaz a skúste si ho napísať:

str s
str list = "super velky pudel"
foreach s ({arglist {list}})
echo "je" {s} "?"
end

Hore
Kontakt: Marek Bundzel