unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, grids, StdCtrls, mxarrays;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const nmax=10;
  type
  mas1=array[1..nmax,1..nmax] of integer;
  mas2=array[1..nmax] of integer;

var
  Form1: TForm1;
  A:mas1;
  B:mas2;
  N,M,i,j:integer;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
N:=3;
M:=3;
edit1.Text:=floattostr(N);
edit2.Text:=floattostr(M);
stringgrid1.rowcount:=N+1;
stringgrid1.ColCount:=M+1;
stringgrid2.colCount:=1;
stringgrid1.Cells[0,0]:='Массив А:';
stringgrid2.Cells[0,0]:='Массив В:';
for i:=1 to n do begin
stringgrid1.Cells[0,i]:='i='+inttostr(i);
stringgrid1.Cells[i,0]:='j='+inttostr(i);
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
N:=strtoint(edit1.Text);
M:=strtoint(edit2.Text);
stringgrid1.rowcount:=N+1;
stringgrid1.ColCount:=M+1;
stringgrid2.colCount:=1;
for i:=1 to n do stringgrid1.Cells[0,i]:='i='+inttostr(i);
for i:=1 to m do stringgrid1.cells[i,0]:='j='+inttostr(i);


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
for i:=1 to n do
for j:=1 to m do
A[i,j]:=strtoint(stringgrid1.cells[j,i]);
except
on ERangeError do begin ShowMessage('Выход за пределы массива. Уменьшите размер массива'); Exit; end;
on EConvertError do begin ShowMessage('В ячейке отсутствует значение, либо число введено не правильно'); Exit; end;
else begin ShowMessage('Возникла неизвестная исключительная ситуация!'); Exit; end;
end;
try
for i:=1 to n do begin
while A[i,j]>A[i,j+1] do begin
j:=j+1;
end;
if j<3 then B[i]:=0
else B[i]:=1;
StringGrid2.Cells[0,i]:=intToStr(B[i]);
end;

except
on EInvalidOp do begin MessageDlg('Неправильная операция с плавающей точкой',mtError,[mbCancel],0);Exit; end;
on EOverFlow do begin MessageDlg('Переполнение при выполне-нии операции с плавающей точкой',mtError,[mbCancel],0); Exit; end;
else begin MessageDlg('Возникла неизвестная исключительная ситуация!',mtError,[mbCancel],0); Exit; end;

end;


end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 for i:=1 to n do
 for j:=1 to n do
stringgrid1.Cells[i,j]:=inttostr(random(100));
end;

end.

