12: (Ne)Standardní knihovny
08 Jan 2021
Úkoly v hodině
- Simulujte 1000 hodů kostkou. Spočítejte výskyty každého čísla. Kolik jich je nejméně a kolik nejvíce? řešení
- Generujte náhodně body ve čtverci [-1,1] × [-1,1]. Počítejte, kolik z nich padlo do jednotkového kruhu, a tím aproximujte π. řešení
- Generujte náhodně permutace slov věty “Kobyla má malý bok”. řešení
- Pomocí Malé Fermatovy věty testujte, zda je nějaké velké číslo pravděpodobně prvočíslem. Hodí se tříparametrová funkce pow(a, b, c), která efektivně spočítá a^b mod c. řešení
- Simulujte náhodnou procházku po celých číslech od 0 do N. Začínáme v 0, v každém kroku náhodně buď zvýšíme nebo snížíme o 1 (v 0 jen zvyšujeme). Po kolika krocích se dostaneme do N? řešení
11: Soubory a výjimky
18 Dec 2020
Úkoly v hodině
- Vánoční úloha v recodexu (5 bodů, do konce hodiny, první vyhrává vánoční pivo)
- řešení
nebo:
- Spočítejte, kolik je v souboru řádků, slov a viditelných znaků (tedy bez mezer a konců řádků)
- Zkopíruje soubor do jiného souboru, aby řádky šly v opačném pořadí
- Najděte na každém řádku všechna čísla (oddělená mezerami) a vypíše jejich součet; slova, která nejsou čísly, ignoruje.
- řešení, testovací soubor
10: Objekty
04 Dec 2020
Programy z přednášky
Úkoly v hodině
- Naučte každé zvíře slyšet navíc na jméno potvůrka.
- Doplňte atribut pozice a zařiďte, aby zvíře slyšelo na jméno jenom tehdy, když pozice je doma.
- Vytvořte odvozenou třídu Pes, jehož metoda ozvi_se na každé druhé zavolání zaštěká a jinak zavrčí.
09: Lambda funkce
27 Nov 2020
Úkoly v hodině
- Napište funkci compose(f,g), která pro dvě funkce f a g (obě s jedním parametrem) vrátí funkci, jež je jejich složením (f(g(x))).
- Napište funkci red(s,f), která dostane seznam s a funkci f(x,y) a spočítá f(f(f(s[0], s[1]), s[3]), s[4]).
- Zapište pomocí redukce součet prvků seznamu.
- Zapište pomocí redukce nalezení maxima seznamu.
- Zapište pomocí redukce nalezení prvního nenulového prvku (není-li, vraťte 0).
- Co redukce udělá pro operátor -?
- Co udělá red(s, lambda x, y: (x,y))?
08: Generátory
20 Nov 2020
Programy z přednášky
Úkoly v hodině
- Napište generátor mujrange, který bude pracovat stejně jako range (s jedním parametrem)
- Napište generátor, který dostane dva seznamy a bude generovat jejich kartézský součin.
- Spočítejte frekvence všech k-gramů (k-tic znaků) v textu. K-gramy vypište uspořádaně podle frekvence.
- řešení
07: Dictionaries / Slovníky
13 Nov 2020
Úkoly v hodině
- vytvoří tabulku násobilky (a×b pro všechna a, b od 1 do daného čísla)
- zjistí průnik dvou (neuspořádaných) seznamů
- vybere z textu slova, která jsou palindromická (např. kajak)
- spočítá skalární součin dvou vektorů
- seřadí slova na řádku podle jejich délky (hint: (1) slova převést na dvojice (délka, slovo), (2) setřídit, (3) vypsat slova)
- řešení
06: Řezy
06 Nov 2020
Úkoly v hodině
- otočte řetězec (datel → letad)
- otočte číslo v desítkové soustavě (1024 → 4201)
- kolik různých slov v řetězci
- vyhodnoťte výraz se sčítáním (12+34+1 → 47)
- řešení všech úkolů
05: Třídění a vyhledávání
30 Oct 2020
Programy z přednášky
Úkoly v hodině
04: Funkce
23 Oct 2020
Úkoly v hodině
03: Seznamy
16 Oct 2020
Programy
02: Podmínky a cykly
09 Oct 2020
Programy
Úkoly
01: Úvod do Pythonu a programování
02 Oct 2020
Programy
Úkoly
- Založte si účet v ReCodExu, připojte se do skupiny našeho cvičení a vyřešte si ukázkovou úlohu.