fork download
  1. program ideone;
  2.  
  3. type TData=array[0..8,0..8] of Integer;
  4. type TArr=array[0..29] of Integer;
  5.  
  6. const data:TData=
  7. (
  8. (1,2,3,4,5,6,7,8,9),
  9. (10,11,12,13,14,15,16,17,18),
  10. (19,20,21,22,23,24,25,26,27),
  11. (28,29,30,31,32,33,34,35,36),
  12. (37,38,39,40,41,42,43,44,45),
  13. (46,47,48,49,50,51,52,53,54),
  14. (55,56,57,58,59,60,61,62,63),
  15. (64,65,66,67,68,69,70,71,72),
  16. (73,74,75,76,77,78,79,80,81)
  17. );
  18.  
  19. procedure rand30(var arr:TArr;const data:TData);
  20. var copy:TData;
  21. var I,P,swap:Integer;
  22. begin
  23. copy:=data;
  24. for I:=0 to high(TArr) do
  25. begin
  26. P:=Random(9*9-I);
  27. swap:=copy[0,P];
  28. copy[0,P]:=copy[0,I];
  29. copy[0,I]:=swap;
  30. arr[I]:=swap;
  31. end;
  32. end;
  33.  
  34. procedure show(const arr:TArr);
  35. var I:Integer;
  36. begin
  37. for I:=0 to high(TArr) do Write(' ',arr[I]);
  38. WriteLn;
  39. end;
  40.  
  41. var arr:TArr;
  42. begin
  43. Randomize;
  44. rand30(arr,data);
  45. show(arr);
  46. rand30(arr,data);
  47. show(arr);
  48. rand30(arr,data);
  49. show(arr);
  50. rand30(arr,data);
  51. show(arr);
  52. end.
Success #stdin #stdout 0s 276KB
stdin
Standard input is empty
stdout
 30 20 5 50 70 67 59 64 29 28 14 35 70 57 17 20 22 41 40 47 56 16 36 56 4 67 46 34 47 23
 78 24 27 42 17 3 17 6 72 8 38 44 5 6 36 59 44 42 20 53 28 3 38 32 28 21 47 72 40 33
 42 49 31 50 76 20 6 59 30 32 54 46 6 52 19 23 48 13 6 10 19 52 40 35 14 50 45 4 35 13
 36 69 44 76 20 49 68 39 1 66 68 56 25 40 61 3 55 17 51 23 9 29 25 54 66 56 5 1 54 52