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š!
Popiš slovně, co vrací funkce range
?
Co se stane, když pro příkaz for
zavoláš funkci range
se dvěma parametry?
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.
Nakresli trojúhelník.
Poznámka: Rovnostranný trojúhelník má vnitřní úhly 60°. Želva se ale otáčí o vedlejší úhel 180 - 60 = 120°.
Nakresli pětiúhelník, šestiúhelník, sedmiúhelník, osmiúhelník.
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
Nakresli n
-úhelník, kde n
zadá uživatel.
Následující povinné úkoly vyžadují zapojení uživatele.
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
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.
Pomocí cyklu for
a funkce range()
napiš program, který vypíše:
a
a
a
a
Pomocí cyklu for
napiš program, který vypíše:
Řádek 0
Řádek 1
Řádek 2
Řádek 3
Řádek 4
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.
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?
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
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
Napiš program, který postupně z jednotlivých 'X'
vypíše:
X
X X
X X X
X X X X
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í
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')
.
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ěď.
Co dělá tenhle kód?
for c in 'Ahoj světe!':
print(c)
Vymyslíš lepší jméno pro proměnnou c
z minulé úlohy (for c in 'Ahoj světe!')?
Co dělá tenhle kód?
for c in 38:
print(c)
A co tenhle?
for c in ["had", "králík", "pes", "vlaštovka"]:
print(c)
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?