unit Unit1;

interface

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

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
  maxN=10;

type
  tMas1=array[1..maxN,1..maxN]of extended;
  tMas2=array[1..maxN]of extended;

var
  Form1: TForm1;
  a:tMas1;
  b:tMas2;
  n,m:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
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;
  StringGrid1.Cells[0,0]:='Массив A:';
  StringGrid2.Cells[0,0]:='Массив B:';
  for i:=1 to N do
  begin
    StringGrid1.Cells[i,0]:=' i= '+IntToStr(i);
  end;
  for i:=1 to M do
  begin
    StringGrid1.Cells[0,i]:=' j= '+IntToStr(i);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i,j:integer;
begin
  N:=StrToInt(Edit1.Text);
  M:=StrToInt(Edit2.Text);
  StringGrid1.RowCount:=N+1;
  StringGrid1.ColCount:=M+1;
  StringGrid2.RowCount:=N+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);
  for i:=1 to maxN do for j:=1 to maxN do StringGrid1.Cells[i,j]:='';
  for i:=1 to n do StringGrid2.Cells[0,i]:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i,j:integer;
begin
 {$R+}
  try
    for i:=1 to N do for j:=1 to M do A[i,j]:=StrToFloat(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;

  for i:=1 to n do
  begin
     b[i]:=1;
     for j:=1 to m div 2 do if a[i,j]<>a[i,m-j+1] then b[i]:=0;
  end;

  for i:=1 to N do StringGrid2.Cells[0,i]:=FloatToStrf(b[i],fffixed,6,0);
end;
end.
