fork(2) download
  1. program ideone;
  2.  
  3. {$MODE OBJFPC}{$LONGSTRINGS ON}
  4.  
  5. const
  6. BET_NUMBERS_COUNT = 6;
  7.  
  8. type
  9. TBet = object
  10. private
  11. FNumbers: array [0 .. BET_NUMBERS_COUNT - 1] of UInt8;
  12. FDate: TDate;
  13. private
  14. function GetNumber(AIndex: Integer): UInt8;
  15. procedure SetNumber(AIndex: Integer; ANumber: UInt8);
  16. procedure SwapNumbers(AIndex: Integer);
  17. public
  18. function Init(): TBet;
  19. public
  20. function Fill(ANumbers: array of UInt8): TBet;
  21. function Sort(): TBet;
  22. function Print(): TBet;
  23. public
  24. property Number[AIndex: Integer]: UInt8 read GetNumber write SetNumber;
  25. property Date: TDate read FDate write FDate;
  26. end;
  27.  
  28. function TBet.Init(): TBet;
  29. begin
  30. FillChar(FNumbers[0], BET_NUMBERS_COUNT, 0);
  31. FDate := 0;
  32.  
  33. Result := Self;
  34. end;
  35.  
  36. function TBet.GetNumber(AIndex: Integer): UInt8;
  37. begin
  38. Result := FNumbers[AIndex];
  39. end;
  40.  
  41. procedure TBet.SetNumber(AIndex: Integer; ANumber: UInt8);
  42. begin
  43. FNumbers[AIndex] := ANumber;
  44. end;
  45.  
  46. procedure TBet.SwapNumbers(AIndex: Integer); inline;
  47. begin
  48. PUInt16(@FNumbers[AIndex])^ := Swap(PUInt16(@FNumbers[AIndex])^);
  49. end;
  50.  
  51. function TBet.Fill(ANumbers: array of UInt8): TBet;
  52. begin
  53. FNumbers := ANumbers;
  54. Result := Self;
  55. end;
  56.  
  57. function TBet.Sort(): TBet;
  58. var
  59. int1, int2: Integer;
  60. begin
  61. for int1 := 0 to BET_NUMBERS_COUNT - 2 do
  62. for int2 := 0 to BET_NUMBERS_COUNT - 2 do
  63. if FNumbers[int2] > FNumbers[int2 + 1] then
  64. SwapNumbers(int2);
  65.  
  66. Result := Self;
  67. end;
  68.  
  69. function TBet.Print(): TBet;
  70. var
  71. intNumber: UInt8;
  72. begin
  73. for intNumber in FNumbers do
  74. Write(intNumber:3);
  75.  
  76. WriteLn();
  77. Result := Self;
  78. end;
  79.  
  80. var
  81. Bet: TBet;
  82. begin
  83. Bet.Init().Fill([3, 2, 4, 6, 1, 5]).Print().Sort().Print();
  84. ReadLn();
  85. end.
Success #stdin #stdout 0s 236KB
stdin
Standard input is empty
stdout
  3  2  4  6  1  5
  1  2  3  4  5  6