рефераты скачать
 
Главная | Карта сайта
рефераты скачать
РАЗДЕЛЫ

рефераты скачать
ПАРТНЕРЫ

рефераты скачать
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

рефераты скачать
ПОИСК
Введите фамилию автора:


Реферат: Система "Посредник"

Схема организации диалога представлена на рис.6.

заключение

При написании курсового проекта были использованы разнообразные модели представления знаний, изучаемые инженерией знаний. Система “Посредник” программно реализована на языке Пролог в среде Turbo Prolog 2.0.

Приложение

Текст программы “посредник”

/*==========================================================*/

/* Курсовой проект по дисциплине "Инженерия знаний" */

/* Система "Посредник" */

/* Автор: Данченков А.В., гр. ИИ-1-95 */

/*==========================================================*/

code=8850

domains

 Фирма,Товар,Произв,Str=string

 Int,N,Парт,Кол_во,Сроки=integer

 Цена=real

/* Основные и служебные базы данных */

database - поставщик

 поставщик(integer,Фирма,Товар,Произв,Парт,Кол_во,Цена,Сроки)

database - покупатель

 покупатель(N,Фирма,Товар,Произв,Парт,Цена,Сроки)

database - sup

 sup(Str,Str)

database - contract

 contract(integer,integer)

database - best

 best(integer,integer,integer,integer)

database - best2

 best2(integer,integer,integer,integer)

database - flag

 flag(Int)

predicates

 start

 view(Int)

 autoload

 working(Int)

 main_menu

 correct(Int)

 interact(integer)

 warning(integer)

 form_best(integer,integer,integer,integer)

 form_best2(integer)

 f_b2(integer,integer,integer,integer)

 fb1(integer,integer,integer,integer)

 fb2(integer,integer,integer,integer)

 del(Int)

 del_sup(string)

 ins_sup(string)

 view_sup(string)

 sve

 save_bd

 ask

 error

 io_error

 ok

 repeat

 checkcontr(integer)

 all_contract

 print_contract

 cmp_name(string,string)

 find_web(Str,Str)

 prn(integer,string)

goal

 start.

clauses

/* Основная процедура */

 start:-

 makewindow(1,26,94,"СИСТЕМА ПОСРЕДНИК",0,0,25,80),

 clearwindow,

 autoload,

 main_menu.

/* Процедура автоматической загрузки баз данных */

 autoload:-

 retractall(_,поставщик),

 existfile("kurs1.dat"),

 consult("kurs1.dat",поставщик),

 retractall(_,покупатель),

 existfile("kurs2.dat"),

 consult("kurs2.dat",покупатель),

 retractall(_,sup),

 existfile("web.dat"),

 consult("web.dat",sup),

 cursor(21,30),

 write("*Базы загружены*").

 autoload:-

 makewindow(2,74,79,"ОШИБКА",6,18,8,40),

 cursor(2,10),

 write("Нет базы на диске"),

 sound(70,294),

 removewindow,

 !.

/* Главное меню */

 main_menu:-

 repeat,

 cursor(7,0),

 write(" 0 - О системе... "),nl,

 write(" 1 - Корректировка данных"),nl,

 write(" 2 - Уничтожение записей"),nl,

 write(" 3 - Просмотр баз данных"),nl,

 write(" 4 - Заключение договоров"),nl,

 write(" 5 - Интерактивный режим"),nl,

 write(" 6 - Выход из программы"),nl,

 write(" =>"),

 readint(C),

 clearwindow,

 working(C),

 clearwindow,

 C = 6,

 retractall(_),

 removewindow.

/* Вывод данных о создателе программы */

 working(0):-

 makewindow(3,27,30,"О системе...",0,0,25,80),

 nl,nl,

write(" Инфоpмационно-спpавочная система"),

 nl,nl,

write(" Посредник "),

 nl,nl,nl,nl,

write(" Программа составлена в среде "),

 nl,

write(" TURBO-PROLOG v.2.0."),

 nl,nl,nl,

write(" автоp: Данченков А.В."),

 nl,nl,

write(" МИРЭА, гp.ИИ-1-95 (С) 1997 г. "),

 nl,

 sound(5,220),

 cursor(22,26),

 write("Нажмите на любую клавишу"),

 readchar(_),

 removewindow,!.

 /*Процедура вывода меню корректировки данных*/

 working(1):-

 makewindow(4,26,48,"Коppектировка данных",0,0,25,80),

 sound(5,220),

 repeat,

 nl,

 nl,

 cursor(9,0),

 write(" 1 - Изменение данных по поставщикам"),nl,

 write(" 2 - Изменение данных по покупателям"),nl,

 write(" 3 - Добавление данных по поставщикам"),nl,

 write(" 4 - Добавление данных по покупателям"),nl,

 write(" 5 - Выход в главное меню" ),nl,

 write(" =>"),

 readint(X),

 clearwindow,

 X>0,X<=5,

 correct(X),

 clearwindow,

 X=5,!,

 removewindow.

/* Процедура вывода меню уничтожения данных*/

 working(2):-

 makewindow(5,48,107,"Уничтожение записей",0,0,25,80),

 sound(5,220),

 repeat,

 cursor(7,0),

 write(" 1 - Удаление из базы данных поставщиков"),nl,

 write(" 2 - Удаление из базы данных покупателей"),nl,

 write(" 3 - Удаление из классифицирующей сети"),nl,

 write(" 4 - Выход"),nl,

 write(" => "),

 readint(I),

 clearwindow,

 I>0,I<=4,

 del(I),

 clearwindow,

 I=4,!,

 removewindow.

/* Процедура вывода меню просмотра базы данных */

 working(3):-

 makewindow(6,30,26,"Просмотp баз данных",0,0,25,80),

 sound(5,220),

 repeat,

 nl,

 nl,

 cursor(7,0),

 write(" 1 - Просмотр базы данных по поставщикам"),nl,

 write(" 2 - Просмотр базы данных по покупателям"),nl,

 write(" 3 - Просмотр связей в классифицирующей сети"),nl,

 write(" 4 - Выход в главное меню" ),nl,

 write(" =>"),

 readint(X),

 clearwindow,

 X>0,X<=4,

 view(X),

 clearwindow,

 X=4,!,

 removewindow.

 /* Вызов процедуры, выводящей контракты */

 working(4):- retractall(_,best),

 retractall(_,best2),

 all_contract,!.

 /* Процедура вывода меню интерактивного режима */

 working(5):-

 makewindow(4,26,48,"Заключение договоров в интерактивном режиме",0,0,25,80),

 sound(5,220),

 repeat,

 nl,

 nl,

 cursor(9,0),

 write(" 1 - Поиск поставщика"),nl,

 write(" 2 - Поиск покупателя"),nl,

 write(" 3 - Выход"),nl,

 write(" =>"),

 readint(X),

 clearwindow,

 X>0,X<=3,

 interact(X),

 clearwindow,

 X=3,!,

 removewindow.

 /* Процедура выхода из программы */

 working(6):-flag(1),retract(flag(1)),save_bd,!.

 working(6).

 working(_):-

 makewindow(16,74,79,"ОШИБКА ВВОДА",6,18,8,40),

 nl,

 write(" Введите число от 0 до 6,"),nl,

 write(" соответствующее выбранному пункту"),nl,nl,nl,

 write(" Нажмите на любую клавишу"),

 sound(20,494),

 sound(30,392),

 readchar(_),

 removewindow.

/* Процедуры просмотра баз данных */

 view(1):-

 makewindow(16,31,26,"Просмотp базы данных по поставщикам",0,0,25,80),

write("|=================================================================|"),nl,

write("| ПОСТАВЩИКИ |"),nl,

write("|=================================================================|"),nl,

write("| | | | | Мин . | | | |"),nl,

write("|No| Фирма | Товар |Производитель| партия | Кол-во |Цена|Д|"),nl,

write("|=================================================================|"),nl,

 поставщик(N,Firm,Tov,Proizv,Min,Kol,Price,Srok),

 cursor(Z,_),

 cursor(Z,1),write(N),

 cursor(Z,3),write("¦",Firm),

 cursor(Z,16),write("¦",Tov),

 cursor(Z,36),write("¦",Proizv),

 cursor(Z,50),write("¦",Min),

 cursor(Z,59),write("¦",Kol),

 cursor(Z,68),write("¦",Price),

 cursor(Z,73),write("¦",Srok),

 cursor(Z,0),write("¦"),

 cursor(Z,76),write("¦"),

 nl,

 fail.

 view(1):-

write("|==================================================================|"),

 nl,

 cursor(22,26),

 write("Нажмите на любую клавишу"),

 readchar(_),

 removewindow.

 view(2):-

 makewindow(16,31,26,"Просмотp базы данных по покупателям",0,0,25,80),

write("|=================================================================|"),nl,

write("| ПОКУПАТЕЛИ |"),nl,

write("|=================================================================|"),nl,

write("| | | | | Требуемая | | |"),nl,

write("|No| Фирма | Товар |Производитель| партия |Цена |Д|"),nl,

write("|=================================================================|"),nl,

 покупатель(N,Firm,Tov,Proizv,Part,Price,Srok),

 cursor(Z,_),

 cursor(Z,1),write(N),

 cursor(Z,4),write("¦",Firm),

 cursor(Z,20),write("¦",Tov),

 cursor(Z,42),write("¦",Proizv),

 cursor(Z,57),write("¦",Part),

 cursor(Z,67),write("¦",Price),

 cursor(Z,72),write("¦",Srok),

 cursor(Z,0),write("¦"),

 cursor(Z,76),write("¦"),

 nl,

 fail.

 view(2):-

write("|==================================================================|"),

 nl,

 cursor(22,26),

 write("Нажмите на любую клавишу"),

 readchar(_),

 removewindow.

 view(3):-

 makewindow(16,31,26,"Просмотp связей в классифицирующей сети",0,0,25,80),

 nl,nl,

 view_sup("производитель"),

 cursor(21,26),

 write(" Просмотр закончен "),nl,

 cursor(22,26),

 write("Нажмите на любую клавишу"),

 readchar(_),

 removewindow,!.

 view(_).

/* Процедуры коррекции данных в базах данных */

 correct(1):-

 makewindow(4,26,48,"Изменение данных о поставщках",0,0,25,80),

 nl,

 write(" Введите порядковый номер поставщика : "),readint(X),nl,

 поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok),

 clearwindow,nl,

 write(" Порядковый номер поставщика : "),write(X),nl,

 write(" Фирма : "),write(Firm),nl,

 write(" Товар : "),write(Tov),nl,

 write(" Производитель : "),write(Proizv),nl,

 write(" Минимальная партия : "),write(Min),nl,

 write(" Колличество на складе : "),write(Kol),nl,

 write(" Цена за единицу товара : "),write(Price),nl,

 write(" Сроки поставки : "),write(Srok),nl,

 nl,nl,nl,

 write(" Введите название фирмы : "),readln(Firm1),

 write(" Введите название товара : "),readln(Tov1),

 write(" Введите производителя : "),readln(Proizv1),

 write(" Введите минимальную партию : "),readInt(Min1),

 write(" Введите колличество на складе : "),readInt(Kol1),

 write(" Введите цену за единицу товара : "),readreal(Price1),

 write(" Введите сроки поставки : "),readInt(Srok1),nl,

 X1=X,

 retract(поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 assertz(поставщик(X1,Firm1,Tov1,Proizv1,Min1,Kol1,Price1,Srok1)),

 !,

 ins_sup(Proizv1),

 assert(flag(1)),

 removewindow.

 correct(2):-

 makewindow(4,26,48,"Изменение данных о покупателях",0,0,25,80),

 nl,

 write(" Введите порядковый номер покупателя : "),readint(X),nl,

 покупатель(X,Firm,Tov,Proizv,Part,Price,Srok),

 clearwindow,nl,

 write(" Порядковый номер покупателя : "),write(X),nl,

 write(" Фирма : "),write(Firm),nl,

 write(" Товар : "),write(Tov),nl,

 write(" Производитель : "),write(Proizv),nl,

 write(" Необходимая партия : "),write(Part),nl,

 write(" Цена за единицу товара : "),write(Price),nl,

 write(" Сроки поставки : "),write(Srok),nl,

 nl,nl,nl,

 write(" Введите название фирмы : "),readln(Firm1),

 write(" Введите название товара : "),readln(Tov1),

 write(" Введите производителя : "),readln(Proizv1),

 write(" Введите необходимую партию : "),readInt(Part1),

 write(" Введите цену за единицу товара : "),readreal(Price1),

 write(" Введите сроки поставки : "),readInt(Srok1),nl,

 X1=X,

 retract(покупатель(X,Firm,Tov,Proizv,Part,Price,Srok)),

 assertz(покупатель(X1,Firm1,Tov1,Proizv1,Part1,Price1,Srok1)),

 ins_sup(Proizv1),

 !,

 assert(flag(1)),

 removewindow.

 correct(3):-

 makewindow(9,26,48,"Добавление данных о поставщиках",0,0,25,80),

 repeat,

 nl,

 write(" Введите порядковый номер поставщика : "),readint(K),nl,

 write(" Введите название фирмы : "),readln(F),

 write(" Введите название товара : "),readln(T),

 write(" Введите производителя : "),readln(P),

 write(" Введите минимальную партию : "),readInt(M),

 write(" Введите колличество на складе : "),readInt(Kl),

 write(" Введите цену за единицу товара : "),readreal(Pr),

 write(" Введите сроки поставки : "),readInt(S),nl,

 N1=K,

 Firm=F,Tov=T,Proizv=P,

 Min=M,Kol=Kl,

 Price=Pr,Srok=S,

 assertz(поставщик(N1,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 ins_sup(Proizv),

 ask,!,

 assert(flag(1)),

 removewindow.

 correct(4):-

 makewindow(9,26,48,"Добавление данных о покупателях",0,0,25,80),

 repeat,

 nl,

 write(" Введите порядковый номер покупателя : "),readint(K),nl,

 write(" Введите название фирмы : "),readln(F),

 write(" Введите название товара : "),readln(T),

 write(" Введите производителя : "),readln(P),

 write(" Введите необходимую партию : "),readInt(M),

 write(" Введите цену за единицу товара : "),readreal(Pr),

 write(" Введите сроки поставки : "),readInt(S),nl,

 N1=K,

 Firm=F,Tov=T,Proizv=P,

 Part=M,

 Price=Pr,Srok=S,

 assertz(покупатель(N1,Firm,Tov,Proizv,Part,Price,Srok)),

 ins_sup(Proizv),

 ask,!,

 assert(flag(1)),

 removewindow.

 correct(_).

/* Вспомагательные процедуры удаления данных */

 del(1):-

 makewindow(5,48,107,"Удаление данных о поставщках",0,0,25,80),

 nl,

 write(" Введите порядковый номер поставщика : "),readint(X),nl,

 поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok),

 retract(поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 assert(flag(1)),

 ok,

 !,

 removewindow.

 del(1):-

 error,

 removewindow,!.

 del(2):-

 makewindow(5,48,107,"Удаление данных о покупателях",0,0,25,80),

 nl,

 write(" Введите порядковый номер покупателя : "),readint(X),nl,

 покупатель(X,Firm,Tov,Proizv,Part,Price,Srok),

 retract(покупатель(X,Firm,Tov,Proizv,Part,Price,Srok)),

 assert(flag(1)),

 ok,

 !,

 removewindow.

 del(2):-

 error,

 removewindow,!.

 del(3):- makewindow(5,48,107,"Удаление из классифицирующей сети",0,0,25,80),

 nl,

 write(" Введите удаляемого производителя/регеон : "),readln(S),nl,

 del_sup(S),

 assert(flag(1)),

 ok,

 !,

 removewindow.

 del(3):-

 error,

 removewindow,!.

 del(_).

 /* Процедура запроса на окончание ввода в correct(3) и correct(3) */

 ask:-

 makewindow(10,43,120,"Вопрос",6,18,8,40),nl,nl,

 write(" Продолжить процесс ввода данных? "),nl,nl,

 write(" [Д]а/[Н]ет"),

 readchar(Ch),

 removewindow,

 clearwindow,

 Ch='Н',!.

/* Вывод запроса о сохранении изменённых баз данных */

 save_bd:-

 makewindow(17,74,79,"Сохранение изменений",6,18,8,40),nl,

 write(" Сохранить произведённые "),nl,

 write(" изменения на диске?"),nl,nl,

 write(" [Д]а/[Н]ет"),

 sound(20,494),

 sound(30,392),

 readchar(Ch),

 removewindow,

 clearwindow,

 Ch='Д',!,sve.

 save_bd.

 /* Сохранение данных на диске */

 sve:-save("kurs1.dat",поставщик),

 save("kurs2.dat",покупатель),

 save("web.dat",sup),!.

 sve:-io_error,removewindow.

/* Процедуры вывода сообщений об ошибках */

 error:-

 makewindow(15,74,79,"ОШИБКА",6,18,8,40),

 cursor(2,16),

 write("ОШИБКА"),nl,nl,

 write(" Нажмите на любую клавишу"),

 sound(70,294),

 readchar(_),

 removewindow,

 !.

 io_error:-

 makewindow(16,74,79,"ОШИБКА",6,18,8,40),

 cursor(2,7),

 write("Ошибка ввода/вывода"),nl,nl,

 write(" Нажмите на любую клавишу"),

 sound(70,294),

 readchar(_),

 removewindow.

/* Процедура вывода сообщения об успешном завершении данной операции */

 ok:-

 makewindow(17,27,90,"ОК",6,18,8,40),

 cursor(2,7),

 write(" ОПЕРАЦИЯ ВЫПОЛНЕНА"),nl,nl,

 write(" Нажмите на любую клавишу"),

 readchar(_),

 removewindow.

/* Процедура repeat */

 repeat.

 repeat:- repeat.

/* Процедура обнаружения связей по классифицирующей сети */

 cmp_name(Proizv,Proizv).

 cmp_name(Proizv,Proizv1):-

 find_web(Proizv,Proizv1).

 find_web(X,Y):-sup(X,Y).

 find_web(X,Y):-sup(X,Z),find_web(Z,Y).

 /* Процедура обнаружения всех возможных контрактов */

 all_contract:-

 покупатель(N,_,Tov,Proizv,Part,Price,Srok),

 поставщик(N1,_,Tov,Proizv1,Min1,Kol1,Price1,Srok1),

 cmp_name(Proizv,Proizv1),

 Part>=Min1,Part<=Kol1,Price>=Price1,Srok>=Srok1,

 assertz(contract(N,N1)),

 assert(best(N,0,0,0)),

 assert(best2(N,0,0,1000)),

 fail.

 all_contract:-print_contract.

 /* Процедуры вывода на экран всех возможных контрактов */

 print_contract:-

 makewindow(16,31,26,"Все возможные контракты",0,0,25,80),

 nl,nl,

 покупатель(N,Firm,_,_,_,_,_),

 checkcontr(N),

 prn(N,Firm),

 fail.

 print_contract:-

 retractall(_,contract),

 removewindow.

 prn(N,Firm):-

 cursor(1,1),

 write("Для фирмы: ",Firm),

 nl,

write("|=================================================================|"),nl,

write("| | | | | Мин . | | | |"),nl,

write("|No| Фирма | Товар |Производитель| партия | Кол-во |Цена|Д|"),nl,

write("|=================================================================|"),nl,

 contract(N,N1),

 поставщик(N1,Firm1,Tov1,Proizv1,Min1,Kol1,Price1,Srok1),

 cursor(Z,_),

 cursor(Z,1),write(N1),

 cursor(Z,3),write("¦",Firm1),

 cursor(Z,16),write("¦",Tov1),

 cursor(Z,36),write("¦",Proizv1),

 cursor(Z,50),write("¦",Min1),

 cursor(Z,59),write("¦",Kol1),

 cursor(Z,68),write("¦",Price1),

 cursor(Z,73),write("¦",Srok1),

 cursor(Z,0),write("¦"),

 cursor(Z,76),write("¦"),

 nl,

 покупатель(N,_,_,_,Part,_,_),

 retract(contract(N,N1)),

 Cs=Part*Price1,

 form_best(N,N1,Cs,Srok1),

 form_best2(N),

 fail.

 prn(N,_):-

 write("|===================================================================|"),

 nl,

 best2(N,Np,_,_),

 поставщик(Np,Firm,_,_,_,_,_,_),nl,

 write("Наиболее предпочтительный"),nl,

 write("контракт с фирмой: ",Firm),nl,

 cursor(22,26),

 write("Нажмите на любую клавишу"),

 readchar(_),

 clearwindow,!.

 /* Проверяет, есть ли контракты */

 checkcontr(N):-contract(N,_).

 /* Процедура формирования наиболее предпочтительного контракта */

 form_best(N,Np,S,Srok):- Na=N,

 best(Na,Np1,S1,Srok1),S=S1,

 assertz(best(Na,Np,S,Srok)),!.

 form_best(N,Np,S,Srok):- Na=N,

 best(Na,Np1,S1,Srok1),S>S1,fb1(Na,Np,S,Srok),

 assertz(best(Na,Np,S,Srok)),!.

 form_best(_,_,_,_).

 fb1(N,_,_,_):-

 retract(best(N,_,_,_)),fail.

 fb1(_,_,_,_).

 form_best2(N):-

 best(N,Np,S,Srok),f_b2(N,Np,S,Srok),fail.

 form_best2(_).

 f_b2(N,Np,S,Srok):- Na=N,

 best2(Na,Np1,_,Srok1),Srok1>Srok,

 fb2(Na,Np,S,Srok),

 assertz(best2(Na,Np,S,Srok)),!.

 f_b2(_,_,_,_).

 fb2(N,_,_,_):- retract(best2(N,_,_,_)),fail.

 fb2(_,_,_,_).

 /* Процедуры заключения договоров в интерактивном режиме */

 interact(1):-

 makewindow(9,26,48,"Поиск поставщика",0,0,25,80),

 nl,

 write(" Введите название фирмы : "),readln(F),

 write(" Введите название товара : "),readln(T),

 write(" Введите производителя : "),readln(P),

 write(" Введите необходимую партию : "),readInt(M),

 write(" Введите цену за единицу товара : "),readreal(Pr),

 write(" Введите сроки поставки : "),readInt(S),nl,

 N=0,

 Firm=F,Tov=T,Proizv=P,

 Part=M,

 Price=Pr,Srok=S,

 assertz(покупатель(N,Firm,Tov,Proizv,Part,Price,Srok)),

 removewindow,

 поставщик(N1,_,Tov,Proizv1,Min1,Kol1,Price1,Srok1),

 cmp_name(Proizv,Proizv1),

 Part>=Min1,Part<=Kol1,Price>=Price1,Srok>=Srok1,

 assert(flag(2)),

 assertz(contract(N,N1)),

 assert(best(N,0,0,0)),

 fail.

 interact(1):-flag(2),print_contract,

 retract(покупатель(0,Firm,Tov,Proizv,Part,Price,Srok)),

 retract(flag(2)),!.

 interact(1):-

 warning(N),

 покупатель(0,Firm,Tov,Proizv,Part,Price,Srok),

 assertz(покупатель(N,Firm,Tov,Proizv,Part,Price,Srok)),

 ins_sup(Proizv),

 retract(покупатель(0,Firm,Tov,Proizv,Part,Price,Srok)),

 assert(flag(1)),

 !.

 interact(1):- retract(покупатель(0,Firm,Tov,Proizv,Part,Price,Srok)),!.

 interact(2):-

 makewindow(9,26,48,"Поиск покупателя",0,0,25,80),

 nl,

 write(" Введите название фирмы : "),readln(F),

 write(" Введите название товара : "),readln(T),

 write(" Введите производителя : "),readln(P),

 write(" Введите минимальную партию : "),readInt(M),

 write(" Введите имеющуюся партию : "),readInt(I),

 write(" Введите цену за единицу товара : "),readreal(Pr),

 write(" Введите сроки поставки : "),readInt(S),nl,

 N=0,

 Firm=F,Tov=T,Proizv=P,Min=M,

 Kol=I,

 Price=Pr,Srok=S,

 assertz(поставщик(N,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 removewindow,

 покупатель(N1,_,Tov,Proizv1,Part1,Price1,Srok1),

 cmp_name(Proizv1,Proizv),

 Part1>=Min,Part1<=Kol,Price1>=Price,Srok1>=Srok,

 assert(flag(2)),

 assertz(contract(N1,N)),

 assert(best(N1,0,0,0)),

 fail.

 interact(2):-flag(2),print_contract,

 retract(поставщик(0,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 retract(flag(2)),!.

 interact(2):-

 warning(N),

 поставщик(0,Firm,Tov,Proizv,Min,Kol,Price,Srok),

 assertz(поставщик(N,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 ins_sup(Proizv),

 retract(поставщик(0,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

 assert(flag(1)),

 !.

 interact(2):- retract(поставщик(0,Firm,Tov,Proizv,Min,Kol,Price,Srok)),!.

 interact(_).

 /* Вывод предупреждения о невозможности заключения договора */

 warning(N):-makewindow(7,49,113,"Предупреждение",5,10,12,60),

 sound(5,220),nl,nl,

 write(" На данный момент заключение контракта невозможно"),nl,

 write(" Поместить данные в базу данных"),nl,

 write(" для последующей обработки?"),nl,nl,

 write(" [Д]а/[Н]ет"),nl,

 readchar(Ch),

 removewindow,

 Ch='Д',

 write(" Введите порядковый номер фирмы : "),readInt(N),nl,

 !.

 /* Удаление элемента из классифицирующей сети */

 % В середине цепочки

 del_sup(S):- sup(S,X), del_sup(X),fail.

 % В конце цепочки

 del_sup(S):- sup(_,S), retract(sup(_,S)),fail.

 del_sup(_).

 /* Определение необходимости добавления и добавление */

 /* элемента в классифицирующую сеть */

 ins_sup(S):-sup(_,S),!.

 ins_sup(S):-sup("производитель",S),!.

 ins_sup(S):-

 write("Введите региональную принадлежность объекта _ ",S,"_ :"),

 readln(M),nl,

 assertz(sup(M,S)),assert(flag(1)),ins_sup(M),!.

 /* Вывод на печать связей в классифицирующей сети */

 view_sup(S):-

 sup(S,M),write(S," -> ",M),write("; "),

 view_sup(M),nl,fail.

 view_sup(_):- readchar(_).


Страницы: 1, 2


рефераты скачать
НОВОСТИ рефераты скачать
рефераты скачать
ВХОД рефераты скачать
Логин:
Пароль:
регистрация
забыли пароль?

рефераты скачать    
рефераты скачать
ТЕГИ рефераты скачать

Рефераты бесплатно, реферат бесплатно, рефераты на тему, сочинения, курсовые работы, реферат, доклады, рефераты, рефераты скачать, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.