Willkommen in der
DP!
Die Fehlermeldung lässt darauf schließen, dass du mit negativen Werten in die Wurzel kommst, weshalb man das u.U. nicht sofort an den eingegebenen falschen Werten erkennen kann. Ich würde die Rechnung etwas auseinander ziehen, um noch eine weitere Bedingung einzubauen:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
VAR
a , b , c , s , flaeche , umfang, tmp: real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
s:=(a + b + c)*0.5;
tmp := s*(s - a)*(s - b)*(s - c);
if tmp < 0 then
begin
ShowMessage('Ungültiges Dreieck oder Eingabe fehlerhaft!')
end
else
begin
flaeche:=sqrt(tmp);
umfang:=(a + b + c);
Edit4.Text:=FloatToStr(flaeche);
Edit5.Text:=FloatToStr(umfang);
IF a+b<c THEN
begin
label7.Caption:='Dieses Dreieck existiert nicht!';
end;
end;
end;
end.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)