unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A: array [1 .. 20] of integer;
i, N, min: integer;
str: string;
implementation
{$R *.dfm}
// Заполняем массив А случайными числами [1,20]
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
N := StrToInt(Edit1.Text);
str := '';
min := 100;
for i := 1 to N do
begin
A[i] := Round(Sin(Random(50)) * 50);
if min > A[i] then
min := A[i];
str := str + IntToStr(A[i]) + #9;
end;
Memo1.Clear;
Memo1.Lines.Add(str);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
j1, j2, p, x: integer;
begin
j1 := 1;
while j1 <= N do
if A[j1] mod 2 = 0 then
begin
p := A[j1 + 1];
A[j1 + 1] := min;
j2 := j1 + 2;
inc(N);
while j2 <= N do
begin
x := A[j2];
A[j2] := p;
p := x;
inc(j2);
end;
// смещение элементов массива на одну позицию вправо
j1 := j1 + 2;
// Добавление минимального элемента после четного числа
end
else
inc(j1);
str := '';
for i := 1 to N do
str := str + IntToStr(A[i]) + #9;
Memo1.Lines.Add(str);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;
end.