Мои дипломная, курсовые и контрольные работы можно скачать со страницы "Учёба"
Контрольная разбита на страницы →
→ Пролог: вычисление факториала, члена ряда, скорости схождения
→ Пролог: вычисление степени, члена ряда, скорости схождения
→ Пролог: удаление чётных чисел и замена строчных букв
→ Лисп: вычисление факториала, члена ряда, скорости схождения
→ Лисп: вычисление степени, члена ряда, скорости схождения
Эта контрольная запомнилась больше всего, как самая загадочная. Главная загадочность в ней язык программирования Пролог. В своё время этот язык задумывался для сближения машинного языка с человеческой логикой.
Но то, что получилось в результате, оказалось довольно сложным для понимания именно людьми. В листинге программ на прологе нет привычной последовательности операций или циклов, в программах только условия... → Далее → Пролог: вычисление степени, члена ряда, скорости схождения
Задание. Написать предикаты на языке Пролог.
а) вычисление факториала.
fact(3,X)
Х=6
Программа вычисления простого факториала по восходящей стратегии рекурсии:
predicates
fact(integer,integer)
f(integer,integer,integer,integer)
clauses
fact(N,F):-f(N,F,1,1).
f(N,F,N,F):-!.
f(N,F,N1,F1):-N11=N1+1,
F11=F1*N11,
f(N,F,N11,F11).
Dialog
Goal: fact(3,X)
X=6Программа вычисления факториала из формулы: (2k-1)!
predicates
f(integer,real,integer,real)
fact(integer,real)
clauses
fact(N,F):-f(N,F,1,1).
f(N,F,Z,F):-Z=2*N-1,!.
f(N,F,N1,F1):-N11=N1+1,
F11=F1*N11,
f(N,F,N11,F11).
Dialog
Goal: fact(3,X)
X=120
б) вычисление n-ого члена ряда
ряд (2, Х)
predicates
f(integer,real,integer,real)
fun(integer,real)
clauses
fun(N,X):-f(N,F,1,1),
X=1/F.
f(N,F,Z,F):-Z=2*N-1,!.
f(N,F,N1,F1):-N11=N1+1,
F11=F1*N11,
f(N,F,N11,F11).
Dialog
Goal: fun(2,X)
X=0,16666666667
в) вычисление скорости схождения ряда
точность
Количество шагов, за которые достигается точность
Скорость (0.01, N)
predicates
f(integer,real,integer,real,real)
skor(real,integer)
clauses
skor(T,N):-f(N,_,1,1,T).
f(N,F,X,F,T):-N=(X+1)/2, T>1/F,!.
f(N,F,N1,F1,T):-N11=N1+1,
F11=F1*N11,
f(N,F,N11,F11,T).
Dialog
Goal: Skor(0.00001,H)
H=5
1 Solution
Goal: Skor(0.01,H)
H=3
1 Solution
Далее → Пролог: вычисление степени, члена ряда, скорости схождения