Квадратное уравнение

Материал из DRKB


// решает квадратное уравнение
{ a, b, c - коэффициенты уравнения
  x1, x2  - корни уравнения
  Result = True  - решение есть; False - решения нет }
function SqRoot(a, b, c: Real; var x1, x2: Real): Boolean;
var
  d: Real; // дискриминант
begin
  d := Sqr(b) - 4 * a * c;
  if d < 0 then
    Result := False // уравнение не имеет решения
  else
  begin
    Result := True;
    x1 := (-b + Sqrt(d)) / (2 * a);
    x2 := (b + Sqrt(d)) / (2 * a);
  end;
end;


// Пример использования
procedure TForm1.Button1Click(Sender: TObject);
var
  k1, k2: Real; // корни уравнения
  rez: Boolean; // True - решение есть, False - решения нет
  mes: string; // сообщение
begin
  rez := SqRoot(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text),
    StrToFloat(Edit3.Text), k1, k2, rez);
  if rez then
    mes := 'Корни уравнения' + #13 +
      'x1=' + FloatToStrF(k1, ffGeneral, 4, 2) + #13 +
      'x2=' + FloatToStrF(k2, ffGeneral, 4, 2) + #13
  else
    mes := 'Уравнение не имеет решения';

  Label5.Caption := mes;
end;


Source: http://delphiworld.narod.ru/
ID: 04094