Процедура или функция может содержать внутри себя вызов другой процедуры. В том числе, подпрограмма может вызывать саму себя. В этом случае компьютеру все равно. Он также как и всегда последовательно сверху вниз выполняет те команды, которые ему встретились. Если вспомнить математику, то там можно встретить принцип математической индукции. Он заключается в следующем: Некоторое утверждение справедливо для всякого натурального n, если 1. оно справедливо для n = 1 и 2. из справедливости утверждения для какого-либо произвольного натурального n = k следует его справедливость для n = k+1. В программировании этот прием называют рекурсией Рекурсия - это способ определения множества объектов через само это множество на основе заданных простых базовых случаев. Рекурсивной же будет называться процедура (функция), которая вызывает саму себя напрямую или через другие процедуры и функции Пример рекурсивной процедуры:
Рекурсия - это способ определения множества объектов через само это множество на основе заданных простых базовых случаев.
Рекурсивной же будет называться процедура (функция), которая вызывает саму себя напрямую или через другие процедуры и функции
procedure Rec(a: integer); begin if a > 0 then Rec(a - 1); write(a); end;
глубиной рекурсии
1. опишите переменную целого типа, например a
procedure Rec(a: integer);
begin
if a > 0 then
Rec(a - 1);
write(a);
end;
2. оформите ввод значения переменной с клавиатуры
3. вызовите процедуру Rec(), передав в качестве параметра, значение переменной, которую ввели
end.
1000 ms 32 Mb Правила оформления программ и список ошибок при автоматической проверке задач