3.3.4. Реализация связи с другими программами
"Консультант" представляет собой интегрированную систему, однако
пользователю может понадобиться временно выйти в другую программу или
оболочку.
Этой цели служит операция меню СИСТЕМА - ОБОЛОЧКИ. Данная опера-
ция разворачивает подменю с тремя операциями:
- операция MS-DOS вызывает процедуру CALLDOS, позволяющую времен-
но выйти в операционную систему MS-DOS, выполнить там необходимые
действия и вернуться в систему, набрав в командной строке DOS команду
EXIT;
- операция NORTON COMMANDER выполняет те же действия по отношению
к оболочке Norton Commander. Реализуется процедурой CALLNC, возврат в
систему - последовательное нажатие клавиш <F10> и <ENTER>;
- операция WINDOWS 3.X также позволяет выполнить аналогичную про-
цедуру с графической оболочкой Windows 3.x. Реализуется процедурой
CALLWIN, возврат в систему нажатием комбинации клавиш <ALT+F4> и за-
тем клавиши <ENTER>.
Все эти операции реализуются аналогично:
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.
Ресурсы системы "Консультант"
┌────────────────┬──────────────────┬────────────────┬───────────────┐
│ Объект │ Назначение │Уникальный номер│Индексный ключ │
├────────────────┴──────────────────┴────────────────┴───────────────┤
│ ФАЙЛ EXPERT.AIR │
├────────────────┬──────────────────┬────────────────┬───────────────┤
│TBANKWINDOW │Окно банка знаний.│ 100 │ "Банк" │
│TNEWWINDOW │Окно создания но- │ 101 │ "Новая" │
│ │вой базы. │ │ │
│TRENAMEWINDOW │Окно переименова- │ 102 │"Переименовать"│
│ │ния базы. │ │ │
│TERASEWINDOW │Окно удаления базы│ 103 │ "Удаление" │
│TEXITWINDOW │Окно подтвержде- │ 104 │ "Выход" │
│ │ния выхода. │ │ │
│TSTATEWINDOW │Окно установок ре-│ 105 │ "Установки" │
│ │дактора. │ │ │
│TATRIBUTEDITOR │Окно редактора │ 106 │ "Объекты" │
│ │объектов. │ │ │
│TVALUEEDITOR │Окно редактора │ 107 │ "Значения" │
│ │значений. │ │ │
│TRULEEDITOR │Окно редактора │ 108 │ "Правила" │
│ │правил. │ │ │
│TDISPETCHER │Окно диспетчера │ 109 │ "Диспетчер" │
│ │редактора. │ │ │
│TMACHINE │Окно консультации │ 110 │"Машина вывода"│
│ │машины вывода. │ │ │
│TSTATUSLINE │Строка статуса. │ N Turbo-Vision │ "Статус" │
│TMENUBAR │Полоса меню. │ N Turbo-Vision │ "Меню" │
│TCALCULATOR │Калькулятор. │ N Turbo-Vision │ "Калькулятор" │
│TCALENDWINDOW │Календарь. │ N Turbo-Vision │ "Календарь" │
│TPUZZLEWINDOW │Игра. │ N Turbo-Vision │ "Игра" │
│TMANAGER │Диспетчер машины │ 111 │ "Менеджер" │
│ │вывода. │ │ │
├────────────────┴──────────────────┴────────────────┴───────────────┤
│ ФАЙЛ EXPERT.BLC │
├────────────────┬──────────────────┬────────────────┬───────────────┤
│TBANKLIST │Список баз знаний.│ 112 │ "Список" │
├────────────────┴──────────────────┴────────────────┴───────────────┤
│ ФАЙЛЫ ПОЛЬЗОВАТЕЛЯ BASE+<i>+.PRO │
├────────────────┬──────────────────┬────────────────┬───────────────┤
│TDATABASE │База фактов. │ 200 │ "Данные" │
│TRULEBASE │База правил. │ 201 │ "Правила" │
│TFACT │Факт. │ 202 │ - - - - - - - │
│TVALUE │Значение. │ 203 │ - - - - - - - │
│TRULE │Правило. │ 204 │ - - - - - - - │
│TUNITAL │Элемент правила. │ 205 │ - - - - - - - │
└────────────────┴──────────────────┴────────────────┴───────────────┘
... исследования в области искусственного интеллекта и медицины как совершенно независимые. В этом случае допускается возможность только использования медицинских знаний в плане психологического обеспечения работ по ИИ. Но и работы по искусственному интеллекту тоже влияют на развитие медицины.. В качестве первого результата можно выделить появление новой области психологических исследований, а ...
... основные линии работ по ИИ. Первая связана с совершенствованием самих машин, с повышением "интеллектуальности" ис- кусственных систем. Вторая связана с задачей оптимизации совместной работы "искусственного интеллекта" и собственно интеллектуальных воз- можностей человека. Переходя к собственно психологическим проблемам ИИ О.К. Тихомиров выделяет три позиции по вопросу о взаимодействии ...
... будет несколько другим). Когда система построенная из базовых элементов достаточно разовьется (будет иметь сложную структуру , а следовательно определенное количество опыта), то она сможет стать действительным Искусственным интеллектом, который также как и человек будет непредсказуем и не однозначен. И перед человеком будет задача только в наведении интерфейса с этим ИИ. (для решения определенных ...
... решить большое число сложных задач, либо способность найти нетривиальное решение? Насколько важно, к примеру, развитие дивергентного, "латерального" мышления, и как взаимосвязаны уровень способностей и творческая отдача? Эти вопросы изучаются теорией интеллектуальных различий. В настоящее время существует, как минимум, три трактовки понятия интеллекта: 1. Биологическая трактовка: "способность ...
0 комментариев