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

Автор: Пользователь скрыл имя, 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 Кб (Скачать)

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

Бұл сұраныстың жауабы мынадай түрде беріледі:

Ati = Айдаров

Kizmeti = оператор

Aylik = 20000

Ati = Айдосов

Kizmeti = менеджер

Aylik = 60000

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

domains

ati = symbol

office = integer

jumus_isteydi = jumus_isteydi (ati, office)

jumus3 = jumus3 (ati, office, jumus3);

predicates

print_101

jazba (jumus_isteydi (A,0), jumus3(A,0,_))

jazba (jumus_isteydi (A,0), jumus3(A,0,K)): - jazba

print_101: - write («101 бөлім қызметкерлері»),

jumus3 («Айдаров», 101),

jumus3 («Мамыров», 211),

jumus3 («Айдосов», 101,end), write (А), nl,

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

PROLOG ТІЛІНДЕ МАТЕМАТИКАЛЫҚ ЕСЕПТЕРДІ ЕСЕПТЕУ

1 - есеп. Екі бүтін санның

domains

X,Y,Z = integer

predicates

max (X,Y,Z) max (X,Y,Y)

clauses

max (X,Y,Z): - X>=Y, X =

max (X,Y,Z): - X<=Y, Y =

max (5, 3, Z)

2 - есеп. n! мәнін есептеу.

domains

N, Z = integer

predicates

fakt (N,Z)

clauses

fakt (1, 1).

fakt (N, Z): - algash =

fakt (algash, T), Z = T

goal

fakt (5, Z), write (“5! =

3 - есеп. Сандарды қосу.

Екі санды косу үшін мақсат қоямыз:

Goal: X = 2 + 3

X = 5

Немесе келесі предикатты жазамыз:

predicates

mysum (integer, integer, integer)

clauses

mysum (A, B, C): - C

Содан соң, 2 мен 3 санын

Goal: mysum (2, 3, X)

X = 5

1 Solution

PROLOG ТІЛІНДЕ ФИЗИКАЛЫҚ ЕСЕПТЕРДІ ЕСЕПТЕУ

1 - есеп. Судың әр

1) predicates

term (real, string)

clauses

term (T, “мұз”): - Т<=0.

term (T, “сұйықтық”): - T>0, T<=100.

term (T, “бу”): - T>100.

Енді 70 С температурада судың

Goal: term (70, X)

X = “сұйықтық”

1 Solution

2) Бұл есепті келесі жолмен де

predicates

term (real, string)

clauses

term (T, “мұз”): - Т<=0,!.

term (T, “сұйықтық”): - T<=100,!.

term (T, “бу”).

БАСҚА МЫСАЛДАРДЫ ҚАРАСТЫРУ 

1 - мысал. Егер Х атаулы

Ерлер мен әйелдердің әкелері жөнінде екі

1 - тізім 2 - тізім

әке1 (Оспан, Марат) әке2 (Мұстафа, Айгүл)

әке1 (Нұрлан, Болат) әке2 (Мұрат, Шолпан)

әке1 (Ержан, Қажым) әке2 (Нұрлан, Маржан)

әке1 (Мұрат, Сұлтан) әке2 (Бахыт, Жәния)

Тізімдерді қарап шығып, әкелері бір ерлер

Жоғарғы тізімдерде олар:

Болат пен Маржан (әкелері – Нұрлан),

Сұлтан мен Шолпан (әкелері – Мұрат).

Есепті шешу үшін алдымен екі тізімді

tuis (X, Y, A): - ake1

ake1 (ospan, marat).

ake1 (nurlan, bolat).

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

ake2 (bahit, jania).

Берілетін сұрақ: ? - tuis (X,

Білім қорында әкелері бір туыстардың бар

Сұрақ беріліп, программа іске қосылған кезде

А = ospan, Х = marat

Одан әрі, жүйе ережеге енгізілген барлық

меншіктелген мәндерді өшіріп тастайды да, келесі

А = Нұрлан, Х = Болат.

Одан әрі, ake2 (нұрлан, Y) мақсатына

Х = Болат, Y = Маржан,

Сонымен, егер сұраққа енгізілген ұйғарымның бір

Бұл мысалдың Prolog тілінде жазылуы:

predicates

tuis (string, string, string)

ake1 (string, string)

ake2 (string, string)

clauses

tuis (X, Y, A): - ake1

ake1 (ospan, marat).

ake1 (nurlan, bolat).

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

ake2 (bahit, jania).

2 – мысал. Студенттердің математика мен

1. Ахметов О. 

2. Ермеков Н.

3. Нұрланова М. 5

Программаны мынадай түрде құруға болады:

domains

T = string

predicates

tizim (T)

clauses

tizim (“1. Ахметов О.

tizim (“2. Ермеков Н.

tizim (“3. Нұрланова М.

3 – мысал. Адамдардың қарапайым телефон

predicates

tel (syring, string)

goal

write (“Фамилия-?”),

readln (Fam),

tel (Fam,Telef_Nom)

write (“телефон нөмірі = ”, Telef_Nom),

clauses

tel (“Үмбетов О”, ”52-21-60”).

tel (“Сұлтанов М”, ”55-32-14”).

tel (“Ержан К”, ”52-21-36”).

Программа іске қосылған кезде бірден фамилия

Fam - ? Сұлтанов М

Телефон нөмірі = 55-32-14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ҚОРЫТЫНДЫ

Логикалық программалау – программмалау саласының негізігі

Prolog пен логикалық программалау басқа жаңа

Prolog тілі – даму жолындағы тіл.

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

Бұл курстық жұмыстың бірінші тарауында біз

Қорытындылайтын болсам, ең тиімді логикалық тілдерінің

олар білімді игеруді басқа тілдерге қарағанда

олар тезистер, табиғи тілде қорытындылар пікірлер,

Prolog тілінде берілгендерді өңдеу тәсілін кез-келген

Курстық жұмыстың міндеті: логикалық программалау тілдерінің

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

О. Камардинов «Жасанды интеллект. Сараптаушы жүйелер.

И. Братко «Программирование на языке Пролог

Клоксин, Меллиш «Програмирование на языке Пролог».

Дж. Стобо «Язык программирования Пролог». Москва,

Ин Ц., Соломон Д. «Использование Турбо-Пролога».

Хоггер «Введение в логическое программирование». Москва,

Фёдоров А. «Особенности программирования на Borland

Л. Стерлинг, Э. Шапиро «Искусство программирования

Кларк К., Маккей Ф. «Введение в

И. Братко «Алгоритмы искусственного интеллекта на

Доорс Дж., Рейблейн А.Р., Вадера С.


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