![]() |
Re: Eine ganzzahl herrausfinden?
Delphi-Quellcode:
naja ich hab jetzt ein while rein mit der das eigentlich umgangen werden müsste, jedoch besteht das problem weiterhin
const
EPSILON = 1E-8; function F(x: Double): Double; begin Result := (-8/5) * x + Sqrt(39 / 25 * x * x - 19); end; procedure TForm1.Button1Click(Sender: TObject); var x, y: Double; begin x := -100; while (39 / 25 * x * x - 19) < 0 do begin x := x + 0.0001; end; repeat x := x + 0.0001; y := F(x); until IsZero(y - Round(y), EPSILON); ShowMessage(Format('%0.4f %.0n', [x, y])); end; |
Re: Eine ganzzahl herrausfinden?
Besser so:
Delphi-Quellcode:
Analysiere die Unterschiede.
const
INFIMUM = -100; MAXIMUM = 1000; EPSILON = 1E-8; STEP = 1E-4; function F(x: Double): Double; var r: Double; begin r := 39 / 25 * x * x - 19; if r < 0 then Result := NaN else Result := (-8/5) * x + Sqrt(r); end; procedure TDemoForm.Button14Click(Sender: TObject); var x, y: Double; begin x := INFIMUM; repeat x := x + STEP; y := F(x); until IsNaN(y) or (x > MAXIMUM) or IsZero(y - Round(y), EPSILON); if IsNaN(y) then ShowMessage('rats') else ShowMessage(Format('x = %0.4f y = %.4f', [x, y])); end; |
Re: Eine ganzzahl herrausfinden?
da hätte ich jetzt mal eine frage:
wenn ich klicke kommt sofort 'rats' wenn ich jedoch schritt für schritt (F7) das Programm durchgehe geht er nicht bis dahin?!? |
Re: Eine ganzzahl herrausfinden?
Und was schließt du daraus?
"Herr Doktor, wenn ich mit meinem Finger hier drücke, dann tut es unwahrscheinlich weh. Auch hier und hier und hier, was stimmt da nicht?" "Ihr Finger ist gebrochen!" Ohne Haltepunkt verlässt dein Programm wahrscheinlich sehr schnell den Gültigkeitsbereich. Bei schrittweisem Abarbeiten benötigst du vielleicht eine Million Durchläufe. Gute Nacht. |
Re: Eine ganzzahl herrausfinden?
okay sry die frage hätte ich mir wirklich sparen können ;) aber vielen dank
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz