Виконуємо складну роботу.
Контрольні, курсові, дипломні.
Гарантія.
8(093) 689-90-50
8(044) 499-21-29





Назва: Мова логічного програмування "Пролог"
Тип: Реферати
Мова: Українська
Розмiр: 32,59 KB
Скачувань: 46


Скачати реферат українською    

1 2 3 4 5 6 7 8 9

Частина тексту, яку варто цілком написати й налагодити, може мати різну довжину. Вона зростає в міру того, як програміст здобуває досвід. Досвідчений програміст, що пише на Пролозі, може відразу написати програму, текст якої займає кілька сторінок. При цьому він знає, що після запису тексту залишилося виконати лише досить просте й прозаїчне налагодження. Для менш досвідченого програміста може виявитися складним стежити за функціональністю й взаємодією одночасно великої кількості процедур.

Приклади

Приклад1

/*

База даних містить факти: людина(ім’я,вік). Програма має внутрішню мету, що заносить факти СБД в ДБД за допомогою методу ОПН, друкує отриману ДБД на екран, а потім знищує з неї всіх людей, вік яких старше 30 років і друкує частину, що залишилась в ДБД, додає нову інформацію в ДБД, друкує результуючу ДБД і зберігає її в файл "dbd.dat".

*/

domains

name = symbol

age = integer

database

dpeople(name,age)

predicates

people(name,age)

assert_db

create_db

retract_db

write_db

end

goal

makewindow(1,5,5,"DATABASE",0,0,25,80), clearwindow,

create_db, nl, write("1. Створена ДБД"),

nl, write_db, write(" Press any key"), readchar(_),nl,

nl, write("2. Знищується інформація про людей старше 30 років"),

retract_db, nl, write(" Залишок ДБД"), nl,

write_db, write(" Press any key"), readchar(_),nl,

nl, assert_db, write(" Результуюча ДБД"),nl,

write_db, write(" Press any key"), readchar(_), nl,

nl, write("4. Зберігаємо ДБД в файл"),nl, save("dbd.dat"),

write("Press any key"), readchar(_), end, removewindow.

clauses

people("Вася",32).

people("Коля",28).

people("Свєта",40).

create_db:- people(X,Y), assertz(dpeople(X,Y)), fail.

create_db.

retract_db:- dpeople(X,Y), Y>30, retract(dpeople(X,Y)), fail.

retract_db.

write_db:- dpeople(X,Y), write(X," ",Y), nl, fail.

write_db.

assert_db:- write("3. Додаємо інформацію"),nl,

write("Введіть ім’я "), readln(X),

write("Введіть вік "), readint(Y),

assertz(dpeople(X,Y)).

end:- dpeople(_,_),retractall(dpeople(_,_)),fail.

end.

Приклад 2

/* Навчальна програма (підрахунок населення у всіх містах бази даних з використанням комірки динамічної пам’яті (лічильника) */

DOMAINS

name=symbol

num=integer

DATABASE

ds(num)

PREDICATES

town(num,name,num)

rw(num,name,name,num)

proc(num)

make_win

menu

repeat

count(num,num)

dist(name,name,num)

dcount

GOAL

make_win, menu.

CLAUSES

town(1,"Донецьк",1250).

town(2,"Moсква",8000).

town(3,"Київ",5500).

town(4,"Харків",1300).

town(5,"ХХХ",10).

rw(1,"Донецьк","Харків",400).

rw(2,"Харків","Москва",650).

rw(3,"Донецьк","Київ",600).

rw(4,"Київ","Москва",700).

repeat.

repeat:-repeat.

make_win:- makewindow(1,7,7,"MENU",0,0,25,80), clearwindow,

makewindow(2,3,5,"PROC_1",10,10,14,60), clearwindow,

makewindow(3,6,6,"PROC_2",10,10,14,60), clearwindow,

makewindow(4,4,4,"PROC_3",10,10,14,60),clearwindow,

makewindow(5,5,5,"PROC_4",10,10,14,60),clearwindow.

menu:- repeat, shiftwindow(1), nl,nl, write("1 - process 1"),nl,

write("2 - process 2"),nl, write("3 - process 3"),nl,

write("4 - process 4"),nl, write("5 - EXIT"),nl,nl,

write("Enter your choice "),

readint(C), clearwindow, proc(C), C=5,

removewindow(1,1) , removewindow(2,1), removewindow(3,1),

removewindow(4,1), removewindow(5,1) .

proc(1):- shiftwindow(2), nl, write("Список міст"),

nl,nl, town(_,X,Y), write(X," ",Y),

nl, fail.

proc(1):- nl, write("Press any key"), readchar(_),

clearwindow.

proc(2):- shiftwindow(3), nl, write("Список міст з населенням більше даного"),

nl,nl, write("Input population "),

readint(P),nl,

town(_,X,Y), Y>P, write(X," ",Y), nl, fail.

proc(2):- nl, write("Press any key"), readchar(_),

clearwindow.

proc(3):- shiftwindow(4), nl,

write("Distance between 2 towns"),nl,

write("Input town A "),readln(A),nl,

write("Input town B "), readln(B),

dist(A,B,T),nl,

write("Dist. B/W 2 Cities - ",A," and ",B," is ",T),nl,

write("Press any key"), readchar(_),

clearwindow.

proc(5):- nl,nl,nl, write(" Bye! Press any key"),

readchar(_).

proc(4):- shiftwindow(5), nl, asserta(ds(0)),

dcount, ds(X),

write("Population in all towns is ",X),nl,nl,

write("Press any key"), readchar(_),

retractall(ds(_)), clearwindow.

count(N,Sum):- town(N,_,Y), SumNew=Sum+Y, Nnew=N+1,

count(Nnew,SumNew),!.

count(N,Sum):-nl,nl, N1=N-1,

write("Sum. Popul. in ", N1, " towns is ", Sum),

nl.

dcount:- town(_,_,Y), ds(X), Z=X+Y, retractall(ds(_)),

asserta(ds(Z)), fail.

dcount.

dist(A,B,T):- rw(_,A,B,T),!.

dist(A,B,T):- rw(_,B,A,T),!.

dist(A,B,T):- rw(_,A,C,T1), dist(C,B,T2), T=T1+T2,!.

Висновки


Скачати україномовний реферат    


1 2 3 4 5 6 7 8 9


Новости загрузка новостей...


Украинская Баннерная Сеть