Код:
type charset = set of 'A''B''C''D''E''F''G''H''I''K''L''M''N''O''P''Q''R''S''T''U''V''W''Y''J''Z';
var charsetarray = array [0..21] of charset;
maxset : charset;
begin
maxset = ['A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T','U','V','W','Y','J','Z'];
charsetarray [0] := [];
charsetarray [1] := ['A','B','C','D','E','F','G','H','I','K'];
charsetarray [2] := ['L','M','N','O','P']
charsetarray [3] := ['Q','R','S','T','U','V','W','Y','J','Z'];
charsetarray [4] := ['A','B','L','M','Q','R'];
charsetarray [5] := ['C','D','E','F','G','H','I','K','N','O','P','S','T','U','V','W','Y','J','Z'];
charsetarray [6] := ['A','L','O'];
charsetarray [7] := ['B','M','R'];
charsetarray [8] := ['L','Q','R','T','W'];
charsetarray [9] := ['A','M','S','U','Y'];
charsetarray [10] := ['B','C','N','V','J'];
charsetarray [11] := ['D','E','F','G','H','I','K','O','P','Z'];
charsetarray [12] := ['A','B','D','G','L'];
charsetarray [13] := ['C','E','H','M','Q'];
charsetarray [14] := ['F','I','N','R','S'];
charsetarray [15] := ['K','O','P','T','U','V','W','Y','J','Z'];
charsetarray [16] := ['L'];
charsetarray [17] := ['A','Q'];
charsetarray [18] := ['B','M','R'];
charsetarray [19] := ['C','D','S','T'];
charsetarray [20] := ['E','G','N','U','W'];
charsetarray [21] := ['F','H','I','K','O','P','V','Y','J','Z'];
charsetarray [1*((2^0 and i) shr 0)] +
charsetarray [2*((2^1 and i) shr 1)] +
charsetarray [3*((2^3 and i) shr 3)] +
charsetarray [4*((2^4 and i) shr 4)] +
charsetarray [5*((2^5 and i) shr 5)] +
charsetarray [6*((2^6 and i) shr 6)] +
charsetarray [7*((2^7 and i) shr 7)] +
charsetarray [8*((2^8 and i) shr 8)] +
charsetarray [9*((2^9 and i) shr 9)] +
charsetarray [10*((2^10 and i) shr 10)] +
charsetarray [11*((2^11 and i) shr 11)] +
charsetarray [12*((2^12 and i) shr 12)] +
charsetarray [13*((2^13 and i) shr 13)] +
charsetarray [14*((2^14 and i) shr 14)] +
charsetarray [15*((2^15 and i) shr 15)] +
charsetarray [16*((2^16 and i) shr 16)] +
charsetarray [17*((2^17 and i) shr 17)] +
charsetarray [18*((2^18 and i) shr 18)] +
charsetarray [19*((2^19 and i) shr 19)] +
charsetarray [20*((2^20 and i) shr 20)] +
charsetarray [21*((2^21 and i) shr 21)] = maxset
function func (m:longint) : integer;
n,c : integer;
begin
c:=0;
for n:=0 to 21 do begin
inc(c, m mod 2);
m := m shr 1;
end;
func := c;
end;
но Freepascal сразу же в третьей строке выдаёт ошибку, вроде всё правильно, не знаю почему.
Извините за назойливость, но это действительно моя первая программа ( точнее ваша)).