+
|
-
|
-
|
Қарабасов
|
-
|
+
|
-
|
Сарыбасов
|
-
|
-
|
+
|
Кестеде сәйкес әр фамилия мен түстің қиылысқан жеріне «-» белгісін қоямыз. Қарабасовтың шашы қара болмағандықтан, оныкі тек ақ болады. Сәйкесінше Қарабасов пен ақ шаштың қиылысқан жеріне «+» белгісі қойылады. Қалған фамилиялар мен шаш түстері келмегендіктен оларға да «+» қойылады.
Пролог тілінде программа құрылымы келесі түрде болады: алдымен берілгендер саналады – фамилиялар мен шаш түстері. Содан кейін осы екі жиынды байланыстыратын ережелер жазылады.
/* Фамилиялар деректер базасы */
Фамилия (Ақбасов)
Фамилия (Қарабасов)
Фамилия (Сарыбасов)
/* Шаш түстері деректер базасы */
Шаш түсі (сары)
Шаш түсі (қара)
Шаш түсі (ақ)
/* Деректер базалары арасында өзара-бірмәнді сәйкестік орнатамыз, Х – фамилия Д.Б элемент, У – шаш түсі Д.Б. элементі */
/* Ақбасов қара да ақ та емес */
Сәйкестік (Х,У): - фамилия (Х), шаш түсі (У)=Ақбасов,
емес (у =қара) , емес (у)
/* Ақбасов пен Қарабасовтың шаштарының түсі сәйкес келмейді*/
Сәйкестік (х,у):- фамилия (х) , шаш – түсі (у), х:= Қарабасов,
Емес (у =қара), емес (сәйкестік(Ақбасов(у))).
/* Үшеуінің түстері әртүрлі*/
сәйкестік (х,у):=фамилия(х), шаш түсі (у), х= Сарыбасов.
емес (у= сәйкестік (Қарабасов(у)).
Алынған деректер базасына әртүрлі сұраныстармен қатынасуға болады. Мысалы :
? – сәйкестік (А,В). Бұл сұраққа әр адамның фамилия мен шаш түсін қамтитын жауаптардың барлық нұсқалары алынады.
Логикалық есеп күрделенеді, егерде онда екі емес одан да көп жиындар болса. Сонымен қатар сәйкестілік өзара бірмәндә болмаса да есеп күрделенеді.
Достарыңызбен бөлісу: |