Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Clearwindow, med(1,2,3,4,3,5)
№2 Зертханалық жұ мысқ а тапсырмалар:
1. Келесі салыстыру операциялары табысты немесе табыссыз бола ма? a) нү кте(А, В)= нү кте(1, 2) б) нү кте(А, В)=нү кте(Х, У, Z) с) плюс(2, 2)=4 е) ү шбұ рыш(нү кте(-1, 0), Р2, Р3)=ү шбұ рыш(Р1, нү кте(1, 0), нү кте(0, У)) Бекітулерді тексеру ү шін бағ дарлама қ ұ ру. Осы бө лімде қ олданылғ ан кесінді кө рсетілімін пайдалану, тең бү йірлі ү шбұ рыш ү шін терм жазу. 2. Кесінді кө рсетілімін пайдаланып, х=5 вертикальды тү зуіне, х=10 горизонтальды тү зуіне сә йкес келетін кез келген кесіндіні анық тайтын терм жаз. 3.Тіктө рбұ рыш келесі терммен кө рсетілген тіктө рбұ рыш(Р1, Р2, Р3, Р4), мұ ндағ ы, Р- тіктө рбұ рыш тө белері, оң ымен реттелген. Регулярлы(R) қ атынасын анық таң ыз, егер R – вертикальды жә не горизонтальды жақ тары бар тіктө рбұ рыш. 4. Квадрат термін жазың ыз. 5. Тө ртбұ рыш термін жазың ыз. 6.Тікбұ рышты ү шбұ рыш термін жазың ыз. 7. Келесі бағ дарламаны қ арастырайық: f(1, бір). f(s(1), екі). f(s(s(1)), ү ш). f(s(s(s(X))), N): -f(X, N). пролог-жү йе келесі сұ рақ тарғ а қ алай жауап қ айтарады: а) f(s(1), A). b) f(s(s(1)), екі). с) f(s(s(s(s(s(s(s(1))))))), С). d) f(D, ү ш). 8. Келесі бағ дарламада екі адам туысқ андар болып табылады, егер: а) біреуі екіншісінің ата-бабасы болып табылады, немесе б) олардың ата-бабасы бір, немесе с) олардың ұ рпағ ы бір. туыстар(Х, У): -ата-баба(Х, У). туыстар(Х, У): - ата-баба(У, Х). туыстар(Х, У): - ата-баба(Z, Х), ата-баба (Z, У). туыстар(Х, У): - ата-баба(Х, Z), ата-баба (У, Z). Нү ктелі ү тірді қ олданбай, осы бағ дарламаны қ ысқ артуғ а бола ма? Келесі бағ дарламаны нү ктелі ү тірсіз жазып шығ ың ыз. тү рлендіру(Сан, Сө з): - Сан=1, Сө з=бір; Сан=2, Сө з=екі; Сан=3, Сө з=ү ш; 9. Бағ дарлама берілген: ү лкен(аю). ү лкен(піл). кіші(мысық). қ оң ыр(аю). қ ара(мысық). сұ р(піл). қ араң ғ ы(Z): -қ ара(Z). қ араң ғ ы(Z): -қ оң ыр(Z). Сұ рақ тарғ а жауап іздеу қ алай жү зеге асады: ? -қ араң ғ ы(X), ү лкен(X).%Кім қ араң ғ ы жә не ү лкен? ? -ү лкен(X), қ араң ғ ы(X).%Кім ү лкен жә не қ араң ғ ы? Осы сұ рақ тың қ айсысы орындалғ анда жү йе ү лкен жұ мыс атқ арады? Экранғ а барлық ү лкен, орташа жә не кіші жануарлармен қ ұ старды шығ ару. Жануарлар мен қ ұ стардың шамасы қ атынасын анық тау. 10. Ромб қ атынасын жаз. 11. Жартылай шең бер қ атынасын жаз. 12. Параллелограмм ү шін терм жаз. 13. Параллельді тү зу қ атынасын жаз. 14. Қ иылысатын тү зу қ атынасын жаз. 15. ЖӘ НЕ логикалық операциясы, НЕМЕСЕ логикалық операциясы қ атынасын анық таң ыз. 16. Қ атынасты анық таң ыз: ЕМЕС, НЕМЕСЕ-алып тастайтын (операция нә тижесі бірге тең, егер сандар бірдей болмаса) логикалық операциялары. 17. Қ атынасты анық таң ыз: ЭКВИВАЛЕНТТІ (операция нә тижесі бірге тең, егер сандар бірдей болса) логикалық операциясы, ИМПЛИКАЦИЯ (операция нә тижесі 0-ге тең, егер А=1, В=0, қ алғ ан жағ дайда нә тиже 1- ге тең) логикалық операциясы. 18. 0- ден 9- ғ а дейінгі сандарды анық тайтын қ атынасты анық та, кез келген пернетақ тадан енгізілген сан экранда жазба тү рінде кө рсетілу керек. 19. Жылды (жазба тү рінде) анық тау ү шін қ атынасты анық та. 20. Ай қ атынасын анық та, кез келген пернетақ тадан енгізілген ай саны экранда ай атымен бейнелену керек. 21. Қ атынасты анық та: оң сандар, теріс сандар. 22. Қ атынасты анық та: жұ п, тақ сандар. 23. Қ атынасты анық та: 3 жә не 9- ғ а бө лінетін сандар. 24. Туғ ан жылына байланысты жасын анық тау, сонымен бірге, жыл атын анық тау (мысалы: жылан жылы). 25.Туғ ан кү ніне байланысты зодиак белгісін анық тау.
Зертханалық жұ мыс№3 РЕКУРСИВТІК ЕСЕПТЕУЛЕР. АРИФМЕТИКАЛЫҚ Ө РНЕКТЕР
3.1.Есептеулерді басқ ару 3.1. Есептеулерді басқ ару
Есептеу процесін басқ арудың негізгі қ ұ ралдары fail жә не!. Fail предикаттары болып табылады – табысты емес, сә тсіз.! -кесу. Табысты емес бағ дарламасына мысал:
Мысал 1. Екінші курс студенттері туралы ақ паратты экранғ а шығ ару.
DOMAINS st=student(fam, pr, oc) fam, pr=symbol num, oc=integer g=gr(num, st) PREDICATES kurs_22(g) CLAUSES kurs_22(gr(261, student(“Горшенин”, ”Бағ дарламалау”, 5))). kurs_22(gr(261, student(“Анаркулов ”, ”Операциялық жү йелер”, 5))). kurs_22(gr(261, student(“Кулманов”, ”Басқ ару жү йелері”, 4))). kurs_22(gr(262, student(“Отарбаева”, ”Бағ дарламалау”, 5))). kurs_22(gr(261, student(“Аносов”, ”Басқ ару жү йелері”, 4))). kurs_22(gr(261, student(“Тайжанов”, ”Шет тілі”, 5))). kurs_22(gr(261, student(“Сейсенов”, ”Операциялық жү йелер”, 5))). GOAL clearwindow, kurs_22(X), write(X)
мұ ндағ ы, write(X)-экранғ а айнымалының мә нін шығ аруды білдіретін жү йелік предикат. Осы сауалдың нә тижесінде бірінші сә йкес шешім табылады. Пролог қ ойылғ ан сұ рақ қ а барлық жауапты табу ү шін, альтернативтік шешімдердің циклдік ауысуын қ алыптастыру керек. Мұ ның бірнеше ә дісі бар, соның бірі, Прологтың қ асиетін қ олданатын, ағ ымдық іздеу табыссыз болғ ан жағ дайда альтернативтік шешімді іздеу ә дісі. Бұ л жағ дайда Пролог жақ ын альтернативті шешімге шегінеді, бастапқ ы іздеу шартын орнына келтіреді жә не процесс жаң а табылғ ан альтернативамен қ айтадан басталады. Ол ү шін ә рқ ашан табыссыз аяқ талатын жә не ең жақ ын альтернативағ а шегінуді шақ ыратын fail қ олданылады. GOAL бө лімінде барлық фактілердің асып кету мақ сатына арналғ ан қ осымша fail предикатын жазамыз:
clearwindow, kurs_22(X), write(X), nl, fail /* nl-жаң а қ атарғ а ө туді білдіреді */ 3.2. Рекурсивтік есептеулер
Ереженің рекурсивтік анық тамасы ө з денесінде сол ереженің тақ ырыбына бағ ытталғ ан сілтемеден тұ рады. Рекурсияның бірнеше варианттары бар: 1.Оң рекурсия. Pr1(): - pr11(), pr12(), …, pr1(). 2.Сол рекурсия. Pr1(): -pr1(), …, pr11(), pr12(). 3.Жалпылама рекурсия. Pr1(): - pr11(), pr12(), …, pr1(), …, pr21(), pr22(). Рекурсивтік ереже орындалу барысында циклденуден сақ тану ү шін рекурсияның аяқ талу шартын қ арастыру қ ажет. Мұ ны екі жолмен жү зеге асыруғ а болады: 1.Бағ дарламадағ ы альтернативтік ереже тапсырмасы немесе pr1() факторы, рекурсиядан тұ рмайды. Шығ у рекурсивтік ереже табысты аяқ талғ ан соң орындалады.. 2.Предикаттардың біреуінің шығ у шартының қ алыптасуы, табыссыз аяқ талуы керек. pr21(), pr22() предикаттары рекурсия орындалуына ә сер етпейді. Олар рекурсиядан шық қ аннан кейін орындалады жә не рекурсия орындалу барысында стекке орналастырылғ ан айнымалылардың мә ндеріне ие болады. Бұ л жағ дайдағ ы орындалатын есептеулер кванттық деп аталады. Мысал 1. Рекурсивтік есептеулерді қ олданып, факториал n! табу. DOMAINS Number, Product = integer PREDICATES Fact(Number, Product) CLAUSES Fact (1, 1): -!. Fact(N, R): -Next_N=N-1, Fact(Next_N, P), R=N*P. GOAL Fact (3, Res), write (“Факториал 3=”, Res), nl.
Бағ дарлама орындалу барысындағ ы ә рекеттер:
Бірінші қ адамда fact(3, Res) мақ сатты сауал орындалады жә не I-ші шешім варианты таң далады: fact(1, 1) ережесі fact(3, Res) салыстырылады-салыстырылу табыссыз аяқ талады, ө йткені, 3? 1. Шегіну болады жә не екінші ереже таң далады, ол ү шін ереже тақ ырыбын салыстыру табысты аяқ талады. Онда N=3, Res=3 ауыстырулары орындалады. Ереже денесі стекке орналастырылады жә не денесіндегі предикаттар ө ң деле бастайды. Олардың біріншісі - Next_N=N-1=2 салыстыру, одан кейін fact(2, P) шақ ыру инициализацияланады. Қ айтадан ереженің бірінші варианты таң далады. 1? 2 салыстыруы табыссыз аяқ талады, шегіну орындалады жә не ереженің екінші варианты таң далады. Мұ нда ереже тақ ырыбымен салыстыру табысты аяқ талады. N=2, P=R ауысуы орындалады. Ереженің жаң а кө шірмесі стекке орналасады жә не оның орындалуы басталады. Олардың біріншісі Next_N=N-1 табысты аяқ талады. Айнымалының кө шірмесі Next_N 1-ге тең болады. Одан кейін fact(1, P) шақ ырылады. Тағ ы да бірінші ережемен салыстыру орындалады жә не ол табысты аяқ талады. Ауыстырулар келесідей болады: 1=1, P=1. i-інші ереже денесі бос болғ андық тан, ешқ андай ә рекет орындалмайды. Бағ дарлама рекурсиядан шық қ ан соң, соң ғ ы есептеулер жү ргізіледі, яғ ни, стектегі екінші ереже кө шірмесінен қ алғ ан қ алдық орындалады. Осы есептеулер нә тижесінде Res айнымалысы 6 жаң а мә ніне ие болады, сосын ол предикат арқ ылы экранғ а шығ арылады write(“Res=”, Res). Бірінші бекітуде онда кесу (!) бар, ол fact(1, Res) сауалы қ ойылғ ан кезде пайдаланылады, яғ ни, 1! есептегенде, Res айнымалысы 1 мә нін қ абылдайды. Мұ нда екінші ереже кесіледі. Бұ л жағ дайда бірінші ереже циклденуге жә не қ атеге ә келмейді. Бағ адарлама дұ рыс жұ мыс жасау ү шін, clauses бө лімінде fact(0, Res) сауалы ү шін тағ ы бір бекіту енгізу керек: fact(0, 1): -!. 3.3. Арифметикалық ө рнектер
Арифметикалық ө рнек сан немесе қ ұ рылым болып табылады. Қ ұ рылымғ а бір немесе бірнеше компонент кіруі мү мкін. Мысалы, сандар, арифметикалық операторлар, арифметикалық тізімдік ө рнек, арифметикалық ө рнекпен нақ тыланғ ан айнымалылар, унарлық функторлар, тү рлендіру жә не арифметикалық функторлар болуы мү мкін.
Арифметикалық операторлар: +, -, *, /, mod, div – Прологтың қ арапайым атомдары жә не олар кез келген контексте қ олданыла береді. Салыстыру операциялары: >, <, =, > =, < =, < >, > <. Функциялар: sin, cos, tan, arctan, ln, log, exp, sqrt, round, trunc, abs
№3 Зертханалық жұ мысқ а мысалдар: Мысал 1. Екінші курс студенттері туралы ақ паратты экранғ а шығ ару
Мысал 1. Екінші курс студенттері туралы ақ паратты экранғ а шығ ару.
|