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



жүктеу 0,86 Mb.
Pdf просмотр
бет17/28
Дата01.01.2018
өлшемі0,86 Mb.
#6244
1   ...   13   14   15   16   17   18   19   20   ...   28
    Навигация по данной странице:
  • Visual Prolog

 

39

female(tammy). 



parent(bill,joe). 

parent(sue,joe). 

parent(joe,tammy). 

 

Аноним  айнымалысы  кез  келген  басқа  өзгерiстердiң  орынында 



қолданылады  жəне оған  ешқандай мағына берілмейді. 

Мысалы,  бiзге  келесi  сұрауда  қандай  адамдар  ата-ана  бола 

алатындығын  бiлу  керек  бірақ,  сiзге  олардың  балалары  қызықты  емес. 

Прологтағы  əрбір  сұраныста  сізге  сызылған  символды  падаланған  кезде 

айнымалының  мағынасы туралы  ақпараттың қажеті жоқ. 

goal 


parent(Parent, _). 

Мұндай  сұранысты  алғаннан    кейін  пролог  былай  деп  жауап  береді: 

(Test Goal) 

Parent=bill Parent=sue Parent=joe 3 Solutions 

Бұл жағдайда пролог  үш ата-ананы тауып бередi, бiрақ ол parent -тың 

ұсынысында екiншi дəлелмен сабақтас мəндердi бермейдi. 

Анонимді  айнымалыларды  айғақтар  ретінде  пайдалануға  болады. 

Прологтiң келесi айғақтары: 

owns(_, shoes). eats (_ ). 

Табиғи тiлде  бекiтулердi өрнек үшiн қолдана алды: 

Əрбір  адамда  аяқ  киім  бар.  (Everyone  owns  shoes  )  Əрбiр  адам 

тамақтана алады. (Everyone eats ) 

Аноним айнымалысы кез келген мəлiметтерге қарама-қарсы келеді. 

 

Құрама мақсаттарконъюнкция жəне дизъюнкция 

Көріп отырғаныңыздай, құралған мақсаттарды  іздеудің нəтижесі үшін 

қолдануға  болады,  екі  ішкі  мақсат  А  жəне  В  ақиқат  (конъюнкция  ),  ішкі 

мақсат үтір арқылы ажыратамыз. Егер іздеудің нəтижесінде ақиқат А жəне В 

ішкі  мақсат  (дизъюнкция)  болса  бұл  ішкі  мақсат  нүктелі  үтір  арқылы 

ажыратамыз. 

Төменде программаның мысалы көрсетілген:  

 

predicates 

car(symbol,long,integer,symbol,long) 

truck(symbol,long,integer,symbol,long) 

vehicle(symbol,long,integer,symbol,long) 

clauses 

car(Chrysler,130000,3,red,12000). 

car(ford,90000,4,gray,25000). 

car(datsun,8000,1,red,30000). 

truck(ford,80000, 6,blue,8000). 

truck(datsun,50000,5,orange, 20000) . 

truck(toyota,25000,2,black,25000). 



 

40

vehicle(Make,Odometer,Age,Color,Price):-сar(Make,Odometer,Age,Color,Price); 



truck(Make,Odometer,Age,Color,Price). 

 

TestGoal-дың  жобасына  осы  программаны  жүктеңiз,  содан  соң  мақсат 



қойыңыз: 

Goal 


car(Make, Odometer, Years_on_road, Body, 25000). 

 

Берілген  мақсат  айтылған  ұсыныстардан  бағасы  $25  000  тұратын  



машина (саr ) тұратын машина табуға тырысады. Пролог былай жауап береді: 

Make=ford, Odometer=90000,  

Years_on_road=4,  

Body=gray  

1 Solution. 

Дегенмен берілген   мақсат    біршама  жасанды.  Жасанды  болғандықтан 

тез арада мынандай типті сұрақ қойылады: 

Тізімде $25000-дан кем тұратын машина бар ма?( Is there a car listed that costs 

less than $25000) 

Мұндай    мақсатты  шешу  үшін  сіз  Visual  Prolog-та  келесi  құралған 

мақсатты бере аласыз: 

Сar (Make, Odometer, Years_on_road, Body, Cost) %  ішкі мақсат А жəне Cost 



< 25000.   %  ішкі мақсат В. 

Бұл  конъюнкция  болып  табылады.  Құралған    мақсатты  шешу  үшін 

пролог  ішкі  мақсаттарды  кезек  бойынша  рет-ретімен  шешуге  тырысады.  

Бастапқыда ол мынаны  шешуге талаптанады: 

Сar (Make, Odometer, Years_on_road, Body, Cost), содан соң 

Cost < 25000. 

Cost  айнымалысы  екі  подцельдерде  ұқсас  мəндерге  ие.  Енді  осының 

барлығын Test Goalмен істеп көріңіздер. 

 

Ескерту


 

Cost  <  25  000  ішкі  мақсаты  Visual  Prolog  жүйесінде  құралған  «кем» 

қатынасына  сəкес  келеді.  Кем  қатынасы  басқа  да  екі  сандық  объектілерге 

пайдаланылатын  қатынастардан  ешқандай  айымашылығы  жоқ,  бірақ  та,  ол 

қатынастымына  символмен  (<)  жəне  де  екі  объектінің  арасында  қатыстыра 

отырып жазған дұрыс. 

Қарастырсақ  келесі    өрнек  ақиқат  болып  табыла  ма?  Табиғи  тілде  ол 

былай деп сипатталады: Тiзiмде $25 000-дан кем тұратын автомобиль немесе 

$20 000-дан кем тұратын  жүк машинасы бар ма? 

Мына  тапсырмада  келесі құралған мақсаттарда пролог тиісті нəтижені 

іздестіруді қайта орындайды: 

Сar (Make, Odometer, Years_on_road, Body, Cost ), Cost<25000%  ішкі мақсат 

А немесе 

truck  (Make,  Odometer,  Years_pn_road,  Body,  Cost),  20000

мақсат В. 



 

41

Құралған  мақсаттағы  бұл  тип  дизъюнкция  болып  табылады.  Берілген 



мақсат  екі  альтернативті  ішкі  мақсаттарды,  бір  ережеге  екі  ұсыныстың 

біріктірілгеніне    сəйкес  келуі  мүмкін  келеді    деп  есептейді.  Пролог  екi  ішкі 

мақсаттарды да қанағаттандыратын нəтижелердің барлығын іздейді. 

Рұхсат  етілген  құралған  мақсатта  пролог  келесі  ішкі  мақсаттардан 

құралған  бірінші ішкі мақсаты іздеуге тырысады. ("автомобильді іздеу"): 

car(Make, Odometer, Years_on_road, Body, Cost) жəне 

Cost < 25000. 

Егер 


автомобиль 

табылса 


мақсат-ақиқат,егер 

табылмаса(жүк 

машинасын  іздеу)    –  пролог  келесі  ішкі  мақсатан  тұратын  екінші  құрама 

мақсаттарды шешуге тырысады: 

truck(Make, Odometer, Years_on_road, Body, Cost), 

жəне 


Cost < 20000. 

Visual Prolog программасы 

Visual Prolog  синтаксисі қасиеттер жəне өзара байланыстарды анықтау 

үшін    жасалған.  Көбінесе  (айғақтар  жəне  ереже)  ұсыныс,  предикаттар, 

айнымалы жəне мақсаттарды қарастардыңыз. 

Прологтың    басқа  болжамдардан    айырмашылықтары,  Visual  Prolog  -  

бақылаушы  типтердің  компиляторы:  əрбiр  предикат  үшiн  қолданылатын  

объекттердiң 

типін 


хабарлайды. 

Сонымен 


бiрге, 

Visual 


Prolog 

бағдарламаларына 

бұл 

типтерді 



орындайтын 

жылдамдығы 

машина 

кодтарына  сəйкес  келуге  мүкіндік  береді,ал    басқа  жағдайда  -  Pascalдың 



тiлдерiндегi ұқсас бағдарламалардың жылдамдығынан асады. 

Енді  Visual Prolog программасының негізгі төрт бөлімін талқылаймыз 

–  жарияланатын  жəне  сипатталатын    предикаттар,сонымен  қатар  аргумент 

типтері  ,берілген    жəне  анықталған  ережелер  программаның  мақсаты  болып 

табылады.  Бұдан  əрi  ережелердiң  синтаксисiн    жəне  хабарламаларды  

толығырақ  қарап  шығамыз  .  Соңында  ,программаның    басқа  да  бөлiмдерiн 

қысқаша  қорытындылап  сипаттаймыз:  деректер  қоры,  тұрақтылар,  əр  түрлi 

глобалдi бөлiмдер жəне компилятордың нұсқауы. 

Visual Prolog – програмасының негізгі бөлімдері: 

Prolog  Visual  тiлiндегi  программа  төрт  негiзгiзгі  программалық  реттен 

тұрады. Оларға мыналар жатады: 

 



clauses (ұсыныстар) бөлiмі; 

 



predicates (предикаттар) бөлiмі; 

 



domains (домендер) бөлiмі; 

 



goal (мақсаттар) бөлiмі. 

 

Clauses  бөлiмі-  Visual  Prolog  программасының    негізгі  бөлігі;  нақ  осы 



бөлімде  айғақтар  жəне  ережелер  жазылады,  Visual  Prolog  операциясы 

программаның мақсатын шешуге тырысады. 

Predicates  бөлiмі  бұл  (Visual  Prologта    кiрiстiрiлген  предикаттарды 

жарияламауға  да  болады)    предикаттарды  жəне  домендердің  (түрлер) 

аргументтері жарияланады. 



жүктеу 0,86 Mb.

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




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

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