Cykly  4. října 2022

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

V následující sadě úkolů pochopíš různá použití cyklu for.

0.

Popiš, co dělá tenhle kód? Zkus si ho zkopírovat a pustit.

for p in 'Ahoj světe!':
    print(p)
1.

Popiš, co dělá tenhle kód? Zkus si ho zkopírovat a pustit.

for z in ['had', 'králík', 'pes', 'vlaštovka']:
    print(z)
2.

Popiš, co dělá tenhle kód? Zkus si ho zkopírovat a pustit.

for c in [0, 1, 2, 3, 4]:
    print(c)
3.

Vymyslíš lepší jména pro iterační proměnné z minulých úloh.

  • Pro proměnnou 'p' z (for c in 'Ahoj světe!')?
  • Pro proměnnou 'z' z (for z in ['had', 'králík', 'pes', 'vlaštovka'])?
  • Pro proměnnou 'c' z (for c in (0, 1, 2, 3, 4))?

Je důležité proměnnou pojmenovat výstižně, jinak se v dalších projektech můžeš ztratit.

4.

Popiš, co dělá tenhle kód? Zkus si ho zkopírovat a pustit.

for c in range(5):
    print(c)
5.

Už víš, co dělá výraz for s řetězcem, výčtem hodnot a funkcí range(). Dokážeš to zobecnit – popsat for jednodušeji, než jak je popsán v materiálech?

6.

Popiš slovně, co vrací funkce range?

7.

Co dělá tenhle kód? Funguje vůbec?

for c in 38:
    print(c)

Podle toho, co jsi si dosud zkusila, zkus popsat, jakou vlastnost by tedy měla mít proměnná, která je ve for cyklu za slovíčkem in.

A teď už nějaké praktické příklady na programování.

8.

Pomocí cyklu for napiš program, který vypíše:

Řádek 0
Řádek 1
Řádek 2
Řádek 3
Řádek 4
9.

Pomocí cyklu for napiš program, který vypíše:

0 na druhou je 0
1 na druhou je 1
2 na druhou je 4
3 na druhou je 9
4 na druhou je 16
10.

Pomocí cyklu for a funkce range() napiš program, který vypíše:

a
a
a
a

Budeš v těle cyklu vůbec muset použít iterační proměnnou?

11.

Co se stane, když pro příkaz for zavoláš funkci range se dvěma parametry? například range(4, 10)

12.

Napiš program, který postupně z jednotlivých 'X' vypíše:

X
X X
X X X
X X X X

První řádek nesmí být prázdný.

13.

Co se stane, když pro příkaz for zavoláš funkci range se třemi parametry? například range(10, 20, 2)

V těle cyků smíš samozřejmě používat vše, co jsi se dosud naučila. Například provádět výpočty, používat if, ptát se uživatele na vstup a vše ostatní.

14.

Pomocí cyklu for a příkazu if napiš program, který vypíše následující řádky. Funkci print volej pouze uvnitř v cyklu:

první řádek
není první
není první
není první
15.

Uhodni číslo. Pomocí cyklu while napiš program, který si vygeneruje náhodné číslo a bude se tě ptát na tvůj tip dokud ho neuhodneš. Po tvém tipu ti dá nápovědu, jestli je tvůj tip větší, nebo menší než hádané číslo. Pokud ho uhodneš, program skončí a napíše: "Uhodla jsi!".

16.

Výzva   Předchozí program doplň o počítadlo pokusů.

17.

Výzva   Napiš program, který se desetkrát zeptá na číslo a nejmenší zadané číslo vypíše.

V tomto případě známe počet opakování, použij tedy cyklus for. Nevíš-li si rady, podívej se do materiálů na sekci Přepisování proměnných. Místo sečítání budeš vybírat správnou hodnotu.

Cykly můžeš i zanořovat (mít jeden uprostřed druhého). V této sekci si to procvičíš. Dávej dobrý pozor na správné pojmenování proměnných, aby ses nezamotala.

18.

Pomocí dvou cyklů for a parametru end pro print napiš program, který vypíše následující tvar:

X X X X X
X X X X X
X X X X X
X X X X X
X X X X X
19.

Pomocí dvou cyklů for a parametru end pro print napiš program, který vypíše „tabulku“ s násobilkou.

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16
20.

Výzva   Pomocí dvou cyklů for a příkazu if napiš program, který z jednotlivých 'X' a mezer vypíše:

X X X X X X
X         X
X         X
X         X
X         X
X X X X X X
21.

Vyber si jeden z předchozích úkolů a uprav jej tak, aby počet řádků a sloupců mohl zadat uživatel.

Želví kreslení! Tahle sekce tě seznámí se želví grafikou, kterou budeme používat v procvičování později a se kterou si vyhrají zejména ti, kteří mají rádi geometrii a matematiku.

22.

Nakresli trojúhelník.

trojúhelník

Poznámka: Rovnostranný trojúhelník má vnitřní úhly 60°. Želva se ale otáčí o vedlejší úhel 180 - 60 = 120°.

diagram

23.

Nakresli pětiúhelník, šestiúhelník, sedmiúhelník, osmiúhelník.

mnohoúhelníky

Aby byly tvary zhruba stejně veliké, použij pro n-úhelník délku strany např. 200/n

24.

Výzva   Nakresli n-úhelník, kde n zadá uživatel.