Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu
2
Programové cykly OB21-OP-EL-KONP-JANC-M-3-024
3
Mnoho úloh spočívá v triviálních operacích, které se však musí opakovat mnohokrát za sebou. O to se postarají struktury cyklů, které jsou důležitou součástí všech programovacích jazyků. Programové cykly se tedy používají pro opakované provádění příkazů. Příkazům, které se opakovaně provádějí, říkáme tělo cyklu.
4
Programové cykly V jazyce Pascal existují tři druhy programových cyklů: while – do (while = zatímco platí, do = dělej) repeat – until (repeat = opakuj, until = dokud neplatí …) for – to (downto) – do (for = pro, to = do hodnoty, downto = až do hodnoty)
5
Cyklus while – do Syntax příkazu je whilepodmínka dopříkaz; Podmínka představuje normální logický (booleovský) výraz, který může nabývat hodnoty pravda (true – logická jedna) anebo nepravda (false – logická nula).
6
Cyklus while – do Příkaz cyklu je prováděn tak dlouho, dokud je podmínka pravdivá. Když se stane nepravdivou, cyklus je ukončen a program pokračuje prvním příkazem za cyklem. Příkaz v cyklu může být také složený, tedy v bloku begin…end může být víc příkazů. Test podmínky pro provádění cyklu je na jeho začátku. To znamená, že aby byl cyklus proveden alespoň jednou, musí být na začátku podmínka pravdivá.
7
Cyklus while – do Aby byl cyklus ukončen, musí se podmínka stát při provádění cyklu nepravdivou. To může být provedeno například jedním z příkazů v cyklu. Tento cyklus se často používá pro čtení dat ze souboru. V tomto případě je podmínka tvořena funkcí, která při čtení souboru zjistí jeho konec a cyklus se ukončí. Pro zvýraznění podmínky (lepší čitelnost) může být podmínka uzavřena v závorkách, např. while (X >= 12) do
8
Cyklus repeat – until Syntax příkazu je repeatpříkaz; until podmínka; Příkaz v cyklu je prováděn, pokud je podmínka nepravdivá. Test podmínky je proveden na konci cyklu, to znamená, že cyklus je proveden alespoň jednou. Aby byl cyklus ukončen, musí se podmínka při jeho provádění stát pravdivou. To může být provedeno například jedním z příkazů v cyklu.
9
Cyklus repeat – until Příkaz v cyklu může být také složený. Protože slova repeat a until vytvářejí již sama o sobě blok, uzavření příkazů v cyklu mezi begin a end není nutné. Logické podmínky jsou stejné jako u příkazu while – do. Podmínka může být opět uzavřena v závorkách, např. repeat … until (X > 15 );
10
Cyklus repeat – until Jednou z možností použití tohoto cyklu je pozastavení programu před jeho ukončením, aby byly vidět výsledky chodu programu bez nutnosti přepínání do uživatelského okna. Cyklus je prázdný, nejsou v něm žádné příkazy.
11
Cyklus repeat – until repeat until keypressed; Funkce keypressed (= klávesa stisknuta) vrací logickou hodnotu false, není-li stisknuta jakákoli klávesa (mimo Ctrl, Alt, apod.), v opačném případě vrací hodnotu true. Stisknutím klávesy se podmínka stane pravdivou a příkaz cyklu repeat – until se ukončí a program pokračuje následujícím příkazem za cyklem. V tomto případě je cyklus ukončen vnější událostí, tedy stisknutím klávesy uživatelem.
12
Cyklus repeat – until Cyklus může být napsán na jednom řádku: repeat until keypressed; Funkce keypressed je v programové jednotce crt. Tato jednotka musí být v programu deklarována v sekci uses. V cyklu repeat – until je možné použít také logickou proměnnou typu boolean.
13
Cyklus for - to (downto) – do Existují dva způsoby provádění tohoto cyklu. Řídící proměnná cyklu se může zvětšovat, nebo zmenšovat. for i := pochodnota to konhodnota dopříkaz; Řídící proměnná cyklu i se zvětšuje. Cyklus je prováděn od počáteční hodnoty pochodnota do konečné hodnoty konhodnota. Musí tedy platit pochodnota <= konhodnota.
14
Cyklus for - to (downto) – do for i := pochodnota downto konhodnota dopříkaz; Řídící proměnná cyklu i se zmenšuje. Cyklus je prováděn od počáteční hodnoty pochodnota do konečné hodnoty konhodnota. Musí tedy platit pochodnota >= konhodnota. Řídící proměnná cyklu je obvykle typu integer, nesmí být typu real. Použití cyklu for – downto – do je méně časté.
15
Cyklus for - to (downto) – do Jestliže je pochodnota = konhodnota, cyklus je proveden jednou. Je-li konhodnota < pochodnota, ( pro cyklus for – to – do) nebo konhodnota > pochodnota (pro cyklus for – downto – do), cyklus není proveden ani jednou a je vynechán (přeskočen). Příkaz v cyklu může být také složený, více příkazů může být uzavřeno v bloku begin – end.
16
Cyklus for - to (downto) – do Tento cyklus se používá, když je předem známo, kolikrát má být opakován, tedy jaká je počáteční a konečná hodnota řídící proměnné. Naproti tomu cykly while – do a repeat – until jsou ukončeny logickou podmínkou. Cyklus for – to – do se často používá pro opakovaný výpočet nějakého vzorce pro různé hodnoty proměnných, tedy pro výpočet tabulky.
17
Cyklus while – do Příklad programu na cyklus while – do program While_do; { Cyklus while - do While_do.pas } uses crt; var N : integer;
18
Cyklus while – do begin writeln; N := 0; while (N < 5) do begin writeln('N = ',N); N := N + 1; end; readln; end.
19
Cyklus while – do Program vypíše čísla 0 až 4 a potom skončí. Příkaz while testuje hodnotu proměnné N a pokud je podmínka splněna, zvýší ji o 1. Pokud splněna není, přejde na další příkaz za cyklem, v našem případě na příkaz readln. Příkaz readln zastaví běh programu pro zobrazení výsledků na obrazovce a čeká na stisk klávesy ENTER.
20
Cyklus repeat – until Příklad cyklu repeat – until program Repeat_1; { Cyklus Repeat-Until Repeat_1.pas } uses Crt; var N : integer;
21
Cyklus repeat – until begin writeln; N := 5; repeat writeln('N = ',N); N := N - 1; until (N = 0); repeat until KeyPressed; end.
22
Cyklus repeat – until Další příklad cyklu repeat – until program Repeat_2; { Cyklus Repeat-Until s logickou promennou. Repeat_2.pas } uses crt; var N : integer; Ukoncit : boolean;
23
Cyklus repeat – until begin Ukoncit := FALSE; repeat writeln; write('Vloz N : '); readln(N); case (N) of 1 : writeln('N je rovno 1'); 5 : writeln('N je rovno 5'); -7 : writeln('N je rovno -7'); 10,12,20 : writeln('N je 10, 12, nebo 20'); 22..50 : writeln('N je mezi 22 a 50'); 0 : Ukoncit := TRUE; else writeln('N neni rovno zadne konstante v prikazu case'); end; until Ukoncit; end.
24
Cyklus for - do Příklad cyklu for - do program For_Do_1; { Cyklus for-to-do. For_Do_1.pas } uses Crt; var I : integer;
25
Cyklus for - do begin writeln; for I:=1 to 5 do writeln(I:5); repeat until KeyPressed; end
26
Děkuji za pozornost Ing. Ladislav Jančařík
27
Literatura K. Putz: Pascal učebnice základů programování, Grada Publishing, Praha 2007
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.