unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    Memo1: TMemo;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const n=100;
var
  Form1: TForm1;
  a:array[1..n,1..n] of integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var i,j,N,M:Integer;
begin
N:=StrToInt(Edit1.Text);
M:=StrToInt(Edit2.Text);
With StringGrid1 do
Begin
ColCount:=N+1;
RowCount:=M+1;
Cells[0,0]:='Massive';
end;
For i:=1 to N do
StringGrid1.Cells[i,0]:='j='+IntToStr(i);
For i:=1 to M do
StringGrid1.Cells[0,i]:='i='+IntToStr(i);
Randomize;
For i:=1 to n do
For j:=1 to m do
Begin
A[i,j]:=Random(10);
StringGrid1.Cells[i,j]:=IntToStr(A[i,j]);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j,i1,j1,i2,j2,N,M:byte;
begin
begin
N:=4;       // Число строк в массиве
M:=4;       // Число столбцов в массиве
      N:=StrToInt(Edit1.Text);
M:=StrToInt(Edit2.Text);
end;

i1:=2;j1:=n;
i2:=2;j2:=1;
for i:=1 to n do
for j:=1 to n do
if(j>n-i+1)and(a[i,j]>a[i1,j1]) then
 begin
  i1:=i;
  j1:=j;
 end
else if(i>j)and(a[i,j]<a[i2,j2]) then
 begin
  i2:=i;
  j2:=j;
 end;
Memo1.Lines.Add('Максимальный элемент ниже побочной диагонали a['
                +IntToStr(i1)+','+IntToStr(j1)+']='+IntToStr(a[i1,j1]));
Memo1.Lines.Add('Минимальный  элемент выше главной  диагонали a['
                +IntToStr(i2)+','+IntToStr(j2)+']='+IntToStr(a[i2,j2]));
end;

procedure TForm1.Button3Click(Sender: TObject);
var N, M, i, j : integer;

begin
N:=StrToInt(Edit1.Text);
M:=StrToInt(Edit2.Text);
 {Задание числа строк и столбцов в таблицах}
   StringGrid1.RowCount:=N+1;
   StringGrid1.ColCount:=M+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;
end.
