Cykly  5. března 2019

Materiály

Domácí projekty

0.

Popiš slovně, co vrací funkce range?

1.

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

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.

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š!

3.

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

4.

Se třemi?

Želví kreslení! Tahle sekce tě naučí myslet jako programátorka počítačové grafiky. Je dobré jednotlivé projekty dělat postupně, a když něco začne fungovat, znovu si řešení projít a zamyslet se nad ním.

5.

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

mandatory: true

6.

Nakresli domeček!

domeček

Jak pravil Pythagoras, délka šikmé čáry v domečku je √2-krát délka stěny. O funkci na odmocninu jsme mluvili na srazu.

7.

Nakresli vesnici!

vesnice

8.

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

9.

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

10.

Želva umí jen rovné čáry. Jde pomocí rovných čar nakreslit kolečko?

Nevíš-li, přeskoč na další projekt a pak se sem vrať.

11.

Nakresli pětadevadesátiúhelník.

12.

Nakresli takovýto ornament:

ornament

Nevíš-li si rady, vezmi pravítko a změř délky jednotlivých čar. Doporučuju začít od středu.

13.

Nakresli takovýto ornament:

ornament

14.

Nakresli spirálu.

spirála

Od ornamentů ke spirále se dostaneš stejným způsobem jako od n-úhelníků ke kolečku.

15.

Napiš obrázek! Třeba les ze stromů, město z domů, nebe z hvězd, dav ze smajlíků, hradbu z věží, zikkurat ze schodů, ...

Můžeš použít i nějakou z funkcí modulu random.

16.

Na sraze jsme nakreslili tři čtverce, každý otočený o 20°. Nakresli 18 takových čtverců.

17.

Vezmi program z minulé úlohy a dokresli stonek a listy. Je jenom na tobě, jaký budou mít tvar. Piš komentáře a snaž se opakovat pomocí for, ne pomocí Ctrl+C Ctrl+V.

květina

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

18.

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

a
a
a
a
19.

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

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

Jak jsi pojmenovala proměnnou, kterou jsi v příkladu, co vypisuje "Řádek 0, Řádek 1, Řádek 2..." použila? 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.

21.

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?

22.

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

23.

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

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

X
X X
X X X
X X X X
25.

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

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

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ěď.

28.

Co dělá tenhle kód?

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

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

30.

Co dělá tenhle kód?

for c in 38:
    print(c)
31.

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?