Python-Programm lineare Gleichung?
Guten Tag,
ich habe ein Python-Programm erstellt, aber es funktioniert leieder nicht komplet. In der 5 Zeile hört das Programm auf.
x1=input("x-Koordinate fuer P eingeben:")
y1=input("y-Koordinate fuer P eingeben:")
x2=input("x-Koordinate fuer Q eingeben:")
y2=input("y-Koordinate fuer Q eingeben:")
m=(y2-y1)/(x2-x1)
n=y1-(mx1) print("Die Gleichung lautet:y=",m,"x+",n)
Die Aufgabenstellung war eine lineare Gleichung nur mithilfe von zwei Punkten aufzustellen.
vielen Dank im vorraus
sorry meine lineare Funktion!!!!!!
5 Antworten
Naja, es wäre natürlich hilfreich, wenn du uns nennst, was da nicht funktioniert, insbesondere, was für eine Fehlermeldung du erhälst.
============
Wenn ich das Programm starte, erhalte ich erst einmal einen Syntax-Error, was klar ist, da die „print“-Funktion in eine neue Zeile muss, statt ans Ende der letzten Zeile.
Dann kommt als nächstes ein „TypeError“. Dieser liegt darin begründet, dass bei der input-Abfrage die Zahlen als Strings in x1, y1, x2, y2 gespeicher werden, also als Text. Und mit Text kann man dann bei der Berechnung „m = (y2 - y1)/(x2 - x1)“ schlecht rechnen. Man kann mit float() den Input explizit in eine Gleitkommazahl umwandeln, um dieses Problem zu beheben.
Schließlich gibt es noch einen „NameError“. Denn „mx1“ hast du nirgends definiert. Wenn du da multiplizieren möchtest brauchst du dann natürlich einen Operator für die Multiplikation dazwischen, also „m * x1“. Denn „mx1“ würde so einfach zusammengeschrieben von Python als eine Variable „mx1“ erkannt werden, die du vorher nicht definiert hast.
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen-antworten/bilder/340501164/0_big.png?v=1583746154000)
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen-antworten/bilder/340501164/1_big.png?v=1583746154000)
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen-antworten/bilder/340501164/2_big.png?v=1583746154000)
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen-antworten/bilder/340501164/3_big.png?v=1583746154000)
Insgesamt könnte ein passendes Programm dann also so aussehen:
x1 = float(input("x-Koordinate für P eingeben: "))
y1 = float(input("y-Koordinate für P eingeben: "))
x2 = float(input("x-Koordinate für Q eingeben: "))
y2 = float(input("y-Koordinate für Q eingeben: "))
m = (y2 - y1)/(x2 - x1)
n = y1 - m * x1
print("Die Gleichung lautet: y =",m,"x +",n)
Wahrscheinlich werden die variablen als strings erkannt und mit strings kann man nicht rechnen. Caste die alle mal zu floats, vielleicht gehts dann
(Edit: beim print statement musst du die variablen dann wieder zu strings casten)
Kennst du überhaupt datentypen? Integer, float, string, char, byte....? Wenn nicht, könntest du auch mal zum üben mit einer programmiersprache arbeiten, in der man beim initialisieren der Variablen den datentyp angeben muss, damit du ein besseres Verständnis dafür bekommst - z.b. mit java
Duck-typing in Python. Sollte also auch so sein.
Funktioniert aber weder in JS noch in Python wirklich meiner Meinung nach. 😂
Im prinzip x1 = float(x1) soweit ich mich erinnere 🤔 und als string dann x1 = str(x1)
Dann nicht mehr, da du ja vor der gleichung den variablen schon den richtigen datentyp gegeben hast
Aber du könntest theoretisch auch in der gleichung erst die variablen zu den richtigen datentypen casten, aber das wäre eben unübersichtlich 🤔
try:
x1=float(input("x-Koordinate fuer P eingeben:"))
....
except:
# Fehlerbehandlung.
Das wäre zunächst mal zu ändern, damit die Eingaben auch Zahlenwerte sind.
Was ist die Fehlermeldung?
Mit fällt ausserdem auf, dass du dich offenbar in der 6. Zeile vertippt hast:
n=y1-(mx1)
Die Variable "mx1" gibt's nicht.
Gibt es eine Fehlermeldung? Die könnte man mal lesen...
Ich weiß nicht wie das gehen soll