16. hodina - Vetvenie


  1. Napíš program, ktorý pomocou farebných kruhov nakreslí semafor:

    _images/16_01.png

  1. (*) Napíš program, ktorý pomocou random.choice([...]) vypíše jeden z nasledujúcich pozdravov: Dobré ráno, Dobrý deň, Dobrý večer, Dobrú noc. Použi cyklus, aby sa vypísalo 10 pozdravov. Napríklad:

    Dobrú noc
    Dobrý deň
    Dobrú noc
    Dobrý večer
    Dobrú noc
    Dobrú noc
    Dobré ráno
    Dobrú noc
    Dobrý večer
    Dobrú noc
    

  1. Počítač dokáže porovnávať čísla. Napíš do príkazového riadku:

    >>> 1 < 2           # stlač Enter
    

    Počítač čísla porovná a vypíše:

    True
    
    • počítač nám odpovedal, že je pravda, že 1 je menšia ako 2

    Vieme, že 3 nie je väčšia ako 4. Vyskúšaj, čo ti počítač vypíše, ak do príkazového riadku zadáš:

    >>> 3 > 4
    

  1. Môžeš porovnávať aj zložitejšie výrazy. Aké výsledky vypíše počítač?

    1. >>> 1 + 2 > 3

    2. >>> -1 > -2

    3. >>> (1 + 2) * 3 < 1 + 2 * 3

    4. >>> a = 100

      >>> a < 101


  1. Chceme vytvoriť program, ktorý by nám povedal, či je vonku teplo alebo zima. Mohlo by to fungovať tak, že do premennej teplota priradíme číslo. Potom by počítač pre teplotu väčšiu ako 20 stupňov vypísal, že je teplo. Inak by nám povedal, že je zima. Takto to naprogramuješ:

    • Nezabudni na dvojbodky na konci riadkov s if a else – sú dôležité

    teplota = 25
    print('Je', teplota, 'stupňov.')
    if teplota > 20:
        print('Dnes je teplo.')
    else:
        print('Dnes je zima.')
    print('Správne sa obleč.')
    
    • odsaď príkazy print – použi tabulátor

    Ak si program napísal správne, po jeho spustení uvidíš:

    Je 25 stupňov.
    Dnes je teplo.
    Správne sa obleč.
    

  1. Zmeň v predchádzajúcom príklade teplotu z 25 na 10. Program spusti. Čo sa vypíše?


Ako program funguje?

  • if ... else ... je nový príkaz pre vetvenie programu

teplota = 25
print('Je', teplota, 'stupňov.')
if teplota > 20:                    # podmienka
    print('Dnes je teplo.')         # vetva if
else:
    print('Dnes je zima.')          # vetva else
print('Správne sa obleč.')
  • podmienka, podľa ktorej sa počítač rozhodne, ktorú vetvu ďalej vykoná

Keď počítač uvidí príkaz if ... else ..., najskôr vyhodnotí podmienku. Ak je podmienka splnená, vykoná sa príkaz vo vetve if, inak sa vykoná príkaz vo vetve else.


  1. Uprav predchádzajúci program tak, aby pre:

    • záporné teploty vypísal Zober si rukavice,

    • inak vypíše, že Rukavice ti netreba.

    Over, že program správne funguje pre kladné aj záporné hodnoty. Čo tvoj program vypíše pre 0?


  1. Chceme poslať doporučený list. Vytvor program, ktorý ti poradí s cenou dopisu. Na začiatku programu priraď do premennej hmotnost číslo s hmotnosťou tvojho listu. Použi príkaz pre vetvenie programu, aby pre list s hmotnosťou:

    • do 50 g vypísal Zaplatíš 1.25 eura,

    • inak vypíše, že Zaplatíš 1.4 eura.

    Over, že program správne počíta cenu listu pre hmotnosti: 30, 50 a 100 gramov.

    Doporučené listy nad 100 g stoja 1.7 eura. Náš program to zatiaľ nevyhodnotí správne.


  1. Ideme na zmrzlinu. Cena za jeden za kopček zmrzliny je 1.1 eura. Zmrzlinár však ponúka zľavu: ak vezmeme viac ako 5 kopčekov, cena za každý kopček bude 0.90 eura. Vytvor program, ktorému na začiatku priradíš do premennej pocet počet kopčekov a on vypíše výslednú cenu. Napríklad:

    Za 5 kopčekov zmrzliny zaplatíš:
    4.5 eurá.
    

    Over, že program správne počíta cenu zmrzliny pre 4, 5 a 6 kopčekov.


  1. Na začiatku si robil program, ktorý kreslil semafor. Teraz by sme chceli vylepšiť tento program tak, že na semafore bude svietiť buď červené alebo zelené svetlo. Do premennej cas priraď počet sekúnd. Ak je toto číslo menšie ako 30, nakreslí sa červené svetlo, inak sa nakreslí zelené.

    _images/16_02.png _images/16_03.png

    pre cas = 5

    pre cas = 50

    Over, že tvoj program kreslí správny krúžok pre časy 5, 30 aj 50 sekúnd.


  1. Vylepši predchádzajúci program tak, aby bolo vidieť aj nesvietiace svetlo:

    _images/16_04.png _images/16_05.png

    pre cas = 5

    pre cas = 50


  1. Máme škatuľu v tvare obdĺžnika s dĺžkami strán, ktoré sú uložené v premenných a, b. Škatuľu chceme položiť vždy na ležato. Vytvor program, v ktorom na začiatku priradíš do premenných a, b rozmery. Program nakreslí škatuľu tak, aby vždy ležala dlhšou stranou na zemi. Over, že program funguje pre rôzne kombinácie hodnôt premenných a, b.

    _images/16_06.png _images/16_07.png

    pre a = 50, b = 100

    pre a = 200, b = 70


  1. (*) Do premenných r1, r2 priraď polomery kruhov. Vytvor program, ktorý nakreslí obidva kruhy ale tak, aby menší kruh ležal na väčšom. Over, že program funguje pre rôzne kombinácie polomerov.

    _images/16_08.png

    pre r1 = 30, r2 = 20