Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Program Factorial;



Var

N: Integer;

function Fact (i: Integer): Longint;

Begin

if i = 1 then Fact:= 1

else Fact:= i * Fact (i-1)

End;

Begin

Write ('Введите число n: ');

Readln (n);

Writeln ('Факториал n! = ', Fact(n));

End.

Содержание и мощность рекурсивного определения, а также главное назначение, состоит в том, что оно позволяет с помощью конечного выражения определить бесконечное множество объектов. Аналогично, с помощью конечного рекурсивного алгоритма можно определить бесконечное вычисление, причем алгоритм не будет содержать повторений фрагментов текста.

Для создания рекурсивных алгоритмов необходимо и достаточно наличие понятия процедуры или функции. Это вытекает из того, процедуры и функции позволяют дать любой последовательности действий (операторов) имя, с помощью которого можно будет эту последовательность действий вызывать.

Например, следующая процедура будет бесконечно печатать известные всем строки:

Program EndLess1;

Procedure PopeAndDog1;

Begin

Writeln('У попа была собака, он ее любил.');

Writeln('Она съела кусок мяса, он ее убил,');

Writeln('похоронил и надпись написал:');

PopeAndDog1

End;

Begin

PopeAndDog1

End.

Однако если оператор вызова процедуры поставить перед выводом текста, как показано ниже:

Program EndLess2;

Procedure PopeAndDog2;

Begin





Дата публикования: 2014-12-08; Прочитано: 194 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...