Cykly a želva  25. února 2020

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 těchto projektech je určitě něco nového. Nezadávají postup, jak na odpověď přijít, ale to určitě zvládneš!

0.

Popiš slovně, co vrací funkce range?

1.

Co se stane, když pro příkaz for zavoláš funkci range se dvěma parametry?

2.

Se třemi?

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

3.

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

4.

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

mnohoúhelníky

Vnitřní úhel pravidelného n-úhelníka má 180 × (1-2/n) stupňů.

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

5.

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

Následující povinné úkoly vyžadují zapojení uživatele.

6.

Napiš program, který postupně načte od uživatele dvě čísla a jednoznakový řetězec – buď '+', '-', '*' nebo '/'. Program provede na číslech příslušnou operaci.

Příklad použití programu:

První číslo: 123
Druhé číslo: 456
Operace: +
123 + 456 = 579
7.

Napiš program, který se pětkrát zeptá na číslo a nejmenší zadané číslo vypíše.

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.

Následující sada projektů není jednoduchá, ale uděláš-li ji, pochopíš různá použití cyklu for.

8.

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

a
a
a
a
9.

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

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

Jak jsi pojmenovala proměnnou, kterou jsi použila v příkladu, co vypisuje "Řádek 0, Řádek 1, Řádek 2..."? Vymysli pro ni název, který nejlépe vystihuje, co proměnná obsahuje.

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

11.

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

Jak pojmenuješ proměnnou cyklu?

12.

Pomocí cyklů for a parametru end pro print napiš program, který postupně z jednotlivých 'X' vypíše:

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

„Z jednotlivých 'X'“ znamená, že se ve volání funkceprint smí objevit jen jedno 'X' anebo mezera, že nepoužiješ např. print('X X X X X'). (K řešení tohoto povinného projektu se můžeš dopracovat postupně přes ty nepovinné týkající se cyklu for.)

Jak pojmenuješ proměnnou cyklu? A tu druhou?

mandatory: true

13.

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

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

X
X X
X X X
X X X X
15.

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í
16.

Pomocí 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

"z jednotlivých 'X' a mezer" znamená, že se ve volání funkceprint smí objevit jen jedno 'X' anebo mezera, že nepoužiješ např. print('X X X X X').

17.

Programy s cyklem for uprav tak, aby počet řádků (či velikost čtverce/trojúhelníku/tabulky) mohl zadat uživatel. Stačí, když pošleš jedno pěkné řešení.

Následující sada projektů může vyžadovat delší zamyšlení. A to zamyšlení je důležitější než samotná odpověď.

18.

Co dělá tenhle kód?

for c in 'Ahoj světe!':
    print(c)
19.

Vymyslíš lepší jméno pro proměnnou c z minulé úlohy (for c in 'Ahoj světe!')?

20.

Co dělá tenhle kód?

for c in 38:
    print(c)
21.

A co tenhle?

for c in ["had", "králík", "pes", "vlaštovka"]:
    print(c)
22.

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