vor

Zyklische Strukturen
REPEAT - UNTIL

weiter

Wurzel nach Heron von Alexandria

Es ist ein anwenderfreundliches Delphiprogramm zu erstellen, welches die Wurzel aus einer reellen Zahl mit beliebiger Genauigkeit ausrechnet.

Heron von Alexandria hatte dazu folgende Idee:
Wir zerlegen die Zahl in zwei Faktoren, die anfangs noch ganz und gar nicht gleich sind. Dann werden die Zahlen schrittweise einander angenähert, wobei ihr Produkt immer gleich der Zahl bleiben muss. Mit jedem Schritt wird der Betrag der Differenz zwischen den beiden Faktoren immer kleiner und unterschreitet irgend wann unsere Forderung für die höchstzulässige Abweichung von der richtigen Wurzel.

Heron begann als Anfangswerte der beiden Faktoren mit der Zahl selbst und 1. Deren Produkt ist ja genau die Zahl.

Dann nahm er als ersten Faktor den Mittelwert aus den beiden letzten Faktoren und als zweiten Faktor den Quotienten aus der Zahl und dem neuen ersten Faktor. Damit ist gesichert, dass auch von diesen beiden neuen Faktoren das Produkt genau die Zahl ist.

Dieser Vorgang wird so lange wiederholt, bis sich die beiden neuen Faktoren nur noch so wenig unterscheiden, dass es für die letzte gültige Stelle keine Bedeutung mehr hat.

Das ist genau die Logik für eine fußgesteuerte Schleife REPEAT UNTIL.

Lassen Sie auch die Anzahl der durchlaufenen Schleifen zählen und ausgeben.
Komponente Eigenschaft Wert Bemerkungen
Form1 Caption ‘Wurzel nach Heron von Alexandria’ Überschrift in der Kopfleiste des Programmfensters
Label1 Caption ‘Eingabe’ Eingabeaufforderung
Label2 Caption ‘Wurzel aus ’ Eingabeaufforderung
Edit1 Text ‘0’ Eingabefeld für die Zahl
Label3 Caption ‘ auf ’ Eingabetext
Edit2 Text ‘0’ Eingabefeld für die Stellenzahl
Label4 Caption ‘ Stellen genau ’ Eingabetext
Label5 Caption ‘ ist ’ Ausgabetext
Edit3 Text ‘0’ Ausgabefeld für die Wurzel
Label6 Caption ‘Dazu brauchte das Programm ’ Ausgabetext
Edit4 Text ‘0’ Ausgabefeld für die Schleifenzahl
Label7 Caption ‘ Schleifen’ Ausgabetext
BitButton1 Caption ‘berechnen’ OK-Button für den Start der Berechnung
BitButton2 Caption ‘löschen’ Cancel-Button für eine Neuberechnung
BitButton3 Caption ‘Ende’ Close-Button für das Programmende
Um die unzuverlässigen Ziffern nicht anzuzeigen, benutzen Sie entweder das Rundungsprogramm aus dem Beispiel unter FOR TO DO oder die Funktion FloatToStrF().
Lösung
vor

Inhaltsverzeichnis

weiter