soweit ich mich erinnern kann, berechnet der Heron-Algo die Quadratwurzel einer Zahl mithile von Annäherung (oder?)
wenn das stimmt kann man ihn ähnlich wie folgt implementieren
Delphi-Quellcode:
function GetSqrtHeron(x,y, Genauigkeit: Extended): Extended;
var D, Diff: Extended;
begin
D:=1; //Um wieviel je schritt angenähert wird
Diff:=Abs(X-Y); //Differenz der Werte
while Diff>Genauigkeit do //Solange noch zu ungenau
begin
while D>Diff do //Größenordnung anpassen
D:=D / 10;
if x>y then //Wenn X größer
begin
X:=X-D; //X verkleinern
Y:=Y+D; //Y vergrößern
end
else
begin
X:=X+D; //X vergrößern
Y:=Y-D; //Y verkleinern
end;
Diff:=Abs(X-Y); //Differenz neu berechnen
end;
Result:=(X+Y) / 2; //Durchschnitt => Erhöhte Genauigkeit
end;
Keine Garantie für Fehlerfreiheit^^