Autor Beitrag
Cosmic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63



BeitragVerfasst: Di 10.12.02 18:26 
Hi,
also ich habe ein Programm geschrieben das rechnet toll alles aus, was es soll! Nur bei ungünstiger Konstelation aller Eingabewerte, also manche zu groß, manche zu klein, entsteht das Problem! Denn dann kommt das Programm irgendwann zu einer Stelle wo eine Wurzel gezogen wird und der Wert ist negativ (durch die großen Anfangswerte).
So nun kann ich aber leider KEINE Abfrage ala :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var n: Single;
    code : Integer;
    s   : string;
begin
    s := e.text;
    try
      Val(s,n,code);
    except
          MessageBox(0,'Wertebereich überschritten','Problem',16);
          e.SetFocus
    end;
    if code <> 0 then begin
       MessageBox(0,'Fehler im Ausdruck','Problem',16);
       e.SetFocus
    end
end;

machen, weil ich insgesammt 12 Werte eingebe und wenn alle groß genug sind, gibts kein negativen Wert und somit kein Problem. Das kann ich aber erst bei der Berechnung feststellen (deswegen rechne ich das ja ;-) )
Meine Frage ist nun:

X) Ist es geschickt mit einer If Abfrage nach jedem Teilergebnis den Wert zu checken ( ob er negativ ist) oder geht das vielleicht auch bei der finalen Rechnung, wo auch die Wurzel vorkommt? Denn es werden mehrere Rechnungen mit den Werten fabriziert, wenn nur eine ein Problem hätte könnte der Rest ja angezeigt werden..

Gruß Cosmic

-----------------------------------------
Let´s Fetz heute beginnt Dein Leben


Zuletzt bearbeitet von Cosmic am Di 10.12.02 19:00, insgesamt 1-mal bearbeitet
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 10.12.02 18:57 
Hallo,

yeahh, ein Matheproblem bei Dateizugriff ... :shock:

es wäre nicht verkehrt, genau zu wissen, WAS und wie Du was ausrechnest.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
ase
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 203

Gentoo, Windows 9X, ME, 2k, NT, XP
Delphi 7 Prof., PHP 5 (Eclipse 3 SDK)
BeitragVerfasst: Do 19.12.02 17:17 
Titel: exception
Servus!

Nimm einfach einen Try...Except Block. Das sieht dann so aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Try
  x := Sqr(y);   // y = -4
Except
  On EMathError do
    Begin
        ShowMessage('Negativer Wert unter Wurzel');
    End;
End;

Das sieht dann ziemlich hässlich aus wenn du das Programm mit nem Debugger ausführst (1000e Message Boxes...) aber der Endbenutzer sieht nur diese Meldung die du da oben siehst.

Zu Try und Except findest du in der Hilfe auch einiges.

(19.12. 17:22 Tino) Code-Tags hinzugefügt.
Cosmic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63



BeitragVerfasst: Do 19.12.02 17:43 
Titel: Danke
Hi,
super -- Danke! das habe ich noch nicht gewust!
Ciao Cosmic

-----------------------------------------
Let´s Fetz heute beginnt Dein Leben