Логикалық программалау [ 19 бет ]

МАЗМҰНЫ

КІРІСПЕ.............................................................................................................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-тарауда курстық жұмыс тақырыбының теориялық негіздері қарастырылған. Атап айтқанда, логикалық программалау, Prolog тілі, предикат, факт, тізімдер, тізімдердің Prolog тілінде қолданылуы, берілген қоры және т.б.
2-тарауда Prolog тілінің мүмкіндіктерін есептің қойылымы бойынша прграммалау тәсілдері қарастырылған.
Қорытынды да логикалық программалаудың алатын орны, екі таруда қарастырылған мәселелер, курстық жұмыстың міндеті қарастырылған.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

1. О. Камардинов «Жасанды интеллект. Сараптаушы жүйелер. Пролог». Шымкент, 2003.
2. И. Братко «Программирование на языке Пролог для искусственного интеллекта». Москва, 1990.
3. Клоксин, Меллиш «Програмирование на языке Пролог». Москва, 1987.
4. Дж. Стобо «Язык программирования Пролог». Москва, 1993.
5. Ин Ц., Соломон Д. «Использование Турбо-Пролога». Москва, 1993.
6. Хоггер «Введение в логическое программирование». Москва, 1988.
7. Фёдоров А. «Особенности программирования на Borland Pascal». Киев, 1994.
8. Л. Стерлинг, Э. Шапиро «Искусство программирования на языке Пролог». Москва, 1990г.
9. Кларк К., Маккей Ф. «Введение в логическое программирование на микро-Прологе». Москва, 1987.
10. И. Братко «Алгоритмы искусственного интеллекта на языке Пролог». Москва, 2004.
11. Доорс Дж., Рейблейн А.Р., Вадера С. «Пролог — язык программирования будущего». Москва, 1990.


Дисциплина: Информатика
Тип работы: Курстық жұмыс

Для получения этой работы Вам нужно оплатить через терминалы QIWI
  1. На экране нажмите «Оплата услуг»
  2. Затем нажмите «Другие услуги»
  3. Выберите «Образовательные услуги»; нажмите stud.kz

  4. Введите номер счета,
  5. Терминал покажет ваш пароль, нажмите "Вперед"
  6. Внесите 400 тенге
  7. Не забудьте взять квитанцию, там будет распечатан ваш пароль!
  8. После оплаты можете скачать свой файл на сайте введя полученный пароль в поле снизу

Зарабатывайте вместе с нами!!!


Что нужно для этого сделать:
  1. Нужно
  2. Загрузить свои работы на сайт
  3. Установите свою цену (цена должна быть адекватной, иначе врядли кто-то купит)
  4. Мы добавляем лишь свою комиссию
  5. Заработанные деньги можете вывести на банковскую карточку
Требование к загружаемым файлам.
  • Язык: казахский или русский
  • Если язык русский то тематика работы должна быть РК (Республика Казахстан)
  • Количество страниц минимум 4
  • Нужно указывать колличество страниц без учета страниц: титульный лист, план, список литературы

Урезанное содержание работы для ознакомления
Тақырыбы. Логикалық программалау
МАЗМҰНЫ
КІРІСПЕ.....................................................................
........................................3
1-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУДЫҢ ... ... ... ... Prolog ... ... ... Prolog ... басқа ... ... Prolog ... ... логикалық программаның орындалу
тәртібі...................................................................
........................................7
1.5 Тізімдер. Prolog ... ... Prolog ... ... қорымен жұмыс
істеу.................12
2-ТАРАУ. ЛОГИКАЛЫҚ ПРОГРАММАЛАУ ТІЛІ. PROLOG ТІЛІН ҚОЛДАНУ МЫСАЛДАРЫ.
2.1 Prolog ... ... ... Prolog ... ... ... ... ... ... ...... ... ... саласының
негізгі бөлімі. Бұл пәннің негізгі мәселерінің бірі – ... ... ... ... ... ... орындауға арналған ыңғайлы программа құру
үшін математикалық логика заңдары мен ... ... ... ... тілі ... Бұл ... ... жұмыстың тақырыбын «Логикалық программалау» деп алуымызға ... ... ... – логикалық программалау ... ... ... ... программа құрудағы мүмкіндіктерін зерттеу.
Курстық жұмыстың мақсатына жету үшін келесі ... ... ... ... ... ... ... логика пәнінің мәселелерімен танысу.
• Программалау тілдерін игеру.
• Prolog тілінің мүмкіндіктерін зерттеу.
Курстық жұмыс кіріспеден, екі ... ... ... тізімінен тұрады.
Кіріспеде курстық жұмыс тақырыбының өзектілігі, жұмыстың мақсаты,
курстық ... ... ... мен практикалық құндылығы
баяндалған.
1-тарауда курстық жұмыс тақырыбының теориялық негіздері қарастырылған.
Атап айтқанда, логикалық ... Prolog ... ... ... ... Prolog ... ... берілген қоры және т.б.
2-тарауда Prolog тілінің ... ... ... ... тәсілдері қарастырылған.
Қорытынды да логикалық программалаудың алатын орны, екі таруда
қарастырылған мәселелер, ... ... ... қарастырылған.
ЛОГИКАЛЫҚ ПРОГРАММАЛАУ. PROLOG ТІЛІ
Интелектуальды іс-әрекеттерді орындауға арналған ыңғайлы программа ... ... ... ... мен ... негізделіп
дайындалған логикалық программалау тілі қажет. Мұндай ... бірі – ... ... ... ... ... ... бір тілден екінші тілге аудару;
• логикалық түрде ... ... және т.б. ... жиі
қолданылады.
Prolog-тың ықшамдылығы – ол берілген сұрақ бойынша тікелей жауап
алатындай етіп ... Жүйе ... ... ... үшін ... процедураларды өзінше өңдеп шығады. Яғни, Prolog-та программалау
тәсілі алгоритмін дайындау арқылы құрылатын ... ... ... ... ... ... ... бірнеше фактілер мен
ережелерден тұрады. [1]
Prolog – сараптаушы жүйені құруда, 5-нші буын элементтерін пайдаланатын
машиналық ... тілі – 2,2 жыл ... ... ... дами ... ... ... тіл.
Логикалық программалау мен Prolog тілінің өзара байланысы ... ... мен Лисп ... ... ... еске ... Бұл екі тіл ... есептеу моделін жүзеге асыру үшін қолданылады. Логикалық ... ... ... ... [2]
Prolog есептеу моделінің көмегімен орындалатын логикалық программа
Prolog тілінде программалау деп ... тілі ... ... ... ... ... жүзеге асыруын қамтамасыз етеді. Бұл эффективті түрде абстрактілі
интерпретатордың (түсіндіргіштің) қасиетінің үйлесімдігін орындауда ең
жақсысы болып табылады.
Абстракті интерпретатор ... ... ... ... ... интерпретаторды құрғанда екі шешім қабылдау керек. Біріншіден,
кестелеу әдісін нақтылау керек. Екіншіден, қолданылып ... ... ... ... ... ... асыру қажет.
Негізінде, таңдаудың әртүрлі тәсілін қолданатын түрлі программалау
тілдері бар. Жалпы айтқанда, олар екі класқа ... Prolog және ... ... орындалуда негізделген. Ал басқа тілдер, мысалы
ретінде Parlog, параллельді Prolog және GHC ... ... ... орындалу мен параллельді орындалу атауланбаған
тәсіл арқылы жүзеге асырылуымен өзгешеленеді.
Prolog-та топтамалы кестелік тәсіл қолданылады. ... ... ... НҰСҚАЛАРЫ
Логикалық программалаудың дамуына үлес қосқан Р.Ковальскийдің «Логика
предикатов как язык програмирования» туындысы болып табылады.
1973 жылы Алан ... ... ... университеттің
зерттеушілер тобы Джон Робинсонның зерттеулеріне сүйеніп, Фортран тілінде
жүзеге асқан программа құрды. Ол программа Prolog (Programming in ... ... 1976 жылы ... М. Ван ... ... процедуралық және
декларативтік түрлерді ... ... ... ... енгізіліп
отырғанмен, олар эффективті емес және орындалуында кемшіліктері болды.
1977 жылы Д. Уоррен мен Ф. Перейройдың Эдинбург университетінде ... ЭВМ DEC-10 үшін ... ... ... ... ... ... Prolog тілінде жазылды және басқа да программалау тілдеріне
бастау болды. [4]
Ал 1980 жылы К. ... және Ф. ... ... ... ... ЭВМ үшін Prolog-тың бір түрін құрды.
1981 жылдың қазан айында Prolog ... ... ... ... ... ЭВМ-нің бесінші буыны пайда болды. Көптеген ... ... ... ... ... ... таң қалдырды. Бірақ сол
уақытта Prolog тілінің көптеген түрлері пайда бола ... ... Quintus Prolog, Silogic ... ... Prolog-2, Arity
Prolog, Prolog-86, Turbo Prolog және ... ... ең кең ... - Turbo Prolog. Оның ең ... ... жылы даттық компания Prolog Development Center (PDC) мен Borland
International фирмасының бірлестігімен құрылған.
Ал 1988 жылы одан сапасы ... Turbo Prolog 2.0 ... ... ... ... - ... ... интегралдану ортасының жетілдірілген
түрі. Borland International фирмасы бұл ... 1990 ... ... ... ... ... ... PDC Prolog 3.31 нұсқасы пайда болды. ... MS DOS, OS/2, UNIX, XENIX, PharLap, DOS ... және MS ... қызмет етті. PDC Prolog 3.31 нұсқасы басқа да ... ... [5, 6, ... Prolog ... ... ... болғанмен, жұмыс істеу күрделірек
болды. Сондықтан да, 1996 жылдың 7 қаңтар күні Prolog ... ... Prolog 4.0 ... ... ... Prolog «визуальды программалау» сөзінен ... ... ... және ... түрі ... программалаусыз
алгоритмдік тілде графикалық жобалау тәсілімен анықталады. Нәтижесінде
логикасымен, оңайлығымен және тиімділігімен ерекше программалау ... Prolog ... ... ... ... ететін көптеген
операциялық жүйелермен, соның ішінде MS DOS, PharLap, DOS ... ... ... ... да ... сипатталады.
Интерфейстің таңдалынғанына байланысты ... ... ... ... және қосымша VPI-предикаттарға,
ережелерге алады. Ресурсты редакторлар құру үшін, ... ... ... қатарларды, көмекші қатарларды,
қатарлы кестелерді, жарлықтарды өңдеумен айналысады. Генераторлық ... ... ... ... ... ... Нәтижесінде
орындалу мен байланысуды өңдейтін бірлік код пайда болады.
Prolog ... ... ... Visual ... ... ... (EXE және DLL) ... жүйелер болып табылады. Бұл
Prolog-тың тиімділігінің жоғарғы деңгейде екендігін дәлелдейді.
PROLOG ТІЛІН БАСҚА ПРОГРАММАЛАУ ... ... тілі ... ... және ... ... тілінде программаны басқарудағы есептің ойдағыдай орындалу
тәсілі басқада тілдерге ... ... ... ... ... ... ұқсас.
Procedure A
Call B
Call B
.
.
.
Call B
End.
Prolog тіліндегі рекурсивті шақыру мақсатының амалдар тізбегі мен оның
жүзеге асуы қарапайым рекурсивті ... ... ... ... ... [8, ... тілде есептеудің жалғасуына мүмкіндік болмаса, онда есептеуде
қателік пайда ... Ал Prolog ... ... ең ... ... келеді және есептеуді шешу үшін басқа тәсілмен орындалу жалғасады.
Логикалық программа операция ... ... ... ... ... ... ұқсас. Prolog ... ... ... ... ең ... ... тілі ... Prolog тілі де берілгендер хабарландырмасы жок, типсіз
тіл болып табылады. [10]
Prolog тіліндегі ... ... ... басқа
ерекшелігі оның логикалық айнымалыларымен байланысты болуы. Логикалық
айнымалылар объектілерге қатысты ... Егер ... ... ... ... онда ол ешқашан басқа объектіге жіберіле ... ... ... ... ... ... ... қарастырмайды.
Логикалық программалауда берілгендерді өңдеу толығымен қалыптастыру
алгоритмінде қорытындыланған.
Дәстүрлі программалау тілдерінде әртүрлі ... ... ... ... және ерекше жағдайлар бар. Ал Prolog
тілінде тілді сипаттайтын, қателіктерді өңдейтін механизмі және ... жоқ. ... ... ... ... ... ... ТӘРТІБІ
Prolog тілінде программалау келесі кезеңдерден тұрады:
• фактілер арасындағы қатыстар мен нысандарды хабарлау;
• нысандар мен қатынастар ... ... ... ... нысандар мен қатынастар арасындағы сұрақты тұжырымдау.
Prolog тілінде орындалатын негізгі амал бұл ... қою ... қою ... ... ... табысты орындалуы мүмкін. Ал кейде
сәтсіз аяқталады.
Орнына қою былай ... ... тек ... тең тұрақтының орнына қойылады;
• теңескен (бірегей) құрылымдар бір-бірінің орнына қойылады;
• айнымалы тұрақтының немесе алдын ала ... ... ... ... ... ... ... байланысады);
• екі бос айнымалы бір-бірінің орнына қойыла алады (және байланысады).
Байланысқан мезеттен бастап олар бір ... ... ... олардың біреуі бір мәнді қабылдаса, екіншісі де тез ... сол ... ... ... ... ... ... орнына қойылады,
дана-алма-ның орнына жүрмейді, бар(асан, машина)-бар(талғат, теледидар)-
дың ... ... ... ... машина)-мен
алмасады. Бұл жағдайда Х-айнымалысы ... ... мәні ... [1]
Prolog тілінде программалаудың ережелері мен фактілері – бір пәндік
облыстағы нысандар арасындағы байланыс пен қатынастарды ... ... ... бір ... тиіс ... ... ... шарты және
т.б. Сипатталған қатынастар мен байланыстар ... ... Олар ... деп ... ... ... ережелер мен ережелердің ішкі мақсаттары программаның декларативті
мағынасына әсер етпейді, сонымен қатар программаны орнына қоюдың тізбегі
ретінде ... ... ... ... мағынасы Prolog
тілінде жазылған программаларда міндетті түрде есептелуі керек. Фактіні
орындалуы үшін басқа ешнәрсенің ... жоқ, ... ... ... ... ... - В1, В2,..., Вn ... орындалуы үшін В1, В2,..., Вn анықтау
керек болатын А ... ... ... ... болады. В1,
В2,..., Вn процедуралары солдан оңға ... ... ... ... Кезекті процедураның орындалуы сәтті аяқталмаса, онда келесі
процедураға ауысады. Егер белгілі бір ... ... ... ... онда осы ... ... келесі нұсқасына
ауысады, Prolog тілінде мұндай нұсқада іздеу реті – жоғарыдан ... ... ... ... айнымалының нақтылануының
қажеттілігіне мысал қарастырайық:
ұнатады (асан, ән).
ұнатады (үсен, спорт).
ұнатады (А, ... - ... (А), ... (А).
ұнатады (үсен, кітап).
ұнатады (үсен, кино).
оқырман (үсен).
әуесқой (асан).
? – ұнатады (Х, ән), ұнатады (Х, кітап).
Бұл ... екі ... ... ... мақсатты бұтақ түрінде
қойылады:
ұнатады (Х, ән) ... (Х, ... ... ... ... ... орындағанда, Prolog тілі
бірінші сөйлемге сәйкес ... ... ... ішкі мақсатын табады:
ұнатады (Х, ән) ... (Х, ... ... ... ... ... мәнімен нақтыланады.
Сұраныс екінші ішкі мақсатпен келісімге келеді, мына шартпен ... ... және ... ... ішкі ... ... ... сөйлемде:
ұнатады (А, кітап): - оқырман (А), әуесқой (А).
Аргумент А тақырыбы айнымалы болғандықтан, ол ... ... ... Яғни ... ... ... ... келеді. Енді ереже денесі
келісімділік үшін жаңа мақсаттар жиынын өрнектейді. Жаңа мақсатты бұтақты
аламыз:
ұнатады (Х, ән) ... (Х, ... ... ән) ... (А, ... (А) ... ... Prolog тілі жаңа ішкі ... ... келетін фактілерді
іздей бастайды. Соңғы нәтижелеуші бұтақ:
ұнатады (Х, ән) ... (Х, ... ... ән) ... (А, кітап)
оқырман (А) ... ... ... PROLOG ПРОГРАММАСЫНДА ТІЗІМДЕРДІ ҚОЛДАНУ
Тізім - өңдеу процесінде құрамы мен саны ... ... ... ... ... көп қолданылатын берілгендер
құрылымы.
Тізім - әртүрлі ... ... ... ... ... ... кез келген терм болуы мүмкін. Терм – түрлі
қатыстарды, ... ... ... жазатын түрлі символдар
тізбегі. Оның үш түрі ... ... ... ... да ... тұратын құрылым.
Тізімдер білім қорын және деректер қорын құруда, сараптаушы жүйелерде,
қалалар ... ... ... ... формула,
функция) көп қолданылады. Тізім құрылымы тізім басы және ... ... деп ... екі ... тұрады. Тізім соңы да өзінше
бөлек тізім болуы ... ... ... ... үшін мәні ... ... екі ашу және жабу ... жақшалары қолданылады. Жалпы,
элементтер енгізілмегенмен, бос тізім [ ] белгісі арқылы жазылады. Бос
емес тізімді екі ... ... етіп ... бірінші элемент – тізім басы;
2. тізімнің қалған бөлігі – тізімнің соңы.
Тізім басы элементі бөлінбейтін мән болып табылады. Құйрығы – ... ... ... тұратын тізім. Құйрық тағы да ішкі басы
мен құйрыққа бөлінуі мүмкін.
Сәйкес операцияларды орындауда процесс ... бос ... ... ... Бұдан тізімнің берілгендердің рекурсивті құрылымы екенін
қорытындылауға болады.
Prolog тілінде тізімдерді қолдану үш бөлімде қарастырылады:
• тізімдер домені – domains ... ... ... ... ... ... предикаты – predicates (предикаттарды анықтау)
бөлімінде;
• ал ... өзі – clauses ... мен ... ... ... ... ... жазбай тастап кетуге болады, бірақ программаның
түсінікті болуы үшін domains тақырыбын мәтінге қосу тиімді.
Предикат – ... мен ... ... ... ... Predicates бөлімінде предикаттар анықталады. әрбір предикат
өзінің атымен және ... ... ... ... ... кейбір аргументтері белгілі болса, онда олар алдын-
ала domains бөліміне жазылып ... ... ... ... ... қорының предикаттарын анықтайтын қосымша бөлімді
қосуымызға болады. Бұл бөлім «data base» деп аталады.
Программаға глобальды домендер мен ... ... екі ... ... ... ... ... фактілер (нысандар жөніндегі мәліметтер) мен шарттар
анықталады.
Факт предикаттың атымен жақша ішіндегі аргумент арқылы ... ... не ... ... ... ... мүмкін. Факт
жазуы нүктемін аяқталады. Барлық предикат ... ... ... басталуы керек.
Шарт – шарт тақырыбы мен шарт денесінен тұрады. Тақырып – предикаттан,
дене – термдерден тұрады. Олар ... or ... and ... ... Дене мен ... арасында if сөзі тұрады. ... ... ... ... Айнымалылар аты бас әріптен басталуы және тек
әріптерден, цифрлардан және «_» ... ... ... максимальды
ұзындығы – 250 белгі. Анонимді (жасырын) айнымалылар ерекше ... ... «_» ... арқылы жазылады.
Prolog тілінде қатыстар, фактілер, ережелер құрылымын сақтап, түрлі
символдар арқылы құрастырылған берілгендер, оның ішіндегі ... деп ... ... ... ... ... ... – нақты нысандар мен қатыстар. Тұрақтылар екіге бөлінеді:
атомдар және сандар. Сандар ... не ... ... ... ... ... басқа болатын аргументтер, қатыстар және ... ... ... ... ... немесе соңына goal бөлімі орналасуы мүмкін.
Бұл бөлімде мақсат анықталады. ... ... ішкі ... ... Егер программа пакеттік режимде жұмыс істеу үшін құрылған болса,
goal бөлімін қосуға ... ... бар ... ... ... мезгіл = мезгіл
мезгіл = string
predicates
жыл (баспа_ мезгіл)
clauses
жыл ([«қыс», «көктем», «жаз», «күз»])
Бұл программада жыл мезгілдері қарастырылған. Мезгілдер – ... ... ... ... жыл ... бар? жыл ... екінші жыл мезгілі қандай? жыл ([_,X,_,])
3. жылдың бірінші жартысындағы жыл мезгілдері жыл ... жыл 9[X|Y]) ... ... ... ... басы тізім құйрығынан тік ... ... ... ... [X|Y].
Екі тізімді қарастырайық:
list 1[[студент,Y] | Z]
list 2 [[X, ахмет] | [оқу_озаты]]
Олар үйлесімді және айнымалыларға меншіктелетін термдер: Х = ... Y
= ... Z = ... болу ... ... ... предикаты үшін list предикаты
пайдаланады.
PROLOG ПРОГРАММАСЫНДА БЕРІЛГЕНДЕР ҚОРЫМЕН ЖҰМЫС ІСТЕУ
Prolog тілінде берілгендер қорымен жұмыс ... ... ... ... ... ... информациялық элементтеріне сәйкес келетін
фактілер жиыны;
• әрбір атрибут мәні жұбына сәйкес келетін фактілер жиыны;
• әрбір құрылымы берілгендер ... ... ... ... ... ... ... берілгендер қорының жазбасына сәйкес келетін, сызықты
рекурсвті құрылым;
... ... ... ... ... жазбасына сәйкес келетін,
екілік ағаш түріндегі рекурсивті құрылым.
Қызметтестер қатысы деген, өзара байланысқан (қызметтестер ... ... ... ... ... пәндік облысты қарастырайық.
Осы пәндік облыс үшін жоғарыдағы берілгендер ... ... ... ... түрінде қарастыру.
Кез-келген пәндік облыс үлгісі объектілер мен олар арасындағы байланыс
жиыны ретінде қарастырылады. Берілгендер қорын құрудың реляциялық ... ... ... ... ... ... және ... осы
қатыстың кілттік атрибуттарына функциональды тәуелділігін орнатумен
толықтыру жеткілікті. ... ... ... ... түрінде
қарастырайық
Жұмыс (қызметкер_ аты, бөлім, қызметі, айлық)
Бұл ... ... ... ... ... аты» атрибутын алсақ
болады. Мұнда қатыс пәндік облыстың объектісінің анықталған элементіне
сәйкес келетін ... ... және ... элемент ретінде
қарастырылып отыр.
Берілгендер ... Prolog ... ... қарапайым әдісі әрбір
информациялық элементтің ... факт ... ... ... табылады.
Мысалы,
jumus1 («Асанов»,101,»оператор»,20000).
jumus1 («Мамыров»,211,»меңгеруші»,70000).
jumus1 («Айдосов»,101,»менеджер»,60000).
Сұраныс jumus1 (ati,101,Кizmeti,Аylik)
101 бөлімдегі барлық қызметкерлерді іздейді.
Атрибуттарды факт түрінде қарастыру.
Информациялық элементтердің бүтінділігін ... ... ... осы ... ... бөлек атрибуттарын факт түрінде
қолдануға болады. ... ... ... ... ... ... бүтін бірлік ретінде жинауға болады. Атрибуттың біреуін қалған
атрибуттарды біріктіріп тұратын кілт ... ... ... ( ... қоры үшін «kizmetker_ati» атрибутын кілт ретінде қолданамыз.
Жұмыс объектісінің бірінші элементін төмендегіше үлгіде ... ... ... ... ... қызметкер үшін барлық атрибуттарды, пәндік облыстың анықталған
элементі ретінде ереже ... ... ... (Ati, Office, ... Aylik): - office (Ati, Office), kizmeti
(Ati, ... aylik (Ati, ... ... анық емес ... ... жатады. 101бөлім
қызметкерлерінің барлығына 1000 ... ... ... ... ... атрибутын пайдаланып, ережені қолданамыз.
prize (Ati, 1000): - office (Ati, 101).
Кейбір қызметкерлер үшін қосымша жұмыс стажы атрибутын ... ... ... ... 2).
jumus_staji («Мамыров», 1).
Жаңадан қосылған «prize» және «jumus_staji» фактілері жоғарыдағы jumus2
предикатына әсер етпейді.
Берілгендер қорын тізім, құрылым ретінде қарастыру.
Берілгендер қорын информациялық ... ... деп ... ... Prolog ... тізімдер құрылымы ретінде беріледі. Тізімнің ... – бұл ... ... ... ... 101, «оператор», 20000).
jumus_isteydi («Мамыров», 211, «меңгеруші», 70000).
jumus_isteydi («Айдосов», 101, «менеджер», 60000).
Мұндай ... ... ... ... ... қол жеткізу,
екі аргументтен тұратын арнайы орындалады. Кіру негізі процедураның
екінші аргументі ... Ол ... ... ... ... ... нәтижесі оның бірінші аргументі арқылы
орындалады.
Берілгендер қорын сызықтық рекурсивті құрылым ретінде қарастыру.
Берілгендер қорының жазбасын ЭЕМ жадында қарастырудың тағы бір ... ... ... аргументтерінің бірі келесі жазбаны көрсететін рекурсивті
құрылымды қолдану болып табылады. ... ... ... басқа
көрсеткіштің өңдеу әрекеттерінің барлығын өзі орындайды.
jumus_isteydi ( ) ... ... ... ... ... құру үшін құрылымға келесі жазбаны көрсететін қосымша аргумент
қосу керек, оған тағы келесі ... ... ... аргумент қосу
және т.с.с. Келесі жазбаның жоқ екендігін көрсететін ... ... үшін ... ... ... «еnd» ... (аты, бөлім, қызметі, айлық келесі жазбаны көрсеткіш) сызықты
рекурсивті ... ... ... ... пайдаланып, оны jumus3 ( ) құрылымы деп
белгілейік.
jumus3 ... 101, ... ... ... 211, ... ... ... 101, «менеджер», 60000, еnd ).
Мұнда құрылымының қосымша аргументі берілгендер қорының келесі жазбасын
нұсқайды, өзі осы ... ... ... Яғни, жазба құрылымы өзін-өзі
арқылы анықтайды.
Қызметкер (аты, бөлімі, қызметі, айлық, қызметкер).
Жаңа процедураның бірінші аргументі ... ... ... ... төрт ... ... jumus_isteydi ( )
құрылымы болып табылады. Бұл процедураның екінші ... ... ... ... ... өзі ... табылады. Процедура екі
ережеден тұрады. Оның бірінші рекурсивті берілгендер құрылымының жоғарғы
дәрежесіндегі jumus_isteydi ( ) ... ... ... ереже рекурсивті
құрылымның жоғарғы дәрежесін елемейді және берілгендер ... ... ... ... ... алады.
jazba (jumus_isteydi (Ati, Office, Kіzmeti, Aylik)).
jumus3 (Ati, Office, Kіzmeti, Aylik, nextjazba).
jazba (jumus_isteydi (Ati, Office, Kіzmeti, ... (Ati, Office, ... Aylik, ... -
- jumus3 (jazba (jumus_isteydi (Ati, Office, Kіzmeti, Aylik,
nextjazba))).
jazba ( ) ... ... 101 ... ... ... ... ... мақсатын ұйымдастыруға болады. ... қоры ... ... ... ... jazba ... (Ati, 101, ... Aylik).
jumus3 («Айдаров», 101, «оператор», 20000).
jumus3 («Мамыров», 211, «меңгеруші», 70000).
jumus3 («Айдосов», 101, ... 60000, еnd ... ... ... мынадай түрде беріледі:
Ati = Айдаров
Kizmeti = оператор
Aylik = 20000
Ati = Айдосов
Kizmeti = менеджер
Aylik = 60000
Сұраныстың print_101 ішкі мақсатын ... ... ... ... = ... = integer
jumus_isteydi = jumus_isteydi (ati, office)
jumus3 = jumus3 (ati, office, jumus3); end
predicates
print_101
jazba (jumus_isteydi (A,0), jumus3(A,0,_))
jazba (jumus_isteydi (A,0), ... - jazba ... - write («101 ... ... nl, ... ... («Айдаров», 101),
jumus3 («Мамыров», 211),
jumus3 («Айдосов», 101,end), write (А), nl, fail.
Бұл программа сызықты рекурсивті ... ... jumus3 ( ... қорымен жұмыс істейді.
PROLOG ТІЛІНДЕ МАТЕМАТИКАЛЫҚ ЕСЕПТЕРДІ ЕСЕПТЕУ
1 - есеп. Екі бүтін санның ең үлкенін табу.
domains
X,Y,Z = integer
predicates
max (X,Y,Z) max ... (X,Y,Z): - X>=Y, X = ... (X,Y,Z): - X
Похожие работы

TURBO PASCAL тілі туралы негізгі түсініктер 28 бет
Ерте жастан ағылшын тілін оқытудың маңызы және оның ерекшеліктері 38 бет
Бағдарламалау тілдері пәнінен жасалған электронды курсқа интерактивтілік кіргізу 27 бет
Тұжырымдар алгебрасы 41 бет
DELPHI ортасында мәліметтер қорымен жұмыс 39 бет
Ана тілі сабақтарында сын тұрғысынан ойлау жобасын қолдану арқылы оқушылардың тілін дамыту 55 бет
9 сынып химия пәні бойынша аймақтық компоненттердің мазмұнын анықтау 16 бет
WINDOWS жүйесіндегі жұмыс істеу негіздері 24 бет
Екінші деңгейдегі банктерде жеке тұлғаларды несиелеу қызметін талдау 70 бет
Интернетте программалау 68 бет

 группа сайтов Stud.kz
2008-2014 Создание сайта - cтудия Riskk | 0.2630

^