Основы языка C# 2005. Евсеева О.Н - 93 стр.

UptoLike

Составители: 

97
A(out u, 7);
A(out v, 7.5);
Console.WriteLine("u= {0}, v= {1}", u, v);
A(out v, 7);
Console.WriteLine("v= {0}", v);
A(out u, 7, 11, 13);
A(out v, 7.5, Math.Sin(11.5) + Math.Cos(13.5), 15.5);
Console.WriteLine("u= {0}, v= {1}", u, v);
} //TestLoadMethods
На рис. 21 показаны результаты этого тестирования.
Рисунок 21. Тестирование перегрузки методов
6.5. Рекурсия
Рекурсия является одним из наиболее мощных средств в арсенале
программиста. Рекурсивные структуры данных и рекурсивные методы широко
используются при построении программных систем. Рекурсивные методы, как
правило, наиболее всего удобны при работе с рекурсивными структурами
данныхсписками, деревьями. Рекурсивные методы обхода деревьев служат
классическим примером. Метод P называется рекурсивным, если при
выполнении тела метода происходит вызов метода P.
Рекурсия может быть прямой, если вызов P происходит непосредственно
в теле метода P. Рекурсия может быть косвенной, если в теле P вызывается
метод Q (эта цепочка может быть продолжена), в теле которого вызывается
метод P.
Для того чтобы рекурсия не приводила к зацикливанию, в тело
нормального рекурсивного метода всегда встраивается оператор выбора, одна
из ветвей которого не содержит рекурсивных вызовов. Если в теле
рекурсивного метода рекурсивный вызов встречается только один раз, значит,
что рекурсию можно заменить обычным циклом, что приводит к более
эффективной программе, поскольку реализация рекурсии требует временных
затрат и работы со стековой памятью.