Program Z21;
uses crt;   {�뢮� �� ��࠭}


type matr =array [1..6,1..6] of integer;      {���ᠭ�� ��६�����}
     matr2=array[1..6,1..6] of integer;
var a: matr;
    tabl:matr2;
    Error: integer;
    for_0,for_1,for_2: char;
    i,j, n,k: byte;
    ch:char;    {��६����� ��� �࠭���� ���� ᨬ���� ����⮩ ������}
    nam_e:string; {��ப��� ���ࠫ}

{---------------���� ���祭�� ������⮢ ���ᨢ�(���, ��ப�, �⮫���)---------------}
	Procedure Mv (var n,
                    k: byte;
                var nam_e: string);
  var error:integer;
Begin {1}
Gotoxy (2,3);
textcolor(green);
  Write ('������ ��� ������: ');
   Readln (nam_e);
Clrscr;
Repeat   {��砫� 横�� � �����᫮����}
Gotoxy(4,4);
textcolor(lightblue);
Writeln ('���ᨬ��쭮 �����⨬�� ࠧ��୮��� ������ - 6�6 ������⮢');

{---------------���� ࠧ��୮�� ������---------------}
gotoxy(4,6);
textcolor(lightcyan);
Write('������ ������⢮ ��ப ������  ', nam_e,':  ');
{$i-};
Readln (n);
error:=IOresult;
{$i+};
If (n<1) or (n>6) or (Error<>0) then
Begin  {2}
Textattr:=lightred;
Writeln ('�訡��! ������⢮ ��ப ������ - �� 1 �� 6. ������ ����!');
End; {2}
Until (n>=1) and  (n<=6) and (Error=0); {����� 横�� � �����᫮����}
begin {3}
Repeat
Gotoxy (4,8);
Textattr:=cyan;
Write ('������ ������⢮ �⮫�殢 ������ ', nam_e,':  ');
{$i-};
Readln (k);
error:=IOresult;
{$i+};
If (k<1) or (k>6) or (Error<>0) then
Begin  {4}
Textattr:=lightred;
Writeln ('�訡��! ������⢮ �⮫�殢 ������ - �� 1 �� 6. ������ ����!');
End;  {4}
Until (k>=1) and (k<=6) and (Error=0);
End; {3}
end; {1}
{---------------���� ������⮢ ������ (��砩�� �᫠)---------------}
Function Random(n,k: byte; var A: Matr) :integer;
var i,j : byte;
begin  {1}

 for i:=1 to n do
 begin    {2}
  for j:=1 to k do
   begin     {3}
   A[i,j]:= system.random(19)-9;
write(A[i,j]:4);
 end;{3}
  end;  {2}
 end;      {4}






{---------------���� ������⮢ ������(������⥫��)---------------}
Procedure Ml  (var  TABL: Matr2);
var i,j: integer;
begin   {1}
gotoxy(3,4);
textattr:=yellow;
  writeln('������⥫�� ��������: ');

  for i:=1 to n do
  begin    {2}

    for j:=1 to k do
     begin    {3}
      if a[i,j]>0 then write(a[i,j]:4)
      else write('  ' );
    TABL[i,j]:=A[i,j];
     writeln;
      end;       {3}
  end;              {2}

  end;                {1}
{---------------���� ������⮢ ������(����⥫��)---------------}
Procedure Md  ( var  TABL: Matr2);
var i,j: integer;
begin    {1}
gotoxy(3,4);
  writeln('����⥫�� ��������: ');

  for i:=1 to n do
  begin     {2}

    for j:=1 to k do

      if a[i,j]<0 then write(a[i,j]:4)
      else write ('   ');
     TABL[i,j]:=A[i,j];
    writeln;

  end;         {2}
  readln;
  end;            {1}

{---------------���� ������⮢ ������(��ᯮ������� ��室��� � �८�ࠧ�������)---------------}
Procedure Raspl (for_2:char);
Var I,j: byte;
label L1;
Begin  {1}
     clrscr;
   gotoxy(25,1);
     Textattr:=lightgreen;
   writeln('��室��� �����');
     Textattr:=yellow;
   writeln(nam_e);
   writeln;
     Textattr:=lightblue;
   Gotoxy (1, 3);
  For i:= 1 to n do
  begin  {2}
    For j:=1 to k do
      Write (A[i,j]:5, ' ');
    writeln;
  end; {2}


Case for_2 of {3}
#112,#80: begin {1}
    gotoxy(n+38,2); {��ࠢ� �� ��室���}
      Textattr:=yellow;
    writeln(nam_e);
    writeln;
    window(40,3,80,15);
      Textattr:=lightblue;
For i:=1 to n do
 begin  {2}
  For j:=1 to k do
    Write (TABL[i,j]:5, ' ');
  writeln;
 end;  {2}
          end; {1}


#76,#108: begin   {1}
    Textattr:=yellow; {��� ��室���}
      Gotoxy (2,k+7);

    writeln(nam_e);
    writeln;
      gotoxy(1,k+10);
    Textattr:=lightblue;
   For i:= 1 to n do
    begin   {2}
     For j:=1 to k do
       Write (TABL[i,j]:5, ' ');
     writeln;
    End;   {2}
        end;  {1}
end; {3}
end; {1}
begin
Mv (n,k,nam_e);
clrscr;
textattr:=magenta;
Writeln ('����� �᫠ �ᯮ�짮���� � �����?R-��砩��,U-ᮡ�⢥���' );
readln(for_0);
case for_0 of {2}
#82,#114: Random(n,k,A);
#85,#117: begin {3}
clrscr;
textattr:=white;
  writeln('������ �������� ������'); {���� ������⮢ ������}
  for i:=1 to n do
  begin            {4}
    for j:=1 to k do
    begin             {5}
    repeat
     write ('������ a[',i,' ',j,']');
{$i-};
           readln(a[i,j]);
error:=IOresult;
{$i+};
If (a[i,j]<-10000) or (a[i,j]>10000) or (Error<>0) then
Begin                    {6}
Textattr:=lightred;
Writeln ('�訡��!������ ����!');
End;                        {6}




      until (a[i,j]<=10000) and (a[i,j]>=-10000) ;


    end;                       {5}
    writeln;
  end;                            {4}
 end;                              {3}
end; {2}


clrscr;
textattr:=lightgreen;
writeln ('����� �������� ������ �뢥��? �-������⥫��,Q-����⥫�� ');
readln(for_1);
case for_1 of {7}
#77, #109:Ml  (TABL);
#81, #113:Md  (TABL);
end; {7}
clrscr;
textattr:=green;

writeln('� ����� ���� �뢥�� ������?');

textattr:=brown;
writeln('����� ����� �ࠢ� �� ��室���-S,��� ��室���-L');
for_2:=readkey;
clrscr;
 gotoxy(1,15);
 textattr:=lightcyan;
 writeln('������� ��ࠡ�⪨: ');
 writeln;
Raspl (for_2);
window (20,24,80,25);
readln;
          {8}

end.  {1}