Ve druhém dílu seriálu Python se naučíme pracovat s knihovnou math, která nám umožňuje používat množství konstant a funkcí pro matematické výpočty.

Studijní materiály

Odkaz pro zobrazení Google Slides.

Kontrolní otázky

Jaké matematické operátory jsou v Pythonu povoleny pro celá čísla (datový typ integer)?
Kde nalezneme podrobnosti k příkazům Python, názvy funkcí a konstant, jejich syntaxi a sémantiku?

Programy

"""
jablka.py
Vytvoř program, který rozdělí daný počet jablek mezi daný počet dětí. Jablka lze dávat pouze celá, nikoliv jejich části (poloviny, čtvrtiny…).

vstup = počet jablek, počet dětí (celá čísla)
výstup = počet jablek / 1 dítě, zbytek

1.) načtení vstupů
2.) výpočet
3.) výstup výsledků
"""
jablka = int(input("Zadej počet jablek: "))
deti = int(input("Zadej pocet dětí: "))

# podil = jablka // deti
# zbytek = jablka % deti
podil, zbytek = jablka // deti, jablka % deti
# Python dokáže ukládat více hodnot do více proměnných
# vznikají tím tzv. n-tice (datový typ tuple)

print()
print("Na 1 dítě vychází", podil, "jablek.")
print("Zůstane mi", zbytek, "jablek.")

"""
prirozenaCisla.py
Vytvoř program, který vypíše, z kolika jednotek, desítek, stovek a tisíců se skládá číslo na vstupu.

vstup: přirozené číslo
výstupy: počet jednotek, desítek, stovek, tisíců

1.) načtení vstupní hodnoty
2.) výpočty (celočíselné dělení)
3.) průběžné výstupy
"""
vstup = int(input("Zadej přirozené číslo: "))
cislo = vstup

tisice = cislo // 1000
# print("Tisíce:", tisice)
cislo = cislo % 1000

stovky = cislo // 100
# print("Stovky:", stovky)
cislo = cislo % 100

desitky = cislo // 10
# print("Počet desítek:", desitky)
cislo = cislo % 10

jednotky = cislo // 1
# print("Počet jednotek:", jednotky)
cislo = cislo % 1
print(vstup, "=", tisice, "* 1000 +", stovky, "* 100 +", desitky, "* 10 +", jednotky, "* 1")

"""
automat.py
Vytvoř program, který rozdělí částku na vstupu na mince nominálních hodnot 50, 20, 10, 5, 2, 1. Na stejném principu fungují automaty vracející zbývající částku po nákupu s tím rozdílem, že pracují v cyklu.

vstup: částka
výstup: počty minci CZK měny

1.) načtení vstupu
2.) postupné celočíselné dělení, zmenšování čísla o podělenou část
3.) výstupy počtu mincí
"""
castka = int(input("Zadej celočíselnou částku k rozdělení: "))
padesat = castka // 50
castka = castka % 50
dvacet = castka // 20
castka = castka % 20
deset = castka // 10
castka = castka % 10
pet = castka // 5
castka = castka % 5
dva = castka // 2
castka = castka % 2

print("50 *", padesat)
print("20 *", dvacet)
print("10 *", deset)
print("5 *", pet)
print("2 *", dva)
print("1 *", castka)

"""
desetinneCislo.py
Vytvoř program, který rozdělí desetinné číslo na celou a desetinnou část.

vstup: desetinné číslo (např. 3.14)
výstup: celá a desetinná část čísla (tzn. 3 + 0.14)

1.) vstup
2.) výpočet
3.14 = 3 + 0.14
jak udělám z čísla 3.14 číslo 3?
přetypování float -> int :)
jak dostanu desetinnou část?
rozdíl 3.14 - 3 = 0.14 :)
3.) výstup
"""
cislo = float(input("Zadej desetinné číslo: "))

celaCast = int(cislo)

# desetinnaCast = cislo = celaCast
# tímto zápisem uložíš poslední hodnotu vpravo (celaCast)
# do všech proměnných vlevo (desetinnaCast, cislo)
desetinnaCast = cislo - celaCast

print(cislo, "=", celaCast, "+", desetinnaCast)

"""
sinusCosinus.py
Na samostatném algoritmu si vyzkoušej funkce sinus a cosinus pro hodnoty úhlu ve stupních, které zadá uživatel na vstupu.

vstup: úhel ve stupních
výstup: sinus a cosinus

1.) vstup
2.) výpočty
3.) výstup
"""
import math

uhel = float(input("Zadej úhel ve stupních: "))

# trigonometrické funkce pracují s úhly v radiánech!
uhelRadiany = math.radians(uhel)

# úhel v radiánech výpočtem -- trojčlenka:
# 180 stupňů ........ pi radiánů
# x stupňů .......... ? radiánů
# ? = (x * pi) / 180

uhelVypoctem = (uhel * math.pi) / 180
print(uhelVypoctem)
print("Úhel v radiánech:", uhelRadiany)
sinus = math.sin(uhelRadiany)
cosinus = math.cos(uhelRadiany)

print("Sinus:", sinus)
print("Cosinus:", round(cosinus, 2))

"""
faktorial.py
Na samostatném algoritmu si vyzkoušej funkci pro výpočet faktoriálu vloženého přirozeného čísla. Vstup přirozeného čísla ošetři podmínkou.

vstup: přírozené číslo
výstup: faktoriál

1.) načtení hodnoty, kontrola, zdali je číslo
celé a kladné
2.) výpočet
3.) výstup výsledku
"""
import math

cislo = int(input("Zadej celé kladné číslo: "))

if cislo > 0:
faktorial = math.factorial(cislo)
print(str(cislo) + "! = " + str(faktorial))
else:
print("Nebylo zadáno celé kladné číslo.")

"""
castiCisla.py
Vytvoř algoritmus, který dle zadaného desetinného čísla vypíše jeho celou a desetinnou část. Použij dvě řešení – s a bez funkce knihovny math.

vstup: desetinné číslo
výstup: celá a desetinná číst čísla

1.) vstup, př. 6.2
2.) výpočet bez funkce:
6 = int(6.2)
0.2 = 6.2 - 6
výpočet s funkcí:
math.modf()
3.) výpis výsledku, př. 6.2 = 6 + 0.2
"""
import math

cislo = float(input("Zadej desetinné číslo: "))

cele1 = int(cislo)
desetinne1 = cislo - cele1
print(cislo, "=", cele1, "+", round(desetinne1, 2))

desetinne2, cele2 = math.modf(cislo)
# uložení hodnot do více proměnných
# vznikají tím n-tice (datový typ tuple)
desetinne2 = round(desetinne2, 2)

print(cislo, "=", cele2, "+", desetinne2)

Zaujal Tě tento online kurz?

Přihlásit k newsletteru

Projekt online vzdělávání byl realizován v rámci Stipendia Czechitas v projektu: „Ženy do IT“ (reg.č. CZ.03.1.51/0.0/0.0/16_061/0003268), který je financován z prostředků Evropského sociálního fondu prostřednictvím Operačního programu Zaměstnanost.