unit Un123213213213it1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
A, B, C: Double;
LeftPart: Double;
X, Y: Integer;
Found: Boolean;
begin
ListBox1.Clear;
Found := False;
if not TryStrToFloat(Edit2.Text, A) or
not TryStrToFloat(Edit3.Text, B) or
not TryStrToFloat(Edit4.Text, C) then
begin
ShowMessage('Vvedite korrektnye znacheniya A, B i C.');
Exit;
end;
if (A = 0) and (B = 0) then
begin
ShowMessage('A i B odnovremenno ne mogut byt ravny nuly.');
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('Resheniy v diapazone -20..20 ne naydeno');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ListBox1.Sorted := True;
end;
end.