{$MODE OBJFPC}{$LONGSTRINGS ON}

type
  TMyArray = array [0 .. 3, 0 .. 3] of String;

  procedure Fill(out AMyArray: TMyArray);
  var
    X, Y: Integer;
  begin
    for X := 0 to 3 do
      for Y := 0 to 3 do
        AMyArray[X, Y] := Chr(65 + Y) + Chr(49 - X + 3);
  end;

  procedure Print(const AMyArray: TMyArray);
  var
    X, Y: Integer;
  begin
    for X := 0 to 3 do
    begin
      for Y := 0 to 3 do
        Write(AMyArray[X, Y]:3);

      WriteLn();
    end;

    WriteLn();
  end;

  procedure Rotate180(var AMyArray: TMyArray);
  var
    X, Y: Integer;
    Temp: String;
  begin
    for X := 0 to 1 do
      for Y := 0 to 3 do
      begin
        Temp := AMyArray[X, Y];
        AMyArray[X, Y] := AMyArray[3 - X, 3 - Y];
        AMyArray[3 - X, 3 - Y] := Temp;
      end;
  end;

var
  MyArray: TMyArray;
begin
  Fill(MyArray);
  Print(MyArray);

  Rotate180(MyArray);
  Print(MyArray);
end.