12. hodina - Premenná cyklu¶
Tvoj mladší súrodenec našiel ľudovú riekanku:
kočka leze dírou pes oknem pes oknem nebude-li pršet nezmoknem nebude-li pršet nezmoknem
Vyrob program, ktorý ju vypíše pomocou
print
. Použifor
cykly, aby bolo v programe čo najmenej príkazovprint
.
Aha, takto vypíšeš čísla od
0
po9
– vyskúšaj:for i in range(10): print('číslo', i)
Ak si to správne zapísal, program po spustení vypíše:
číslo 0 číslo 1 číslo 2 číslo 3 číslo 4 číslo 5 číslo 6 číslo 7 číslo 8 číslo 9
Prečo to funguje?
i
je premenná, do ktorej príkazfor
postupne priraďuje čísla od0
po9
rozsah čísel je z intervalu
<0, 10)
for i in range(10):
print('číslo', i)
pre každé číslo sa vykoná telo cyklu a vypíše sa hodnota premennej
i
Čo treba v predchádzajúcom programe zmeniť, aby sa vypísali čísla:
0
,1
, …10
– teda, aj číslo10
1
,2
, …10
2
,4
, …20
10
,20
, …100
Vyskúšaj.
for
Príkaz for
čítame: „pre i v rozsahu(…) vykonaj telo cyklu“
Vytvor program, ktorý vypíše pomocou
for
cyklu čísla a ich druhé mocniny:0 na druhú je 0 1 na druhú je 1 2 na druhú je 4 3 na druhú je 9 4 na druhú je 16 5 na druhú je 25 6 na druhú je 36
Máme takúto rozprávku:
Na strome bolo 0 vrabcov, jeden priletel a už je na ňom 1 vrabcov Na strome bolo 1 vrabcov, jeden priletel a už je na ňom 2 vrabcov Na strome bolo 2 vrabcov, jeden priletel a už je na ňom 3 vrabcov Na strome bolo 3 vrabcov, jeden priletel a už je na ňom 4 vrabcov Na strome bolo 4 vrabcov, jeden priletel a už je na ňom 5 vrabcov Na strome bolo 5 vrabcov, jeden priletel a už je na ňom 6 vrabcov Na strome bolo 6 vrabcov, jeden priletel a už je na ňom 7 vrabcov Na strome bolo 7 vrabcov, jeden priletel a už je na ňom 8 vrabcov Na strome bolo 8 vrabcov, jeden priletel a už je na ňom 9 vrabcov Na strome bolo 9 vrabcov, jeden priletel a už je na ňom 10 vrabcov
Zapíš ju pomocou
for
cyklu.
Vrabce z predchádzajúcej rozprávky odlietajú – vymysli program, ktorý to pomocou cyklu
for
porozpráva:Na strome bolo 10 vrabcov, jeden odletel a zostalo na ňom 9 vrabcov Na strome bolo 9 vrabcov, jeden odletel a zostalo na ňom 8 vrabcov Na strome bolo 8 vrabcov, jeden odletel a zostalo na ňom 7 vrabcov Na strome bolo 7 vrabcov, jeden odletel a zostalo na ňom 6 vrabcov Na strome bolo 6 vrabcov, jeden odletel a zostalo na ňom 5 vrabcov Na strome bolo 5 vrabcov, jeden odletel a zostalo na ňom 4 vrabcov Na strome bolo 4 vrabcov, jeden odletel a zostalo na ňom 3 vrabcov Na strome bolo 3 vrabcov, jeden odletel a zostalo na ňom 2 vrabcov Na strome bolo 2 vrabcov, jeden odletel a zostalo na ňom 1 vrabcov Na strome bolo 1 vrabcov, jeden odletel a zostalo na ňom 0 vrabcov
Máme kartičky s číslami od
0
po9
, ktoré chceme náhodne rozložiť po ploche. Vytvor program, ktorý pomocou cyklu postupne nakreslí10
takých kartičiek na náhodným pozíciách:Číslo na kartičke nakreslíš takto:
canvas.create_text(x, y, text=i, font='arial 30')
Na chodníku je rozhodených päť bankoviek s hodnotami
10
,20
,30
,40
a50
. Napíš program, ktorý také bankovky nakreslí pomocou cyklufor
:
Nasledujúci program počíta
x
-ovú súradnicu a kreslí čísla:import tkinter canvas = tkinter.Canvas() canvas.pack() for i in range(8): x = i * 50 canvas.create_text(x, 100, text=i, font='arial 30')
Spusti program, aby si videl, čo urobí a vyplň nasledujúcu tabuľku:
hodnota v premennej
i
hodnota v premennej
x
keď sa zobrazí 0
keď sa zobrazí 1
keď sa zobrazí 2
keď sa zobrazí 3
keď sa zobrazí 4
keď sa zobrazí 5
keď sa zobrazí 6
keď sa zobrazí 7
Uprav predchádzajúci program tak, aby sa čísla kreslili približne na uhlopriečke:
Aký vzorec si vymyslel pre výpočet
y
-ovej súradnice?
V predchádzajúcom programe sa číslo
0
kreslilo za roh grafickej plochy, takže ho nebolo skoro vidieť. Uprav v ňom výpočet súradníc tak, aby bolo vidieť všetky čísla.
Vieš, ako vyzerá padajúci had z domina? Vytvor program, ktorý pomocou cyklu a obdĺžnikov nakreslí zatiaľ ešte stojace kocky domina:
(*)
Napíš program, ktorý pomocou cyklu a obdĺžnikov nakreslí takúto pyramídu: