fork download
  1. program ideone;
  2.  
  3. {$MODE OBJFPC}{$LONGSTRINGS ON}
  4.  
  5. const
  6. N = 3;
  7. M = 3;
  8.  
  9. type
  10. T1DNumbers = array [0 .. N * M - 1] of UInt8;
  11. T2DNumbers = array [0 .. N - 1, 0 .. M - 1] of UInt8;
  12.  
  13. procedure FillNumbers(out ANumbers: T2DNumbers);
  14. var
  15. LNumbers: T1DNumbers absolute ANumbers;
  16. LNumIdx: Integer;
  17. begin
  18. for LNumIdx := Low(LNumbers) to High(LNumbers) do
  19. LNumbers[LNumIdx] := Random(10);
  20. end;
  21.  
  22. procedure SortNumbers(var ANumbers: T2DNumbers);
  23. var
  24. LNumbers: T1DNumbers absolute ANumbers;
  25. LSize, LNumIdx: Integer;
  26. LSwap: UInt8;
  27. begin
  28. for LSize := Low(LNumbers) to High(LNumbers) do
  29. for LNumIdx := Low(LNumbers) to High(LNumbers) - 1 do
  30. if LNumbers[LNumIdx] > LNumbers[LNumIdx + 1] then
  31. begin
  32. LSwap := LNumbers[LNumIdx];
  33. LNumbers[LNumIdx] := LNumbers[LNumIdx + 1];
  34. LNumbers[LNumIdx + 1] := LSwap;
  35. end;
  36. end;
  37.  
  38. procedure ShowNumbersAs1D(const ANumbers: T2DNumbers);
  39. var
  40. LNumbers: T1DNumbers absolute ANumbers;
  41. LNumber: UInt8;
  42. begin
  43. for LNumber in LNumbers do
  44. Write(LNumber:2);
  45.  
  46. Write(LineEnding, LineEnding);
  47. end;
  48.  
  49. procedure ShowNumbersAs2D(const ANumbers: T2DNumbers);
  50. var
  51. LColIdx: Integer;
  52. LNumber: UInt8;
  53. begin
  54. for LColIdx := Low(ANumbers) to High(ANumbers) do
  55. begin
  56. for LNumber in ANumbers[LColIdx] do
  57. Write(LNumber:2);
  58.  
  59. WriteLn();
  60. end;
  61.  
  62. WriteLn();
  63. end;
  64.  
  65. var
  66. LNumbers: T2DNumbers;
  67. begin
  68. Randomize();
  69.  
  70. FillNumbers(LNumbers);
  71. ShowNumbersAs1D(LNumbers);
  72. ShowNumbersAs2D(LNumbers);
  73.  
  74. SortNumbers(LNumbers);
  75. ShowNumbersAs1D(LNumbers);
  76. ShowNumbersAs2D(LNumbers);
  77. end.
  78.  
Success #stdin #stdout 0s 340KB
stdin
Standard input is empty
stdout
 7 5 0 2 7 0 9 1 6

 7 5 0
 2 7 0
 9 1 6

 0 0 1 2 5 6 7 7 9

 0 0 1
 2 5 6
 7 7 9