Республикасы білім жəне ғылым министрлігі



жүктеу 0,86 Mb.
Pdf просмотр
бет16/28
Дата01.01.2018
өлшемі0,86 Mb.
#6244
1   ...   12   13   14   15   16   17   18   19   ...   28

 

36

Предикаттар 



Прологтағы    қатынас  предикат  деп  аталады.  Аргументтер  –  бұл  осы 

қатынастар  мен  байланыстырылатын  объекттер;    айғақта  likes(bill,  cindy) 

қатынас; likes- бұл предикат, ал bill жəне cindy –аргументтер.  

Əртүрлі  сандардық    аргументтерімен  берілген  бірнеше  предикат 

мысалдары: 

 

pred (integer, symbol) 



person (last, first, gender) 

run() 


birthday (firstName, lastName, date) 

 

Алдыңғы  мысалда  көрсетілгендей  предикаттарда  аргумент  болмауы 



мүмкін,  бірақ  ондай  предикаттардың  қолданылуы  шекеулі.  Mr.  Rosemont 

атын  анықтау  үшiн  person(rosemont,  male,  male)  сұрауларын    қолдануы 

мүмкiн.  Бiрақ  сұрауларда  run  аргументінің  дəлелдерiнсiз  не  iстейдi? 

Программада  run  ұсынысы  барма  анықтайық,жəне  егер  run  ереженің  басы 

болса, онда берілген ережені есептеуге болады.Кей жағдайларда бұл пайдалы 

болады.  Мысалы,  егер  сiз  əртүрлi  соған  сəйкес  жұмыс  iстейтiн  программа 

құрғыңыз келсе,онда бұл run -ның ұсынысында болады. 

Айнымалылар 

Қарапайым  сұрауда,кімнің  теннисті  жақсы  көретіндігін  табу  үшін 

айнымалылар қолданамыз. 

Мысалы: 

likes. (X, tennis) 

Бұл  сұрауда  Х  əрiпін  белгiсiз  адамды  табу  үшiн  айнымалы  ретінде 

қолданамыз.  Айнымалының  аты  Visual  Prolog  кейiн  (бас  немесе  кiшi) 

əрiптердiң  кез  келген  саны  тұра  алатын  (немесе  астын  сызу  символы)  

цифрлар  немесе  асты  сызулы  символдардан  басталуы    керек.  Дұрыс 

айнымалының аты төменде келтiрiлген: 

My_first_correct_variable_name Sales_10_ll_86 

келесi үш - терiсi: 

1stattempt 

second_attempt 

"Disaster " 

Атауларын  əртүрлi  регистрдiң  айнымалы  əрiптерімен  қолданған  

ыңғайлы: 

IncoraeAndExpenditureAccount 

Мағынасы түсiнiкті таңдау айнымалының атын оқу үшiн программаны 

өте ыңғайлы iстейдi. 

Мысалы: 


likes(Person, tennis) 

жақсы,оған қарағанда 

likes(Х,tennis). 



 

37

өйткенi  Person  х  қа  қарағанда  көбiрек  мағына  береді.  Мақсатты  ендi  сынап 



көрiңiз: 

GOAL likes (Person, tennis). 

Visual Prolog жауап бередi: 

Pers on=ellen Person=mark 

2 Solutions 

Өйткенi,  мақсат  екi  шешiм  ellen  жəне  markтiң  мəндерiмен  айнымалы 

Personдарды дəйектi түрде салыстыра ала алады, атап айтқанда. 

Айнымалылардың белгілеу 

Сiз  прологтың  меншіктеу  операторы  бола  алмайтындығын    байқай 

алдыңыз.  Бұл  прологтың    басқа  программалау  тiлдерiнен    маңызды 

айырмашылықтары.  Прологта  айнымалысы,  айғақтар  немесе  ережелердегi 

тұрақтылармен салыстыруда аты-жөнiн көрсетедi. 

Белгілеуге  дейiн  айнымалы  еркiн;  иемденулерден  кейiн  оның  мəнiмен 

байланыста болады. Егер  сұраулар бойынша айнымалысы шешiм қабылдаса, 

онда  сабақтас  болып  қалады,  содан  соң  ол  прологты  босатады  жəне  басқа 

шешімді iздейдi. 

Мəлiметтi  айнымалың  мəнiн  берiп  сақтауға  болмайды.  Мəлiметтiң 

қоймасы емес, айнымалы үдерістің бiр бөлiгі ретінде шешiмді iздестiру үшін 

қолданылады. 

Ch02e03.pro  -нiң  программасы  қарап  шыға  алады,  сонымен  қатар 

айнымалы өз мəндерiн алады. 

 

predicates 



likes(symbol, symbol) 

clauses 


likes(ellen, reading). 

likes(John, computers). 

likes(John, badminton). 

likes(leonard, badminton). 

likes(eric, swimming). 

likes(eric, reading). 

 

Сұрауларды  қарап  шығамыз:  жүзу  мен  оқуды  жақсы  көретiн  адам  бар 



ма? 

likes(Person, reading), likes(Person, swimming). 

 

Пролог      программадағы    айғақтарды  басынан  соңына  дейін  iздестiру 



арқылы  сұраудың екі бөлiгiн де шеше бастады. Сұраудың бірінші бөлімі: 

likes(Person, reading) 

Person  еркiн  айнымалы;  пролог  шешiмдi  табар  алдында  оның  мəнi 

белгiсiз.  Басқа  жағынан,  екiншi  аргумент,  reading  атымен  белгілі.  Пролог 

бiрiншi 

сұраулардың 

бiр 

бөлiгiне 



сəйкес 

келетiн 


айғақ 

iздейдi. 

Программадағы бiрiншi айғақ 

likes (ellen, reading) 




 

38

Демек  пролог 



еркін 

Person 


айнымалысын 

ellenның 

мəнiмен 

байланыстырады,  (айғақтағы  reading  сұраулардағы  readingге  сəйкес  келедi) 

бiрiншi  сұраулардың  бiр  бөлiгiн  қанағаттандырады  айғақты  тиiстi  мəнге 

ұластырады.  Дəл  сол  уақытта  пролог  көрсеткіші  айғақтардың  тізіміне 

бағытталады,  ол  іздеу  процедурасының  қаншалықты  алға  басқандығын 

көрсетеді. 

Бұдан  əрi,  (жузу  мен  оқуды  ұнататын  адамға  іздеу  салу)  сұрауларды 

толық шешу үшiн екiншi сұраудың бiр бөлiгi шешілуi керек. Person ellen мен 

байланысты болғандықтан,проглог айғақты іздеуі тиіс. 

likes (ellen, swimming) 

Пролог бұл айғақты программаның басынан іздейді,бірақ сəйкестік жоқ 

(өйткені  программада  мұндай  айғақ  жоқ).  Егер  Person  ellen  мəнi  болса 

сұраудың екінші бөлімі жалған болады. 

Ендi 


пролог 

айнымалы 

Personдарды 

босатады 

жəне 

бiрiншi 


сұраулардың бiр бөлiгiнiң басқа шешiмiн табуға талаптанады. Басқа айғақты 

іздестіру  бірінші  бөлімнің  сұранысын  қанағаттандырады,  (белгіленген 

позицияға қайта оралу, қайта іздеу деп аталады) айғақтардың тiзiмiндегi нұсқ 

ағыштан басталады. 

Пролог  оқуды  жақсы  көретiн  жəне  likes(eric,  reading)  айғағын  табатын  

адамды  iздейдi.  Person  айнымалысы  қазір  eric  мəнiмен  байланысты,  жəне 

пролог  екінші  бөлімнің  сұранысы  бойынша  айғақтар  программасында  қайта 

iздеуді бастайды. 

likes(eric, swimming) 

Пролог  сəйкестендірілген  (программадағы  соңғы  ұсыныс)  жəне 

сұраныс толығымен қанағаттандырылады. 

Person=eric. 1 Solution. 



 

Анонимді айнымалы 

Анонимді  айнымалылар  бiздiң  программаларымызды  ретке  келтіруге 

мүмкіндік  береді.  Егер  сiзге  нақтылы  мəлiмет  керек  болса,  анонимді 

айнымалыларды  керек  емес  мəліметтерді  жою  үшін  пайдалануға  болады. 

Прологта  анонимді  айнымалыларастын  сызу  символы  арқылы  белгіленеді 

(_). 

Келесі  "отбасылық"  мысал  анонимді  айнымалыларды  пайдалану 



арқылы  іске  асады.  TestGoalға  ch02e04.pro  программасының    жобасын 

жүктеңiз. 



 

predicates 

male(symbol) 

female(symbol) 

parent(symbol, symbol) 

clauses 

male(bill). 

male(]oe). 

female(sue). 


жүктеу 0,86 Mb.

Достарыңызбен бөлісу:
1   ...   12   13   14   15   16   17   18   19   ...   28




©g.engime.org 2025
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау