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

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Бұл жұмыстың бағасы: 400 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
DELPHI ПРОГРАММАЛАУ ОРТАСЫ34 бет
Turbo pascal тілі12 бет
TURBO PASCAL тілі туралы негізгі түсініктер28 бет
Алгоритм түсінігі25 бет
Дельфи программалау ортасы26 бет
Жасанды интеллект жүйесіндегі аспаптық құрылғылар27 бет
Информатика пәні, объектілері және құрама бөліктері56 бет
Мәліметтердің динамикалық құрылымы25 бет
Операторлар және ішкі программалар (Delphi программалау ортасы)22 бет
8 Ферзі21 бет

Пәндер

Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами
Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: +7 777 614 50 20
Жабу / Закрыть
Көмек / Помощь