unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const Nmax=10;
type mas1=array[1..nmax,1..nmax] of extended;
     mas2=array[1..nmax,1..nmax] of extended;
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.rowcount:=n+1;
 stringGrid2.colcount:=m+1;
 stringgrid1.cells[0,0]:='Массив А:';
 stringgrid2.cells[0,0]:='Массив B:';
for i:=1 to N do begin
stringgrid1.Cells[0,i]:='i='+inttostr(i);
stringgrid1.Cells[i,0]:='j='+inttostr(i);
stringgrid2.Cells[0,i]:='i='+inttostr(i);
stringgrid2.Cells[i,0]:='j='+inttostr(i);
end;
end;
//=====================================
procedure TForm1.Button1Click(Sender: TObject);
begin
try
n:=strtoint(edit1.text);
m:=strtoint(edit2.text);
 stringGrid1.rowcount:=n+1;
 stringGrid1.colcount:=m+1;
 stringGrid2.rowcount:=n+1;
 stringGrid2.colcount:=m+1;
for i:=1 to N do stringgrid1.cells[0,i]:='i='+inttostr(i);
for i:=1 to m do stringgrid1.cells[0,i]:='i='+inttostr(i);
for i:=1 to N do stringgrid2.cells[0,i]:='i='+inttostr(i);
for i:=1 to m do stringgrid2.cells[0,i]:='i='+inttostr(i);

except
    on ERangeError do begin showmessage('Выход за пределы массива. Уменишьте размер массива');
       Exit; end;
    on EConvertError do begin showmessage('В ячейке отсутсвует значение либо число введено неверно');
       Exit;end;
    else begin showmessage('Возникла неизвестная исключительная ситуация');
       Exit; end;  end;
end;
//=============================================
procedure TForm1.Button2Click(Sender: TObject);
var max,min:extended;
    e1,e2:integer;
begin
{$R+}
    try
  for i:=1 to n do begin
  for j:=1 to m do begin
   a[i,j]:=strtofloat(stringgrid1.cells[j,i]);
   b[i,j]:=strtofloat(stringgrid1.cells[j,i]); end; end;

//=находим максимальное и минимальное значения матрицы
  max:=a[1,1];
  for i:=1 to n do
  for j:=1 to m do
   if max<a[i,j] then begin max:=a[i,j];
   e1:=i;
  end;
   min:=1;
  for i:=1 to n do
  for j:=1 to m do
   if min>=a[i,j] then begin min:=a[i,j];
   e2:=i;
  end;
//================================
  for i:=1 to n do
  for j:=1 to m do
  if i=e1 then
  stringgrid2.cells[j,i]:=floattostr(a[e2,j])
  else
             if i=e2 then
      stringgrid2.cells[j,i]:=floattostr(a[e1,j])
      else  stringgrid2.cells[j,i]:=floattostr(a[i,j]);
      except
    on ERangeError do begin showmessage('Выход за пределы массива. Уменишьте размер массива');
       Exit; end;
    on EConvertError do begin showmessage('В ячейке отсутсвует значение либо число введено неверно');
       Exit;end;
    else begin showmessage('Возникла неизвестная исключительная ситуация');
       Exit; end;
  end;

end;
end.
