ii_lab2

advertisement
Курс : "Интеллектуальные системы "
Разработал доцент каф. математического обеспечения
компьютерных систем Крапивный Ю.Н.
Лабораторная работа № 2-К : «Разработка модельного интеллектуального пакета
прикладных программ (ИППП)».
ЦЕЛЬ РАБОТЫ
Проектирование и разработка некоторых элементов модельного ИППП для
автоматический построения цепочки программных модулей для решения поставленной
задачи в предметной области (ПО) пакета.
Работа основана на материалах лекции «Интеллектуальные пакеты прикладных
программ».
В описании задания для примеров используется предметная область из лекции –
треугольник.
Варианты предметных областей приведены в приложении 2.
ЗАДАНИЕ
Для предметной области, которая определяется индивидуальным вариантом задания,
необходимо выполнить:
1. Записать в таблицу список всех атрибутов предметной области в виде
Идентификатор атрибута
a
hc
….
Название атрибута
Сторона треугольника
Высота на сторону C
2. Записать в таблицу все отношения предметной области (не менее четырёх) для
программных модулей функционального наполнения ИППП в виде
Отношение
R3(S, hc, c ) = { S, hc, c > 0 | S-0.5·hc·c =0 }
….
Параметры
S, hc, c
3. Нарисовать модель предметной области в виде двудольного неориентированного
графа в виде:
4. Записать в таблицу все возможные разрешения отношений предметной области в
виде
Разрешения отношений
F3S(S, hc, c ): S = 0.5 * hc * c
F3С(S, hc, c ): c = (2 * S) / hc
1
….
5. Записать 3 примера заданий для ИППП в виде:
«Вычислить площадь треугольник S по стороне c и прилегающим углам α и β»
6. Для одного из заданий п.5 описать по шагам алгоритм паросочетаний построения
цепочки программных модулей из модулей п.2 для решения задачи.
7. Создать текстовый файл, содержащий описание модели предметной области
(МПО). Формально описание МПО в виде текстового файла должно содержащать
два блока:
 блок описания параметров МПО
 блок описания функциональных модулей
Строка с элементом описания параметров имеет следующую структуру:
номер параметра : идентификатор : название
Строка с элементом описания функциональных модулей имеет следующую
структуру:
интерфейс модуля : название (назначение) модуля
Пример содержимого файла описания МПО:
#1
2 : b : сторона b треугольника
4 : Hc : Высота на сторону c треугольника
5 : S : площадь треугольника
#2
S=F11(Hc,b) : Вычисление площади треугольника
8. Написать программу на любом языке программирования, которая решает
следующие задачи:
 читает содержимое текстового файла МПО из п. 7
 создаёт и заполняет массив элементов рабочей памяти (РП)
 создаёт и заполняет массив элементов интерфейсов модулей (ИМ)
 по запросу выводит на экран всё содержимое массивов РП и ИМ в виде,
удобном для восприятия
Пример описания структур для РП и ИМ приведён в приложении 2.
9. Оформить и сдать отчёт о проделанной работе.
ПРИЛОЖЕНИЕ 1. Примеры описания структур данных
ЗАМЕЧАНИЕ. Примеры описания структур данных
программирования DELPHI (Object Pascal).
приведены
на
языке
Рабочая память (РП). РП организована в виде глобального статического массива RP
объектов типа TRPObject. Размер массива – не более 50 элементов. Заполнение
массива выполняется в соответствии с содержимым текстового файла, описывающего
МПО.
Каждый элемент массива RP - это структура (объект) типа TRPObject:
2
Type
TRPObject=object
Ident
: String;
Name
: String;
Value
: real;
IsCalc
: boolean;
end;
// атрибут ПО (элемент рабочей памяти)
// условный идентификатор атрибута в рамках МПО
// реальное название атрибута ПО
// значение атрибута ПО
// признак: вычислен или нет
Каждому атрибуту МПО ставится в соответствие его порядковый номер в массиве RP,
соответствующий его реальному расположению в массиве. Таким образом, значение
поля Ident параметра и его порядковый номер образуют взаимно однозначное
соответствие. Порядковый номер используется для программного доступа к значениям
параметров при исполнении модулей и при установке и чтении значений параметров.
Интерфейсы модулей (ИМ). Описание интерфейсов модулей реализуется через
статический массив MI объектов типа TModuleInterface. Заполнение
массива
выполняется в соответствии с содержимым текстового файла, описывающего МПО.
Каждый элемент массива MI – это структура (объект) типа TModuleInterface:
Type
TModuleInterface=object
ModuleName
: String;
ModuleIdent
: String;
ModuleParamOut : String;
ModuleParamIn
: String;
end;
// описание интерфейса модуля
// смысловое название модуля : S=F11(Hc,b)
// условный идентификатор модуля : F11
// выходной параметр модуля : S
// список входных параметров модуля: Hc, b
Таким образом, рабочая память (РП) и интерфейсы модулей (ИМ) могут быть описаны с
помощью двух массивов:
Var MI : array [1..50] of TModuleInterface;
Var RP : array [1..50] of TRPObject;
- массив описаний интерфейсов модулей
(массив элементов типа TModuleInterface);
- массив элементов рабочей памяти пакета
(массив элементов типа TRPObject)
ПРИЛОЖЕНИЕ 2. Варианты заданий
№ Предметная область
1
Параллелограмм
2
Ромб
3
Окружность вписанная в треугольник
4
Окружность вписанная в ромб
5
Треугольная пирамида
6
Шар вписанный в треугольную пирамиду
7
Трапеция
8
Окружность описанная вокруг треугольника
9
Окружность описанная вокруг трапеции
10 Четырёхугольная пирамида
11 Фар вписанный в 4-х угольную пирамиду
12 Конус
3
13 Шар вписанный в конус
14 Шестиугольная пирамида
15 Шар вписанный в шестиугольную пирамиду
4
Download