11. hodina - Program s opakovaním¶
Beháme po lúke a zaznamenávame si našu GPS pozíciu. Napíš podprogram
gps
, ktorý získa GPS pozíciu ako náhodné súradnicex
,y
. Na tomto mieste nakreslí značku'+'
a pod ňu vypíš pozíciu – dve číslax
,y
. Po 10 zavolaniach to môže vyzerať nasledovne:
Vytvor program bez grafickej plochy, ktorý pomoc príkazu
print
vypíše text'Teším sa na prázdniny'
5-krát pod seba.
V obidvoch predchádzajúcich programoch si mal viackrát nakopírované príkazy
gps()
aleboprint(...)
. Aby si ich nemusel opakovane kopírovať, môžeš to zapísať jednoduchšie:dvojbodka je tu veľmi dôležitá:
for i in range(5): print('Teším sa na prázdniny')
príkaz nechaj odsunutý – Python tam automaticky vloží 4 medzery
Spusti takýto program.
Vyskúšaj namiesto
5
dať číslo10
a program znovu spusti. Experimentuj aj s inými číslami, napríklad1
,100
a podobne.
Uprav program takto a spusti ho:
for i in range(5): print('Teším sa na prázdniny') print('=====================')
Ak si správne postupoval, po spustení uvidíš:
Teším sa na prázdniny ===================== Teším sa na prázdniny ===================== Teším sa na prázdniny ===================== Teším sa na prázdniny ===================== Teším sa na prázdniny ===================== >>>
Je dôležité odsadiť príkazy, ktoré tvoria telo cyklu. Vyskúšaj, čo vypíše takto upravený program:
for i in range(5): print('Teším sa na prázdniny') print('=====================')
Ako program funguje?
slovom
for
začína príkaz cyklučíslo
5
tu označuje počet opakovaní
for i in range(5):
print('Teším sa na prázdniny')
print('=====================')
odsunuté riadky tvoria telo cyklu – tieto príkaz sa vykonajú 5-krát
Otvor program, ktorý si vyriešil v úlohe 1 a desať volaní
gps()
zapíš pomocoufor
cyklu.
Vytvor nový podprogram
cerveny_stvorec()
. Ten nakreslí na náhodné súradnice červený štvorec so stranou10
. Použi cyklusfor
na to, aby si nakreslil2000
farebných štvorcov.
Doplň do predchádzajúceho programu podprogram
modry_stvorec()
. Zabezpeč, aby telo cyklu obsahovalo volania oboch podprogramov:cerveny_stvorec() modry_stvorec()
Vyskúšaj aj takýto program, v ktorom budú dva cykly za sebou – dostal si rovnaký obrázok ako predtým?
for i in range(2000): cerveny_stvorec() for i in range(2000): modry_stvorec()
Vytvor nový program, ktorý nakreslí hviezdnu oblohu:
Návod:
Napíš podprogram
hviezdicka
, ktorý kreslí na náhodnú pozíciu malý žltý štvorček. Veľkosť jeho strany bude tiež náhodné číslo z rozsahu napríklad od2
po4
.Tmavomodrú oblohu nakresli ako veľký obdĺžnik s farbou
'navy'
.Potom zavolaj
1000
krát podprogramhviezdicka
.
Je daný nasledujúci program:
import random for i in range(5): n = random.randint(1, 100) print('bolo vylosované číslo', n)
Slovami popíš, čo program vykoná.
Napíš program, ktorý simuluje hádzanie dvomi kockami. Zapíš pomocou
for
cyklu5
hodov, pričom v tele sa do dvoch premenných priradia dve náhodné čísla, vypíšu sa a vypíše sa aj ich súčet. Výpis môže vyzerať takto:Na prvej kocke padlo číslo 4 Na druhej kocke padlo číslo 3 Súčet oboch čísel je 7 Na prvej kocke padlo číslo 2 Na druhej kocke padlo číslo 4 Súčet oboch čísel je 6 Na prvej kocke padlo číslo 5 Na druhej kocke padlo číslo 2 Súčet oboch čísel je 7 Na prvej kocke padlo číslo 3 Na druhej kocke padlo číslo 1 Súčet oboch čísel je 4 Na prvej kocke padlo číslo 1 Na druhej kocke padlo číslo 4 Súčet oboch čísel je 5
Napíš program, ktorý pomocou grafických príkazov nakreslí na náhodných miesta
5
hracích kociek. Kocku kresli ako štvorec, do ktorého je vpísané náhodne vygenerované číslo. Použifor
cyklus, v ktorom budú všetky priradenia aj kreslenia.Ak chceš nakresliť kocku s veľkými číslami, pridaj do príkazu
create_text
:canvas.create_text(x, y, text=random.randint(1, 6), font='arial 50')
(*)
Vyrob nový program – generátor náhodného QR kódu:Obrázok sa skladá z veľkého počtu čiernych štvorčekov. Každý má veľkosť
10
a je nakreslený na náhodnej pozícii v mriežke s21x21
políčkami.