fork download
  1. {$MODE OBJFPC}{$LONGSTRINGS ON}
  2.  
  3. type
  4. TMyArray = array [0 .. 4, 0 .. 4] of Integer;
  5.  
  6. procedure FillArray(out AArray: TMyArray; AX, AY, AValue, AStep: Integer);
  7. begin
  8. if (AX = 5) or (AY = 5) then Exit;
  9.  
  10. AArray[AX, AY] := AValue;
  11.  
  12. if AValue in [0, 5] then
  13. AStep *= -1;
  14.  
  15. FillArray(AArray, AX + 1, AY, AValue + AStep, AStep);
  16. FillArray(AArray, AX, AY + 1, AValue + AStep, AStep);
  17. end;
  18.  
  19. procedure PrintArray(const AArray: TMyArray);
  20. var
  21. X, Y: Integer;
  22. begin
  23. for Y := 0 to 4 do
  24. begin
  25. for X := 0 to 4 do
  26. Write(AArray[X, Y]:3);
  27.  
  28. WriteLn();
  29. end;
  30. end;
  31.  
  32. var
  33. MyArray: TMyArray;
  34. begin
  35. FillArray(MyArray, 0, 0, 1, 1);
  36. PrintArray(MyArray);
  37. end.
Success #stdin #stdout 0s 336KB
stdin
Standard input is empty
stdout
  1  2  3  4  5
  2  3  4  5  4
  3  4  5  4  3
  4  5  4  3  2
  5  4  3  2  1