![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуете надо написать программу квадратного уравнения, чтобы 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.Последний раз редактировалось Admin, 14.11.2010 в 18:14. |
|
#2
|
||||
|
||||
|
PHP код:
|
|
#3
|
|||
|
|||
|
Цитата:
![]() |
|
#4
|
||||
|
||||
|
Чет не пойму, зачем столько раз записывать в переменные значения из EditX.text.
Не проще так: Код:
var fl:boolean;
a:= StrToFloat(Edit1.Text);
b:= StrToFloat(Edit2.Text);
c:= StrToFloat(Edit3.Text);
fl:=true;
if a<0 then
begin
fl:=false;
showmessage('A отрицательно, введите другое.');
end
else
showmessage('A подходит');
if b<0 then
begin
fl:=false;
showmessage('b отрицательно, введите другое.');
end
else
showmessage('b подходит');
if c<0 then
begin
fl:=false;
showmessage('C отрицательно, введите другое.');
end
else
showmessage('C подходит');
if fl then
begin
//тут решение уравнения
end;
|
|
#5
|
|||
|
|||
|
зачем так сложно????!!!!!!!!!!!!!!!!!!!!!
следуй примеру Konrad Код:
a:= StrToFloat(Edit1.Text); b:= StrToFloat(Edit2.Text); c:= StrToFloat(Edit3.Text); if (a>=0) and (b>=0) and (c>=0) then begin 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; end; |
|
#6
|
|||
|
|||
|
Цитата:
( спасибо...все варианты попробую... А что это программа с отрицательными работать не будет да? только 0 или выше?Последний раз редактировалось Неопытный, 14.11.2010 в 23:34. |
|
#7
|
|||
|
|||
|
Цитата:
А какой командой можно стереть значения корней? А то вводишь а=1 б=5 с=4, выдает корни, а потом вводишь другие числа они там в лэйбалах остаются...а как сделать что стирались?)) |