Hetedik alkalom (2019. január 30.)
Az elmúlt szerdai órán 3 feladatot oldottunk meg. Ajándékul mellékelem 4. feladatként a másodfokú egyenlet megoldására vonatkozó programot.
1. Írjunk egy programot, amely egy N elemet tartalmazó listáról megmondja, hogy a szomszédos elemek között mekkora legnagyobb különbség abszolút értékben!
A megoldás:
adat = [3, 1, 8, 6, 4, 3, 12, 7, 5, 20, 16, 30]
max = abs(adat[1] - adat[0])
n = len(adat)
#print(n)
for i in range(1,n-1):
if abs(adat[i+1]-adat[i]) > max:
max = abs(adat[i+1]-adat[i])
print("A legnagyobb különbség abszolút értékben: ", max)
#######################################
2. Írjunk egy programot, amely egy N elemet tartalmazó listáról megmondja, hogy melyik két eleme között legkisebb a különbség és mennyi ez a legkisebb különbség!
A megoldás:
adat = [3, 1, 8, 6, 4, 3, 12, 7, 5, 20, 16, 30]
min = abs(adat[1] - adat[0])
n = len(adat)
also = 0
felso = 1
for i in range(1,n-1):
if abs(adat[i+1]-adat[i]) < min:
min = abs(adat[i+1]-adat[i])
also = i
felso = i + 1
print("A legkisebb különbség abszolút értékben: ", min)
print("Ez a szám a ", adat[also]," és ", adat[felso]," különbsége.")
#########################################
3. Írjunk egy programot, mely egy paraméterként kapott összegről eldönti, hogy a különböző címletből/érméből (5, 10, 20, 50, 100, 200, 500, 1000) hány darab szükséges ahhoz, hogy összértékük annyi legyen, mint a beolvasott érték, de a lehető legkevesebb érmét/címletet használjunk fel ehhez!
A megoldás:
osszeg = int(input("Kérem a címletezendő összeget!"))
cimlet = [1000, 500, 200, 100, 50, 20, 10, 5]
i = 0
while i <= 5:
k = osszeg // cimlet[i]
print(k," db", cimlet[i])
osszeg = osszeg % cimlet[i]
i += 1
########################################
4. Írjunk egy programot, mely egy ax2+bx+c=0 alakú másodfokú egyenletnek meghatározza a megoldását
az a, b és c tényezők (együtthatók) ismeretében!
A megoldás:
import math #behívjuk a matematika eszközkészletet, amiben megtalálható - többek között - a négyzetgyök függvény is
a = int(input("Kérem az <a> együttható értékét!"))
b = int(input("Kérem a <b> együttható értékét!"))
c = int(input("Kérem a <c> együttható értékét!"))
if a == 0 and b == 0 and c == 0:
print("Minden valós szám megoldás.")
if a == 0 and b == 0 and c != 0:
print("Nincs megoldás.")
if a == 0 and b != 0:
print("Az egyenlet elsőfokú, megoldása: ", -c/b)
if a != 0:
d = b * b - 4 * a * c
if d < 0:
print("Nincs valós megoldás.")
elif d == 0:
print("Az egyenlet másodokú, két egybeeső valós gyöke van. Ezek: x1 = x2 = {0}".format(-b/(2*a)))
else:
x1 = (-b+math.sqrt(d))/(2*a)
x2 = (-b-math.sqrt(d))/(2*a)
print("Az egyenlet másodfokú és két különböző valós gyöke van. Ezek: x1 = {0}, x2 = {1}".format(x1, x2))