Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Delphi (https://forum.antichat.xyz/showthread.php?t=179159)

DelFo 15.02.2010 22:33

Delphi
 
никак не могу написать программу для решения квадратных уравнений , вроде делфи не видит ошибок и компилирует программу , но когда нажимаю кнопку решить выдает ошибку (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
Если проблемы возникают со столь простыми задачами, то дальше будет очень проблематично...


Время: 16:05