function min(a, b: integer): integer; begin min := a; if b < a then min := b; end; const size_answered = 9; var stud: char; quest: set of byte; students: set of char; i, stud_number, current: byte; answered: array[1 .. size_answered] of byte; begin quest := [1 .. 15]; students := ['A' .. 'Z']; for stud_number := 1 to 26 do begin repeat stud := chr(ord('A') + random(26)); until stud in students; exclude(students, stud); if stud_number > size_answered then begin writeln('adding the first answered question...'); include(quest, answered[1]); for i := 1 to pred(size_answered) do answered[i] := answered[succ(i)]; end; write('student: ', stud, ' is entering the class...'); repeat current := random(15) + 1; until current in quest; writeln(' ... and getting quest #', current); exclude(quest, current); answered[min(size_answered, stud_number)] := current; end; end.