|
|
|
|
|
|
|
|
|
|
|
|
7. Для системы управления колледжем программисту требуются структуры данных для учета числа свободных мест на различных курсах. Каждый из 6000 учебных курсов имеет уникальный четырехзначный идентификационный номер (от 0000 до 3030) и трехзначный счетчик числа мест (от 000 до 309). После создания структуры данных на основе файла, содержащего номера курсов и числа мест, программа должна была обработать ленту, содержащую примерно 80 000 заявок на курсы.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Каждый запрос с правильным номером курса либо отвергается (если соответствующий счетчик числа мест равен 0), либо удовлетворяется (в этом случае счетчик числа мест уменьшается на 1). Запросы с неверными номерами курсов помечаются и игнорируются. После выделения места под объектные коды, буфера и т. п. в системе остается для пользойателя около 30 Кбайт ОЗУ. В первом варианте своей программы на Коболе программист представил описание каждого курса в виде записи на диске из 7 байтов (4 байта отведено для номера курса и 3 - для счетчика числа мест). Операции обращения к диску сделали бы эту структуру слишком накладной. Как вы считаете, лучший ли это способ организации информации о курсах? 8. Одна из проблем, связанная с увеличением объема программы с целью сокращения времени ее работы, состоит в том, что сама инициализация памяти может занять много времени. Покажите, как обойти эту проблему, разработав методику обнуления всего одномерного массива при первом обращении к нему. Вы можете использовать дополнительную память, пропорциональную размеру массива. Так как этот метод уменьшает время инициализации за счет использования дополнительной памяти, его следует применять только тогда, когда свободное пространство дешево, время дорого, а массив разреженный. (Эта задача из упражнения 2.12, помещенного в книге Ахо, Хоп-крофта и Ульмана "Разработка и анализ алгоритмов для ЭВМ" (Aho, Hopcroft, Ullman. Design and Analysis of Computer Algorithms), выпущенной издательством Addison-Wesley в 1974 г.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|