Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- domains
- name, fone = symbol
- facts
- p(name, fone)
- predicates
- nondeterm repeat()
- nondeterm prnP()
- nondeterm prnP2()
- nondeterm addIt(symbol,symbol)
- nondeterm removeIt(symbol,symbol)
- nondeterm removeIt(symbol)
- nondeterm removeIt()
- nondeterm editIt(symbol,symbol,symbol,symbol)
- nondeterm editIt(symbol,symbol)
- nondeterm findIt(symbol,symbol)
- nondeterm findByName(symbol)
- nondeterm findByNumber(symbol)
- nondeterm menu()
- nondeterm do(integer)
- nondeterm punkt(integer)
- nondeterm enterAdd(symbol,symbol)
- nondeterm enterEdit(symbol,symbol)
- nondeterm enterEdit(symbol,symbol,symbol,symbol)
- nondeterm editpp(integer)
- nondeterm enterDelete(symbol,symbol)
- nondeterm enterDelete(symbol)
- nondeterm deletepp(integer)
- nondeterm findpp(integer)
- clauses
- repeat.
- repeat:-repeat.
- menu:-
- repeat,
- nl,nl,write(" МЕНЮ"),nl,
- write("1. Добавление"),nl,
- write("2. Изменение"),nl,
- write("3. Удаление"),nl,
- write("4. Поиск"),nl,
- write("5. Вывод"),nl,
- write("6. ВЫХОД"),nl,nl,
- write("Введите номер пункта меню: "),
- readint(Х),
- do(Х).
- do(6):-!.
- do(Х):-
- punkt(Х),
- fail.
- punkt(1) :-
- enterAdd(X,Y),
- addIt(X,Y),nl,!.
- punkt(2) :-
- write("Выберете режим изменения"),nl,
- write("1. Полный"),nl,
- write("2. По имени"),nl,
- write("Введите номер пункта меню: "),
- readint(D),
- editpp(D),!.
- punkt(3) :-
- write("Выберете режим удаления"),nl,
- write("1. УДАЛИТЬ ВСЁ"),nl,
- write("2. По имени"),nl,
- write("3. Полный"),nl,
- write("Введите номер пункта меню: "),
- readint(D),
- deletepp(D),!.
- punkt(4):-
- write("Выберете режим поиска:"),nl,
- write("1. По номеру"),nl,
- write("2. По имени"),nl,
- write("Введите номер пункта меню: "),
- readint(D),
- findpp(D),!.
- punkt(5):- prnP2(),!.
- punkt(6):- !.
- punkt(_) :- write("Такого пункта НЕТ"), nl, !.
- enterAdd(X,Y):-
- write("\nВведите имя: "),
- readln(X),
- write("\nВведите номер: "),
- readln(Y).
- editpp(1):-enterEdit(X,Y,X1,Y1),editIt(X,Y,X1,Y1),!.
- editpp(_):-enterEdit(X,Y),editIt(X,Y),!.
- enterEdit(X,Y):-
- write("\nВведите имя изменяемой записи: "),
- readln(X),
- write("\nВведите новый номер: "),
- readln(Y).
- enterEdit(X,Y,XNew,YNew):-
- write("\nВведите имя изменяемой записи: "),
- readln(X),
- write("\nВведите номер изменяемой записи: "),
- readln(Y),
- nl,
- write("\nВведите новое имя записи: "),
- readln(XNew),
- write("\nВведите новый номер записи: "),
- readln(YNew).
- deletepp(1):- removeIt(),!.
- deletepp(2):- enterDelete(X),removeIt(X),!.
- deletepp(_):- enterDelete(X,Y),removeIt(X,Y),!.
- enterDelete(X,Y):-
- write("\nВведите имя удаляемой записи: "),
- readln(X),
- write("\nВведите номер удаляемой записи: "),
- readln(Y),nl.
- enterDelete(X):-
- write("\nВведите имя удаляемой записи: "),
- readln(X), nl.
- findpp(1):-
- write("\nВведите номер для поиска записи: "),
- readln(X), nl,
- findByNumber(X),!.
- findpp(_):-
- write("\nВведите имя для поиска записи: "),
- readln(X), nl,
- findByName(X),!.
- %punkt(3) :- %Ветвление
- % enterAdd(X,Y).
- prnP2 :-
- write(" Записная книжка:"), nl,
- prnP,
- %write(" ВСЕ!"),
- nl, nl.
- prnP :-
- p(X,Y),
- write(X, " - ", Y),
- nl,
- fail.
- prnP.
- addIt(X,Y):- assert(p(X,Y)).
- removeIt(X,Y):- retract(p(X,Y)).
- removeIt(X):- retract(p(X,_)),!.
- removeIt():- retractall(p(_,_)).
- editIt(X,Y,NewX,NewY):-
- removeIt(X,Y),
- addIt(NewX,NewY).
- editIt(X,NewY):-
- removeIt(X,_),
- addIt(X,NewY).
- findIt(X,F):-
- p(X,F),
- write(X, " - ", F),
- nl.
- findByName(X):-findIt(X,_),fail.
- findByNumber(X):-findIt(_,X),fail.
- goal
- consult("C:\\stud\\409\\6\\fb1.txt"),
- %prnP2,
- %findByName("Иванов"),
- %punkt(1),
- menu,
- %editIt("Luk","8-800-555-35-35"),
- %prnP2,
- save("C:\\stud\\409\\6\\fb1.txt").
Advertisement
Add Comment
Please, Sign In to add comment