Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 01.05.2007 05:26
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.
Zuletzt geändert von
X0r am 21.08.2008 19:53, insgesamt 2-mal geändert.
STARGÅTE
Kommando SG1
Beiträge: 7032 Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:
Beitrag
von STARGÅTE » 01.05.2007 13:58
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)
X0r
Beiträge: 2770 Registriert: 15.03.2007 21:47
Kontaktdaten:
Beitrag
von X0r » 01.05.2007 21:58
Hatte einen kleinen fehler gemacht(Wegen int(b)).
Fehler behoben!