Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#44

AW: ggT und KgV von 2 Zahlen berechnen - absolut keine Ahnung

  Alt 20. Nov 2010, 22:56
Punkt 1 - Die Fließkommazahlen: Lehrer behelfen sich da ganz einfach mit Real. Das liegt wohl daran, weil "Delphi for Kids" das eben auch macht. Nur leider ist Real sehr unbestimmt, in Bezug auf die Genauigkeit. Selbst bei D7 kommt die Hilfe bei Real nicht auf den Punkt, auf wie viele Stellen man sich verlassen kann. Außerdem gibt es neben Real noch den Real48. Um hier aufzuräumen würde ich auch Single, Double und Extended verwenden.

Punkt 2 - Der ELSE-Zweig: Ja bitte, welcher Fehler kommt denn diesmal? - Man wird dir leiden nicht helfen können, wenn man dein Problem nicht kennt. Das ist so ähnlich, wie wenn du zum Arzt gehst und sagst, du hättest Schmerzen. Daran kann auch der allerbeste Arzt leider nicht feststellen, wo deine Schmerzen sind und was du haben könntest. Das kann von Kopfschmerzen bis Herzinfarkt gehen. Übertragen auf deinen Code heißt das: Du hast entweder einen Syntax-Fehler oder du hast in Delphi einen Bug entdeckt. Wobei ich mir letzteres nicht vorstellen kann.

Es funktioniert ja jetzt.
Optimal?
Zu der Frage mit Fließkommazahlen und der Null: Die Null ist ein exakt definierter Wert. Leider ist dieser Wert so exakt definiert, dass man ihn normalerweise nicht genau erreichen kann. Selbst wenn du sagst Variable := 0.0; , dann ist diese Variable noch lange noch nicht 0. Sie ist nur auf 22 Nachkommastellen genau 0. Danach ist sie ungleich 0. Deshalb sollte man für Vergleiche auf 0 die Funktion IsZero() verwenden.

If trunc(b) <> 0 then
Nein, das ist leider nicht richtig. Was ist, wenn du durch 0,5 teilen willst? Trunc(0,5) ist 0 und somit meinst du, du teilst durch 0, was absolut nicht richtig ist.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!