Курсовая работа: Математические модели
nondeterm includ(список,список)
nondeterm vvod(integer,список,список)
nondeterm vvod1(integer,список)
nondeterm vvod2(integer)
nondeterm digit(string,integer)
CLAUSES
/* ОПИИСАНИЕ ЛИНИЙ */
линия(линия_1,[a,s,d,f,g]).
линия(линия_2,[l,k,d,j,h]).
линия(линия_3,[z,x,d,c,v]).
линия(линия_4,[b,n,d,m,q]).
линия(линия_5,[c,j,f,m,x,k,s,n,c]).
/* ПОИСК МИНИМАЛЬНОГО ЭЛЕМЕНТА В СПИСКЕ ЦЕЛЫХ ЧИСЕЛ */
мин_1(_,[]).
мин_1(Мин,[X|Хвост]):- Мин<=X, мин_1(Мин,Хвост).
минимальное(Мин,[X|Хвост]):- Мин=X,мин_1(Мин,Хвост); минимальное(Мин,Хвост).
/* ПРОВЕРКА НА ПРИНАДЛЕЖНОСТЬ СТАНЦИИ СПИСКУ */
принадлежит(Станция,[Станция|_]).
принадлежит(Станция,[_|Хвост]):- принадлежит(Станция,Хвост).
/*ПРОВЕРКА ДВУХ СТАНЦИЙ НА СОСЕДСТВО В СПИСКЕ */
соседние(Станция1,Станция2,[Станция1,Станция2|_]).
соседние(Станция1,Станция2,[_|Хвост]):- соседние(Станция1,Станция2,Хвост).
/* СМЕЖНЫЕ СТАНЦИИ */
смежные_станции(Станция1,Станция2,Линия):- линия(Линия,Список),принадлежит(Станция1,Список),
принадлежит(Станция2,Список), соседние(Станция1,Станция2,Список);
линия(Линия,Список), принадлежит(Станция1,Список),
принадлежит(Станция2,Список), соседние(Станция2,Станция1,Список).
/* ВОЗМОЖНОСТЬ ПЕРЕСАДКИ */
пересадка(Станция,Линия1,Линия2):- линия(Линия1,Список1), линия(Линия2,Список2),