Изучение явления "рекурсия"

Страницы работы

Содержание работы

Отчёт по лабораторной работе №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-х.

Я

 
 

Похожие материалы

Информация о работе