Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод.указ1.ФЛП.каз.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
156 Кб
Скачать
☆

Зертханалық жұмыс №2 Турбо-Прологке бағдарламасының құрылымы. Статикалық мәліметтер қоры. Бағдарламаның орындалу түрі.

Жұмыстың мақсаты: Турбо-Пролог тіліндегі негізгі құрылыммен танысу. Турбо-Прологтың негізгі ұғымдары.

КІРІСПЕ

Турбо-Пролог бағдарламасында берілгендер нақты сипаттама факторларымен ережелер бойынша беріледі. Бағларламаның ішкі құрылымы қойылатын есептің мазмұнына байланысты мәліметтерді өңдейді.

НЕГІЗГІ БӨЛІМ

Турбо-Прологта жазылған кез келген бағдарлама негізгі бес бөлімнен құралады. Мұндағы басқы ұғымдар domains, database, predicates, goal, clauses жаңадан құрылатын бөліктің алғашқы шарттарын көрсетеді. Бірақта, кейбір программаларда бұл бөлімдер көрсетілмеуі мүмкін. Көптеген бағдарламаның кез келген бөлігіндегі операторлардың орындалуына анықтама беріп отырып /*/ символымен ерекшеленіп көрсетіліп отырылады.

Бағдарлама құру барысында негізгі келесі шарттарды ескеру қажет:

  • барлық қатынастар мен объектілердің аттары кші әріптермен жазылады;

  • бірінші предикат атымен жазылады. Содан кейін үтір арқылы объектілер дөңгелек жақша ішінде жазылады;

  • әрбір жазылған ақпараттар нүкте арқылы тоқталады.

Бағдарламаның орындалуы жүйе керекті операторлар мақсаты анықталған жағдайда жұмыс атқарады.

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

Турбо-Пролог сонымен қатар ішкі бағдарламалық қызметтерді анықтап, ұйымдастыру қана қоймай, пернетақтадан енгізілген және орындау әрекетіне дейінгі шешімдерді нақтылау. Осы әрекеттер толық қатесіз орындалған жағдайда Goal (мақсат) пайда болады. Турбо-Пролог мақсат, ережелерді, факторлармен сәйкестендіреді. Бұл мақсат – төмен және жоғары түсініктерін нақтылау үшін орындалады.

Мақсат дегеніміз – егер Турбо-Пролог True (ақиқат) немесе False (жалған) немесе No. Егер Турбо-Пролог айнымалылардан құралса, онда Турбо-Пролог олардың мәнін беріп, шешімін табады. Немесе мәтін енгізу терезесіне No solutions (жауабы жоқ) деген жауап береді.

Егер мақсат қосымша ұғымдардан құралатын болып және олар бір мақсатқа сәйкес келмесе, онда барлық бағдарлама жұмысы тоқтатылады. Ал, егер барлық бағдарлама, қосымша ұғымдармен сәйкес келсе бағдарламадан толық қанағаттанарлық жауап ала аламыз.

Жұмыстың орындалу тәртібі

Фактыдан құралатын бағдарламаны орындаңыз.

Фактылар негізінде бағдарламаны оң және сол жақ принципі бойынша орындаңыз, ішкі бағдарлама негізі likes бөлімінде бір объектіні екі қарым қатынаспен көрсетуіңізге болады. Ал предикат 2 символдық аргументті көрсете алады. Сондықтан likes (symbol, symbol) предикаттарын береді.

Олай болған жағдайда домен бөлімін ығыстырып, домен бөлігінде негізгі ұғымдармен олардың сипаттамаларын көрсете аламыз.

person, thing=symbol.

Бір есептің екі шешімін көрсете аламыз

1-вариант:

domains

person, thing=symbol

predicates

likes (person, thing) clauses

likes (tom, books).

likes (tom, car).

likes (tom, tennis).

likes (mary, books).

likes (mary, picture).

likes (mary, tom).

2-вариант:

predicates

likes (symbol, symbol)

clauses

likes (tom, books).

likes (tom, car).

likes (tom, tennis).

likes (tom, computer).

likes (mary, books).

likes (mary, picture).

likes (mary, tom).

Бағдарламаның орындалуын (Run) арқылы іске асырамыз, осы уақытта диалогтар терезесінен жүйе Goal шақыруын көрсетеді. Осы уақытта келесідей әрекеттердің орындалуын іске асырамыз:

Келесі сұрақтарды орындап Enter пернесі арқылы еңгіземіз:

  1. likes (tom, Х) /*Томға келесілер ұнайды*/

  2. likes (mary, Х)

  3. likes (Х,У) /*кімге не ұнайды*/

  4. likes (Х, car)

  5. likes (Х, books).

  6. likes (mary, tom)

  7. likes (tom, mary)

Жауаптар мен шешілу барысындағы әрекеттерді түсіндіріңіз, ол жауаптар саны бірнеше болуы мүмкін.

Егер жүйе Yes жауабын бермей No жауабын берген жағдайда қандай әрекеттерді қолданасыз?

Енді сіздің айналысатын сұрақтарды қарастырайық, оларға иә және жоқ жауаптарын беру арқылы әрекет етесіз. Негізгі фактыларды көрсетіп clauses орындаңыз, ал predicates бөлімінде жаңа предикаттардың жазылуын ұмытпаңыз.

Predicates бөліміне келесілерді еңгізіңіз:

Clever (symbol)

strong (symbol)

run

hobby (symbol, symbol)

Clauses бөліміне келесілерді еңгізіңіз:

likes (kat, X) :- likes (mary, X).

clever (X) :- likes (X, books), likes(X, picture).

strong (X) :- likes (X, tennis).

run :- write(“Ваше имя»? ”), nl, readln(N), nl,

write (N, “ , Томға да сізге де ұнайды”), nl,

readln(X), hobby(X, N).

hobby(X, N) :- X=”да”,

write (N, “ , сізге қозғалыс ұнайды ”), nl,

readln(A), nl,

A=”да”,

write(N, “, сіз теннисті ұнатасыз”).

hobby (“да”, N) :- nl, write(N, “, сіз автоны ұнатасыз”).

hobby (“нет”, N) :- write(N, “, сізге тыныштық ұнайды ”), nl,

readln(B),

B=”да”,

write(N, “, сіз кітап оқығанды ұнатасыз”);

nl, write(N, “ ,”).

Осы жолдарды енгізу барысында қандай өзгерістерді байқадыңыз, оларға ережелер беріңіз.

Бағдарламаның Goal бөлігіне ішкі сәйкестіктер жасаңыз, бұнда белгілі бір мақсаты келесі бір мақсатты көрсетуі тиіс. Бұл енгізілген мағлұматтар бірдей орындалғанда программаның толық жауабын аласыз.

goal

likes (tom, X),

write (“X=”, X).

Ішкі мақсатпен қосымша мақсаттың орындалуын түсіндіріңіз.

Мақсатты өзгерту:

goal

likes (X, Y),

write (“X=”, X, “Y=”, Y).

Әртүрлі объектілердің типтерін қолдану арқылы берілген нұсқа бойынша өз нұсқаңыздың орындалуын қамтамасыз етіңіз және оған статикалық мәліметтер қорын ұйымдастыра отырып программа құрыңыз. Мысалы study (name, subject, numb, data).

Бұл предикат символдық және сандық аргументтерден құралады. Бағдарлама негізінде мүмкін болатын ішкі әрекеттерді көрсететін бағдарлама құрыңыз. Олар келесідей болуы қажет:

  • ешбір айнымалыларсыз

  • бір айнымалысы бар

  • ұқсас айнымалылары бар

Мысалы программаға бірнеше ережелерді енгізіңіз:

Біледі (Х) := игереді (Х, матем., ,5).

Программист (Х) := игереді (Х, сп, Z, Y), Z>3, Y>=5.

Қойылымның ережемен қалай орындалатынын түсіндіріңіз. Программаны орындау барысында жазылатын ой ұғымы бұрын орындалуы тиіс.

Тапсырмалар нұсқасы:

  1. орналасқан (мемлекет, астана, аудан)

  2. қажеттілік (киім, сан, бағасы, негізі)

  3. кітапхана (кітаптар, автор, бағасы, шығарылған уақыт)

  4. өмір сүру (аты жөні, пәтер номері, үйдің номері)

  5. студент (тегі, пәні, оқу үлгерімі, параметрлері)

  6. автомобиль (типі, түсі, бағасы, сипаттамасы)

  7. компьютер (тип, фирма, процессор, бағасы)

  8. видео (аталуы, актерлер, жанры, шығарылған уақыты, прокат)

  9. аудио (әнші, шығарылған уақыты, мерзімі, прокат, тираж саны)

  10. өнім (аталуы, шығарушы, сақтау мерзімі, бағасы)

  11. магазин (товар, мемлекеті, көлемі, саны)

Бақылау сұрақтары:

  1. Турбо-Пролог құрылымы. Әрбір бөлімдердің сипаттамасы

  2. Турбо-Пролог домендерінің берілуі

  3. Ұғымдарды салыстыру

  4. Фактылар мен ережелердің айырмашылығы. Ережелер қалай қалыптасады?

  5. Предикаттардың ішкі мақсаттармен байланысы