🗊Презентация Рекурсивные функции

Нажмите для полного просмотра!
Рекурсивные функции, слайд №1Рекурсивные функции, слайд №2Рекурсивные функции, слайд №3Рекурсивные функции, слайд №4Рекурсивные функции, слайд №5Рекурсивные функции, слайд №6Рекурсивные функции, слайд №7Рекурсивные функции, слайд №8Рекурсивные функции, слайд №9Рекурсивные функции, слайд №10

Вы можете ознакомиться и скачать презентацию на тему Рекурсивные функции. Доклад-сообщение содержит 10 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Рекурсивные 
функции
Описание слайда:
Рекурсивные функции

Слайд 2





Рекурсивная (самовызываемая) это функция, которая прямо или косвенно вызывает сама себя. 
Рекурсивная (самовызываемая) это функция, которая прямо или косвенно вызывает сама себя. 
В косвенно рекурсивной функции находится обращение к другой функции, содержащей прямой или косвенный вызов первой. 
Если в функции используется ее вызов, то это прямая рекурсия.
 При каждом обращении к рекурсивной функции в памяти создается новый набор объектов, использующихся в ее коде.
Описание слайда:
Рекурсивная (самовызываемая) это функция, которая прямо или косвенно вызывает сама себя. Рекурсивная (самовызываемая) это функция, которая прямо или косвенно вызывает сама себя. В косвенно рекурсивной функции находится обращение к другой функции, содержащей прямой или косвенный вызов первой. Если в функции используется ее вызов, то это прямая рекурсия. При каждом обращении к рекурсивной функции в памяти создается новый набор объектов, использующихся в ее коде.

Слайд 3





Рекурсивные алгоритмы эффективны в задачах, где рекурсия присутствует в определении обра-батываемых данных, поэтому они чаще всего используются для динамических данных с рекурсивной структурой (линейные и нелиней-ные списки). 
Рекурсивные алгоритмы эффективны в задачах, где рекурсия присутствует в определении обра-батываемых данных, поэтому они чаще всего используются для динамических данных с рекурсивной структурой (линейные и нелиней-ные списки). 
В рекурсивных функциях необходимо выполнять следующие правила:
– при каждом вызове в функцию передавать измененные данные (параметры);
– рекурсивный процесс шаг за шагом должен упрощать задачу так, чтобы для нее появилось нерекурсивное решение.
Описание слайда:
Рекурсивные алгоритмы эффективны в задачах, где рекурсия присутствует в определении обра-батываемых данных, поэтому они чаще всего используются для динамических данных с рекурсивной структурой (линейные и нелиней-ные списки). Рекурсивные алгоритмы эффективны в задачах, где рекурсия присутствует в определении обра-батываемых данных, поэтому они чаще всего используются для динамических данных с рекурсивной структурой (линейные и нелиней-ные списки). В рекурсивных функциях необходимо выполнять следующие правила: – при каждом вызове в функцию передавать измененные данные (параметры); – рекурсивный процесс шаг за шагом должен упрощать задачу так, чтобы для нее появилось нерекурсивное решение.

Слайд 4





Пример 1. Заданы два числа a и b, большее из них разделить на меньшее, используя рекурсию.
Пример 1. Заданы два числа a и b, большее из них разделить на меньшее, используя рекурсию.
	double fun_rec (double, double);
	void main (void)
	{
		double a, b;
		cout << “ Input a, b : ”;
		cin >> a >> b;
		cout << “ Result =  ” << fun_rec (a, b) << endl;
	}
Описание слайда:
Пример 1. Заданы два числа a и b, большее из них разделить на меньшее, используя рекурсию. Пример 1. Заданы два числа a и b, большее из них разделить на меньшее, используя рекурсию. double fun_rec (double, double); void main (void) { double a, b; cout << “ Input a, b : ”; cin >> a >> b; cout << “ Result = ” << fun_rec (a, b) << endl; }

Слайд 5





double fun_rec ( double a, double b)   {
double fun_rec ( double a, double b)   {
		if ( a < b ) return fun_rec ( b, a );
		else  return a / b;
}
Если a ≥ b, условие не выполняется и функция возвращает нерекурсивный результат a / b.
Если условие выполнилось, то функция fun_rec обращается сама к себе, аргументы в вызове меняются местами и последующее обращение приводит к тому, что условие снова не выпо-лняется и функция возвращает нерекурсивный, фактически равный b / a.
Описание слайда:
double fun_rec ( double a, double b) { double fun_rec ( double a, double b) { if ( a < b ) return fun_rec ( b, a ); else return a / b; } Если a ≥ b, условие не выполняется и функция возвращает нерекурсивный результат a / b. Если условие выполнилось, то функция fun_rec обращается сама к себе, аргументы в вызове меняются местами и последующее обращение приводит к тому, что условие снова не выпо-лняется и функция возвращает нерекурсивный, фактически равный b / a.

Слайд 6





Пример 2. Функция для вычисления факториала неотрицательного значения k (для отрица-тельных значений можно добавить проверку до вызова функции):
Пример 2. Функция для вычисления факториала неотрицательного значения k (для отрица-тельных значений можно добавить проверку до вызова функции):
	double fact_rec (int k)  {
		if ( k < 2 ) return 1;
		else
			return   k * fact_rec ( k – 1);
	}
Описание слайда:
Пример 2. Функция для вычисления факториала неотрицательного значения k (для отрица-тельных значений можно добавить проверку до вызова функции): Пример 2. Функция для вычисления факториала неотрицательного значения k (для отрица-тельных значений можно добавить проверку до вызова функции): double fact_rec (int k) { if ( k < 2 ) return 1; else return k * fact_rec ( k – 1); }

Слайд 7





Для значений k < 2 (напомним, что 0! = 1) функция возвращает 1, в противном случае вызывается та же функция с измененным параметром (k – 1) и результат умножается на текущее значение k. 
Для значений k < 2 (напомним, что 0! = 1) функция возвращает 1, в противном случае вызывается та же функция с измененным параметром (k – 1) и результат умножается на текущее значение k. 
Процесс выполняется до тех пор пока очередное уменьшенное на 1 значение k не станет меньше 2 и не приведет не к очередному вызову, а к выходу из функции, т.е. не выполнится 
				if ( k < 2 ) return 1;
Описание слайда:
Для значений k < 2 (напомним, что 0! = 1) функция возвращает 1, в противном случае вызывается та же функция с измененным параметром (k – 1) и результат умножается на текущее значение k. Для значений k < 2 (напомним, что 0! = 1) функция возвращает 1, в противном случае вызывается та же функция с измененным параметром (k – 1) и результат умножается на текущее значение k. Процесс выполняется до тех пор пока очередное уменьшенное на 1 значение k не станет меньше 2 и не приведет не к очередному вызову, а к выходу из функции, т.е. не выполнится if ( k < 2 ) return 1;

Слайд 8





Схема выполнения функции fact_rec
Схема выполнения функции fact_rec
Описание слайда:
Схема выполнения функции fact_rec Схема выполнения функции fact_rec

Слайд 9





Последнее значение 1 – результат выполнения условия k < 2 при k = 1, т.е. последовательность рекурсивных обращений к функции fact_rec прекращается при вызове  fact_rec (1). 
Последнее значение 1 – результат выполнения условия k < 2 при k = 1, т.е. последовательность рекурсивных обращений к функции fact_rec прекращается при вызове  fact_rec (1). 
Именно этот вызов приводит к последнему значению 1 в произведении, т.к. последнее выражение, из которого вызывается функция, имеет вид:  2 * fact ( 2 – 1).
Описание слайда:
Последнее значение 1 – результат выполнения условия k < 2 при k = 1, т.е. последовательность рекурсивных обращений к функции fact_rec прекращается при вызове fact_rec (1). Последнее значение 1 – результат выполнения условия k < 2 при k = 1, т.е. последовательность рекурсивных обращений к функции fact_rec прекращается при вызове fact_rec (1). Именно этот вызов приводит к последнему значению 1 в произведении, т.к. последнее выражение, из которого вызывается функция, имеет вид: 2 * fact ( 2 – 1).

Слайд 10





	Блок-схема может иметь следующий вид
	Блок-схема может иметь следующий вид
Описание слайда:
Блок-схема может иметь следующий вид Блок-схема может иметь следующий вид



Похожие презентации
Mypresentation.ru
Загрузить презентацию