19 - Vetvenia + cykly
Doteraz sme sa naučili niekoľko základných prvkov programu:
premenné a výrazy s nimi
podprogramy a udalosti
vetvenie
if
cykly
for
Je na čase začať ich kombinovať, lebo tak sa nám mnohonásobne rozšíria možnosti, čo vieme urobiť. Rozcvičíme si podmienky a cykly samostatne a potom ich budeme spájať.
Úloha 1
Kamarátku pozdravíte „Ahoj
“, ale viete, že starších ľudí treba pozdraviť slušne, napríklad „Dobrý deň
“. Napíšte program, v ktorom do premennej vek
priradíte vek človeka. Potom použite príkaz vetvenia na to, aby sa program podľa veku rozhodol, ktorý z uvedených dvoch pozdravov vypíše. Otestujte, aké pozdravy sa vypisujú pre rôzne hodnoty premennej vek
.
Úloha 2
Na brigáde v bufete vás zaplatia podľa takéhoto pravidla:
ak budete pracovať menej ako
10
hodín, tak zarobíte3
eurá za hodinu,inak dostanete plat
4
eurá za hodinu.
Do premennej hodin
priraďte počet odpracovaných hodín. Vypíšte hlášku o počte odpracovaných hodín. Potom pomocou príkazu vetvenia vypíšte, koľko zarobíte. Program vypíše napríklad:
Alebo:
Úloha 3
Predchádzajúca úloha sa dá riešiť aj takto:
Doplňte namiesto vybodkovaných častí správne výrazy. Overte, že program korektne počíta plat pre rôzne hodnoty premennej hodin
.
Úloha 4
Vytvorte skeč, ktorý vygeneruje náhodnú hodnotu premennej cas
z rozsahu 0
až 18
a podľa tejto hodnoty nakreslí buď krajinku s trávou a oblohou. Ak je cas < 8
, obloha je tmavá a svieti mesiac, inak je obloha svetlá a svieti slnko.
Úloha 5
Nasledujúci program vypíše denný harmonogram:
Čo program vypíše?
Program sa dá zapísať aj takto, iba pomocou jedného cyklu:
Telo cyklu for
obsahuje jeden vnorený príkaz vetvenia if else
. Vyskúšajte, ako funguje táto verzia.
Vetvenie vnorené v cykle
Úloha 6
Podobne, ako v predchádzajúcom príklade, použite cyklus s vnoreným vetvením a vypíšte:
Úloha 7
Pomocou jediného cyklu s vnoreným vetvením nakreslite takéto koráliky.
Úloha 8
Vytvorte grafický ekvalizér. Na obrazovke je 10 dielikov nakreslených vedľa seba. Prvých niekoľko je zelených, ostatné sú červené. To, koľko je tých niekoľko, je náhodné číslo z rozsahu 0
až 10
.
Pozor! Ak vám program robí toto, máte niečo zle:
Úloha 9
Vložte svoj program do setup
a draw
a rozpohybujte svoj ekvalizér.
Ak sa vám nepáči, že bliká rýchlo, tak môžete program spomaliť pomocou príkazu frameRate(10);
ktorý dáte do setup
.
Vetvenie vnorené vo vetvení
Už poznáme vetvenie pomocou podmienky, či je niečo menšie alebo väčšie. Ako by sme urobili vetvenie, ktoré sa bude pýtať, či je niečo rovné?
Úloha 10
Urobte program, ktorý 10-krát vygeneruje náhodné celé číslo od 1
do 6
, ako keby sme hádzali kockou. V každom kole cyklu si uložte vygenerované čislo do premennej kocka
.
Keď hodíme 6ku, tak vypíše: Vyhravas!
.
Inak vypíše napríklad Hodil si 3, prehravas
.
Keď sa chceme spýtať, či je premenná k
rovná číslu, 6, použijeme takýto znamienko ==
:
Takto môže vyzerať výpis:
Úloha 11
Urobte nový program (alebo upravte program z predošlej úlohy), ktorý vypisuje čísla hodené na kocke a spočíta, koľkokrát padla 6
ka:
Úloha 12
Futbaloví rozhodcovia sa dohodli, ako budú hráčov hodnotiť za priestupky:
ak hráč spraví
0
priestupkov, hrá férovo,ak spraví
1
alebo2
priestupky, dostáva žltú kartu,inak dostane červenú a je vylúčený z hry.
Vidíme, že v tejto úlohe je viac podmienok. Pozri si a vyskúšaj toto riešenie:
Doplň do tabuľky, čo program vypíše, ak do premennej pocet
priradíme hodnotu:
pocet = 0
pocet = 1
pocet = 2
pocet = 3
pocet = 4
pocet = -1
Úloha 13
Cyklistov budeme zaraďovať do 3 kategórií, podľa toho koľko kilometrov prejdú za hodinu:
ak prejde menej ako
10
kilometrov, koláčikov, je to začiatočníkak prejde aspoň
10
ale menej ako20
kilometrov, je to pokročilýpre aspoň
20
kilometrov, bude hodnotený ako expert.
Vytvorte program, v ktorom najprv do premennej kilometre
priradíte počet prejdených kilometrov. Program sa potom rozhodne, akú hlášku vypíše.
Otestujte, že program zobrazí správnu hlášku pre čísla 1
, 9
, 10
, 19
, 20
, 100
.
Úloha 14
V Úlohe 11 vidno, že počítač nevie správne skloňovať slová. Mal by vypísať:
Padla 1 šestka...
Padli 2 šestky...
Padlo 5 šestiek...
Napíš program, v ktorom do premennej n
priradíš číslo a počítač zobrazí gramaticky správnu vetu.
Úloha 15
Chceš porovnať svoj vek s kamarátkou. Vytvor program, v ktorom do premenných ja
a ona
priradíš tvoj vek a vek tvojej kamarátky. Program ich porovná a podľa toho vypíše: Sme rovnako starí, Mám menej rokov alebo Ona je mladšia.
Úloha 16
Vlajku Nemecka môžeš nakresliť aj tak, že pomocou cyklu vygeneruješ 10000
náhodných súradníc x
z intervalu 10, 350
a y
z intervalu 10, 250
. Na vygenerované súradnice nakreslíš farebný krúžok s polomerom 5
. Farbu krúžku zvolíš podľa y
-ovej súradnice:
ak je
y < 90
kresli čierny krúžok,inak, ak je
y < 170
kresli červený krúžok,inak nakresli žltý krúžok.
Vyskúšaj tento program spustiť aj pre menší počet farebných krúžkov (napríklad 100
alebo 1000
)
Úloha 17 **
Vytvor program, ktorý podobne, ako v predchádzajúcej úlohe, nakreslí vlajku bývalého Československa:
Last updated