DelFo
15.02.2010, 22:33
никак не могу написать программу для решения квадратных уравнений , вроде делфи не видит ошибок и компилирует программу , но когда нажимаю кнопку решить выдает ошибку (Invalid floating point operation)
procedure TForm2.Button1click(Sender: TObject);
var
a: real;
b: real;
c: real;
d: real;
x1: real;
x2: real;
x3: real;
begin
d := b * b - 4 * a * c;
if d>0 then
x1 := ((-b) + (sqrt(d))) /(2 * a) ;
x2 := ((-b) - (sqrt(d))) /(2 * a) ;
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение имеет 2 корня ';
Label8.Caption := 'X1= '+
FloatToStrF(x1, ffGeneral, 6,2);
Label9.Caption := 'X2= '+
FloatToStrF(x2, ffGeneral, 6,2);
if d=0 then
x3 := (-b)/(2 * a);
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение имеет 1 корень ';
Label8.Caption := 'X= '+
FloatToStrF(x3, ffGeneral, 6,2);
if d<0 then
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение не имеет корней ';
end;
procedure TForm2.Button2click(Sender: TObject);
begin
Form2.Close;
end;
код проверял несколько раз , но ошибку не смог найти
procedure TForm2.Button1click(Sender: TObject);
var
a: real;
b: real;
c: real;
d: real;
x1: real;
x2: real;
x3: real;
begin
d := b * b - 4 * a * c;
if d>0 then
x1 := ((-b) + (sqrt(d))) /(2 * a) ;
x2 := ((-b) - (sqrt(d))) /(2 * a) ;
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение имеет 2 корня ';
Label8.Caption := 'X1= '+
FloatToStrF(x1, ffGeneral, 6,2);
Label9.Caption := 'X2= '+
FloatToStrF(x2, ffGeneral, 6,2);
if d=0 then
x3 := (-b)/(2 * a);
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение имеет 1 корень ';
Label8.Caption := 'X= '+
FloatToStrF(x3, ffGeneral, 6,2);
if d<0 then
Label7.Caption := 'D= '+
FloatToStrF(d, ffGeneral, 6,2)+
', то уравнение не имеет корней ';
end;
procedure TForm2.Button2click(Sender: TObject);
begin
Form2.Close;
end;
код проверял несколько раз , но ошибку не смог найти