Автор: Пользователь скрыл имя, 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
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
Л. Стерлинг, Э. Шапиро «Искусство программирования
Кларк К., Маккей Ф. «Введение в
И. Братко «Алгоритмы искусственного интеллекта на
Доорс Дж., Рейблейн А.Р., Вадера С.