Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Floating Point error
drsnoop - Fr 10.10.03 19:09
Titel: Floating Point error
hab ein problem mit folgender prozedur:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TForm1.b_berechnenClick(Sender: TObject); var radius1, radius2, hoehe, seite, volumen, oberfl : extended;
begin if (tf_radius1.text = '') or (tf_radius2.text = '') or (tf_hoehe.text = '') or (tf_seite.text = '') then showmessage('Alle Felder müssen ausgefüllt sein!')
else if (strtofloat(tf_radius1.text) <= 0) or (strtofloat(tf_radius2.text) <= 0) or (strtofloat(tf_hoehe.text) <= 0) or (strtofloat(tf_seite.text) <= 0) then showmessage('Alle Zahlen müssen > 0 sein.')
else begin radius1 := strtofloat(tf_radius1.text); radius2 := strtofloat(tf_radius2.text); hoehe := strtofloat(tf_hoehe.text); seite := strtofloat(tf_hoehe.text);
begin if sqr(seite) = sqr(radius2-radius1)+sqr(hoehe) then
oberfl := pi * (radius1*radius1 + radius2*radius2 + seite * (radius1 + radius2)); volumen := (pi/3) * hoehe * (radius1*radius1 + radius1 * radius2 + radius2*radius2); tf_oberfl.text := floattostr(oberfl); tf_volumen.text := floattostr(volumen); end; end; end; |
das ist ein programm, dass das volumen und die oberfläche eines kegelstumpfes berechnet... das programm läuft zwar aber es zeigt mir immer das hier an:
| Zitat: |
| [Warning] Unit1.pas(114): Variable 'oberfl' might not have been initialized |
und wenn ich auf den button berechnen klicke, kommt das hier:
wenn ich dann den debugger laufen lasse, kommt das hier:
benutze delphi 4 @ windows XP...
kann mir jemand helfen?
gruß, doc
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt & Topic umbenannt.
fcg - Fr 10.10.03 19:18
erstmal willkommen im Forum, zweitens ändern mal den Namen deines Topics so, das es Aussagekräfitg wird!
Christian S. - Fr 10.10.03 19:22
Hallo und herzlich Willkommen im Forum!
Bitte schreibe doch noch, in welcher Zeile der geposteten Prozedur der Fehler auftaucht, dann kann man gezielter suchen.
MfG
Peter
P.S.: Bitte nutze demnächst für Quelltext bitte die Delphi-Tags. Die erhalten die Formatierung und unterstützen Syntax-Highlighting im Forum!
//edit:
P.P.S: bevor Du es von einem Admin oder Mod hörst: laut Richtlinien sind Verweise auf Internetseiten in der Signatur nicht erlaubt. Aber Du kannst ja eine Internetseite im Profil eintragen!
Klabautermann - Fr 10.10.03 19:45
Titel: Re: Floating Point error
Hallo,
| drsnoop hat folgendes geschrieben: |
| [Warning] Unit1.pas(114): Variable 'oberfl' might not have been initialized |
das ist nur ein hinweis darauf, das du mit einer Variable Arbeitest, der du vorher keinen Wert zugewiesen hast. Wenn du vor der ersten Verwendung der Variable
oberfl die Zeile:
einfügst, sollte sie verschwinden.
Kommt die Floating Point Fehlermeldung bei allen Werten oder nur wenn du bestimmte eingibst? Erzeugst du vieleicht eine Division durch Null?
Gruß
Klabautermann
fcg - Fr 10.10.03 20:02
das ist die 'Fehlerzeile':
Delphi-Quelltext
1:
| tf_oberfl.text := floattostr(oberfl); |
wenn du vorher der Variablen oberfl den Wert null zuweißt, geht es, und als Oberflächenergebniss kommt dann der Weert Null heraus...
fcg
drsnoop - Fr 10.10.03 20:08
danke erstmal für die freundliche aufnahme...
das mit der signatur wusste ich nicht... hab ich auch schon geändert jetzt... :D
und vielen dank für die hilfe... jetzt klappts... hänge seit 2 stunden daran und habe auch shcon den kompletten quelltext umgeschireben und alles und habe teilweise immer mehr fehlmeldungen gehabt...
werde euch weiterempfehlen!!! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!