12. hodina - Premenná cyklu


  1. 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ži for cykly, aby bolo v programe čo najmenej príkazov print.


  1. Aha, takto vypíšeš čísla od 0 po 9 – 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íkaz for postupne priraďuje čísla od 0 po 9

  • 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


  1. Čo treba v predchádzajúcom programe zmeniť, aby sa vypísali čísla:

    1. 0, 1, … 10 – teda, aj číslo 10

    2. 1, 2, … 10

    3. 2, 4, … 20

    4. 10, 20, … 100

    Vyskúšaj.

for

Príkaz for čítame: „pre i v rozsahu(…) vykonaj telo cyklu


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

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


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

  1. Máme kartičky s číslami od 0 po 9, 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:

    _images/12_01.png

    Číslo na kartičke nakreslíš takto: canvas.create_text(x, y, text=i, font='arial 30')


  1. Na chodníku je rozhodených päť bankoviek s hodnotami 10, 20, 30, 40 a 50. Napíš program, ktorý také bankovky nakreslí pomocou cyklu for:

    _images/12_02.png

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


  1. Uprav predchádzajúci program tak, aby sa čísla kreslili približne na uhlopriečke:

    _images/12_03.png

    Aký vzorec si vymyslel pre výpočet y-ovej súradnice?


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

    _images/12_04.png

  1. Vieš, ako vyzerá padajúci had z domina? Vytvor program, ktorý pomocou cyklu a obdĺžnikov nakreslí zatiaľ ešte stojace kocky domina:

    _images/12_05.png

  1. (*) Napíš program, ktorý pomocou cyklu a obdĺžnikov nakreslí takúto pyramídu:

    _images/12_06.png