- •НИУ ВШЭ – Пермь
- •Вычисление факториала: рекурсия и итерация
- •Вычисление факториала: итерация Стек
- •Вычисление факториала:
- •Вычисление факториала: итерация Стек
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: итерация
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала: Рекурсия
- •Вычисление факториала:
- •Вычисление факториала:
- •Вычисление факториала:
- •Вычисление факториала:
- •Вычисление факториала:
- •Вычисление факториала:
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивное вычисление N-го числа Фибоначчи
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
- •Рекурсивная закраска фигуры
НИУ ВШЭ – Пермь
Факультет бизнес-информатики
Кафедра информационных технологий в бизнесе
Процедуры и функции на примере языка Pascal:
рекурсия и итерация.
Примеры реализации
Материалы курса «Теоретические основы информатики»
Лекция 12
Лядова Л.Н.
Пермь 2012
Вычисление факториала: рекурсия и итерация
Итерация:
Program Main;
var N, Fact: integer;
Function FactorIter(N: Integer): Integer; var F: integer;
begin
F := 1;
for N := N downto 1 do F := F*N;
FactorIter := F end;
begin
write('Введите N: N = '); readln(N); Fact := FactorIter(N);
write('Результат: значение N! для N =', N:2, ' равно ', Fact);
2end.
Рекурсия:
Program Main;
var N, Fact: integer;
Function FactorRec(N: Integer): Integer; begin
if N = 0
then FactorRec := 1
else FactorRec := FactorRec(N-1)*N end;
begin
write('Введите N: N = '); readln(N); Fact := FactorRec(N);
write('Результат: значение N! для N =', N:2, ' равно ', Fact);
end.
Вычисление факториала: итерация Стек
Вычисление 0!
Ввод исходных данных для вычисления факториала
3
Вычисление факториала:
итерация |
Стек |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Просмотр значений, используемых |
|
|
|
|
|
(вычисляемых) в программе. |
|
|
|
|
|
Введено значение |
N=0. |
|
Значение Fact |
|
|
проинициализировано как |
|
|
глобальная переменная. |
|
|
Имя F – вне области видимости |
|
4 |
(определено в описании функции) |
|
|
|
|
Вычисление факториала: итерация Стек
Вызов функции
Видимые имена – глобальные переменные программы
5
Вычисление факториала: итерация
Стек
Точка входа в функцию
Локальные данные функции. |
|
|
||
|
|
|||
Result используется для |
|
|
|
|
|
|
|
||
вычисления результата |
|
|
|
|
функции – этим именем |
|
|
|
|
|
FactorIter(0) |
|
||
можно заменить имя |
|
F |
||
|
|
|
||
|
|
|
||
функции в присваивании (в |
|
|
||
|
|
|
||
|
|
N=0 |
||
данной реализации Pascal) |
|
|
||
|
|
|
||
|
FactorIter (Result) |
|||
|
|
|
||
|
|
|
|
|
|
|
|
Точка возврата |
|
6
Вычисление факториала: итерация
Стек
FactorIter(0)
F=1
N=0
FactorIter (Result)
Точка возврата
7
Вычисление факториала: итерация
Стек
FactorIter(0)
F=1
N=0
FactorIter (Result)
Точка возврата
Вычисление факториала: итерация
Стек
FactorIter(0) F=1
N=0
FactorIter (Result) = 1
Точка возврата
9
Вычисление факториала: итерация
Стек
Возврат вычисленного значения в оператор присваивания
FactorIter(0)
F=1
N=0
FactorIter (Result) = 1
Точка возврата
10
