Cykly  30. ledna 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

0.

Popiš slovně, co vrací funkce range?

1.

Navažme na otázku, co vrací funkce range. Co se stane, když pro příkaz for zavoláš funkci range se dvěma parametry?

2.

Se třemi?

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

5.

Nakresli vesnici!

vesnice

6.

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

7.

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

8.

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

9.

Nakresli pětadevadesátiúhelník.

10.

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.

11.

Nakresli takovýto ornament:

ornament

12.

Nakresli spirálu.

spirála

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

13.

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.

14.

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

15.

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

16.

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

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 sčítání budeš vybírat správnou hodnotu.

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 minulém příkladu 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. Možné řešení je uvedeno na konci zadání.

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').

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

23.

Napiš program, který vypíše „tabulku“ s násobilkou. (K řešení tohoto povinného projektu se můžeš dopracovat postupně přes ty nepovinné)

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.

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?

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?