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


Probráno

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.