13. hodina - Výrazy v cykle


  1. Minule si vytváral program, ktorý v textovom režime pomocou príkazov for a print vypísal čísla a ich druhé mocniny. Vytvor takýto program, ale čísla a ich druhé mocniny zobraz v grafickej ploche pomocou príkazov canvas.create_text.

    _images/13_01.png

  1. Je daný nasledujúci program:

    import tkinter
    
    canvas = tkinter.Canvas()
    canvas.pack()
    
    y = 10
    for i in range(11):
        canvas.create_text(10, y, text=i)
        y = y + 20
    

    Doplň tabuľku, aby bolo vidno, ako sa menia premenné i a y počas vykonávania cyklu:

    i

    y v príkaze create_text

    y po vykonaní y = y + 20

    0

    10

    30

    1

    30

    2

    .

    .

    .

    .

    .

    .

    .

    .

    Akú hodnotu bude mať premenná y po skončení cyklu?


  1. Pomocou cyklu nakresli 9 štvorčekov so stranou 30 s medzerami 10. Použi premennú x, v ktorej bude x-ová súradnica ľavého horného rohu kresleného štvorčeka a v cykle ju zvyšuj o 40.

    _images/13_02.png

  1. Zlatokop našiel poklad, 10 zlatých kociek rôznych veľkostí. Tie postupne ukladal na stôl tesne vedľa seba. Vytvor program, ktorý taký poklad nakreslí. Každá zlatá kocka má náhodne zvolenú veľkosť z rozsahu od 10 po 40. Použi premennú na to, aby si do nej uložil náhodné číslo pre veľkosť kocky. Použi inú premennú, aby si evidoval x-ovú pozíciu kocky.

    _images/13_03.png

  1. Vylepši predchádzajúci program tak, aby bola medzi zlatými kockami medzera 5.

    _images/13_04.png

  1. Hráme počítačovú hru, ktorá má 10 levelov. Po úspešnom prejdení i-teho levelu získame i bodov. Napríklad, po prejdení prvého levelu získame 1 bod. Po prejdení druhého levelu sa nám ku skóre pripočítajú 2 body, takže spolu už máme 3 body. Po prejdení tretieho levelu sa nám pripočítajú 3 body, takže naše skóre bude 6 bodov atď. Napíš program, ktorý pomocou print a cyklu vypíše, ako rastie skóre po prejdení každého levelu.

    Po leveli 1 bude tvoje skóre 1 bodov.
    Po leveli 2 bude tvoje skóre 3 bodov.
    Po leveli 3 bude tvoje skóre 6 bodov.
    Po leveli 4 bude tvoje skóre 10 bodov.
    Po leveli 5 bude tvoje skóre 15 bodov.
    Po leveli 6 bude tvoje skóre 21 bodov.
    Po leveli 7 bude tvoje skóre 28 bodov.
    Po leveli 8 bude tvoje skóre 36 bodov.
    Po leveli 9 bude tvoje skóre 45 bodov.
    Po leveli 10 bude tvoje skóre 55 bodov.
    

  1. Poznáš rozprávku o prefíkanom mudrcovi a šachovi, ktorý sľúbil za odmenu toľko zrniek pšenice, koľko sa zmestí na políčka šachovnice? Pomôž šachovi v rozhodovaní, či je taká odmena adekvátna a vytvor preňho jednoduchý program, ktorý vypíše celkový počet zrniek na šachovnici. Na prvé políčko dáme 10 zrniek, na druhé 20, na tretie 30 atď. Políčok na šachovnici je 64.


  1. V skutočnosti predchádzajúca rozprávka bola taká, že na prvé políčko dáme 1 zrnko, ale na každé ďalšie dvojnásobok predchádzajúceho (t.j. 2, 4, 8, …). Vytvor program, ktorý zistí celkový počet zrniek na šachovnici.


  1. (*) Vytvor program, ktorý pomocou cyklu nakreslí vysielač na Ještěde:

    _images/13_05.png

    Kreslenie môžeš začať od spodného obdĺžnika. Ten má šírku 210 a výšku 10. Každý ďalší obdĺžnik leží na predchádzajúcom, je užší o 40 a vyšší o 10.