program ideone;
{$MODE OBJFPC}{$LONGSTRINGS ON}
const
BET_NUMBERS_COUNT = 6;
type
TBet = object
private
FNumbers: array [0 .. BET_NUMBERS_COUNT - 1] of UInt8;
FDate: TDate;
private
function GetNumber(AIndex: Integer): UInt8;
procedure SetNumber(AIndex: Integer; ANumber: UInt8);
procedure SwapNumbers(AIndex: Integer);
public
constructor Init();
public
procedure Fill(ANumbers: array of UInt8);
procedure Sort();
procedure Print();
public
property Number[AIndex: Integer]: UInt8 read GetNumber write SetNumber;
property Date: TDate read FDate write FDate;
end;
constructor TBet.Init();
begin
FillChar(FNumbers[0], BET_NUMBERS_COUNT, 0);
FDate := 0;
end;
function TBet.GetNumber(AIndex: Integer): UInt8;
begin
Result := FNumbers[AIndex];
end;
procedure TBet.SetNumber(AIndex: Integer; ANumber: UInt8);
begin
FNumbers[AIndex] := ANumber;
end;
procedure TBet.SwapNumbers(AIndex: Integer);
begin
PUInt16(@FNumbers[AIndex])^ := Swap(PUInt16(@FNumbers[AIndex])^);
end;
procedure TBet.Fill(ANumbers: array of UInt8);
begin
FNumbers := ANumbers;
end;
procedure TBet.Sort();
var
int1, int2: Integer;
begin
for int1 := 0 to BET_NUMBERS_COUNT - 2 do
for int2 := 0 to BET_NUMBERS_COUNT - 2 do
if FNumbers[int2] > FNumbers[int2 + 1] then
SwapNumbers(int2);
end;
procedure TBet.Print();
var
intNumber: UInt8;
begin
for intNumber in FNumbers do
Write(intNumber:3);
WriteLn();
end;
var
Bet: TBet;
begin
Bet.Init();
Bet.Fill([3, 2, 4, 6, 1, 5]);
Bet.Print();
Bet.Sort();
Bet.Print();
ReadLn();
end.
cHJvZ3JhbSBpZGVvbmU7Cgp7JE1PREUgT0JKRlBDfXskTE9OR1NUUklOR1MgT059Cgpjb25zdAogIEJFVF9OVU1CRVJTX0NPVU5UID0gNjsKCnR5cGUKICBUQmV0ID0gb2JqZWN0CiAgcHJpdmF0ZQogICAgRk51bWJlcnM6IGFycmF5IFswIC4uIEJFVF9OVU1CRVJTX0NPVU5UIC0gMV0gb2YgVUludDg7CiAgICBGRGF0ZTogVERhdGU7CiAgcHJpdmF0ZQogICAgZnVuY3Rpb24gR2V0TnVtYmVyKEFJbmRleDogSW50ZWdlcik6IFVJbnQ4OwogICAgcHJvY2VkdXJlIFNldE51bWJlcihBSW5kZXg6IEludGVnZXI7IEFOdW1iZXI6IFVJbnQ4KTsKICAgIHByb2NlZHVyZSBTd2FwTnVtYmVycyhBSW5kZXg6IEludGVnZXIpOwogIHB1YmxpYwogICAgY29uc3RydWN0b3IgSW5pdCgpOwogIHB1YmxpYwogICAgcHJvY2VkdXJlIEZpbGwoQU51bWJlcnM6IGFycmF5IG9mIFVJbnQ4KTsKICAgIHByb2NlZHVyZSBTb3J0KCk7CiAgICBwcm9jZWR1cmUgUHJpbnQoKTsKICBwdWJsaWMKICAgIHByb3BlcnR5IE51bWJlcltBSW5kZXg6IEludGVnZXJdOiBVSW50OCByZWFkIEdldE51bWJlciB3cml0ZSBTZXROdW1iZXI7CiAgICBwcm9wZXJ0eSBEYXRlOiBURGF0ZSByZWFkIEZEYXRlIHdyaXRlIEZEYXRlOwogIGVuZDsKCiAgY29uc3RydWN0b3IgVEJldC5Jbml0KCk7CiAgYmVnaW4KICAgIEZpbGxDaGFyKEZOdW1iZXJzWzBdLCBCRVRfTlVNQkVSU19DT1VOVCwgMCk7CiAgICBGRGF0ZSA6PSAwOwogIGVuZDsKCiAgZnVuY3Rpb24gVEJldC5HZXROdW1iZXIoQUluZGV4OiBJbnRlZ2VyKTogVUludDg7CiAgYmVnaW4KICAgIFJlc3VsdCA6PSBGTnVtYmVyc1tBSW5kZXhdOwogIGVuZDsKCiAgcHJvY2VkdXJlIFRCZXQuU2V0TnVtYmVyKEFJbmRleDogSW50ZWdlcjsgQU51bWJlcjogVUludDgpOwogIGJlZ2luCiAgICBGTnVtYmVyc1tBSW5kZXhdIDo9IEFOdW1iZXI7CiAgZW5kOwoKICBwcm9jZWR1cmUgVEJldC5Td2FwTnVtYmVycyhBSW5kZXg6IEludGVnZXIpOwogIGJlZ2luCiAgICBQVUludDE2KEBGTnVtYmVyc1tBSW5kZXhdKV4gOj0gU3dhcChQVUludDE2KEBGTnVtYmVyc1tBSW5kZXhdKV4pOwogIGVuZDsKCiAgcHJvY2VkdXJlIFRCZXQuRmlsbChBTnVtYmVyczogYXJyYXkgb2YgVUludDgpOwogIGJlZ2luCiAgICBGTnVtYmVycyA6PSBBTnVtYmVyczsKICBlbmQ7CgogIHByb2NlZHVyZSBUQmV0LlNvcnQoKTsKICB2YXIKICAgIGludDEsIGludDI6IEludGVnZXI7CiAgYmVnaW4KICAgIGZvciBpbnQxIDo9IDAgdG8gQkVUX05VTUJFUlNfQ09VTlQgLSAyIGRvCiAgICAgIGZvciBpbnQyIDo9IDAgdG8gQkVUX05VTUJFUlNfQ09VTlQgLSAyIGRvCiAgICAgICAgaWYgRk51bWJlcnNbaW50Ml0gPiBGTnVtYmVyc1tpbnQyICsgMV0gdGhlbgogICAgICAgICAgU3dhcE51bWJlcnMoaW50Mik7CiAgZW5kOwoKICBwcm9jZWR1cmUgVEJldC5QcmludCgpOwogIHZhcgogICAgaW50TnVtYmVyOiBVSW50ODsKICBiZWdpbgogICAgZm9yIGludE51bWJlciBpbiBGTnVtYmVycyBkbwogICAgICBXcml0ZShpbnROdW1iZXI6Myk7CgogICAgV3JpdGVMbigpOwogIGVuZDsKCnZhcgogIEJldDogVEJldDsKYmVnaW4KICBCZXQuSW5pdCgpOwogIEJldC5GaWxsKFszLCAyLCA0LCA2LCAxLCA1XSk7CiAgQmV0LlByaW50KCk7CiAgQmV0LlNvcnQoKTsKICBCZXQuUHJpbnQoKTsKCiAgUmVhZExuKCk7CmVuZC4=