Seite 1 von 1

abstand errechnen

Verfasst: 13.06.2006 16:31
von obbba

Code: Alles auswählen

Procedure abstand(x1,y1,x2,y2)
 
 xa=x1-x2
 ya=y2-y2
   
 If ya < 0
  ya=ya*-1
 EndIf
 If xa < 0
  xa=xa*-1
 EndIf
  
 ProcedureReturn Sqr(Pow(xa,2)*Pow(ya,2)) 

EndProcedure

Debug abstand(2,2,2,10)
Der sollte ja eigentlich 8 ausrechnen.
Was ist falsch?

Verfasst: 13.06.2006 16:43
von DarkDragon

Code: Alles auswählen

 If ya < 0
  ya=ya*-1
 EndIf
 If xa < 0
  xa=xa*-1
 EndIf 
Hä? Wie unnötig.
Und "ya.f=y2-y2" solltest du auch mal überdenken, kommt immer 0 dabei raus.
Außerdem "+" statt "*" bei der Quadratwurzel.
[EDIT]
Guck mal in die Hilfe, da gibts sogar ne Formelsammlung.

Verfasst: 13.06.2006 16:50
von obbba
Stimmt 2² ist das gleiche wie (-2)². Hab ich nicht dran gedacht.

ich hab einmal * statt + benutzt.

Code: Alles auswählen

Procedure abstand(x1,y1,x2,y2)
 
 xa=x1-x2
 ya=y1-y2
  
 ProcedureReturn Sqr(Pow(xa,2)+Pow(ya,2)) 

EndProcedure

Debug abstand(2,2,2,10)

Verfasst: 14.06.2006 12:08
von Kaeru Gaman
lieber obbba,

ich würde das ganze einfach als macro implementieren, und auf die ifs und den funktionsaufruf komplett verzichten...

Code: Alles auswählen

dist = Sqr(a*a+b*b)
scheiss auf Pov, wird hierfür nich benötigt...