11. hodina - Program s opakovaním


  1. 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úradnice x, y. Na tomto mieste nakreslí značku '+' a pod ňu vypíš pozíciu – dve čísla x, y. Po 10 zavolaniach to môže vyzerať nasledovne:

    _images/11_01.png

  1. Vytvor program bez grafickej plochy, ktorý pomoc príkazu print vypíše text 'Teším sa na prázdniny' 5-krát pod seba.


  1. V obidvoch predchádzajúcich programoch si mal viackrát nakopírované príkazy gps() alebo print(...). 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.


  1. Vyskúšaj namiesto 5 dať číslo 10 a program znovu spusti. Experimentuj aj s inými číslami, napríklad 1, 100 a podobne.


  1. 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


  1. Otvor program, ktorý si vyriešil v úlohe 1 a desať volaní gps() zapíš pomocou for cyklu.


  1. Vytvor nový podprogram cerveny_stvorec(). Ten nakreslí na náhodné súradnice červený štvorec so stranou 10. Použi cyklus for na to, aby si nakreslil 2000 farebných štvorcov.

    _images/11_02.png

  1. Doplň do predchádzajúceho programu podprogram modry_stvorec(). Zabezpeč, aby telo cyklu obsahovalo volania oboch podprogramov:

    cerveny_stvorec()
    modry_stvorec()
    
    _images/11_03.png

  1. 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()
    

  1. Vytvor nový program, ktorý nakreslí hviezdnu oblohu:

    _images/11_04.png

    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 od 2 po 4.

    • Tmavomodrú oblohu nakresli ako veľký obdĺžnik s farbou 'navy'.

    • Potom zavolaj 1000 krát podprogram hviezdicka.


  1. 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á.


  1. Napíš program, ktorý simuluje hádzanie dvomi kockami. Zapíš pomocou for cyklu 5 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
    

  1. 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ži for cyklus, v ktorom budú všetky priradenia aj kreslenia.

    _images/11_05.png

    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')
    

  1. (*) Vyrob nový program – generátor náhodného QR kódu:

    _images/11_06.png

    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 s 21x21 políčkami.