Umíte pascalsky - 6.lekce ... |
Umíte pascalsky? 6.lekce |
Vytisknout |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Základní příkazy - 3.část Dnes dokončíme základní příkazy cyklem while a repeat. Cyklus While Pokud neznáme explicitně, kolikrát se má příkaz opakovat, ale známe podmínku pro opakované provedení příkazu, pak je tu příkaz while. Má tvar: while podmínka do příkaz podmínka za klíčovým slovem while je výraz typu boolean příkaz je jediný příkaz - tělo cyklu. Pokud chceme v těle cyklu více příkazů, musíme použít složeného příkazu (begin ... end) Realizace: Vyhodnotí se podmínka. Má-li hodnotu true, provede se příkaz a opět se vyhodnotí podmínka. Tento proces se opakuje znovu. Příkaz se neprovede - tedy cyklus while skončí - když podmínka má hodnotu false. Pokud je tedy podmínka splněna, příkaz se opět provádí, v cyklu setrváváme. Pozor na nekonečný cylus! Musí tedy nastat situace, kdy podmínka splněna nebude,potom se cyklus ukončí. Cyklus while je tedy cyklus s podmínkou setrvání v cyklu na začátku cyklu. Příklad: Následující cyklus: kolik:=1; while kolik <= 5 do begin write(kolik); kolik:=kolik+1; end; vytiskne 12345 Příklady: Příklad1: Sestavte program pro výpočet zadané přirozené mocniny zadaného přirozeného čísla pomocí cyklu while. Např. 3 5 = 243 Jedničku opakovaně násobíme trojkou, dokud to neprovedem 5 krát. Myšlenka (hrubý algoritmus): Načteme základ a exponent. Jedničku opakovaně násobíme základem, dokud je počet násobení menší než exponent. Program může vypadat takto:
Cyklus Repeat Pokud neznáme explicitně, kolikrát se má příkaz opakovat, ale známe podmínku, kdy se má opakované provádění příkazu ukončit, pak použijeme cyklus Repeat. Má tvar: repeat příkaz1; ... příkazn; until podmínka repeat,until klíčová slova příkaz1,...,příkazn opakované příkazy - tělo cyklu podmínka je výraz typu boolean Realizace: Postupn2 se provedou všechny příkazy příkaz1,...,příkazn v uvedeném pořadí. Potom se vyhodnotí podmínka. Má-li hodnotu false, opět se provedou příkazy těla cyklu - proces se opakuje. Má-li podmínka hodotu true, příkazy se již neprovedou - cyklus se ukončí. Je-li podmínka splněna, cyklus repeat končí. Pozor na nekonečný cylus! Musí tedy nastat situace, kdy podmínka bude splněna, potom se cyklus ukončí. Cyklus repeat je tedy cyklus s podmínkou ukončení v cyklu na konci cyklu. Příklad: Následující cyklus: kolik:=0; repeat kolik:=kolik+1; write(kolik); until kolik=5; vytiskne 12345 Příklady: Příklad2: Sestavte program pro výpočet zadané přirozené mocniny zadaného přirozeného čísla pomocí cyklu repeat. Např. 3 5 = 243 Jedničku opakovaně násobíme trojkou, skonči až to bude 5 krát. Myšlenka (hrubý algoritmus): Načteme základ a exponent. Jedničku opakovaně násobíme základem a skončíme, až bude počet násobení roven exponentu. Program může vypadat takto:
Domácí úkol: 1) Sestavte program pro nalezení největšího čísla ze zadaného počtu celých čísel pomocí cyklu while. 2) Sestavte program pro nalezení nejmenšího čísla ze zadaného počtu celých čísel pomocí cyklu repeat. On-line účast na řešení úkolu Pomocí volby Řešit můžete (po přihlášení) odeslat vaše řešení domácího úkolu (každý úkol smíte řešit jen jednou). Volbou Hodnocení si přečtete hodnocení a komentář od vyučujícího. Dotaz nebo připomínku můžete opakovaně zasílat pomocí tlačítka Dotazy, Komunikace (na levém okraji) zobrazuje příklad možné komunikace s vyučujícím. |