Процедура или функция может содержать внутри себя вызов другой процедуры. В том числе, подпрограмма может вызывать саму себя. В этом случае компьютеру все равно. Он так же, как и всегда последовательно сверху вниз выполняет те команды, которые ему встретились. Если вспомнить математику, то там можно встретить принцип математической индукции. Он заключается в следующем: некоторое утверждение справедливо для всякого натурального n, если 1) оно справедливо для n = 1; 2) из справедливости утверждения для какого-либо произвольного натурального n = k следует его справедливость для n = k+1. В программировании этот прием называют рекурсией. Рекурсия - это способ определения множества объектов через само это множество на основе заданных простых базовых случаев. Рекурсивной же будет называться процедура (функция), которая вызывает саму себя напрямую или через другие процедуры и функции. Пример рекурсивной процедуры:
void Rec(int a) { if (a>0) { Rec(a-1); } Console.WriteLine(a); }
Rec()
using System;
class Program
{
static void Rec(int a)
if (a > 0) { Rec(a); }
Console.WriteLine(a);
}
static void Main()
// оформите ввод значения целой переменной a с клавиатуры
// вызовите процедуру Rec(), передав в качестве параметра значение переменной, которую ввели
1000 ms 32 Mb Правила оформления программ и список ошибок при автоматической проверке задач