Загрузка данных


var
  A, B, C: Double;
  x, y: Integer;
  CodeA, CodeB, CodeC: Integer;
  LeftPart: Double;
  Found: Boolean;
begin
  ListBox1.Clear;
  Found := False;

  Val(Edit2.Text, A, CodeA);
  Val(Edit3.Text, B, CodeB);
  Val(Edit4.Text, C, CodeC);

  if (CodeA <> 0) or (CodeB <> 0) or (CodeC <> 0) then
  begin
    ShowMessage('Ошибка ввода параметров A, B или C!');
    Exit;
  end;

  if (A = 0) and (B = 0) then
  begin
    ShowMessage('Параметры A и B не могут быть одновременно нулевыми!');
    Exit;
  end;

  for x := -20 to 20 do
    for y := -20 to 20 do
    begin
      LeftPart := A * x * x + B * y * y;
      if Abs(LeftPart - C) < 1E-9 then
      begin
        ListBox1.Items.Add(
          Format('x = %d, y = %d  (%.1f*%d^2 + %.1f*%d^2 = %.1f)',
            [x, y, A, x, B, y, C]));
        Found := True;
      end;
    end;

  if not Found then
    ListBox1.Items.Add('Решений в диапазоне -20..20 не найдено');
end;