Naloge
Nekatere naloge zahtevajo uporabo matematičnih konstant in funkcij, kot so pi
, sqrt
(kvadratni koren), sin
, cos
in podobnih. Python jih nima, vendar jih
skrivnostno dobi, če na začetek programa dodamo
from math import *
Pretvarjanje temperatur
Program, ki ste ga napisali na predavanjih:
temp_C = float(input("Temperature [C]? "))
temp_K = temp_C + 273.15
temp_F = temp_C * 9 / 5 + 32
print(temp_C, "C je enako", temp_K, "K ali", temp_F, "F")
spremeni tako, da bo pretvarjal iz Fahrenheitovih stopinj v Celzijeve in Kelvinove. Izpis programa naj izgleda tako:
Temperatura [F]? UPORABNIK VTIPKA 42
42.0 F je enako 278.7055555555555 K ali 5.555555555555555 C
Rešitev
temp_F = float(input('Temperatura [F]? '))
temp_C = (temp_F - 32) * 5 / 9
temp_K = temp_C + 273.15
print(temp_F, 'F je enako', temp_K, 'K ali', temp_C, 'C')
Krog
Napiši program, ki izračuna površino in obseg kroga, katerega polmer
poda uporabnik. (Konstanto π boste dobili, če napišete pi
, pri čemer mora na začetku programa pisati from math import *
, kot smo opisali zgoraj.)
Polmer kroga? UPORABNIK VTIPKA 4.2
Obseg kroga: 26.389378290154262
Površina kroga: 55.41769440932395
Rešitev
from math import *
r = float(input("Polmer kroga? "))
print('Obseg kroga:', 2 * pi * r)
print('Površina kroga:', pi * r**2)
Pitagorov izrek
Napiši program, ki uporabnika vpraša po dolžinah katet pravokotnega
trikotnika in izpiše dolžino hipotenuze. Kot piše na vrhu strani, za koren uporabimo funkcijo sqrt
, ki jo dobimo, če na začetek programa napišemo from math import *
.
Kateta? UPORABNIK VTIPKA 3
Kateta? UPORABNIK VTIPKA 4
Hipotenuza: 5.0
Rešitev
from math import *
a = float(input('Kateta? '))
b = float(input('Kateta? '))
print('Hipotenuza:', sqrt(a**2 + b**2))
Vodnjak
Če vržemo v vodnjak kamen in je v vodnjaku voda, se čez nekaj časa zasliši čof. Napiši program, ki mu uporabnik vpiše, koliko časa je minilo od trenutka, ko smo spustili kamen, do trenutka, ko je reklo čof, program pa izpiše globino vodnjaka. Če ne poznaš enačb, si pomagaj z wikipedijo
Čas [s]? UPORABNIK VTIPKA 1
Globina vodnjaka: 4.905 m
Rešitev
t = float(input('Čas [s]? '))
print('Globina vodnjaka:', 9.81 * t**2 / 2, 'm')
Indeks telesne teže
Napiši program, ki uporabnika vpraša, kako velik (v centimetrih) in kako masiven (v kilogramih) je. V odgovor naj izpiše indeks telesne mase (BMI) uporabnika.
Višina [cm]? UPORABNIK VTIPKA 180
Masa [kg]? UPORABNIK VTIPKA 75
Indeks telesne mase: 23.1481481481
Rešitev
visina = float(input('Višina [cm]? '))
masa = float(input('Masa [kg]? '))
print('Indeks telesne mase:', masa / (visina / 100)**2)
Povprečna ocena
Napiši program, ki mu uporabnik vpiše oceno, ki so jo pri matematiki dobili Ana, Benjamin in Cilka. Program naj izračuna in izpiše povprečno oceno.
Izziv za razmišljujoče tipe: recimo, da ne bi radi izpisali povprečne
temveč srednjo oceno. Če so Ana, Benjamin in Cilka dobili 3, 2 in 5, bi
radi izpisali 3. Izziv: sprogramiraj to reč brez uporabe pogojnih
stavkov ali česa podobno "naprednega". Konkretno, uporabljaj le
funkcije input
, print
, min
in max
. Namig: min
in max
lahko prejmeta
poljubno število argumentov. Pomisli tudi na to, da imaš samo tri osebe;
pri štirih ta trik ne bi vžgal.
Ocena [Ana]? UPORABNIK VTIPKA 2
Ocena [Benjamin]? UPORABNIK VTIPKA 4
Ocena [Cilka]? UPORABNIK VTIPKA 5
Povprečje: 3.6666666666666665
Srednja vrednost: 4.0
Še boljši izziv: recimo, da imamo štiri števila, a
, b
, c
in d
. Izpisati želimo tretje število po velikosti. Še vedno uporabljamo le max
in min
. Namig: mogoče se splača klicati min
in max
s samo po dvema argumentoma, a večkrat. Morda obstaja tudi kakšna rešitev, kjer kličemo z več argumenti. Morda; ne vem. :)
Rešitev
a = float(input('Ocena [Ana]? '))
b = float(input('Ocena [Benjamin]? '))
c = float(input('Ocena [Cilka]? '))
print('Povprečje:', (a + b + c) / 3)
print('Srednja vrednost:', a + b + c - min(a, b, c) - max(a, b, c))
Površina trikotnika
Napiši program, ki uporabnika vpraša po dolžinah stranic poljubnega trikotnika in izpiše njegovo ploščino, ter ploščini včrtanega in očrtanega kroga.
Dolžina stranice a? UPORABNIK VTIPKA 3
Dolžina stranice b? UPORABNIK VTIPKA 4
Dolžina stranice c? UPORABNIK VTIPKA 5
Površina trikotnika: 6.0
Površina včrtanega kroga: 3.141592653589793
Površina očrtanega kroga: 19.634954084936208
Rešitev
from math import *
a = float(input('Dolžina stranice a? '))
b = float(input('Dolžina stranice b? '))
c = float(input('Dolžina stranice c? '))
s = (a + b + c) / 2
p = sqrt(s * (s - a) * (s - b) * (s - c))
r_vcrtan = p / s
r_ocrtan = a * b * c / (4 * p)
print('Površina trikotnika:', p)
print('Površina včrtanega kroga:', pi * r_vcrtan**2)
print('Površina očrtanega kroga:', pi * r_ocrtan**2)