Логикалық программалау

Автор: Пользователь скрыл имя, 13 Февраля 2013 в 07:47, реферат

Краткое описание

Логикалық программалау – информатика курсының программалау
Курстық жұмыстың мақсаты – логикалық программалау
Курстық жұмыстың мақсатына жету үшін келесі
Дискретті математика пәнін игеру.
Математикалық логика пәнінің мәселелерімен танысу.
Программалау тілдерін игеру.
Prolog тілінің мүмкіндіктерін зерттеу.

Оглавление

КІРІСПЕ.............................................................................................................3
1-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУДЫҢ ТЕОРИЯЛЫҚ
НЕГІЗДЕРІ.
1.1 Логикалық программалау. Prolog тілі.......................................................4
1.2 Prolog тілінің жетілдірілген нұсқалары........................................... ........5
1.3 Prolog тілін басқа программалау тілдерімен салыстыру.........................6
1.4 Prolog тілінде құрылған логикалық программаның орындалу
тәртібі...........................................................................................................7
1.5 Тізімдер. Prolog программасында тізімдерді қолдану...........................10
1.6 Prolog программасында берілгендер қорымен жұмыс істеу.................12
2-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУ ТІЛІ. PROLOG ТІЛІН ҚОЛДАНУ МЫСАЛДАРЫ.
2.1 Prolog тілінде математикалық есептерді есептеу....................................16
2.2 Prolog тілінде физикалық есептерді есептеу...........................................17
2.3 Басқа мысалдарды қарастыру...................................................................18
ҚОРЫТЫНДЫ...............................................................................................21
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ..........................................22

Файлы: 1 файл

Логикалық программалау реферат.docx

— 33.25 Кб (Скачать)

Логикалық программалау реферат

 

 

 

 

 МАЗМҰНЫ

КІРІСПЕ.............................................................................................................3

1-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУДЫҢ  ТЕОРИЯЛЫҚ 

НЕГІЗДЕРІ.

1.1 Логикалық программалау. Prolog тілі.......................................................4

1.2 Prolog тілінің жетілдірілген нұсқалары........................................... ........5

1.3 Prolog тілін басқа программалау тілдерімен салыстыру.........................6

1.4 Prolog тілінде құрылған логикалық программаның орындалу

тәртібі...........................................................................................................7

1.5 Тізімдер. Prolog программасында тізімдерді қолдану...........................10

1.6 Prolog программасында берілгендер қорымен жұмыс істеу.................12

2-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУ  ТІЛІ. PROLOG ТІЛІН ҚОЛДАНУ МЫСАЛДАРЫ.

2.1 Prolog тілінде математикалық есептерді есептеу....................................16

2.2 Prolog тілінде физикалық есептерді есептеу...........................................17

2.3 Басқа мысалдарды қарастыру...................................................................18

ҚОРЫТЫНДЫ...............................................................................................21

ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ..........................................22

 

 

 

КІРІСПЕ

Логикалық программалау – информатика курсының программалау

Курстық жұмыстың мақсаты  – логикалық программалау

Курстық жұмыстың мақсатына  жету үшін келесі

Дискретті математика пәнін игеру.

Математикалық логика пәнінің мәселелерімен танысу.

Программалау тілдерін игеру.

Prolog тілінің мүмкіндіктерін зерттеу.

Курстық жұмыс кіріспеден, екі тарудан, қорытындыдан,

Кіріспеде курстық жұмыс тақырыбының өзектілігі, жұмыстың

1-тарауда курстық жұмыс  тақырыбының теориялық негіздері

2-тарауда Prolog тілінің мүмкіндіктерін есептің

Қорытынды да логикалық программалаудың  алатын орны,

ЛОГИКАЛЫҚ ПРОГРАММАЛАУ. PROLOG ТІЛІ

Интелектуальды іс-әрекеттерді орындауға арналған ыңғайлы программа

Prolog тілі:

сараптаушы жүйелерді дайындау;

мәтіндерді бір тілден екінші тілге аудару;

логикалық түрде теоремаларды дәлелдеу және т.б.

Prolog-тың ықшамдылығы –  ол берілген сұрақ

Prolog – сараптаушы жүйені құруда, 5-нші

Prolog тілі – 2,2 жыл бұрын

Логикалық программалау мен Prolog тілінің өзара

Prolog есептеу моделінің көмегімен орындалатын логикалық

Prolog тілі тізбектік машинадағы логикалық

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

Негізінде, таңдаудың әртүрлі тәсілін қолданатын түрлі

Prolog-та топтамалы кестелік тәсіл қолданылады. [3]

PROLOG ТІЛІНІҢ ЖЕТІЛДІРІЛГЕН НҰСҚАЛАРЫ

Логикалық программалаудың  дамуына үлес қосқан

1973 жылы Алан Комеройдың басшылығымен Марсельдік

Ал 1976 жылы Ковальский М. Ван

1977 жылы Д. Уоррен мен Ф.

Ал 1980 жылы К. Кларк және

1981 жылдың қазан айында Prolog тіліне

Prolog тілінің ең кең таралғаны -

Ал 1988 жылы одан сапасы жоғары

1992 жылдың маусым айында PDC Prolog

PDC Prolog 3.31-дің сапасы жоғары болғанмен,

Visual Prolog «визуальды программалау» сөзінен шықты.

Visual Prolog графикалық қолданбалы интерфейсті қажет

Интерфейстің таңдалынғанына байланысты орындаушыға көптеген генераторларға,

Prolog Development Center-дің өнімдері, Visual Prolog-ты

PROLOG ТІЛІН БАСҚА ПРОГРАММАЛАУ ТІЛДЕРІМЕН

Программалау тілі басқару механизмімен және берілгендерді

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

Procedure A

Call B

Call B

.

.

.

Call B

End.

Prolog тіліндегі рекурсивті шақыру мақсатының амалдар

Қарапайым тілде есептеудің жалғасуына мүмкіндік болмаса,

Логикалық программа операция жасайтын берілгендердің құрылымы

Лисп тілі секілді Prolog тілі де

Prolog тіліндегі қолданылатын берілгендер құрылымдарының басқа

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

Дәстүрлі программалау тілдерінде әртүрлі деңгейдегі қиындықтар,

PROLOG ТІЛІНДЕ ҚҰРЫЛҒАН ЛОГИКАЛЫҚ ПРОГРАММАНЫҢ ОРЫНДАЛУ

Prolog тілінде программалау келесі кезеңдерден тұрады:

фактілер арасындағы қатыстар мен нысандарды хабарлау;

нысандар мен қатынастар арасындағы өзара байланысқан

нысандар мен қатынастар арасындағы сұрақты тұжырымдау.

Prolog тілінде орындалатын негізгі амал бұл

Орнына қою былай анықталады:

тұрақты тек өзіне тең  тұрақтының орнына

теңескен (бірегей) құрылымдар бір-бірінің орнына қойылады;

айнымалы тұрақтының немесе алдын ала байланысқан

екі бос айнымалы бір-бірінің орнына қойыла

Байланысқан мезеттен бастап олар бір айнымалы

алмасады. Бұл жағдайда Х-айнымалысы

қабылданады. [1]

Prolog тілінде программалаудың ережелері мен фактілері

реті ережелер мен ережелердің ішкі мақсаттары

А: - В1, В2,..., Вn ережесін

Логикалық тұжырымның орындалуында айнымалының нақтылануының қажеттілігіне

ұнатады (асан, ән).

ұнатады (үсен, спорт).

ұнатады (А, кітап): - оқырман (А),

ұнатады (үсен, кітап).

ұнатады (үсен, кино).

оқырман (үсен).

әуесқой (асан).

? – ұнатады (Х, ән), ұнатады

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

ұнатады (Х, ән)

Бастапқыда программаны жоғарыдан төмен қарай орындағанда,

ұнатады (Х, ән)

-----------------------------------------------------------

ұнатады (асан, ән)

Х айнымалысы «асан» мәнімен нақтыланады.

Сұраныс екінші ішкі мақсатпен келісімге келеді,

ұнатады (А, кітап): - оқырман (А),

Аргумент А тақырыбы айнымалы болғандықтан, ол

ұнатады (Х, ән)

------------------------------------------------------------

ұнатады (асан, ән)

оқырман (А)

Бұдан кейін Prolog тілі жаңа ішкі

ұнатады (Х, ән)

------------------------------------------------------------

ұнатады (асан, ән)

оқырман (А)

--------------------------------------------------------

оқырман (асан)

ТІЗІМДЕР. PROLOG ПРОГРАММАСЫНДА ТІЗІМДЕРДІ ҚОЛДАНУ

Тізім - өңдеу процесінде құрамы мен

Тізім - әртүрлі ұзындыққа болатын реттелген

Тізім элементтері кез келген терм болуы

тұрақты

айнымалы

басқа да тізімдерден тұратын құрылым.

Тізімдер білім қорын және деректер қорын

бірінші элемент – тізім басы;

тізімнің қалған бөлігі – тізімнің соңы.

Тізім басы элементі бөлінбейтін мән болып

Сәйкес операцияларды орындауда процесс тізім бос

Prolog тілінде тізімдерді қолдану үш бөлімде

тізімдер домені – domains (берілгендер типін

тізімдермен жұмыс предикаты – predicates (предикаттарды

ал тізімнің өзі – clauses (фактілер

Domains бөлімін жазбай тастап кетуге болады,

Предикат – қатыстар мен  олардың аргументтерінен

Программаға глобальды домендер мен предикаттарды анықтайтын

global domains

global predicates

Clauses бөлімінде фактілер (нысандар жөніндегі мәліметтер)

Факт предикаттың атымен жақша ішіндегі аргумент

Шарт – шарт тақырыбы мен шарт

Prolog тілінде қатыстар, фактілер, ережелер құрылымын

Clauses бөлімінің алдына немесе соңына

Құрамында тізімі бар қарапайым программаны қарастырайық:

domains

баспа_ мезгіл = мезгіл

мезгіл = string

predicates

жыл (баспа_ мезгіл)

clauses

жыл ([«қыс», «көктем», «жаз», «күз»])

Бұл программада жыл мезгілдері қарастырылған. Мезгілдер

Сұраныстарды:

қандай жыл мезгілдері бар? жыл [A11]

екінші жыл мезгілі қандай? жыл ([_,X,_,])

жылдың бірінші жартысындағы жыл мезгілдері жыл

жыл 9[X|Y]) сұранысының нәтижесі қалай болады?

Тізім басы тізім құйрығынан тік сызықша

Екі тізімді қарастырайық:

list 1[[студент,Y] | Z]

list 2 [[X, ахмет] | [оқу_озаты]]

Олар үйлесімді және айнымалыларға меншіктелетін термдер:

Түсінікті болу мақсатында, әдетте, тізім предикаты

PROLOG ПРОГРАММАСЫНДА БЕРІЛГЕНДЕР  ҚОРЫМЕН ЖҰМЫС ІСТЕУ 

Prolog тілінде берілгендер қорымен жұмыс істеудің

әрбір берілгендер қорының информациялық элементтеріне сәйкес

әрбір атрибут мәні жұбына сәйкес келетін

әрбір құрылымы берілгендер қорының құрылымына сәйкес

әрбір құрылым берілгендер қорының жазбасына сәйкес

ағаштың әрбір түйіні берілгендер қорының жазбасына

Қызметтестер қатысы деген, өзара байланысқан (қызметтестер

Қатыстарды фактілер түрінде қарастыру.

Кез-келген пәндік облыс үлгісі объектілер мен

Жұмыс (қызметкер_ аты, бөлім, қызметі, айлық)

Бұл жерде кілттік атрибут ретінде «қызметкер_

сәйкес келетін жазбалар жиыны және информациялық

Берілгендер қорын Prolog тілінде қарастырудың қарапайым

jumus1 («Асанов»,101,»оператор»,20000).

jumus1 («Мамыров»,211,»меңгеруші»,70000).

jumus1 («Айдосов»,101,»менеджер»,60000).

Сұраныс jumus1 (ati,101,Кizmeti,Аylik)

101 бөлімдегі барлық қызметкерлерді іздейді.

Атрибуттарды факт түрінде қарастыру.

Информациялық элементтердің  бүтінділігін құрайтын фактілілерді жазудың

Office («Асанов»,101).

Кizmeti («Асанов»,»оператор»).

Аylik («Асанов»,20000).

Нақты қызметкер үшін барлық атрибуттарды, пәндік

jumus2 (Ati, Office, Kіzmeti, Aylik): -

Бұл ереже анық емес берілгендер қорына

prize (Ati, 1000): - office (Ati,

Кейбір қызметкерлер үшін қосымша жұмыс стажы

jumus_staji («Асанов», 2).

jumus_staji («Мамыров», 1).

Жаңадан қосылған «prize» және «jumus_staji» фактілері

Берілгендер қорын тізім, құрылым ретінде қарастыру.

Берілгендер қорын информациялық элементтер ағымы деп

jumus_isteydi («Айдаров», 101, «оператор», 20000).

jumus_isteydi («Мамыров», 211, «меңгеруші», 70000).

jumus_isteydi («Айдосов», 101, «менеджер», 60000).

Мұндай берілгендер қорының әрбір информациялық элементіне

Берілгендер қорын сызықтық рекурсивті құрылым ретінде

Берілгендер қорының жазбасын ЭЕМ жадында қарастырудың

jumus_isteydi ( ) жазбасынан тұратын рекурсивті

Жұмысшы (аты, бөлім, қызметі, айлық келесі

Prolog тілінің синтаксисін пайдаланып, оны jumus3

jumus3 («Айдаров», 101, «оператор», 20000).

jumus3 («Мамыров», 211, «меңгеруші», 70000).

jumus3 («Айдосов», 101, «менеджер», 60000, еnd

Мұнда құрылымының қосымша  аргументі берілгендер қорының

Қызметкер (аты, бөлімі, қызметі, айлық, қызметкер).

Жаңа процедураның бірінші аргументі берілгендер қорының

құрылымы болып табылады. Бұл процедураның екінші

jazba (jumus_isteydi (Ati, Office, Kіzmeti,

jumus3 (Ati, Office, Kіzmeti, Aylik, nextjazba).

jazba (jumus_isteydi (Ati, Office, Kіzmeti, Aylik)).

jumus3 (Ati, Office, Kіzmeti, Aylik, nextjazba):

jumus3 (jazba (jumus_isteydi (Ati, Office, Kіzmeti,

jazba ( ) прцедурасын қолданып, 101

Мақсат: jazba (jumus_isteydi (Ati, 101,

jumus3 («Айдаров», 101, «оператор», 20000).

jumus3 («Мамыров», 211, «меңгеруші», 70000).

Информация о работе Логикалық программалау