Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояс.записка к курсовой_мии_Лубян_М.А._РТС41.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
222.72 Кб
Скачать
  1. Тестирование эс

Запуск в окне программы списока возможных вариантов:

Выбираем вариант «Материал» нажатием клавиши «1» поддтвержадая вариант, «0» поддтвержадая вариант.

При комбинации «1», «1», «0» получаем вывод:

Клиент может выбрать один вариант, например, «бумага», а так же комбинированный вариант, представленный выше «бумага и пластик».

Для полного выбора дизайна клиент должен пройти 7 основных параметров, если же н хочет выбрать часть критериев из списка, то в заявку включаются только те, которые он выбрал.

  1. Заключение

Выполнив данную курсовую работу, я приобрела навык построения экспертных систем, изучил среду программирования Turbo Prolog, а также язык программирования Prolog. Сделала экспертную систему для типографии, которая возможно пригодиться специалисту.

  1. Список использованной литературы

1. Братко. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. -М.: Мир, 1990.- 560 с.

2. Ин Ц., Соломон Д. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1990.-410 с.,

3. Шурыгин. А.М. Математические методы прогнозирования: учебное пособие для вузов.-М.:Горячая линия - Телеком, 2010.-180 с.

  1. Приложение. Листинг программы

domains

i=integer

predicates

AAA(integer,integer,integer)

BBB(integer,integer)

CCC(integer,integer)

DDD(integer,integer,integer)

EEE(integer,integer,integer)

FFF(integer,integer,integer)

GGG(integer,integer,integer)

vvodA1(integer)

vvodA2(integer)

vvodA3(integer)

vvodA4(integer)

vvodA5(integer)

vvodA6(integer)

vvodA7(integer)

vvodA8(integer)

vvodA9(integer)

vvodA10(integer)

vvodA11(integer)

vvodA12(integer)

vvodA13(integer)

vvodA14(integer)

vvodA15(integer)

vvodA16(integer)

vvodA17(integer)

vvodA18(integer)

vvodA19(integer)

start

patch

process(i)

clauses

/*-------------------------------1-------------------------------------*/

AAA(A1,A2,A3):-

A1=0,

A2=0,

A3=0,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Nuzhnogo varianta net, mozhet vy vyberite material iz togo chto est?").

AAA(A1,A2,A3):-

A1=0,

A2=0,

A3=1,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali material - metall.").

AAA(A1,A2,A3):-

A1=0,

A2=1,

A3=0,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali material - plastik.").

AAA(A1,A2,A3):-

A1=0,

A2=1,

A3=1,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva materiala - plastik i metall.’ ").

AAA(A1,A2,A3):-

A1=1,

A2=0,

A3=0,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("vy vybrali material - bumaga.").

AAA(A1,A2,A3):-

A1=1,

A2=0,

A3=1,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva materiala - bumaga i metall.").

AAA(A1,A2,A3):-

A1=1,

A2=1,

A3=0,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva materiala - bumaga i plastik.").

AAA(A1,A2,A3):-

A1=1,

A2=1,

A3=1,

makewindow(1,11,7," TIPOGRAFIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali vse predstavlennye materialy - bumaga, plastik i metall.").

/*-------------------------------2-------------------------------------*/

BBB(A4,A5):-

A4=0,

A5=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy ne vybrali orientirovanie.").

BBB(A4,A5):-

A4=0,

A5=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali orientirovanie - vertikalnoe.").

BBB(A4,A5):-

A4=1,

A5=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali orientirovanie - gorizontalnoe.").

BBB(A4,A5):-

A4=1,

A5=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vyberite kakoe-to odno orientirovanie!").

/*-------------------------------3-------------------------------------*/

CCC(A6,A7):-

A6=0,

A7=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Nuzhnogo varianta net, mozhet vy vyberite razmer iz togo chto predlozheno?").

CCC(A6,A7):-

A6=0,

A7=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("vy vybrali razmer - 85*55.").

CCC(A6,A7):-

A6=1,

A7=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali razmer - 90*50.").

CCC(A6,A7):-

A6=1,

A7=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vyberite odin iz predlozhenyh variantov!").

/*-------------------------------4-------------------------------------*/

DDD(A8,A9,A10):-

A8=0,

A9=0,

A10=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy ne vybrali fon!").

DDD(A8,A9,A10):-

A8=0,

A9=0,

A10=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali fon - cvetnoi.").

DDD(A8,A9,A10):-

A8=0,

A9=1,

A10=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali fon - belyi.").

DDD(A8,A9,A10):-

A8=0,

A9=1,

A10=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva cveta - belyi i cvetnoi.").

DDD(A8,A9,A10):-

A8=1,

A9=0,

A10=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali fon - chernyi.").

DDD(A8,A9,A10):-

A8=1,

A9=0,

A10=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva cveta - chernyi i cvetnoi.").

DDD(A8,A9,A10):-

A8=1,

A9=1,

A10=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva cveta - chernyi i belyi.").

DDD(A8,A9,A10):-

A8=1,

A9=1,

A10=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali vse predlozhennye varianty - chernyi, belyi i cvetnoi.").

/*-------------------------------5-------------------------------------*/

EEE(A11,A12,A13):-

A11=0,

A12=0,

A13=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy ne vybrali shrift!").

EEE(A11,A12,A13):-

A11=0,

A12=0,

A13=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali shrift - 12.").

EEE(A11,A12,A13):-

A11=0,

A12=1,

A13=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali shrift - 10.").

EEE(A11,A12,A13):-

A11=0,

A12=1,

A13=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva shrifta - 10 i 12.").

EEE(A11,A12,A13):-

A11=1,

A12=0,

A13=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali shrift - 8.").

EEE(A11,A12,A13):-

A11=1,

A12=0,

A13=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva shrifta - 8 i 12.").

EEE(A11,A12,A13):-

A11=1,

A12=1,

A13=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva shrifta - 8 i 10.").

EEE(A11,A12,A13):-

A11=1,

A12=1,

A13=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali vse predlozhennye varianty - 8,10 i 12.").

/*-------------------------------6-------------------------------------*/

FFF(A14,A15,A16):-

A14=0,

A15=0,

A16=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy ne vybrali dizain vizitnoi kartochki!").

FFF(A14,A15,A16):-

A14=0,

A15=0,

A16=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dizain - polzovatelskii.").

FFF(A14,A15,A16):-

A14=0,

A15=1,

A16=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dizain - delovoi.").

FFF(A14,A15,A16):-

A14=0,

A15=1,

A16=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva dizaina - delovoi i polzovatelskii.").

FFF(A14,A15,A16):-

A14=1,

A15=0,

A16=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dizain - standartnyi.").

FFF(A14,A15,A16):-

A14=1,

A15=0,

A16=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva dizaina - standartnyi i polzovatelskii.").

FFF(A14,A15,A16):-

A14=1,

A15=1,

A16=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva dizaina - standartnyi i delovoi.").

FFF(A14,A15,A16):-

A14=1,

A15=1,

A16=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali vse predlozhennye varianty - standartnyi,delovoi i polzovatelskii.").

/*-------------------------------7-------------------------------------*/

GGG(A17,A18,A19):-

A17=0,

A18=0,

A19=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy ne vybrali yazyk!").

GGG(A17,A18,A19):-

A17=0,

A18=0,

A19=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali yazyk - nemeckii.").

GGG(A17,A18,A19):-

A17=0,

A18=1,

A19=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali yazyk - angliskii.").

GGG(A17,A18,A19):-

A17=0,

A18=1,

A19=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva yazyka - angliskii i nemeckii.").

GGG(A17,A18,A19):-

A17=1,

A18=0,

A19=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali yazyk - russkii.").

GGG(A17,A18,A19):-

A17=1,

A18=0,

A19=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva yazyka - russkii i nemeckii.").

GGG(A17,A18,A19):-

A17=1,

A18=1,

A19=0,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali dva yazyka - russkii i angliskii.").

GGG(A17,A18,A19):-

A17=1,

A18=1,

A19=1,

makewindow(1,11,7," TIPOGRAPHIYA ",0,0,25,80),

cursor(8,5),

write("Vy vybrali vse predlozhennye varianty - russkii,angliskii i nemeckii.").

/*------------------Процедура создания основного меню-----------------------*/

start:-

makewindow(1,11,9," TIPOGRAPHIYA ",0,0,25,80),

clearwindow,

cursor(2,0),

write(" *******************************************************"),nl,

write(" * *"),nl,

write(" * KURSOVAYA RABOTA *"),nl,

write(" * TIPOGRAPHIYA *"),nl,

write(" * *"),nl,

write(" * *"),nl,

write(" * by Lubyan Maria *"),nl,

write(" * *"),nl,

write(" *******************************************************"),nl,

patch.

/*Процедура управления основным меню*/

patch:-

cursor(12,0),

write(" 1.Material"),nl,

write(" 2.Orientirovanie"),nl,

write(" 3.Razmer"),nl,

write(" 4.Fon"),nl,

write(" 5.Shrift"),nl,

write(" 6.Dizain"),nl,

write(" 7.Yazyk"),nl,

write(" 0.Exit"),nl,nl,nl,nl,

write(" =>"),

readint(Choice),

Choice >= 1,

Choice < 15,

clearwindow,

process(Choice),

clearwindow,

Choice = 14,

retractall(_),

removewindow.

/* ---------------------------------------------------------------------

-------------------------------------------------------------------*/

process(1):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA1(A1),

vvodA2(A2),

vvodA3(A3),

makewindow(1,11,12," Vivod ",1,1,20,78),

AAA(A1,A2,A3),

readln(_),

exit.

process(2):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA4(A4),

vvodA5(A5),

makewindow(1,11,12," Vivod ",1,1,20,78),

BBB(A4,A5),

readln(_),

exit.

process(3):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA6(A6),

vvodA7(A7),

makewindow(1,11,12," Vivod ",1,1,20,78),

CCC(A6,A7),

readln(_),

exit.

process(4):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA8(A8),

vvodA9(A9),

vvodA10(A10),

makewindow(1,11,12," Vivod ",1,1,20,78),

DDD(A8,A9,A10),

readln(_),

exit.

process(5):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA11(A11),

vvodA12(A12),

vvodA13(A13),

makewindow(1,11,12," Vivod ",1,1,20,78),

EEE(A11,A12,A13),

readln(_),

exit.

process(6):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA14(A14),

vvodA15(A15),

vvodA16(A16),

makewindow(1,11,12," Vivod ",1,1,20,78),

FFF(A14,A15,A16),

readln(_),

exit.

process(7):-

makewindow(1,2,9," TIPOGRAPHIYA ",0,0,25,80),

nl,

vvodA17(A17),

vvodA18(A18),

vvodA19(A19),

makewindow(1,11,12," Vivod ",1,1,20,78),

GGG(A17,A18,A19),

readln(_),

exit.

vvodA1(A1):-makewindow(1,11,12," MATERIAL ",1,1,20,78),

cursor(2,10),write(" Vy vyberite material - bumaga?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A1).

vvodA2(A2):-makewindow(1,11,12," MATERIAL ",1,1,20,78),

cursor(2,10),write(" Vy vyberite material - plastik?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A2).

vvodA3(A3):-makewindow(1,11,12," MATERIAL ",1,1,20,78),

cursor(2,10),write(" Vy vyberite material - metall?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A3).

/*-----------------*/

vvodA4(A4):-makewindow(1,11,12," ORIENTIROVANIE ",1,1,20,78),

cursor(2,10),write(" Vy vyberite orientirovanie - gorizontalnoe?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A4).

vvodA5(A5):-makewindow(1,11,12," ORIENTIROVANIE ",1,1,20,78),

cursor(2,10),write(" Vy vyberite orientirovanie - vertikalnoe?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A5).

/*-----------------*/

vvodA6(A6):-makewindow(1,11,12," RAZMER ",1,1,20,78),

cursor(2,10),write("Vy vyberite razmer - 90*50?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A6).

vvodA7(A7):-makewindow(1,11,12," RAZMER ",1,1,20,78),

cursor(2,10),write("Vy vyberite razmer - 85*55?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A7).

/*-----------------*/

vvodA8(A8):-makewindow(1,11,12," FON",1,1,20,78),

cursor(2,10),write("Vy vyberite fon - chernyi?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A8).

vvodA9(A9):-makewindow(1,11,12," FON",1,1,20,78),

cursor(2,10),write("Vy vyberite fon - belyi? "),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A9).

vvodA10(A10):-makewindow(1,11,12," FON",1,1,20,78),

cursor(2,10),write("Vy vyberite fon - cvetnoi?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A10).

/*-----------------*/

vvodA11(A11):-makewindow(1,11,12," SHRIFT",1,1,20,78),

cursor(2,10),write("Vy vyberite shrift - 8?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A11).

vvodA12(A12):-makewindow(1,11,12," SHRIFT",1,1,20,78),

cursor(2,10),write("Vy vyberite shrift - 10? "),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A12).

vvodA13(A13):-makewindow(1,11,12," SHRIFT",1,1,20,78),

cursor(2,10),write("Vy vyberite shrift - 12?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A13).

/*-----------------*/

vvodA14(A14):-makewindow(1,11,12," DIZAIN",1,1,20,78),

cursor(2,10),write("Vy vyberite dizain - standartnyi?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A14).

vvodA15(A15):-makewindow(1,11,12," DIZAIN",1,1,20,78),

cursor(2,10),write("Vy vyberite dizain - delovoi? "),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A15).

vvodA16(A16):-makewindow(1,11,12," DIZAIN",1,1,20,78),

cursor(2,10),write("Vy vyberite dizain - gjkzovatelskii?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A16).

/*-----------------*/

vvodA17(A17):-makewindow(1,11,12," YAZYK",1,1,20,78),

cursor(2,10),write("Vy vyberite yazyk - russkii?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A17).

vvodA18(A18):-makewindow(1,11,12," YAZYK",1,1,20,78),

cursor(2,10),write("Vy vyberite yazak - angliskii? "),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A18).

vvodA19(A19):-makewindow(1,11,12," YAZYK",1,1,20,78),

cursor(2,10),write("Vy vyberite yazyk - nemeckii?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A19).

/*-----------------*/

goal

start.

24