PDA

Просмотр полной версии : Delphi


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;

код проверял несколько раз , но ошибку не смог найти

B0o0M
15.02.2010, 23:19
На какой строке выбивает ?

Irdis
15.02.2010, 23:25
if (d>0)
begin
x1 := ((-b) + (sqrt(d))) /(2 * a) ;
x2 := ((-b) - (sqrt(d))) /(2 * a) ;
end;
короче не считаем корня из -|d|. B И это не ед. место где вы не используете блоки begin end.

Seravin
15.02.2010, 23:36
а где ты вводишь a,b и c???????????? о_О) все работает

Chrome~
16.02.2010, 00:28
DelFo, ты написал бред хотя бы в том смысле, что здесь всюда должны быть не такие конструкции:
if <условие> then <команда>
а такие
if <условие> then begin <команды> end

Если проблемы возникают со столь простыми задачами, то дальше будет очень проблематично...