Python-Programm lineare Gleichung?


09.03.2020, 06:38

sorry meine lineare Funktion!!!!!!

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Naja, es wäre natürlich hilfreich, wenn du uns nennst, was da nicht funktioniert, insbesondere, was für eine Fehlermeldung du erhälst.

============

Bild zum Beitrag

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.

Bild zum Beitrag

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.

Bild zum Beitrag

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.

Bild zum Beitrag

 - (Computer, Mathematik, programmieren)  - (Computer, Mathematik, programmieren)  - (Computer, Mathematik, programmieren)  - (Computer, Mathematik, programmieren)
mihisu  09.03.2020, 10:35

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)
1

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)

greenshop 
Fragesteller
 09.03.2020, 06:40

Wie macht man das

0
DJFlashD  09.03.2020, 06:43
@greenshop

Im prinzip x1 = float(x1) soweit ich mich erinnere 🤔 und als string dann x1 = str(x1)

0
greenshop 
Fragesteller
 09.03.2020, 06:44
@DJFlashD

muss ich das auch bei der Gleixhung maxchen

0
DJFlashD  09.03.2020, 06:48
@greenshop

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 🤔

0
greenshop 
Fragesteller
 09.03.2020, 06:42

Ich weiß nicht wie das gehen soll

0
DJFlashD  09.03.2020, 06:47
@greenshop

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

0
greenshop 
Fragesteller
 09.03.2020, 06:59
@DJFlashD

ja hat sich erledigt hab es geschaft vielen dank

1
triopasi  09.03.2020, 08:06
@DJFlashD

Das ist Python. Da sollte man sich nicht mit Datentypen auseinandersetzen müssen ;) So ist doch die Philosophie, oder?

0
RakonDark  09.03.2020, 08:33
@triopasi

ne du meinst javascript , dem ist nun wirklich egal was wie ist , das casted sich selber :)

0
triopasi  09.03.2020, 08:36
@RakonDark

Duck-typing in Python. Sollte also auch so sein.

Funktioniert aber weder in JS noch in Python wirklich meiner Meinung nach. 😂

1
DJFlashD  09.03.2020, 08:52
@triopasi

Man muss trotzdem ahnung von datentypen haben wie man hier schön sieht^^

1
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.

Woher ich das weiß:Studium / Ausbildung – Studium und Promotion in Angewandter Mathematik

Gibt es eine Fehlermeldung? Die könnte man mal lesen...

Woher ich das weiß:Studium / Ausbildung – Informatikstudium