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)
|
N=3,
Res=R
|
Next_N=N-1=2
|
R=N*P
|
Res=R=3*2=6
|
Fact(2, P)
|
N’=2,
P=R
|
Next_N=N-1=1
|
R=N*P
|
P=R=2*1=2
|
Fact(1, P)
|
1=1,
P=1
|
|
|
|
Бірінші қадамда fact(3,Res) мақсатты сұраныс орындалады және шешімнің I-вариант ы таңдалады: fact(1,1) ережесі fact(3, Res) сәйкестеледі де табыссызбен аяқталады, өйткені 3?1. 2-ереже таңдалады да оған N=3, Res=3 сәйкестеледі. Ереже денесі стекке орнықтырылып предикаттарды өңдей бастайды. Бірінші - салыстыру Next_N=N-1=2 орындалады, содан соң fact(2,P) шақырылады. Қайтадан ереженің алғашқы элементі таңдалады. 1?2 сәйкестігі табыссыздыққа әкеледі, ереженің 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) предикат болып шығады.
KF 12-06-05
Жеке тапсырмалар
1. Келесі қатынасты жазыңыз: логикалық операция ЭКВИВАЛЕНТ (операция нәтижесі 1, егер сандар бірдей болса), ИМПЛИКАЦИЯ (операция нәтижесі 0, егер А=1, В=0, қалған жағдайларда 1).
2. Жылды анықтайтын қатынасты жазыңыз.
3. Келесі қатынасты жазыңыз: оң сандар, теріс сандар.
4. Келесі қатынасты жазыңыз: жұп, тақ сандар.
5. Келесі қатынасты жазыңыз: 3 пен 9 –ға бөлінетін сандар.
6. Туылған жылы бойынша жасты және жыл атын (мысалы, жылан) анықтаңыз.
7.Туылған жылы бойынша жұлдызын анықтаңыз.
8. Тіктөртбұрыш (Р1, Р2, Р3, Р4) терммен берілсін, мұндағы Р- реттелген тіктөртбұрыш төбелері. (R) қатынасын анықтаңыз, егер R-тіктөртбұрыш вертикаль және горизонталь қабырғалы болса.
9. Квадрат термін жазыңыз.
10. 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,үш).
11.Ромб қатынасын жазыңыз.
12.Шеңбер қатынасын жазыңыз..
13.Параллелограм қатынасын жазыңыз..
14.Параллель түзулер қатынасын жазыңыз..
15.Қиылысатын түзулер қатынасын жазыңыз..
16. Келесі қатынасты жазыңыз: логикалық операция ЖӘНЕ, НЕМЕСЕ.
Бақылау сұрақтары
1. Рекурсивтік есептеулер
2. Программаны орындаудағы әрекеттер:
Қорытынды: Роботтың келешекте дамуы.
5 Зертханалық сабақ
Тақырыбы: Арифметикалық өрнектер
Сабақтың мақсаты: Студенттерге арифметикалық өрнектермен бағдарламада жұмыс жасауды үйрету.
Теориялық мағлұматтар:
Теориядан қысқаша мәлімет:
Арифметикалық өрнек сан немесе құрылым болып табылады. Құрылымға бір немесе бірнеше компонент енеді. Мысалы, сандар, арифметикалық операторлар, арифметикалық тізімді өрнектер, айнымалылар, унарлы функторлар, функторлар, түрлендірулер және арифметикалық функторлар.
Құзреттіліктері - ПҚ2, ПҚ3,ПҚ4.
KF 12-06-05
Зертханалық жұмыстарға қажетті жабдықтар – Компьютер құрылғылары мен бағдарламалары
Жұмыстың орындалу реті :
Арифметикалық өрнектерді шешу
Мысалдарды жүзеге асыру
Жұмыстың нәтижесін өңдеу: Өрнектер мен жұмыс:
Арифметикалық өрнектер
Арифметикалық операторлар: +, -, *, /, mod, div.
Салыстыру операциялары: >, <, =, >=,<=,<>,><.
Функциялар: sin, cos, tan, arctan, ln, log, exp, sqrt, round, trunc, abs
Мысал 1. Есептеңіз:
DOMAINS
X, Y, Z = integer
PREDICATES
Z(X,Y)
CLAUSES
Z(X,Y):-Y=X*COS(X), X>=5;
Y=TAN(X).
GOAL
clearwindow, write(“Input X: ”), readint(X), Z(X,Y), write(“Z(”,X,”)=”,Y)
Стандартты предикатты пайдаланып, есептеңіз:
|
|
Достарыңызбен бөлісу: |