Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 16:06   #1
Неопытный
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 11
По умолчанию Квадратное уравнение...(Положительные числа)

Здравствуете надо написать программу квадратного уравнения, чтобы 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.

Последний раз редактировалось Stilet; 15.11.2010 в 17:24.
Неопытный вне форума Ответить с цитированием
Старый 14.11.2010, 17:29   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Обманываете вы, не сами писали
Код:
a:= StrToFloat(Edit1.Text);
if a>=0 then
begin
ShowMessage('Число "а" положительно, решение разрешено');
a:= StrToFloat(Edit1.Text) else ShowMessage('Число "а" отрицательное, решение не разрешено');
с другими переменными аналогично
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 14.11.2010, 17:40   #3
Неопытный
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Обманываете вы, не сами писали
Код:
a:= StrToFloat(Edit1.Text);
if a>=0 then
begin
ShowMessage('Число "а" положительно, решение разрешено');
a:= StrToFloat(Edit1.Text) else ShowMessage('Число "а" отрицательное, решение не разрешено');
с другими переменными аналогично
Спасибо сейчас попробую, конечно не сам, лазил в интернете и лепил и импровизировал...
Неопытный вне форума Ответить с цитированием
Старый 14.11.2010, 17:50   #4
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

там перед
Код:
else ShowMessage
надо еще поставить end
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 14.11.2010, 23:37   #5
Неопытный
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 11
По умолчанию

Получилось))):
Код:
var
a: real;
b: real;
c: real;
d: real;
x1: real;
x2: real;
fl:boolean;
 begin
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
 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('Óðàâíåíèå íå èìååò êîðíåé');



  exit;
end;





 end;

end.
Неопытный вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Квадратное уравнение sergio11 Общие вопросы Delphi 3 11.05.2010 21:42
Квадратное уравнение LuBuMaster Общие вопросы C/C++ 0 24.03.2010 18:19
Квадратное уравнение!!! java_java_java Общие вопросы по Java, Java SE, Kotlin 31 15.10.2009 18:05
Квадратное уравнение на Assembler PLETNEFF Помощь студентам 3 10.10.2007 09:06