Отчёт по лабораторной работе №1
«Рекурсия»
Выполнил: Дадаев Е. О.
Задание 1
Расчёт факториала
predicates
fact(integer, integer) /* объявление переменной fact, тип данных числовой,
сравниваются 2 числа исходное и получаемое число
в результате вычислений */
clauses
fact(1,1):- !. % правило для нахождения факториала, если N=1 то факториал равен 1
fact(X,F1):- Y=X-1, fact(Y, F2), F1=X*F2, % описывается нахождение факториала с возвратом
write (X), nl. % запрос на ввод начального значения для X
write (Введите:), nl.
goal
readint (X), % ввод числа
fact(X,Y). % вывод результатов, где X начальное число, Y конечное число
Задание 2
Н-юродная племянница
Domains
X = string
Z = integer
Predicates
nondeterm родитель (X,X)
nondeterm ребенок (X,X)
nondeterm брат_сестра (X,X)
nondeterm племянница (X,X,Z)
Clauses
родитель ("Гоша","Марина").
родитель ("Марина","Ярослав").
родитель ("Ярослав","Таня").
брат_сестра ("Марина","Таня").
брат_сестра ("Гоша","Олеся").
брат_сестра ("Ярослав","Вячеслав").
брат_сестра ("Таня","Боря").
ребенок ("Таня","Света").
ребенок ("Света","Дарья").
ребенок ("Олеся","Юля").
ребенок ("Вячеслав","Лариса").
ребенок ("Лариса","Елена").
ребенок ("Елена","Женя").
ребенок ("Женя","Александра").
ребенок ("Боря","Наталья").
ребенок ("Наталья","Слава").
ребенок ("Слава","Екатерина").
племянница (N,X,1) :- брат_сестра (N,Q), ребенок (Q,X).
племянница (N,X,Z) :- родитель (N,Q), P = Z - 1, племянница (Q,X1,P), ребенок (X1,X).
Goal
племянница ("Таня",X,1).
%1-родная племянница
%2-2юродная племянница и т.д. до 4-х.
|
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.