Cykly a želva  29. září 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.

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

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.

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

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?