Рекурсивные подпрограммы в Паскале
презентация к уроку по информатике и икт (10 класс) на тему
Презентация к уроку информатике в 10 классе "Рекурсивные подпрограммы в Паскале". Содержит примеры подпрограмм и задания для самостоятельной работы.
Скачать:
Вложение | Размер |
---|---|
![]() | 138.65 КБ |
Предварительный просмотр:
Подписи к слайдам:
Рекурсия — это такой способ организации вспомогательного алгоритма (подпрограммы), при котором эта подпрограмма (процедура или функция) в ходе выполнения ее операторов обращается сама к себе. В рекурсивном определении должно присутствовать ограничение, граничное условие, при выходе на которое дальнейшая инициация рекурсивных обращений прекращается.
Обращение к рекурсивной подпрограмме ничем не отличается от вызова любой другой подпрограммы. При этом при каждом новом рекурсивном обращении в памяти создаётся новая копия подпрограммы со всеми локальными переменными. Такие копии будут порождаться до выхода на граничное условие. Очевидно, в случае отсутствия граничного условия, неограниченный рост числа таких копий приведёт к аварийному завершению программы за счёт переполнения стека.
Для того чтобы такое обращение не было бесконечным, в тексте подпрограммы должно быть условие, по достижению которого дальнейшее обращение к подпрограмме не происходит. procedure Rec(n: integer; var y: integer); begin if < условие > then y:= < значение > else Begin Rec(n-1, y); < операторы >; end; end;
Пример 1 . Определение факториала. Факториал определяется так: n!=1*2*3*...*n. Рекурсивное определение: Граничным условием в данном случае является n=0.
Функция на Pascal Function Fact ( N:integer ): longint ; Begin If N= 0 Then Fact:=1 Else Fact:=Fact (N-1)*N ; End;
Процедура на Pascal Procedure Factorial( N:integer ; Var F:longint); Begin If N= 0 Then F:=1 Else Begin Factorial(N-1, F); F:=F*N; End; End;
Число копий переменных, одновременно находящихся в памяти, называется глубиной рекурсии. Сначала она растет, а затем сокращается . Fact(4) Fact(3) Fact(2) Fact(1) 6 =3*2 2 =2*1 1 =1*1 24 =4*6 Fact( 0 ) 1
Прямой и обратный ход рекурсии Действия , выполняемые функцией до входа на следующий уровень рекурсии, называются выполняющимися на прямом ходу рекурсии , а действия, выполняемые по возврату с более глубокого уровня к текущему, – выполняющимися на обратном ходу рекурсии .
Демонстрация хода рекурсии var glubina : Integer := 0; function factorial(N: integer) : longint ; begin { при входе в функцию увеличиваем глобальную переменную , которая считает глубину рекурсии } glubina := glubina + 1; Writeln (' Прямой ход рекурсии . Глубина = ', glubina ); Result := 1; if N > 0 then Result := factorial(N-1) * N; Writeln (' Обратный ход рекурсии . Глубина = ', glubina ); { при входе из функции - уменьшаем эту глобальную переменную } glubina := glubina - 1; end; begin factorial(4); end.
Задачи. Написать рекурсивную подпрограмму возведения числа X в степень N. Написать рекурсивную подпрограмму нахождения НОД двух чисел . Написать рекурсивную подпрограмму нахождения суммы цифр числа. Написать рекурсивную подпрограмму вычисления чисел Фибоначчи. X n =X n-1 +X n-2 X 0 =1 X 1 =1
Спасибо за внимание!
По теме: методические разработки, презентации и конспекты
![](/sites/default/files/pictures/2012/12/11/picture-162348-1355245320.jpg)
Разработка урока в 10 классе по теме: «Подпрограммы в языке Паскаль»
Урок разработан для учащихся 10 класса, изучающих информатику на профильном уровне. Цель урока: дать учащимся представление о подпрограммах и возможностях их использования. Показать на примерах механи...
![](/sites/default/files/pictures/2014/10/26/picture-507614-1414334565.jpg)
Презентация на тему "Подпрограммы в языке Паскаль"
Презентация на тему "Подпрограммы в языке Паскаль" можно использовать для изучения материала в 9 классе на два урока....
Методическая разработка урока по теме: Средства структурирования языка Паскаль. Подпрограммы. (Повторение).
методическая разработка урока...
![](/sites/default/files/pictures/2019/10/21/picture-59756-1571653594.jpg)
Практическая работа "Разработка и программирование задач с использованием подпрограмм процедур и подпрограмм функций".
ПРАКТИЧЕСКАЯ РАБОТА Наименование работы: «Разработка и программирование задач с использованием подпрограмм процедур и подпрограмм функ...
![](/sites/default/files/pictures/2018/12/21/picture-620768-1545366541.jpg)
Конспект урока по информатике на тему «Подпрограммы. Рекурсивные алгоритмы»
Конспект урока по информатике на тему «Подпрограммы. Рекурсивные алгоритмы»...
![](/sites/default/files/pictures/2018/12/21/picture-620768-1545366541.jpg)
Конспект урока по информатике на тему «Подпрограммы. Рекурсивные алгоритмы»
Конспект урока по информатике на тему «Подпрограммы. Рекурсивные алгоритмы»...