Procvičování  7. dubna 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

Na začátek trocha zdánlivě nudného opakování, ať si trochu osvěžíme programování. To ale neznamená, že tu nemůžeš najít něco zvláštního a překvapivého!

0.

Co dělá funkce print?

1.

Co vrací funkce print?

2.

Co dělá pojmenovaný argument end funkce print?

3.

Co dělá pojmenovaný argument sep funkce print?

4.

Čím se liší chyby, které dostaneš když zadáš tyhle příkazy?

  • int('blabla')
  • float('blabla')
  • int('8.9')
  • int(8.9)

A teď možná trochu záludný ale zajímavý příklad na procvičení práce se soubory.

5.

Můj bratr, který píše japonské texty, mě požádal o program, který počítá znaky. Program přečte soubor rozsypanycaj.txt a zjistí, kolik znaků je psáno kterou z japonských slabikových abeced:

• ひらがな (hiragana): ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち ぢ っ つ づ て で と ど な に ぬ ね の は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ ゐ ゑ を ん ゔ

• カタカナ (katakana): ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ ヰ ヱ ヲ ン ヴ ヵ ヶ ヷ ヸ ヹ ヺ

Abecedy jsou ke zkopírování na stránkách s materiály. Program vypíše dvě čísla – počet znaků pro každou z abeced. Znaky, které nejsou ani v jedné z abeced, ignoruj.

Teď několik programovacích oříšků pro dlouhé chvíle. Nemáš-li čas, přeskoč je.

6.

Napiš program, který se zeptá na 3 čísla a zjistí, jestli je jejich součet větší než 10. Dokážeš to napsat tak, aby funkce input byla v kódu zapsaná jen jednou? ;)

7.

Napiš program, který načte číslo a zjistí, jestli je sudé.

Sudá čísla jsou beze zbytku dělitelná dvěma.

8.

Napiš program, který vypíše čísla od jedné do 100, ale:

  • Pokud je číslo dělitelné třemi, napíše místo něj „bum”.
  • Pokud je číslo dělitelné pěti, napíše místo něj „bác”.
  • Pokud je číslo dělitelné pěti i třemi zároveň, napíše místo toho „bum-bác”.
9.

Pokud máš ráda matematiku* a nebojíš se výzvy, načti od uživatele číslo n a:

  • Vypočti faktoriál n! (součin všech celých čísel od 1 do n).
  • Zjisti, jestli je n prvočíslo.
  • Vypiš prvních n členů Fibonacciho posloupnosti (1, 1, 2, 3, 5, 8, 13, 21, …).

* t.j. nemáš-li ráda matematiku, nedělej tenhle projekt :)

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

10.

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.

11.

Procvičení funkcí. Napiš funkci, která vykreslí domeček dané velikosti. (t.j. velikost se zadá argumentem)

domečky

Tento projekt si udělej, pokud máš ráda geometrii* :)

12.

Máš-li ráda geometrii, můžeš zkusit dávat domečkové funkci dva argumenty: šířku a výšku. Je potřeba si vzpomenout na Pythagorovu větu a funkci arcustangens, v pythonu se jmenuje atan. Pozor, funkce atan vrací výsletek v radiánech; je potřeba ho převést na stupně (from math import degrees).

domečky

* t.j. jestli nemáš ráda geometrii, tak tenhle projekt přeskoč

13.

Nakresli vesnici! Velokosti domečků se můžou měnit, třeba náhodně, růst, klesat nebo vůbec, záeží na tobě.

vesnice

Následující úkoly navazují na úkoly z třetí lekce, pokud je nemáš splněné vrať se k nim, začni kreslením trojúhelníku.

14.

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

15.

Nakresli pětadevadesátiúhelník.

16.

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.

17.

Nakresli takovýto ornament:

ornament

18.

Nakresli spirálu.

spirála

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

19.

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.

20.

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

21.

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