/* ====== Týmová úloha ====== Pro týmy dvou studentů. Odevzdává se během posledního cvičení v zápočtovém týdnu. [[courses:b4b33rph:cviceni:maze_keeper:start|Zadání úlohy je zde.]] */ /* This readme is formatted with courseware syntax */ ====== Předvánoční cvičení ====== * Poslední konzultace SPAM filtru * Poslední testík * Hádanka * Programovací puzzles ===== Bonusový Testík ===== > [[courses:b4b33rph:internal:kratke_testiky:word_metrics|zadání]] ===== Hádanka ===== [[https://forms.gle/kFqxMq54p7hjByPu6|101]] | [[https://forms.gle/3nLTaoxHoVa3zQVk7|102]] | [[https://forms.gle/QaZvFUtncp1Ne1CH7|103]] | [[https://forms.gle/vzsGD3QyLgcqMk1g7|104]] | [[https://forms.gle/oMqTMgeh4ao4uiwL8|105]] | [[https://forms.gle/uyin2XUR2RuBFCna6|106]] | [[https://forms.gle/MuffuZrZW4u4wWx8A|107]] | [[https://forms.gle/4kfZisGQAbhkvdvHA|108]] | [[https://forms.gle/yARdGc2Gxtt5qAudA|109]] > {{page>courses:b4b33rph:internal:puzzles#cviceni_12}} ---- ===== Programovací puzzles ===== Programovací puzzles jsou drobné úlohy, za jejichž splnění můžete získat až jeden bod. Hlavní motivací vám tedy budiž dobrý pocit ze splnění úkolu. Počet bodů z puzzles je součet bodů vašich odpovědí, ale maximálně 1 bod. Programovací úkoly jsou na tři témata (suma, práce s maticí, palyndrom) a jsou rozděleny do následujících úrovní: - **Úroveň:** - základní uroveň každého tématu. Puzzles jsou splnitelné na papíře (ale doporučujeme řešení naprogramovat). Pro jejich splnění by vám měla stačit látka ze cvičení. Za úspěšně vyřešené puzzle úrovně 1 je 0.1 bodu. - **Úroveň:** - trochu složitější puzzles. Jejich řešení na papíře by mělo být příliš otravné na to, abyste to zkoušeli. Za úspěšně vyřešené puzzle úrovně 2 je 0.2 bodů. - **Úroveň:** - Nejkomplikovanější verze puzzles. Za puzzle úrovně 3 je 0.5 bodů. -** Úroveň - Bonus:** Pokud splníte všechna puzzles, můžete plnit další úlohy, na které vás odkáže cvičící po splnění všech předchozích úloh. Bonusové úlohy nejsou bodované. U úrovní 2 a 3 se vyplatí nejdříve promyslet přístup k řešení, případně zagooglit či si přečíst článek na wikipedii a pak začít kódovat. V úlohách **smíte využít i jiné moduly než ty z Base**. Inspirací pro tyto hádanky je projekt [[https://projecteuler.net/|Euler.]] Podobné hádanky a rébusy najdete např. i v [[https://adventofcode.com/|Advent of Code]]. ==== Odevzdání ==== * **Soubory pro zadání jsou {{ :courses:b4b33rph:cviceni:program_po_tydnech:puzzles_zadani.zip |ke stažení zde}}.** * **Odpovědi vyplňujte ve [[https://forms.gle/FVVL8YKQ19kXjKpw5|formuláři zde.]]** Své odpovědi můžete upravovat! * Abyste získaly bod, **musíte také nahrát použitý kód do BRUTE**, úloha ''14_puzzles'' (zazipovanou složku s názvem ''puzzles.zip'' nebo jeden soubor ''puzzles.py'') * Hádanky můžete odevzdávat do neděle po tomto cvičení, do 23:59. > {{page>courses:b4b33rph:internal:programming_puzzles_teacher_info}} ==== 1. Úroveň ==== == 1-1 Suma == Najdi součet čísel od -100 do 3000 (ve smyslu rozsahu v Pythonu, tzn. včetně počátku a bez konce). == 1-2 Matice == Vypiš řetězec, který leží na [[https://cs.wikipedia.org/wiki/Diagon%C3%A1la_(matice)|hlavní diagonále]] matice uložené v souboru ''1-2.csv''. == 1-3 Palindrom == Zjisti, kolik [[https://cs.wikipedia.org/wiki/Palindrom|palindromatických slov]] je v textu ''1-3.txt''. I jednopísmenné slovo je palindrom, interpunkce není písmenko. Pro posouzení, zda je slovo palindromem, považujte velké 'P' i malé 'p' za stejné písmeno (podobně i u jiných písmen). ==== 2. Úroveň ==== == 2-1 Suma == Najdi součet všech čísel od 0 do 3000 (ve smyslu rozsahu v Pythonu, tzn. včetně počátku a bez konce), která jsou buď násobkem 3 nebo násobkem 7. == 2-2 Matice == Najdi součty všech diagonál matice uložené v souboru ''2-2.csv''. **Součin** těchto součtů je řešením úlohy. Například 3x3 matice ''M'' M = [
[0, 1, 2],
[-1, 0, 1],
[-2, -1, 0]]
Má 5 diagonál, ''[-2], [-1, -1], [0, 0, 0], [1, 1], [2]''
== 2-3 Palindrom == Najdi nejvyšší číselný palindrom pod 1 000 000, které je násobkem čísla 51. ==== 3. Úroveň ==== == 3-1 Suma == Najdi součet všech čísel od 1 do 3000 (ve smyslu rozsahu v Pythonu, tzn. včetně počátku a bez konce), která lze zapsat jako součin právě tří [[https://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADslo|prvočísel]] (jednička není prvočíslo). == 3-2 Matice == Vynásob sudé prvky matice ''3-2.csv'' dvěma a spočítej [[https://cs.wikipedia.org/wiki/Determinant| determinant této matice]] (může pomoci [[https://numpy.org/doc/stable/reference/generated/numpy.linalg.det.html|toto]]). == 3-3 Palindrom == Najdi největší palindrom pod 1 000 000, který lze zapsat jako součin dvou trojciferných čísel.