quadratische gleichungen
Verfasst: Sonntag 12. September 2021, 23:41
Hallo,
ich habe eine Programmieraufgabe bekommen in der ich quadratische Gleichungen lösen soll, es funktioniert auch alles.
Aufgabe:
Das Programm soll eine quadratische Gleichung der Form
ax**2+bx+c=0 lösen können. Der Nutzer gibt hierfür die
Zahlen a, b, c ein. Das Programm prüft die Diskriminante, also
b**2−4ac , ob diese positiv, null oder negativ ist und gibt dann
aus wie viele Lösungen es gibt und ggf. deren Werte.
Verwendet habe ich folgende Formel aus meinem Tafelwerk:
https://www.file-upload.net/download-14 ... 2.jpg.html
Mein Programm:
Starte ich das Programm und übergebe follgende Zahlen:
a = 2
b = -16
c = 32
erhalte ich das Ergebnis 4, was richtig ist.
Trage ich aber an Stelle der Variablen die Werte in die Formel:
bekomme ich einen Fehler:
Benutze ich meinen Taschenrechner mit der Formel und eingesetzten Werten, bekomme ich auch einen Fehler.
Mein Frage ist jetzt, warum funktioniert die Berechnung mit Variablen, aber nicht mit den eingegeben Werten?
Eigentlich müsste die Rechnung in beiden Fällen einen Fehler verursachen?
Zusammenfassung:
funktioniert...
funktioniert nicht...
Ich hoffe mir kann jemand erklären, warum das mit Variablen funktioniert und mit eingesetzten Werten nicht?
ich habe eine Programmieraufgabe bekommen in der ich quadratische Gleichungen lösen soll, es funktioniert auch alles.
Aufgabe:
Das Programm soll eine quadratische Gleichung der Form
ax**2+bx+c=0 lösen können. Der Nutzer gibt hierfür die
Zahlen a, b, c ein. Das Programm prüft die Diskriminante, also
b**2−4ac , ob diese positiv, null oder negativ ist und gibt dann
aus wie viele Lösungen es gibt und ggf. deren Werte.
Verwendet habe ich folgende Formel aus meinem Tafelwerk:
https://www.file-upload.net/download-14 ... 2.jpg.html
Mein Programm:
Code: Alles auswählen
import math
a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
diskriminante = b**2 - 4 * a * c
if diskriminante < 0:
print("Keine Lösung")
elif diskriminante == 0:
x = -(b/(2*a)) + math.sqrt((b**2-4*a*c)/(4*a**2))
print("x:", round(x, 3))
else:
x1 = -(b/(2*a)) + math.sqrt((b**2-4*a*c)/(4*a**2))
x2 = -(b/(2*a)) - math.sqrt((b**2-4*a*c)/(4*a**2))
print("x1:", round(x1, 3))
print("x2:", round(x2, 3))
a = 2
b = -16
c = 32
erhalte ich das Ergebnis 4, was richtig ist.
Trage ich aber an Stelle der Variablen die Werte in die Formel:
Code: Alles auswählen
-(-16/(2*2)) + math.sqrt((-16**2-4*2*32)/(4*2**2))
Code: Alles auswählen
ValueError: math domain error
Mein Frage ist jetzt, warum funktioniert die Berechnung mit Variablen, aber nicht mit den eingegeben Werten?
Eigentlich müsste die Rechnung in beiden Fällen einen Fehler verursachen?
Zusammenfassung:
Code: Alles auswählen
a = 2
b = -16
c = 32
-(b/(2*a)) + math.sqrt((b**2-4*a*c)/(4*a**2))
Code: Alles auswählen
-(-16/(2*2)) + math.sqrt((-16**2-4*2*32)/(4*2**2))
Ich hoffe mir kann jemand erklären, warum das mit Variablen funktioniert und mit eingesetzten Werten nicht?