А) Разработайте иерархию «человечьих» объектов в соответствии со следующим рисунком (новые типы объектов выделены цветом).

Дайте новым типам объектов подходящие имена, дополните их надлежащими полями, переопределите конструкторы и метод Report. Затем исследуйте механизм полиморфизма на предке и всех его потомках.
Б) Мощность множеств в Паскале не превышает 256, и часто этого бывает недостаточно. Сконструируем свой тип множеств, назовем его TBigSet, мощность которого составит 65536 (соответствует диапазону для типа Word). Оформим это множество как объект.
type
TSetArray = array [0..4096] of word; { хранит 65536 бит (4096*16) }
PSetArray = ^ TSetArray; { тип-указатель на массив }
TBigSet = object
mArray : PSetArray; { указатель на динамический массив }
Constructor Init; { создает динамический массив mArray )
Destructor Done; { освобождает память, занятую массивом }
procedure ClearAll; { опустошает множество }
procedure SetAll; { делает множество полным }
procedure Insert(N); { вставляет элемент N в множество }
procedure Delete(N); { удаляет элемент N из множества }
function Member(N):Boolean; { проверяет принадлежность N к множеству }
function IsEmpty:Boolean; { проверяет пустоту множества }
procedure Union(BS: TBigSet); { добавляет другое множество }
procedure InterSect(BS: TBigSet); { формирует пересечение множеств }
procedure Load(var F: text); { вводит множество из файла }
procedure Save(var F: text); { выводит множество в текстовый файл }
end;
Примените здесь сведения из главы 48, а также идеи из задачи 49-В (глава 49). Так, включение в множество и исключение из него элемента N может быть выполнено установкой и сбросом бита в массиве mArray^.
mArray^[N div 16]:= mArray^[N div 16] or (1 shl (N mod 16))
mArray^[N div 16]:= mArray^[N div 16] and not (1 shl (N mod 16))
Объединение с другим множеством Union(BS:TBigSet) можно сделать логическим суммированием массивов:
for I:=0 to 4095 do mArray^[ I ]:= mArray1^[ I ] or BS.mArray^[ I ]
И так далее. Напишите реализацию всех методов объекта и примените его к решету Эратосфена и прочим задачам из главы 38.
Глава 62
Самое интересное только начинается!
