5. CVIČENÍ * část b
Úvod ->
IKT Pascal - >
Cvičení ->
Cvičení 5 ->
Cvičení 5b
Poslední aktualizace: 13. 3.2006
Odkazy na cvičení a úkoly
- příklady č. 10 - 20
kolegyně Cibulkové zaměřené na problematiku větvení (blok PODMÍNKA) pomocí příkazu CASE.
Samostatně si procvičit.
- Internetový kurz Pascalu
lekce 4
(IKPL4) na téma větvení, rozhodovánína více větví pomocí příkazu CASE
- Internetový kurz Pascalu
cvičení 6
(IKPC04) typický příklad na větvení, rozhodování na více větví použitím příkazu CASE
Probráno
- Ordinální proměnná, nutné pro selektor v příkazu CASE
- Matematická funkce trunc, viz IKP lekce
- Zopakováno IF a navozeno k řešení pomocí CASE
- Probrány rozdíly IF a CASE, vhodnost použití
- Vývojové diagramy pro všechny probrané případy IF a CASE (viz dále)
- Exit - příkaz (procedura), který ukončí program, viz příklad IKPC06
CASE Rozhodování - větvení na více možností
Doplnění lekce 4
o obecný zápis příkazu CASE
case výraz of
hodnota1: příkaz1;
hodnota2: příkaz2;
...
[else příkaz999];
end;
výraz .... výsledkem výrazu je hodnota ordinálního typu, tj. hodnota u které známe předchůdce a následníka. ordinální = uspořádaná.
[něco] .......... údaj, hodnota, příkaz uvedený v hranatých závorkách je nepovinný, volitelný
Vývojové diagramy příkladu 9 (Cibulková, podmínka)
Zadání:
příklad 9 -
Střecha budovy má plochu 200 m2. K nátěru je možné použít jeden ze dvou druhů barev. U každého druhu známe spotřebu barvy v kilogramech na m2 plochy a cenu barvy v Kč za 1 kg barvy. Určete, kterou barvu je výhodnější použít, aby nátěr celé střechy vyšel levněji.
Vytvoříme různé varianty řešení, ale tentokrát si napřed zakreslíme do vývojovýchg diagramů. Pro přehlednost zápisu v diagramech si stanovíme proměnné. V těchto vývojových diagramech není řešen ROZDÍL, o kolik je která varianta dražší. V původním zádání Mgr. Cibulkové však toto je požadováno i naprogramováno. Zkuste si to sami.

Varianta A
Řešení pomocí IF. Není řešen případ pro rovnost. Tudíž vývojový diagram obsahuje logickou chybu.

Varianta B
Řešení pomocí IF. Je řešen případ pro rovnost, avšak speciální formou. Povšimněte si, že žádná podmínka IF nemá žádný příkaz ve větvi "NE". ==> Jinými slovy, nemá nic ve větvi ELSE. Toto řešení je docela přehledné, ale není vhodné pro všechny případy.

Varianta C
Řešení pomocí IF. Případ pro rovnost je řešen. Tentokrát pomocí vnořeného IF. Pro složitější případy může být tento způsob nepřehledný.

Varianta D
Řešení pomocí CASE. Je řešen případ pro rovnost. Toto řešení je nejlepší, protože je obecné pro větvení na více větví. Je také výrazně přehlednější pro více větví. Vyřeší všechny vícenásobné případy větvení narozdíl od varianty B, která je sice přehledná, ale není univerzální pro všechny případy.
