Смекни!
smekni.com

Искуственный интеллект (стр. 7 из 13)

1) отключаются все подсистемы "Консультанта" (распределение памя-

ти, обработчик системных ошибок, поддержка стандартного вида экрана и

т. д.);

2) администратор кучи сохраняет ее в оперативной памяти;

3) устанавливаются стандартные векторы прерываний DOS;

4) активизируется командный процессор DOS;

5) командному процессору передается необходимая команда для запус-

ка той или иной оболочки.

По окончании действий пользователя в оболочке:

1) устанавливаются векторы прерываний;

2) восстанавливается куча;

3) включаются все подсистемы системы;

4) восстанавливается предыдущий вид экрана системы.

Нужно отметить, что из оболочки, в которую выйдет пользователь,

можно будет загрузить любую другую программу. Если какая-либо из обо-

лочек в компьютере отсутствует, на экран выдастся сообщение "Невозмож-

но выполнить эту операцию!"

3.4. Программы, не входящие в комплект поставки

3.4.1. Создание и использование библиотек (модулей)

Система "Консультант" использует следующие модули:

1. Стандартные модули Турбо-Паскаля:

- SYSTEM.TPU (основной модуль Турбо-Паскаля);

- CRT.TPU (модуль, содержащий процедуры работы с текстовым экра-

ном);

- DOS.TPU (модуль, позволяющий работать с операциями среднего

уровня - уровня операционной системы);

- PRINTER.TPU (операции печати);

2. Стандартные модули Turbo-Vision%

- APP.TPU (базовый модуль для любой программы);

- OBJECTS.TPU (модуль, содержащий все невидимые объекты, использу-

ющиеся в программе);

- VIEWS.TPU (базовый модуль для создания видимых компонентов прог-

раммы);

- DIALOGS.TPU (модуль, включающий диалоговые окна и их компонен-

ты);

- MENUS.TPU (модуль, используемый при создании строк меню и стату-

са);

- MEMORY.TPU (модуль управления памятью);

- DRIVERS.TPU (модуль, служащий для обработки событий);

3. Демонстрационные модули Turbo-Vision, не входящие в состав

Turbo-Vision, но идущие в комплекте Турбо-Паскаль 6.0:

- CALC.TPU (реализация калькулятора);

- CALENDAR.TPU (создание календаря);

- PUZZLE.TPU (реализация игры-головоломки);

- MSGBOX.TPU (испрользование информационных окон);

- GAUGES.TPU (управление кучей);

4. Созданный при разработке системы модуль MAIN.TPU, содержащий

все объекты, используемые системой (см. выше), указатели на эти объек-

ты, регистрационные записи этих объектов, основные глобальные процеду-

ры СУБЗ, машины вывода и редактора знаний, а также константы команд

для обработчиков событий объектов.

Все используемые процедуры перечисленных модулей, кроме CRT, DOS,

DRIVERS и MAIN, включаются в файл EXPERT.OVR. CRT, DOS, DRIVERS,

MAIN - модули, использующие процедуры обработки прерываний (например,

модуль DRIVERS содержит процедуры обработки событий от клавиатуры и

"мыши"), а механизм оверлеев не распространяется на такие процедуры;

данные модули включены непосредственно в файл EXPERT.EXE.

Таблица 6.

Используемые объекты модулей Turbo-Vision.

┌─────────────┬──────────────┬───────────────────────────────────────┐

│ Модуль │ Объект │ Функция объекта │

├─────────────┼──────────────┼───────────────────────────────────────┤

│APP.TPU │TAPPLICATION │Стандартная программа. │

│ │TDESKTOP │Поверхность экрана. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│OBJECTS.TPU │TOBJECT │Главный объект всей объектной иерархии │

│ │ │Turbo-Vision. │

│ │TCOLLECTION │Коллекция. │

│ │TBUFSTREAM │Буферизированный поток. │

│ │TRECT │Прямоугольник. │

│ │TSTREAMREC │Регстрационная запись. │

│ │TRESOURCEFILE │Файл ресурсов. │

│ │TSTRINGLIST │Коллекция строк. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│VIEWS.TPU │TVIEW │Абстрактный видимый объект. │

│ │TGROUP │Объект-группа. │

│ │TTPALETTE │Тип палитры. │

│ │TWINDOW │Базовый объект всех окон. │

│ │TSCROLLBAR │Полоса скроллинга. │

│ │TFRAME │Рамка видимого объекта. │

│ │TCOMMANDSET │Группы разрешаемых или запрещаемых ко- │

│ │ │манд. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│DIALOGS.TPU │TDIALOG │Диалоговое окно. │

│ │THISTORY │Протокол ввода. │

│ │TSTATICTEXT │Статический текст. │

│ │TSITEM │Элемент кластера. │

│ │TBUTTON │Командная кнопка. │

│ │TCHECKBOXES │Кластер с независимыми кнопками. │

│ │TRADIOBUTTONS │Кластер зависимых кнопок. │

│ │TINPUTLINE │Строка ввода. │

│ │TLABEL │Метка для кластера или строки ввода. │

│ │TLISTBOX │Скроллер списка строк. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│MENUS.TPU │TMENU │Список связанных записей для меню. │

│ │TMENUBAR │Горизонтальная полоса меню. │

│ │TMENUITEM │Элемент меню. │

│ │TSTATUSDEF │Контекстная подсказка строки статуса. │

│ │TSTATUSLINE │Строка статуса. │

│ │TSTATUSITEM │Элемент строки статуса. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│DRIVERS.TPU │TEVENT │Тип записи события. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│CALC.TPU │TCALCDISPLAY │Табло дисплея и вычислительные действия│

│ │TCALCULATOR │Окно калькулятора. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│CALENDAR.TPU │TCALENDARVIEW │"Начинка" календаря. │

│ │TCALENDWINDOW │Окно календаря. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│PUZZLE.TPU │TPUZZLEVIEW │Игровое поле и правила игры. │

│ │TPUZZLEWINDOW │Окно игры. │

├─────────────┼──────────────┼───────────────────────────────────────┤

│GAUGES.TPU │THEAPVIEW │Индикатор доступной динамической памяти│

│ │ │ │

└─────────────┴──────────────┴───────────────────────────────────────┘

3.4.2. Подготовка ресурсов

Для уменьшения объема занимаемой памяти (как оперативной, так и

памяти "винчестера") и повышения "читаемости" программы, в системе ис-

пользуется механизм ресурсов. Его суть состоит в следующем: все объек-

ты, используемые в основной программе, записываются в отдельный файл,

затем по ходу выполнения программы, вызываются в ее тело по ее же ко-

мандам.

Программа M_VISUAL.EXE служит для подготовки файла ресурсов

EXPERT.AIR. Алгоритм ее работы следующий:

1. Создает на диске поток (полиморфный файл данных, ориентирован-

ный на работу с объектами).

2. Связывает с ним файл ресурсов EXPERT.AIR (в Turbo-Vision файл

ресурсов - это поток с произвольным доступом к данным).

3. Регистрирует все объекты, входящие в файл ресурсов, получая их

регистрационные записи из модулей записываемых объектов.

4. Загружает объекты из модулей и записывает их в файл ресурсов.

5. Закрывает поток.

Каждый объект записывается в файл ресурсов под определенным уни-

кальным ключом. Им может быть строка произвольных символов любой дли-

ны. В теле основной программы в конструкторе TEXPERT.INIT производит-

ся открытие файла ресурсов, а соответствующие процедуры используют

нужные им объекты, подгружая их из EXPERT.AIR.

Таблица 7.

Ресурсы системы "Консультант"

┌────────────────┬──────────────────┬────────────────┬───────────────┐