fork download
  1. {$MODE OBJFPC}{$LONGSTRINGS ON}
  2.  
  3. type
  4. TMyArray = array [0 .. 3, 0 .. 3] of String;
  5.  
  6. procedure Fill(out AMyArray: TMyArray);
  7. var
  8. X, Y: Integer;
  9. begin
  10. for X := 0 to 3 do
  11. for Y := 0 to 3 do
  12. AMyArray[X, Y] := Chr(65 + Y) + Chr(49 - X + 3);
  13. end;
  14.  
  15. procedure Print(const AMyArray: TMyArray);
  16. var
  17. X, Y: Integer;
  18. begin
  19. for X := 0 to 3 do
  20. begin
  21. for Y := 0 to 3 do
  22. Write(AMyArray[X, Y]:3);
  23.  
  24. WriteLn();
  25. end;
  26.  
  27. WriteLn();
  28. end;
  29.  
  30. procedure Rotate180(var AMyArray: TMyArray);
  31. var
  32. X, Y: Integer;
  33. Temp: String;
  34. begin
  35. for X := 0 to 1 do
  36. for Y := 0 to 3 do
  37. begin
  38. Temp := AMyArray[X, Y];
  39. AMyArray[X, Y] := AMyArray[3 - X, 3 - Y];
  40. AMyArray[3 - X, 3 - Y] := Temp;
  41. end;
  42. end;
  43.  
  44. var
  45. MyArray: TMyArray;
  46. begin
  47. Fill(MyArray);
  48. Print(MyArray);
  49.  
  50. Rotate180(MyArray);
  51. Print(MyArray);
  52. end.
Success #stdin #stdout 0s 336KB
stdin
Standard input is empty
stdout
 A4 B4 C4 D4
 A3 B3 C3 D3
 A2 B2 C2 D2
 A1 B1 C1 D1

 D1 C1 B1 A1
 D2 C2 B2 A2
 D3 C3 B3 A3
 D4 C4 B4 A4