Cyklus for

Syntaxe

for proměnná := výraz1 to výraz2 do příkaz

for proměnná := výraz1 downto výraz2 do příkaz

proměnná - identifikátor proměnné ordinálního typu (integer, char, boolean), řídící proměnná cyklu

výraz1, výraz2 - výrazy kompatibilní s typem řídící proměnné

Činnost

přepis pomocí známých konstrukcí:

for proměnná := výraz1 to výraz2 do příkaz

for proměnná := výraz1 downto výraz2 do příkaz;

proměnná := výraz1;

pom := výraz2;

while proměnná <= pom do

  begin příkaz; proměnná:=succ(proměnná) end;

proměnná := výraz1;

pom := výraz2;

while proměnná >= pom do

  begin příkaz; proměnná:=pred(proměnná) end;

Důsledky:

·       tělo cyklu nemusí proběhnout

·       hodnoty výrazů se počítají pouze 1x (časová efektivita) - změna proměnných v nich obsažených neovlivní počet průchodů cyklem

·       nedoporučuje se měnit hodnotu řídící proměnné uvnitř cyklu (standard Pascalu uvádí, že to nejde)

·       podle standardu nemá řídící proměnná po ukončení cyklu definovanou hodnotu

·       počet průchodů cyklem je jednoznačně určen před prvním vstupem do cyklu (lze vyskočit příkazem skoku, ale zatím zakazuji)

Příklad

Sestavte program, který vytiskne na obrazovku 5x slovo „POCITAC“.

for I:=1 to 5 do writeln(‘POCITAC’)

Lze i jinak, např.:

for I:=0 to 4 do writeln(‘POCITAC’)

nebo

for I:=5 to 1 downto writeln(‘POCITAC’)

·       upravte program tak, že opakovaný text a počet opakování se zadá z klávesnice

Použití cyklů

while

repeat

for

„musíme“ použít, pokud předem neznáme počet průchodů cyklem

lze použít pokud předem známe počet průchodů cyklem

tělo nemusí proběhnout

tělo proběhne alespoň jednou

tělo nemusí proběhnout

 

Větvení case

vícenásobné větvení, vybírá právě jednu z možností

Syntax

case výraz of

 hodnota1: příkaz;

 hodnota2: příkaz;

 ...

 else příkaz

 end

·       výraz (selektor) - výraz ordinálního typu (ne longint)

·       hodnota1, hodnota2 ... - konstanty stejného typu, může jich být více pro 1 příkaz, lze použít i interval

·       else příkaz - volitelná část, nemusí být uvedena

Činnost

·       vyhodnocení výrazu

·       vyhledání hodnoty výrazu v seznamu hodnot příkazu case a vykonání příslušného příkazu

·       pokud hodnota v seznamu není uvedena, provede se příkaz za else, pokud else chybí, neprovede se nic