close

Вход

Забыли?

вход по аккаунту

?

курсовая работа по госту

код для вставкиСкачать

Оглавление
I часть3
Введение3
Основная часть4
Описание предметной области4
Задание4
Постановка задачи5
Контрольный пример7
Реализация сложной функции11
Реализация рекурсивной функции11
Результат12
ЧастьII17
Задание17
Выполнение работы17
Слепой поиск в глубину18
Эвристический поиск19
Заключение20
Список литературы21
Приложение22
Код программмы22
I часть
Введение
Курсовая работа представляет собой работу по созданию экспертной системы, а также по изучению методов и алгоритмов для ее создания. В качестве базового языка функционального программирования выбрана инструментальная среда "MuLisp". В качестве базового языка логического программирования выбрана инструментальная среда "TProlog". Целью данной работы является изучение некоторых аспектов среды "MuLisp", изучение структуры создания экспертных систем и технологий по их управлению, а также создание самой экспертной системы. Ниже изложены общие сведения по теме работы, описание контрольного примера, текст программы, результаты тестирования ПО.
Значимость работы заключается в изучении методов решения конкретной задачи и структурировании знаний о средствах разработки и объекте изучения для создания более больших проектов.
Основная часть
Описание предметной области
Предметной областью являются компьютерные WRP-игры. Здесь должно быть реализовано: выбор игры, обработка и редактирование исходных данных по определённым критериям. Экспертная система должна вывести наилучшею игру, исходя из характера оценочной функции и критерия принятия решений. Результат объекта исследования зависит от объективных и субъективных параметров и характеризуется значительным числом локальных показателей. Важным элементом является назначение коэффициентов весомости каждого из параметров. На экран выводятся указания по нажатию клавиш. Пользователь выбирает подходящее ему действие и нажимает соответствующую клавишу.
Задание
В ходе выполнения работы студенты должны показать знания, полученные при изучении основ функционального и логического программирования. В качестве базового языка функционального программирования выбрана инструментальная среда "MuLisp". Сформулируйте для себя конкретную задачу из области маркетинга, менеджмента, торговли и т.д. Выделите возможные альтернативы и критерии оценки. Проведите оценку вариантов по данной в разделе 2 методике на основе разработанного программного кода, осуществляющего принятие конкретного решения.
18 Вариант
Характер оценочной функции: степенной.
Размерность шкалы экспертной оценки: 2,2.
Количество критериев оценки: 4.
Количество объектов исследования: 4.
Критерий для выбора решений: Гурвица
Постановка задачи
Очень часто проведение экспертизы объекта исследования зависит от множества объективных и субъективных параметров и характеризуется значительным числом локальных показателей. Оперирование всем набором используемых критериев требует значительных материальных и временных затрат на сбор и обработку статистической информации и не всегда является оправданным. Поэтому необходимо, используя методы анализа данных и теории принятия решений, научиться определять значимость локальных показателей и строить на их базе линейную свертку, которую можно было бы использовать для построения интегрированной оценки объекта исследования. Такая свертка имеет вид:
(1)
где - параметры, которые определяются на основе решения последовательности задач линейного программирования (ЛП) и с помощью методов игрового моделирования.
Пусть в распоряжении исследователя имеется статистическая информация об объекте исследования, которая оценивается по показателям. Сформируем эту информацию в виде матрицы:
(2)
где - число рассматриваемых объектов.
Важным элементом решения подобных задач является назначение коэффициентов весомости каждого из параметров. При этом распространенный метод - определение коэффициентов веса с помощью экспертов. Субъективность, возникающая в результате экспертизы, и, как следствие, методики в целом, снижается пропорционально увеличению уровня квалификации экспертов. Задача эксперта на первом этапе сводится к попарному сравнению параметров оценки, которое ведется по принципу - критерий строки к критерию столбца. Или, формально, к определению индексного множества пар:
(3)
для которых = , . Здесь - значение коэффициента весомости в баллах. При обратном сравнении таких же критерия строки к критерию столбца сумма обоих должна быть равна максимальному значению выбранной оценочной шкалы. Правила выставления экспертных оценок следующие:
=- критерии равнозначны;
- критерий строки значимее критерия столбца;
- критерий строки имеет меньшую значимость в отношении критерия столбца.
На основе множества A формируется результирующая матрица параметров оценки.
Далее, попарно сравниваем исследуемые товара по первому оценочному параметру. Обработка высказываний экспертов осуществляется в порядке аналогичном (3). На основе экспертных оценок формируем матрицу. Аналогичным образом обрабатываются данные товара по каждому из оставшихся показателей с формированием соответствующих матриц.
На следующем этапе определяем среднюю значимость каждого критерия по отношению к другим оценочным параметрам по правилу:
,(4)
где - значение оценочного параметра матрицы показателей.
Далее определяем средние оценки товара по каждому показателю согласно зависимости:
, , (5)
где - значение средней оценки товара по каждому показателю.
Итоговый расчет оценочной функции для каждой товара определяем по правилу:
, (6)
где cm и fmj соответственно значение оценочного параметра матрицы показателей и значение средней оценки товара по каждому показателю, которые определяются по правилам (4 и 5).
В результате будет построена агрегированная свертка, включающая все локальных показателей:
(7)
Результатом решения итоговой задачи и является та конечная линейная свертка (6), по которой может производиться количественное оценивание качественных параметров товара.
Контрольный пример
В курсовой работе оцениваются 4 компьютерные WRP-игры: Кулинарные тайны (Culinary secrets), Маша рождественская сказка (Macha), Пазлы (Pazly), Шерлок Хомс (SHerlok Homs). По четырём критериям: Оригинальность (Originality), Геймплей (Gameplay), Сюжет (plot), Легкость в освоении (comfort). Так как в данном задании используется критерий Гурвица, следовательно так называемый коэффициент, отвечающий за оптимизм-пессимизм, возьмем равным α=0,5.
Оценки решений находятся по следующей формуле:
где a - коэффициент оптимизм-пессимизм.
Лучшим является решение с максимальной оценкой.
Целью является выбрать WRP-игру, получившую максимальную оценку по данным критериям.
Исходные данные:
Пользователь должен будет ввести с клавиатуры исходные данные:
Criteria
OriginalityGameplayplotcomfortoriginality-1,31,30,7gameplay0,9-0,91,4plot0,91,3-1,6comfort1,50,80,6-Originality
Culinary secretsMachaPazlySHerlok HomsCulinary secrets-1,10,90,8Macha1,1-0,71,1Pazly1,31,5-0,9SHerlok Homs1,41,11,3-
Gameplay
Culinary secretsMachaPazlySHerlok HomsCulinary secrets-1,10,91Macha1,1-1,30,8Pazly1,30,9-0,7SHerlok Homs1,21,41,5-Plot
Culinary secretsMachaPazlySHerlok HomsCulinary secrets-1,20,91,3Macha1-1,41Pazly1,30,8-0,9SHerlok Homs0,91,21,3-
Comfort
Culinary secretsMachaPazlySHerlok HomsCulinary secrets-1,10,91,4Macha1,1-1,30,9Pazly1,30,9-1SHerlok Homs0,81,31,2-
Выходные данные:
В программе осуществляется вывод названия WRP- игры, которая имеет максимальную оценку. Также по запросу пользователя осуществляется вывод другой информации: исходные данные по четырем таблицам, средние значения показателей, средние оценки игр по каждому показателю, итоговая оценка и повторный вывод выбранной компьютерной игры.
1.Находим среднюю значимость первого критерия "Оригинальность" по отношению к критериям "Геймплей", "Сюжет" и "Легкость". Для этого используем критерий Гурвица для выбора решений в теории игр: при α=0,5
с1 = 0,5*(1.3+0.7)=1
Аналогично находим средние для критериев "Геймплей", "Сюжет" и "Легкость":
с2 = 0,5*(1.4+0.9)= 1.15 для "Геймплей", с3 = 0,5*(1.6+0.9)= 1.25 для "Сюжет",
с4 = 0,5*(1.5+0.6)=1.05 для "Легкость".
2.Находим средние оценки для компьютерных игр по критерию "Оригинальность", как и в первом пункте:
f11 =0.95 f12 =0.9 f13 =1.2 f14 =1.25
3.Находим средние оценки для компьютерных игр по критерию "Геймплей":
f21 = 1 f22 = 1.05 f23 = 1 f24 =1.35
4.Находим средние оценки для компьютерных игр по критерию "Сюжет":
f31 = 1.1 f32 = 1.2 f33 = 1.05 f34 =1.1
5.Находим средние оценки для компьютерных игр по критерию "Легкость":
f41 = 1.15 f42 = 1.1 f43 =1.1 f44 =1.05
6.Находим оценку итоговой функции для сравнения компьютерных игр по критериям "Оригинальность", "Геймплей", "Сюжет" и "Легкость":
F1=c1^f11+c2^f21+ c3^f31+c4^f41=1^0.95+1.15^1+1.25^1.1+1.05^1.15= 4.4859190 - Culinary secrets
F2= c1^f12 + c2^f22+ c3^f32+ c4^f42 =1^0.9+1.15^1.05+1.25^1.2+1.05^1.1=4.5202492 - Macha
F3= c1^f13+ c2^f23 + c3^f33 + c4^f43 =1^1.2+1.15^1+1.25^1.05+1.05^1.1=4.4691600 -Pazly F4= c1^f14+ c2^f24 + c3^f34 + c4^f44 = 1^1.25+1.15^1.35+1.25^1.1+1.05^1.05= =4.5384238 - SHerlok Homs
Таким образом, видно, что по результатам самостоятельного расчета наибольшую итоговую оценку имеет SHerlok Homs.
Реализация сложной функции
; сложная функция
; gurvic - функция, вычисляющая среднюю оценку критериев 4-х объектов по Критерию Гурвица (defun gurvic (a b c koff-a ) (COND ((and (and (>= a b) (>= a c) (<= b a) (<= b c)) ) (+ (* a koff-a) (* b (- 1 koff-a))))
((and (and (>= a b) (>= a c) (<= c a) (<= c b)) ) (+ (* a koff-a) (* c (- 1 koff-a)))) ((and (and (>= b a) (>= b c) (<= a b) (<= a c)) ) (+ (* b koff-a) (* a (- 1 koff-a)))) ((and (and (>= b a) (>= b c) (<= c a) (<= c b)) ) (+ (* b koff-a) (* c (- 1 koff-a)))) ((and (and (>= c b) (>= c a) (<= b a) (<= b c)) ) (+ (* c koff-a) (* b (- 1 koff-a))))
((and (and (>= c b) (>= c a) (<= a b) (<= a c)) ) (+ (* c koff-a) (* a (- 1 koff-a))))
Реализация рекурсивной функции
В данной курсовой работе рекурсия используется для определения значимости по критерию Гурвица. Сначала определяем max и min значения в строках каждой таблице, и только затем определяем значимость с помощью рекурсии, но существует и другой способ определение значимости (например, (defun gurvic (z a b) (set z (* (/ 1 2) (+ a b)))))
; функция определения значимости по критерию Гурвица // рекурсия
(defun gurvic (l)
(if (not (null (cdr l)))
(+(/(car l) 2) (gurvic (cdr l)))
(/ (car l) 2) ))
Результат
Исходные данные:
Таблицы Criteria
Таблицы Originality
Таблицы Gameplay
Таблицы Plot
Таблицы Comfort
Средние значения каждого показателя (по критерию Гурвица):
Средние оценки компьютерных игр по каждому показателю (по критерию Гурвица):
Итоговые оценки и лучшая игра:
ЧастьII
Задание
Найти решение задачи, переложив цилиндры на целевую башню в порядке возрастания их диаметра. Задачу решить, используя метод пространства состояний на основе эвристического поиска.
Исходные данные:
Расположение цилиндров - цилиндр №1 - A;
цилиндр №2 - С;
цилиндр №3 - А;
цилиндр №4 - В;
Целевая башня - B.
Примечание: На цилиндры меньшего радиуса нельзя класть цилиндры большего радиуса. Брать можно только по одному цилиндру. Наибольший радиус имеет цилиндр №3, наименьший - цилиндр №1.
Выполнение работы
Решение: Пусть цилиндры расположены так (1,2,3,4), тогда решение будет иметь вид:
(ACAB)→ (CCAB)→ (CCBB)→ (ACBB)→ (ABBB)→ (BBBB)
Слепой поиск в глубину
Эвристический поиск
Заключение
В результате проделанной работы я познакомилась с принципами разработки экспертной системы, с некоторыми возможностями среды "MuLisp". В ходе выполнения работы я применила знания, полученные при изучении основ функционального и логического программирования.
Передо мною была поставлена конкретная задача, в которой я прежде всего выделила критерии оценки, провела оценку для четырех компьютерных WRP-игр на основе разработанного программного кода, осуществляющего выбор наилучшей игры.
Методика принятия решений, использованная в курсовой работе:
- шкала оценок пар критериев и пар вариантов - 2,2-балльная;
- оценочная функция вариантов - степенная;
- критерий для выбора решений в теории игр - Гурвица
После проверки работы программы вручную, были получены абсолютно идентичные результаты.
Также была решена задача "Ханойские башни" посредством поиска в графе состояний двумя методами (слепой поиск в глубину, эвристический поиск), а также был проведен анализ этих методов. Слепой поиск в глубину нашел решение, просмотрев 5 состояний, а эвристический поиск, просмотрев 6 состояний. Это позволяет сделать вывод, что слепой поиск в глубину эффективнее эвристический поиска.
Список литературы
Мушик З., Мюллер П. Методы принятия технических решений. - М.: Мир, 1990. - 208с
Методические указания по выполнению курсовой работы по дисциплине "Функциональное и логическое программирование". 2004.
Морозов М.Н Курс лекций "Функциональное программирование". 1999-2001.
Дехтяренко И.А. Декларативное программирование. 2003.
Приложение
Код программмы
(CLEAR-SCREEN)
(print KURSOVAYA_WORK)
(print FLP)
(print STUDENT_PO-10-1)
(print SEMENOVA_OLGA)
(print BEST_WRP-GAME)
(terpri)
;ввод данных в таблицу
(defun checking (x) (
(print x)
(setq p (read))
(cond ((> p 2.2) (return (checking 'prevyshena_shkala_ocenki!!_vvedite_snova))) (x (terpri) (return p)) ))) ;обращение к функции ввода данных в таблицу
(print ***CRITERIA***)
(setq a12 (checking vvedite_originality_k_gameplay))
(setq a13 (checking vvedite_originality_k_plot))
(setq a14 (checking vvedite_originality_k_comfort))
(setq a21 (checking vvedite_gameplay_k_originality))
(setq a23 (checking vvedite_gameplay_k_plot))
(setq a24 (checking vvedite_gameplay_k_comfort))
(setq a31 (checking vvedite_plot_k_originality))
(setq a32 (checking vvedite_plot_k_gameplay))
(setq a34 (checking vvedite_plot_k_comfort))
(setq a41 (checking vvedite_comfort_k_originality))
(setq a42 (checking vvedite_comfort_k_gameplay))
(setq a43 (checking vvedite_comfort_k_plot))
(print ***ORIGINALITY***)
(setq b12 (checking vvedite_otnoshenie_ Culinary_secrets _k_ Macha))
(setq b13 (checking vvedite_otnoshenie_ Culinary_secrets _k_ Pazly))
(setq b14 (checking vvedite_otnoshenie_ Culinar_ secrets _k_ SHerlok Homs))
(setq b21 (checking vvedite_otnoshenie_ Macha _k_ Culinary_secrets))
(setq b23 (checking vvedite_otnoshenie_ Macha _k_ Pazly))
(setq b24 (checking vvedite_otnoshenie_ Macha _k_ SHerlok _Homs))
(setq b31 (checking vvedite_otnoshenie_ Pazly _k_ Culinary _secrets))
(setq b32 (checking vvedite_otnoshenie_ Pazly _k_ Macha))
(setq b34 (checking vvedite_otnoshenie_ Pazly _k_ SHerlok _Homs))
(setq b41 (checking vvedite_otnoshenie_ SHerlo_ Homs _k_ Culinary_ secrets))
(setq b42 (checking vvedite_otnoshenie_ SHerlok_ Homs _k_ Macha))
(setq b43 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Pazly))
(print ***GAMEPLAY***) (setq c12 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Macha))
(setq c13 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Pazly))
(setq c14 (checking vvedite_otnoshenie_ Culinary _secrets _k_ SHerlok_ Homs))
(setq c21 (checking vvedite_otnoshenie_ Macha _k_ Culinary_secrets))
(setq c23 (checking vvedite_otnoshenie_ Macha _k_ Pazly))
(setq c24 (checking vvedite_otnoshenie_ Macha _k_ SHerlok_Homs))
(setq c31 (checking vvedite_otnoshenie_ Pazly _k_ Culinary_secrets))
(setq c32 (checking vvedite_otnoshenie_ Pazly _k_ Macha))
(setq c34 (checking vvedite_otnoshenie_ Pazly _k_ SHerlok_Homs))
(setq c41 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Culinary_secrets))
(setq c42 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Macha))
(setq c43 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Pazly))
(print ***PLOT***)
(setq d12 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Macha))
(setq d13 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Pazly))
(setq d14 (checking vvedite_otnoshenie_ Culinary _secrets _k_ SHerlok_Homs))
(setq d21 (checking vvedite_otnoshenie_ Macha _k_ Culinary_secrets))
(setq d23 (checking vvedite_otnoshenie_ Macha _k_ Pazly))
(setq d24 (checking vvedite_otnoshenie_ Macha _k_ SHerlok_Homs))
(setq d31 (checking vvedite_otnoshenie_ Pazly _k_ Culinary_secrets))
(setq d32 (checking vvedite_otnoshenie_ Pazly _k_ Macha))
(setq d34 (checking vvedite_otnoshenie_ Pazly _k_ SHerlok_Homs))
(setq d41 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Culinary_secrets))
(setq d42 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Macha))
(setq d43 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Pazly))
(print ***COMFORT***)
(setq e12 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Macha))
(setq e13 (checking vvedite_otnoshenie_ Culinary _secrets _k_ Pazly))
(setq e14 (checking vvedite_otnoshenie_ Culinary _secrets _k_ SHerlok_Homs))
(setq e21 (checking vvedite_otnoshenie_ Macha _k_ Culinary_secrets))
(setq e23 (checking vvedite_otnoshenie_ Macha _k_ Pazly))
(setq e24 (checking vvedite_otnoshenie_ Macha _k_ SHerlok _Homs))
(setq e31 (checking vvedite_otnoshenie_ Pazly _k_ Culinary_secrets))
(setq e32 (checking vvedite_otnoshenie_ Pazly _k_ Macha))
(setq e34 (checking vvedite_otnoshenie_ Pazly _k_ SHerlok _Homs))
(setq e41 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Culinary_secrets))
(setq e42 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Macha))
(setq e43 (checking vvedite_otnoshenie_ SHerlok _Homs _k_ Pazly))
; сложная функция
; gurvic - функция, вычисляющая среднюю оценку критериев 4-х объектов по Критерию Гурвица (defun gurvic (a b c koff-a ) (COND ((and (and (>= a b) (>= a c) (<= b a) (<= b c)) ) (+ (* a koff-a) (* b (- 1 koff-a))))
((and (and (>= a b) (>= a c) (<= c a) (<= c b)) ) (+ (* a koff-a) (* c (- 1 koff-a))))
((and (and (>= b a) (>= b c) (<= a b) (<= a c)) ) (+ (* b koff-a) (* a (- 1 koff-a)))) ((and (and (>= b a) (>= b c) (<= c a) (<= c b)) ) (+ (* b koff-a) (* c (- 1 koff-a))))
((and (and (>= c b) (>= c a) (<= b a) (<= b c)) ) (+ (* c koff-a) (* b (- 1 koff-a)))) ((and (and (>= c b) (>= c a) (<= a b) (<= a c)) ) (+ (* c koff-a) (* a (- 1 koff-a))))
)
)
;задание коэфициента в критерии Гурвица
(setq koff-a 0.5)
;определение значимости строки по критерию Гурвица для таблицы criteria
(setq gra1 (gurvic a12 a13 a14 koff-a))
(setq gra2 (gurvic a21 a23 a24 koff-a))
(setq gra3 (gurvic a31 a32 a34 koff-a))
(setq gra4 (gurvic a41 a42 a43 koff-a))
;определение значимости строк по критерию Гурвица для таблицы originality
(setq grb1 (gurvic b12 b13 b14 koff-a))
(setq grb2 (gurvic b21 b23 b24 koff-a))
(setq grb3 (gurvic b31 b32 b34 koff-a))
(setq grb4 (gurvic b41 b42 b43 koff-a))
;определение значимости строк по критерию Гурвица для таблицы gameplay
(setq grc1 (gurvic c12 c13 c14 koff-a))
(setq grc2 (gurvic c21 c23 c24 koff-a))
(setq grc3 (gurvic c31 c32 c34 koff-a))
(setq grc4 (gurvic c41 c42 c43 koff-a))
;определение значимости строк по критерию Гурвица для таблицы plot
(setq grd1 (gurvic d12 d13 d14 koff-a))
(setq grd2 (gurvic d21 d23 d24 koff-a))
(setq grd3 (gurvic d31 d32 d34 koff-a))
(setq grd4 (gurvic d41 d42 d43 koff-a))
;определение значимости строк по критерию Гурвица для таблицы comfort
(setq gre1 (gurvic e12 e13 e14 koff-a))
(setq gre2 (gurvic e21 e23 e24 koff-a))
(setq gre3 (gurvic e31 e32 e34 koff-a))
(setq gre4 (gurvic e41 e42 e43 koff-a))
;функция определения оценки итоговой функции
(Load IRRATNAL.LSP)
(defun znach (z a b c d e f g h) (set z (+ (expt a b) (expt c d) (expt e f) (expt g h))))
;определение оценки итоговой функции для наших игр
(znach game1 gra1 grb1 gra2 grc1 gra3 grd1 gra4 gre1)
(znach game2 gra1 grb2 gra2 grc2 gra3 grd2 gra4 gre2)
(znach game3 gra1 grb3 gra2 grc3 gra3 grd3 gra4 gre3)
(znach game4 gra1 grb4 gra2 grc4 gra3 grd4 gra4 gre4)
(print '***********)
(print ' Culinary secrets:)
(print game1)
(print ' Macha:)
(print game2)
(print ' Pazly:)
(print game3)
(print ' SHerlok Homs:)
(print game4)
(print '***********)
;функция сравнения итоговой функции для наших игр и определение лучшей
(defun sravn () (cond ((and (= game1 game2) (= game1 game3) (= game1 game4)) 'Games_ravnocenny)
((and (> game1 game2) (> game1 game3) (> game1 game4)) ' Culinary_secrets)
((and (> game2 game1) (> game2 game3) (> game2 game4)) ' Macha)
((and (> game3 game1) (> game3 game2) (> game3 game4)) ' Pazly)
((and (> game4 game1) (> game4 game2) (> game4 game3)) ' SHerlok_Homs)
((and (= game1 game2) (> game1 game3) (> game1 game4)) ' Culinary_secrets _&_' Macha)
((and (= game1 game3) (> game1 game2) (> game1 game4)) ' Culinary_secrets _&_' Pazly)
((and (= game1 game4) (> game1 game2) (> game1 game3)) ' Culinary_secrets _&_' SHerlok_Homs)
((and (= game2 game3) (> game2 game1) (> game2 game4)) ' Macha _&_' Pazly)
((and (= game2 game4) (> game2 game1) (> game2 game3)) ' Macha _&_' SHerlok_Homs)
((and (= game3 game4) (> game3 game1) (> game3 game2)) ' Pazly _&_' SHerlok_Homs)
((and (= game1 game2) (= game1 game3) (> game1 game4))
' Culinary_secrets _&_' Macha _&_' Pazly)
((and (= game1 game2) (= game1 game4) (> game1 game3)) ' Culinary_secrets _&_' Macha _&_' SHerlok_Homs)
((and (= game1 game3) (= game1 game4) (> game1 game2))
' Culinary_secrets _&_' Pazly _&_' SHerlok_Homs)
((and (= game2 game3) (= game2 game4) (> game2 game1)) ' Macha _&_' Pazly _&_' SHerlok_Homs)))
(setq best(sravn))
(print '*************************)
(print 'BEST_WRP_GAME:)
(print best)
(print '*************************)
(defun info()
((print '_1___table_criteria)
(print '_2___table_originality)
(print '_3___table_gameplay)
(print '_4___table_plot)
(print '_5___table_comfort)
(print '_6___srednie_znachenia_pokazatelei)
(print '_7___srednie_znachenia_games_po_kazhdomu_pokazately)
(print '_8___itogovaya_ocenka)
(print '_9___BEST_GAME)))
(setq str1 (list ORIGINALITY GAMEPLAY PLOT COMFORT))
(setq str2 (list Culinary_secrets Macha Pazly SHerlok_Homs))
;вывод таблицы с критериями
(defun tabl1 (x12 x13 x14 x21 x23 x24 x31 x32 x34 x41 x42 x43)
(print (list 'originalty 0 x12 x13 x14))
(print (list 'gameplay x21 0 x23 x24))
(print (list 'plot x31 x32 0 x34))
(print (list 'comfort x41 x42 x43 0)))
;вывод таблицы с названиями игр
(defun tabl2 (x12 x13 x14 x21 x23 x24 x31 x32 x34 x41 x42 x43)
(print (list ' Culinary_secrets 0 x12 x13 x14))
(print (list ' Macha x21 0 x23 x24))
(print (list ' Pazly x31 x32 0 x34))
(print (list ' SHerlok_Homs x41 x42 x43 0)))
;вывод средних значений показателей
(defun sred (a b c d) (print (list a b c d)))
;вывод таблицы значений игр по каждому показателю
(defun tabl3 (x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 x41 x42 x43 x44)
(print (list ' Culinary_secrets x11 x12 x13 x14))
(print (list ' Macha x21 x22 x23 x24))
(print (list ' Pazly x31 x32 x33 x34))
(print (list ' SHerlok_Homs x41 x42 x43 x44)))
;рекурсия
(defun vyvod () (info)
(print 'Vvedite_nomer)
(setq x (read))
(cond ((= x 1) ((print 'table_criteria) (print str1) (tabl1 a12 a13 a14 a21 a23 a24 a31 a32 a34 a41 a42 a43)))
((= x 2) ((print 'table_originality) (print str2) (tabl2 b12 b13 b14 b21 b23 b24 b31 b32 b34 b41 b42 b43)))
((= x 3) ((print 'table_gameplay) (print str2) (tabl2 c12 c13 c14 c21 c23 c24 c31 c32 c34 c41 c42 c43)))
((= x 4) ((print 'table_plot) (print str2) (tabl2 d12 d13 d14 d21 d23 d24 d31 d32 d34 d41 d42 d43)))
((= x 5) ((print 'table_comfort) (print str2) (tabl2 e12 e13 e14 e21 e23 e24 e31 e32 e34 e41 e42 e43)))
((= x 6) ((print 'srednie_znachenia_pokazatelei) (print str1) (sred gra1 gra2 gra3 gra4)))
((= x 7) ((print 'srednie_znachenia_games_po_kazhdomu_pokazately) (print str1) (tabl3 grb1 grc1 grd1 gre1 grb2 grc2 grd2 gre2 grb3 grc3 grd3 gre3 grb4 grc4 grd4 gre4)))
((= x 8) ((print 'itogovaya_ocenka) (print str2) (print (list game1 game2 game3 game4))))
((= x 9) ((print 'BEST_WRP_GAME) (print best))))
(print '*****************************************)
(print povtorit?__DA_1_)
(setq s (read))
(if (= s 1) (vyvod) (print 'THE_END)))
(print 'VYVOD_DOPOLNiTELNOY_INFO)
(print 'BUDETE_VYVODIT?__DA-1)
(setq x (read))
(if (= x 1) (vyvod) (print 'THE_END))
Документ
Категория
Без категории
Просмотров
323
Размер файла
973 Кб
Теги
гост, работа, курсовая
1/--страниц
Пожаловаться на содержимое документа