G
Guest
Здравствуете надо написать программу квадратного уравнения, чтобы a,b и c были положительными, я сделал что-то похожее, но программа все равно и считает при отрицательных, что исправить подскажите пожалуйста:
Код:
var
a: real;
b: real;
c: real;
d: real;
x1: real;
x2: real;
begin
try
a:= StrToFloat(Edit1.Text);
if a>=0 then
begin
ShowMessage('Число "а" положительно, решение разрешено');
end;
a:= StrToFloat(Edit1.Text);
if a<0 then
begin
ShowMessage('Число "а" неположительно, введите другое...');
a:= StrToFloat(Edit1.Text);
end
else
b:= StrToFloat(Edit2.Text);
if b<0 then
begin
ShowMessage('Число "b" неположительно, введите другое...');
b:= StrToFloat(Edit1.Text);
end;
if b>=0 then
begin
ShowMessage('Число "b" положительно, решение разрешено');
end
else
c:= StrToFloat(Edit3.Text);
if c<0 then
begin
ShowMessage('Число "c" неположительно, введите другое...');
c:= StrToFloat(Edit1.Text);
end;
if c>=0 then
begin
ShowMessage('Число "c" положительно, решение разрешено');
end
else
d:= sqr(B)- 4*a*c;
if d>=0 then
begin
x1:= (-b + sqrt(d))/(2*a);
x2:= (-b - sqrt(d))/(2*a);
Label4.Caption := 'x1='+ FloatToStrF(x1,ffFixed,6,2)+#13+
'x2=' + FloatToStrF(x2,ffFixed,6,2);
end
else ShowMessage('Уравнение не имеет корней');
except
on EConvertError do
begin
ShowMessage('Введите данные');
exit;
end;
end;
end;
end.