JavaScript/Kenjiro995/Bankomat
Online editor
editovatNení nutné cokoliv instalovat protože existují online editory.
- https://replit.com/ - osvědčil se mi při ukládání vytvořených programů, při vytváření nové relace si lze vybrat z mnoha programovacích jazyků
- https://jsfiddle.net/ - ideální pro počáteční experimentování (použít pro tuto hodinu)
- okno HTML - použití scriptu v html
- okno CSC - pro kaskádové styly
- okno JavaScript + No-libray (pure JS) - pro psaní čistě v JavaScriptu
Bankomat v1.0
editovatvar bankovky = [5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1];
var castka = prompt("Jakou částku chceš vybrat? ");
var i = 0;
while (castka > 0) {
while (castka > bankovky[i]) {
document.write(bankovky[i], "Kč", "<br>");
castka -= bankovky[i];
}
i++;
}
Vstup:
Jakou částku chceš vybrat? 25000
Výstup:
5000Kč 5000Kč 5000Kč 5000Kč 2000Kč 2000Kč 500Kč 200Kč 200Kč 50Kč 20Kč 20Kč 5Kč 2Kč 2Kč
Ve výstupu je ovšem drobná chyba, bankomat vybral o jednu korunu méně. Zkuste opravit a najít chybu:
Problém spočívá ve spatně zvolené podmínce. Místo castka > bankovky[i] je správné napsat castka >= bankovky[i]. Jinak bude vždy chybět jedna koruna. Bankomat bude vypisovat tak dlouho dokud zarážka nenarazí na částku větší než koruna a dál nevypíše. Ale pokud částka větší nebo rovno bankovce, tak vypíše i poslední korunu.
while (castka >= bankovky[i]) {
Vstup:
25000
Výstup:
5000Kč 5000Kč 5000Kč 5000Kč 5000Kč
Ve formátování zobrazování částky je chyba vypisuje 5000Kč, lepší by bylo aby vypisoval 5000 Kč (s mezerou mezi částkou a měnou):
Místo špatného kódu:
document.write(bankovky[i], "Kč", "<br>");
Je lepší před Kč vložit mezeru:
document.write(bankovky[i]," Kč", "<br>");
Výstup:
5000 Kč 5000 Kč 5000 Kč 5000 Kč 5000 Kč
Vysvětlete co znamená zjednodušený zápis i++ a castka -= bankovky[i]. Jaký je jejich úplný matematický tvar?:
- i++ je i = i + 1
- castka -= bankovky[i] je castka = castka - bankovky[i]