Cvičení č. 3¶
Přesný čas
- Napište program, který zadaný čas ve vteřinách vypíše v hodinách, minutách a vteřinách. Případně i ve dnech a rocích.
- Napište program, který zadaný čas ve dnech, hodinách, minutách a vteřinách vypíše ve vteřinách.
In [6]:
#celkovyCas = int(input("zadej čas ve vteřinách:"))
celkovýČas = 619965
celychMinut = celkovýČas // 60 # celkový čas ve vteřinách rozdělím na celé minuty a zbylé vteřiny
vteřin = celkovýČas % 60
celychHodin = celychMinut // 60 # čas v minutách rozdělím na celé hodiny a zbylé minuty
minut = celychMinut % 60
celychDnu = celychHodin // 24 # čas v hodinách rozdělím na celé dny a zbylé hodiny
hodin = celychHodin % 24
celychLet = celychDnu // 365 # čas ve dnech rozdělím na celé roky a zbylé dny
dnu = celychDnu % 365
print("Zadaný čas",celkovýČas, "vteřin =", celychLet, "roků,", dnu, "dnů,",hodin ,"hodin,", minut,"minut a",vteřin,"vteřin")
print(f"Zadaný čas {celkovýČas} vteřin = {celychLet} roků, {dnu} dnů, {hodin} hodin, {minut} minut a {vteřin} vteřin." )
Zadaný čas 619965 vteřin = 0 roků, 7 dnů, 4 hodin, 12 minut a 45 vteřin Zadaný čas 619965 vteřin = 0 roků, 7 dnů, 4 hodin, 12 minut a 45 vteřin.
In [3]:
vteřin = 45
minut = 12
hodin = 4
dnu = 7
roku = 0
# typické řešení u studentů
celkem = vteřin + 60*minut + 60*60*hodin + 60*60*24*dnu + 60*60*24*365*roku
print("Celkem", celkem, "vteřin.")
# popřípadě jinak uzávorkované:
celkem = vteřin + 60 *( minut + 60 * (hodin + 24 *(dnu + 365 * roku)))
print("Celkem", celkem, "vteřin.")
# druhou variantu můžeme počítat postupně:
x = dnu + 365 * roku # čas ve dnech
x = hodin + 24 * x # čas v hodinách
x = minut + 60 * x # čas v minutách
x = vteřin + 60 * x # čas ve vteřinách
print("Celkem", x, "vteřin.")
Celkem 619965 vteřin. Celkem 619965 vteřin. Celkem 619965 vteřin.
- Napište program, který se uživatele zeptá na jeho hmotnost a pomocí průměrné hustoty lidského těla ($1000~kg/m^3$) spočítá jeho objem. Jaký by měl uživatel průměr, pokud by měl tvar koule?
In [9]:
# m = ro * V ... V = m / ro
m = float(input("Zadejte svou hmotnost v kg:"))
ro = 1000
V = m / ro
print(f"Váš objem je {V} m^3.")
Váš objem je 0.061 m^3.
In [20]:
from math import pi
r = (3/4 * (V/pi))**(1./3.)
d = 2 *r
print(f"Poloměr člověka-koule o objemu {V} m^3 je {100*r} cm.")
print(f"Poloměr člověka-koule o objemu {V} m^3 je {100*r:.2f} cm.")
Poloměr člověka-koule o objemu 0.061 m^3 je 24.420079599615384 cm. Poloměr člověka-koule o objemu 0.061 m^3 je 24.42 cm.
Cvičení č. 4¶
- Napište program, který spočítá vzdálenost dvou komplexních čísel.
In [1]:
from math import sqrt
c1 = 3 - 4j
c2 = -1 + 1j
vzd = abs(c1-c2)
print(f"Vzdálenost {c1} a {c2} je {vzd:.2f}.")
Vzdálenost (3-4j) a (-1+1j) je 6.40.
In [8]:
# jiné řešení:
import math
r = c1 - c2
vzd = math.sqrt(r.real**2 + r.imag**2)
vzd = (r.real**2 + r.imag**2)**0.5
print(f"Vzdálenost {c1} a {c2} je {vzd:.2f}.")
# jiné řešení:
soucin = r * r.conjugate()
vzd = math.sqrt(soucin.real)
vzd = ((soucin)**0.5).real
print(f"Vzdálenost {c1} a {c2} je {vzd:.2f}.")
Vzdálenost (3-4j) a (-1+1j) je 6.40. Vzdálenost (3-4j) a (-1+1j) je 6.40.
- Použijte jazyk Python pro vyřešení kvadratické rovnice $\pi x^2 + 2x + 1 = 0$. (Řešení tohoto příkladu nemusí být univerzální program, stačí posloupnost příkazů s výpočty, které byste prováděli "na papíře".)
In [11]:
from math import pi, sqrt
a = pi
b = 2
c = 1
# nejprve spočteme diskriminant a podíváme se, zda je záporný
D = b * b - 4 * a * c
D
Out[11]:
-8.566370614359172
In [21]:
# protože je D záporný, bude mít rovnice komplexní kořeny:
# x1,2 = (- b/2a ) +- i sqrt(-D)/2a
x1 = complex (-b/(2*a), math.sqrt(-D)/(2*a))
x2 = complex (-b/(2*a), -math.sqrt(-D)/(2*a))
#x2 = x1.conjugate()
print(f"Kořeny jsou {x1:.2f} a {x2:.2f}")
# jiné řešení:
x1 = -b/(2*a) + 1j * (math.sqrt(-D)/(2*a))
x2 = -b/(2*a) - 1j * (math.sqrt(-D)/(2*a))
print(f"Kořeny jsou {x1:.2f} a {x2:.2f}")
Kořeny jsou -0.32+0.47j a -0.32-0.47j Kořeny jsou -0.32+0.47j a -0.32-0.47j
In [13]:
# jiné řešení ... pokud použijeme mocninu místo odmocniny, lze to napsat rovnou:
x1 = (-b + D**0.5 ) / (2*a)
x2 = (-b - D**0.5 ) / (2*a)
# x2 = x1.conjugate()
print(f"Kořeny jsou {x1:.2f} a {x2:.2f}")
Kořeny jsou -0.32+0.47j a -0.32-0.47j
In [ ]: