In [ ]:
from IPython.display import Image
Úloha 1 - na zahřátí¶
- procvičení: tvorba proměnných, aritmetické operace, podmínky, tisk
Výpočet BMI člověka: $$ \mathrm{bmi} = \frac{w}{h^2}, $$ kde h je výška [m] a w je hmotnost [kg].
- vytvořte proměnnou height (nebo h) a weight (nebo w) a vložte do ní nějaké hodnoty imaginárního člověka
- do proměnné bmi uložte výsledek
- vytiskněte "Výsledné BMI = XXX" s přesností na jedno desetinné místo
In [ ]:
- vytvořte proměnnou gender, která může nabývat hodnot "m" (muž) nebo "f" (žena)
- na základě tabulky vytvořte mechanizmus, který vypíše, zda má daná osoba podváhu, těžký stupeň nebo jinak něco mezi
ženy | muži | |
---|---|---|
podváha | $<$ 19 | $<$ 20 |
normální stav | $<$ 24 | $<$ 25 |
mírná obezita | $<$ 29 | $<$ 30 |
střední stupeň | $<$ 39 | $<$ 40 |
těžký stupeň | $\geq$ 39 | $\geq$40 |
In [ ]:
Úloha 2¶
- procvičení: cykly, listy/tuply, slovník
- použijte pouze cykly (žádné vestavěné funkce)
- vytvořte funkci get_count(source, fval), která vrátí počet výskytů fval
- vytvořte funkci get_index, která v listu nalezne zadanou hodnotu a vrátí jeho polohu/index
- v get_index vytvořte přepínač, který vrátí výsledek po prvním výskytu a skončí
- vytvořte funkci get_counts, která vrátí četnost všech hodnot (pro ukládání výsledků využijte slovník)
- ze získaných výsledků vytiskněte jednoduchý histogram
txt
1 ***
2 **
3 *
4 *****
In [ ]:
# zadáno
data = (1, 2, 3, 4, 7, 3, 2, 2, 3, 5, 2)
In [ ]:
Úloha 3¶
procvičení: listy, cykly, funkce
máme list length_list naměřených délek
- určete velikost souboru dat
- vytvořte funci mean, která vrátí střední hodnotu listu $$ \mu = \frac{1}{n} \sum\limits_{i=0}^n x_i $$
- pomocí funkce vypočítejte střední hodnotu
- vytvořte funkci std, která vrátí směrodatnou odchylku a obsahuje volitelný parametr delta, který je defaultně 0 $$ \sigma = \sqrt{\frac{1}{n - \delta} \sum\limits_{i=0}^n \left( x_i - \mu \right)^2} $$
- pomocí funkce std vypočítejte nestranný (nevychýlený) odhad
- vytvořte funkce get_max a get_min, která vrátí maximální a minimální hodnotu (pomocí cyklu)
- vytvořte funkci, která výsledné hodnoty vytiskne
- ze souborů length_txt a time_txt načtěte data do length_list a časů time_list a do proměnné speed_list napočítejte rychlosti $v = \frac{s}{t}$
- využijte print, type a len pro zjištění toho co a v jaké podobě získáváte
- výsledky uložte do souboru results.txt vpodobě tří sloupečků a oddělovač použijte tabulátor
length time speed
1.0 2.2 2.2
with open('nazev_souboru.txt', 'X') as f:
#'X' == 'w' zápis (pokud soubor existuje, smaže se jeho obsah)
#'X' == 'r' čtení, 'X' == 'a' append (pokud soubor existuje, přidá se obsah na jeho konec)
promenna = f.read() # načtení celého souboru jako jeden textový řetězec
promenna = f.readlines() # načtení celého souboru - výstupem je list obsahující jednotlivé řádky
promenna = f.write('retezec') # zapíše řetězec do souboru
promenna = f.writelines(['radek 1\n', 'radek 2\n', 'radek 3\n'])
In [ ]:
# zadáno
import math # odmocnina math.sqrt nebo mocnina ** ; math.inf nekonečno
length_list = [1.5, 1.6, 1.3, 1.24, 1.65, 1.35, 1.47] # [m]
length_txt = 'length.txt'
time_txt = 'time.txt'
Úloha 4¶
- procvičení: cykly, listy
- vynásobte matici vektorem (kontroly vynechejte)
In [ ]:
# zadáno
mat = [[1, -5],
[3, 6]]
vec = [-3, 4]
In [ ]:
Bonus - násobení matic¶
In [ ]:
# zadáno
mat = [[1, -5],
[3, 6]]
vec = [-3, 4]
mat1 = [[1, -5],
[3, 6]]
mat2 = [[-2, 1],
[7, 3]]
In [ ]:
Vygenerujte Pascalův trojúhelník¶
Vytvořte generátor Pascalova trojúhelníku, který vygeneruje zadaný počet řádků.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
In [ ]:
# zadáno
pascal_triang = [[1],
[1, 1]]
for line in pascal_triang:
print(line)