Методи використання предикатів Cut, Fail. Організація циклу (repeat), складання програми. Алгоритм роботи зі списками та рядками. Елементарні операції і базові функції мови програмування Лісп. Робота зі складними типами даних на прикладі бази даних АТС.
Аннотация к работе
Завдання: Взяти БД з лабораторної роботи №1 і на потрібному місті поставити предикати Cut, Fail. domains s=string predicates man(s) woman(s) parents(s,s) mother(s,s) father(s,s) brother(s,s) sister(s,s) grandmother(s,s) grandfather(s,s) uncl(s,s) aunt(s,s) cusin(s,s) cusina(s,s) vnuk(s,s) vnuchka(s,s) clauses man("Ivan"). man("Pavel"). man("Oleksandr"). man("Sergey"). man("Yaroslav"). man("Oleksandr m"). man("Viktor"). woman("Ekaterina"). woman("Ludmila"). woman("Ekaterina m"). woman("Yulia"). woman("Olga"). parents("Ivan","Oleksandr"). parents("Ivan","Ludmila"). parents("Ivan","Pavel"). parents("Ekaterina","Oleksandr"). parents("Ekaterina","Ludmila"). parents("Ekaterina","Pavel"). parents("Oleksandr","Sergey"). parents("Olga","Sergey"). parents("Ludmila","Yaroslav"). parents("Viktor","Yaroslav"). parents("Pavel","Oleksandr m"). parents("Pavel","Ekaterina m"). parents("Yulia","Oleksandr m"). parents("Yulia","Ekaterina m"). mother(X,Y):-parents(X,Y),woman(X). father(X,Y):-parents(X,Y),man(X). brother(X,Y):-parents(Z,X),parents(Z,Y),XY,man(X). sister(X,Y):-parents(Z,X),parents(Z,Y),XY,woman(X). grandmother(X,Y):-parents(Z,Y),parents(X,Z),woman(X). grandfather(X,Y):-parents(Z,Y),parents(X,Z),man(X). uncl(X,Y):-parents(Z,Y),brother(X,Z),man(X). aunt(X,Y):-parents(Z,Y),sister(X,Z),woman(X). cusin(X,Y):-parents(Z,Q),parents(Z,W),parents(Q,X),parents(W,Y),QW,XY,man(X). cusina(X,Y):-parents(Z,Q),parents(Z,W),parents(Q,X),parents(W,Y),QW,WY,woman(X). vnuk(X,Y):-grandmother(Y,X),man(X). vnuchka(X,Y):-grandmother(Y,X),woman(X). goal clearwindow,vnuk(X,Y),write(X," vnuk ",Y),nl,fail. Результати роботи програми виввести у різні вікна передбачивши довільне переключення між вікнами (3 - 4 вікна) за допомогою предиката repeat domains num=integer source=integer* str=integer* predicates main menu laptop(string,string,integer) repeat choice(num) clauses laptop("Acer","EMACHINES D620",280). laptop("ASUS","Eee PC 900",253). laptop("Acer","Aspire One A110-Aw",149). laptop("MSI","Wind U100",139). laptop("HP","HP 530",137). laptop("ASUS"," M50Vm",125). laptop("ASUS","Eee PC 701",106). laptop("HP","Compaq 6730s",102). laptop("Acer","EME510-1A1G12Mi",99). laptop("HP","HP 550",99). laptop("ASUS","M50Vn",95). laptop("HP","Mini 2140",94). laptop("Dell","Dell 500",93). laptop("Acer","Aspire One A150-Bk",83). laptop("ASUS","Eee PC 1000",79). laptop("Acer","Aspire AS6935G",77). laptop("Acer","Aspire One A110-Ab",76). laptop("Lenovo/IBM","IDEAPAD S10",74). laptop("Fujitsu-Siemens"," Amilo MINI UI 3520",72). laptop("Acer","Aspire AS6930G",70). repeat. repeat:-repeat. main:-repeat,makewindow(1,7,7," BD laptops ",0,0,25,80), clearwindow,menu,nl, write("1 BD laptops; 2 BD HP; 3 BD Acer; 4 BD ASUS; 0 Exit"), readint(CH),choice(CH),!. menu:-laptop(A,B,C),write(A," ",B," ",C," "),nl,fail. menu:-!. choice(1):-clearwindow, makewindow(2,7,7,"1 Vikno",5,0,5,80), write(" BD HP: "), findall(X,laptop("HP",_,X),Sp1), write(Sp1),readchar(_), makewindow(3,7,7,"2 Vikno",10,0,5,80), write(" BD Acer: "), findall(X,laptop(_,_,X),Sp2), write(Sp2),readchar(_), makewindow(4,7,7,"3 Vikno",15,0,5,80), write(" BD ASUS: "), findall(X,laptop("ASUS",_,X),Sp3), write(Sp3),readchar(_),main. choice(2):-clearwindow,shiftwindow(2),readchar(_),main. choice(3):-clearwindow,shiftwindow(3),readchar(_),main. choice(4):-clearwindow,shiftwindow(4),readchar(_),main. choice(0):-!. goal main. · Сортування списку domains num=integer source=integer* str=integer* predicates main menu insert(num,source,source) list(source) find_it(num,source) laptop(string,string,integer) append(str,str,str) compl(num,source,source,source) sort(source,source) sravn(num,num) repeat choice(num) clauses laptop("Acer","EMACHINES D620",280). laptop("ASUS","Eee PC 900",253). laptop("Acer","Aspire One A110-Aw",149). laptop("MSI","Wind U100",139). laptop("HP","HP 530",137). laptop("ASUS"," M50Vm",125). laptop("ASUS","Eee PC 701",106). laptop("HP&qu