Seite 1 von 1

Heron Algo. Wurzelziehen

Verfasst: 01.05.2007 05:26
von X0r

Code: Alles auswählen

Procedure.f heronalg(Zahl.f,Startwert.f)
a.f=Zahl
b.f=Startwert
n.f=0.0
last.f=0.0
Repeat
n=(b+(a/b))/2
If last=n
  Break
EndIf
  last=n
    If n=a
      Break
    Else
     b=n
    EndIf
ForEver
ProcedureReturn n
EndProcedure 


Debug heronalg(0.5,1)
Diese (überflüssige) Prozedur berechnet die Wurzel einer Zahl mit dem Heron Algo.

Verfasst: 01.05.2007 13:58
von STARGÅTE
Diese Berechnungen sind aber falsch wenn die Wurzel aus einer Zahl nicht Ganzzahlig ist, oder die Zahl selber nicht Ganzahlig ist.
Hier eine verbesserung :

Code: Alles auswählen

Procedure.f Heron(Zahl.f, Start.f)
 y.f = Zahl / Start
 m.f = (Start + y) / 2
 q.f = m*m
 Repeat
  Start = m
  y = Zahl / Start
  m = (Start + y) / 2
  q = m*m
 Until m = Start
 ProcedureReturn m
EndProcedure
Debug Heron(16, 1)
Debug Heron(256, 1000)
Debug Heron(2, 8)
Debug Heron(8, 2)
Debug Heron(0.25, 6)

Verfasst: 01.05.2007 21:58
von X0r
Hatte einen kleinen fehler gemacht(Wegen int(b)).

Fehler behoben!