Как в Lazarus (либо Delphi) решить квадратное уравнение ([tex]ax^2 + bx

Как в Lazarus (либо Delphi) решить квадратное уравнение (ax^2 + bx + c = 0), когда ax^2 = 0 ?

Задать свой вопрос
1 ответ
Просто добавить условие, что разделять на 0 нельзя.

Delphi/Lazarus
------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c, d, x1, x2: real;
begin
  a := StrToFloat(Edit1.Text);
  b := StrToFloat(Edit2.Text);
  c := StrToFloat(Edit3.Text);
  if a lt;gt; 0 then
  begin
       d := sqr(b) - 4 * a * c;
       if (d gt; 0) then
       begin
            x1 := (-b+sqrt(d))/(2*a);
            x2 := (-b-sqrt(d))/(2*a);
            Label1.Caption := 'x1 = ' + FloatToStr(x1);
            Label2.Caption := 'x2 = ' + FloatToStr(x2);
       end
       else
       if d = 0 then
       begin
            x1:=-b /(2*a);
            x2:=x1;
            Label1.Caption := 'x1 = ' + FloatToStr(x1);
            Label2.Caption := 'x2 = ' + FloatToStr(x2);
       end
       else
       if d lt; 0 then
          ShowMessage('Корней нет');
  end
  else
  if (a = 0) and (b = 0) and (c = 0) then
    ShowMessage('X = хоть какое.')
  else
  if (a = 0) and (b = 0) then
    ShowMessage('Решений нет.')
  else
  if (a = 0) then
  begin
    x1 := (-c)/b;
    Label1.Caption := 'x = ' + FloatToStr(x1);
    Label2.Caption := '';
  end;
end;
Широкорад Константин
Нам дали задание, сделать так, чтобы при значении а = 0, уравнение всё одинаково решалось.
Кукояжный Данил
И тогда получится уравнение: bx + c = 0
Камилла
Отредактировал.
Ксения
А ты знаешь команду остановки решения задания в определенном месте?
Денчик Гузихин
Есть break для прерывания цикла и exit для прерывания процедуры, но их обычно избегают.
Алексей Клементановский
Просто, когда дискриминант меньше нуля, оно пишет "Нет корней", но всё одинаково решает и выводит ответ, а мне необходимо, чтоб после этой фразы у меня не было решения
Пашок Жвирблинский
Он ничего не решает. Наверно просто результаты предшествующего решения остались. Просто сотри их. Поменяй строку if d < 0 then ShowMessage('Корней нет'); на if d < 0 then begin Label1.Caption := ''; Label2.Caption := ''; ShowMessage('Корней нет'); end;
Сема Яйсемов
Хорошо
Вадим Рысцов
То же самое. Оно поначалу пишет "Корней нет" и Label пустые, а после нажатия "ОК", оно мне выбивает какой-то ответ.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
задание экономиоти Рассмотри ситуацию: человек живёт на Крайнем Се-вере. С помощью каких

Экономика.

Человек живет на Крайнем Севере. С помощью каких благ удовлетворяются потребности

Экономика.

там лежат три яйца.у дома рос клен.Это гнездо сойки.на клёне гнездо

Русский язык.

Тыныштық күйіндегі карусель 35 с-та 3,0 рад/с бұрыштық жылдамдықпен үдей қозғалады.

Разные вопросы.

Сочинение на тему "Русский язык не сможет умереть!"

Математика.

Приветствую! Меня зовут Станислав, я представляю компанию under.site. Хотел бы предложить интересное решение

Разные вопросы.

Масса трёх одинаковых пакетов чая 180г чему равна масса

Математика.

Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл

Химия.

Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы

Русский язык.

Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника

Геометрия.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт