Počet bankovek a mincı́
Zadání:
Vytvořte program, ve kterém uživatel zadá částku, pro níž program vypíše nejmenší počet bankovek a mincí, který je potřeba na vyplacení částky.
Vstup programu: částka
Výstup programu: počet bankovek a mincí dohromady
Rozbor:
Použijeme zde následující metodu zjišťování počtu bankovek:
1. Začneme od největších bankovek a zjistíme, kolikrát se daná bankovka vejde do naší částky.
2. Tento počet přičteme k našemu počítadlu bankovek.
3. Snížíme částku o tyto bankovky.
4. Opakujeme tuto metodu do chvíle, kdy je částka nulová.
Proměnné použité v programu:
X ... zadaná částka [Integer]
POC ... počet bankovek [Integer]
POM ... pomocná proměnná, do které si budeme ukládat počet bankovek určitého druhu, jenž se vejde do naší částky [Integer]
i ... index bankovky v poli [Integer]
BaM ... konstantní pole obsahující české bankovky a mince [array of Integer]
Logické sestavení programu:
Nejdříve nastavíme proměnnou i na hodnotu 1, protože pole začíná indexem 1. Dále vynulujeme počítadlo POC. Nyní načteme částku X. Dále započneme cyklus s podmínkou na konci. Na začátku těla cyklu musíme rozhodnout, zda se daná bankovka do částky vejde alespoň jednou, tedy zda je částka větší nebo rovna bankovce.
1. Pokud částka je větší nebo rovna bankovce, do pomocné proměnné POM uložíme celočíselný podíl částky a bankovky. Dále zvýšíme počet bankovek POC o POM a do částky uložíme zbytek po podílu částky a bankovky.
2. Pokud je částka menší než bankovka, tak pokračujeme dalším příkazem.
Nyní musíme zvýšit i o 1, abychom při příštím průchodu cyklem zase kontrolovali další bankovku, protože i určuje index v poli s bankovkami.
Následuje řídicí podmínka cyklu, kde musíme rozhodnout, zda X je rovno 0.
1. Pokud X není rovno 0, opakujeme celé tělo cyklu.
2. Pokud X je rovno 0, pokračujeme příkazem za cyklem.
Vypsání počtu bankovek a mincí (POC).