Оқулық «Федералдық білім беруді дамыту институты»


• asserta(fact) — фактіні бар фактінің алдына қосу; •



Pdf көрінісі
бет93/97
Дата22.09.2022
өлшемі4.15 Mb.
#461154
түріОқулық
1   ...   89   90   91   92   93   94   95   96   97
44 Мезенцев Автоматтандырылған ақпараттық жүйелер. Оқулық


asserta(fact) — фактіні бар фактінің алдына қосу;

asserta(fact,name) — фактіні бар фактінің алдына
қосу; 

assertz(fact) —
фактіні соңғыдан кейін қосу; 

assertz(fact,name) — фактіні соңғыдан кейін қосу;


165 

retract(fact) —
фактіні үлгі бойынша жою; 

retract(fact,name) — фактіні үлгі бойынша жою;

retractall(fact) — барлық фактілерді үлгі бойынша
жою;

retractall(fact,name)
— барлық фактілерді үлгі 
бойынша жою.
Фактілердің динамикалық деректер қорымен жұмыс істеген кезде
фактілерді жою белгілі бір үлгі бойынша орындалады, үлгіде қажет 
емес деректер арнайы «_»символымен белгіленеді. 
Мысалы, оперативтік жадта қызметкерлер жəне бөлімдер туралы 
деректерді орналастыру қажет, олармен жұмыс істеу үшін предикаттар 
бөлінген: 
dbotdel(Бөлімнің 
_Коды,Атауы, 
Басшының_Коды 

dbsotrudniki(Қызметкердің _Коды ,Тегі, Бөлімнің 
_Коды) 
фактілермен жұмыс істеу үшін мынадай əрекеттерді бағдарламалау 
қажет: 

жаңа бөлімді қосу;

қызметкерді тегі бойынша жою;

қызметкерді бөлімнің коды бойынша жою;

қызметкерлерді қарап шығу;

бөлімдерді қарап шығу.
Бағдарлама :
facts%аталмаған қор 
dbotdel(integer 
КодОтд, 
String 
Атауы,integer 
КодРук) facts-fsotrudniki%аталған қор 
dbsotrudniki(integer ҚызмКод, String Фам,integer 
БөлКод) predicates 
otdel(integer,string,integer)%бөлімдер 
sotrudniki(integer,string,integer)% қызметкерлер 
process(integer)%мәзірді өңдеу 
assertdbotdely% фактілерді инициалдау — бөлімдер 
assertdbsotr% 
фактілерді 
инициалдау 
— 
қызметкерлер 
repeat% циклдеу 
menu%мәзір 
clauses 
%циклдеу 
repeat. 
repeat:-repeat. 
%Бастапқы 
деректер 
otdel(1,"Бухгалтерия",10). 
otdel(2,"Өткізу",20). 
sotrudniki(100,"ИвановА.И.",1). 
sotrudniki(200,"КотовО.К.",1). 
sotrudniki(300,"КимИ.К.",1). 


166 
sotrudniki(400,"ЗвереваО.С.",2). 
sotrudniki(500,"ХватоваМ.И.",2). 
%Фактілерді қалыптастыру 
assertdbotdely:- 
otdel(KOtd,N,KRuk), 
assertz(dbotdel(KOtd,N,KRuk)), 
fail. 
assertdbotdely:-!. 
assertdbsotr:- 
sotrudniki(KSotr,N,KOtd), 
assertz(dbsotrudniki(KSotr,N,KOtd), 
fsotrudniki),fail. 
assertdbsotr:-!. 
%мәзірді шығару 
menu:- 
repeat, 
write(
,,
Кодты 
енгізіңіз\п1-Бөлімді 
қосу"), 
write("\n2-Қызметкерлерді 
жою"), 
write("\n3-Қызметкерлерді 
жою"), 
write("\n4- 
Қ
Ы З М Е Т К Е Р Л Е Р
\
П
5- 
Бөлімдер"), 
write("\n6 
-
Exit\n
>
"),
readint(Exec),process(Exec),Exec=6,n
l,!. 
%Мәзірдің 
пәрмендерін 
өңдеу 
process(l):- 
write("Код="),readint(K),nl, 
write("Атауы="),readln(N),nl, 
write("БасшКод 
="),readint(KR), 
assertz(dbotdel(K,N,KR)). 
process(2):- 
write("Тегі="),readln(N), 
retract(dbsotrudniki(_,N,_),fsotrudniki) 
process(3):- 
write("Бөлім кодын енгізіңіз="), 
readint(KOtd),retractall(dbsotrudniki(_,,KOtd), 
fsotrudniki). 
process(4):- 
dbsotrudniki(KSotr,N,KOtd), 
write(KSotr,"\t",N,"\t",KOtd), 
nl,fail. 
process(5):- 
dbotdel(KOtd,N,KRuk),write(KOtd,"\t",N," \t",KRuk), 
nl,fail. 
process(6):- 


167 
write("\nExit "). 
goal 
%нысаналы мақсат 
assertdbotdely,assertdbsotr,menu. 


168 


Достарыңызбен бөлісу:
1   ...   89   90   91   92   93   94   95   96   97




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет