Презентация, доклад на тему Рекурсия

Содержание

РЕКУРСИЯСпособ обращения процедуры или функции к самой себе называется рекурсией.Вычисление факториала числа Числа ФибоначчиЗолотое сечение

Слайд 1РЕКУРСИЯ
Учитель информатики Н.М. Борисова
ГБОУ СОШ №249 С-Петербург

РЕКУРСИЯУчитель информатики Н.М. БорисоваГБОУ СОШ №249 С-Петербург

Слайд 2РЕКУРСИЯ
Способ обращения процедуры или функции к самой себе называется рекурсией.
Вычисление факториала

числа
Числа Фибоначчи
Золотое сечение
РЕКУРСИЯСпособ обращения процедуры или функции к самой себе называется рекурсией.Вычисление факториала числа Числа ФибоначчиЗолотое сечение

Слайд 3Вычисление факториала числа N
n!=1*2*3*4*5…*n

1 , если n=1
(n-1)! n, если n>1

n! =

5!= 1*2*3*4*5 =(1*2*3*4)*5 = 4! *5

15!= 1*2*3*…*15 =(1*2*..*14)*15 = = 14! * 15

Вычисление факториала числа Nn!=1*2*3*4*5…*n        1  , если n=1

Слайд 4function factorial(n: byte): longint;
begin
if n = 1 then

factorial := 1
else factorial := n * factorial (n - 1);
end;

Вызов в программе:

X:=factorial(5); write(X);

120

function factorial(n: byte): longint;begin  if n = 1 then    factorial := 1

Слайд 6PROGRAM FACTORIAL_2;
{Вычисление с помощью процедуры}
USES CRT;
VAR N,I:BYTE; F:LONGINT;

PROCEDURE FACTORIAL(N:BYTE; VAR F:LONGINT);
begin
IF N=1 THEN FACTORIAL:=1
ELSE begin
FACTORIAL(N-1;F);
F:=F*N;
end;
end;
{-----------ОСНОВНАЯ ПРОГРАММА------------}
BEGIN
CLRSCR;
WRITELN('ВЫЧИСЛЕНИЕ ФАКТОРИАЛА ЧИСЛА N');
WRITE('ВВЕДИТЕ N: '); READ(N);
FOR I:=1 TO N DO begin
FACTORIAL(I,F);
WRITELN( I, '!=', F);
end
END.
PROGRAM FACTORIAL_2; {Вычисление с помощью процедуры} USES CRT; VAR N,I:BYTE; F:LONGINT;  PROCEDURE FACTORIAL(N:BYTE; VAR F:LONGINT);

Слайд 8Числа Фибоначчи
В 1202 году итальянский математик Фибоначчи решил такую задачу:
Пара кроликов

каждый месяц дает приплод двух кроликов(самца и самку), которые через два месяца способны давать новый приплод.
Сколько кроликов будет через год, если в начале года имелась пара кроликов?
Числа ФибоначчиВ 1202 году итальянский математик Фибоначчи решил такую задачу:Пара кроликов каждый месяц дает приплод двух кроликов(самца

Слайд 9Чи́сла Фибона́ччи — элементы числовой последовательности

1, 1, 2, 3, 5, 8, 13,

21, 34, 55, 89, 144, 233, 377, 610...

в которой каждое последующее число равно сумме двух предыдущих чисел.


Название по имени
средневекового математика
Леонардо Пизанского
(или Фибоначчи) .
Чи́сла Фибона́ччи — элементы числовой последовательности1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,

Слайд 101, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,

144, 233, 377, 610...

каждое последующее число равно сумме двух предыдущих чисел.


Последовательность чисел Фибоначчи задается рекуррентным соотношением:

F1 =1 F2 =1 Fn = Fn -1 + Fn - 2

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610... каждое последующее

Слайд 11Эта последовательность была исследована Леонардо Пизанским, известным как Фибоначчи, в его

труде «Liber Abaci» (1202).
Он рассматривает развитие идеализированной (биологически нереальной) популяции кроликов, предполагая что:
В «нулевом» месяце имеется пара кроликов (0 новых пар).
В первом месяце первая пара производит на свет другую пару (1 новая пара).
Во втором месяце обе пары кроликов порождают другие пары и первая пара погибает (1 новая пара).
В третьем месяце вторая пара и две новые пары порождают в общем три новые пары, а старая вторая пара погибает (2 новые пары).

1,1,2,3,5,8…

F(n) = F(n — 1) + F(n — 2).

Эта последовательность была исследована Леонардо Пизанским, известным как Фибоначчи, в его труде «Liber Abaci» (1202). Он рассматривает

Слайд 12Function FIB ( n : integer ) :integer;
begin
if (n=1) or

(n=2) then FIB:=1
else FIB:=FIB(n-2)+FIB(n-1)
end;
Function FIB ( n : integer ) :integer;begin if (n=1) or (n=2) then FIB:=1

Слайд 13program fibonachchi;
var i:integer;
function fib(n:integer): longint;
begin
if n

then fib:=1
else fib:=fib(n-1)+fib(n-2);
end;
begin
for i:=1 to 12 do writeln('fib(', i, ') = ', fib(i) );
end.
program fibonachchi;var i:integer; function fib(n:integer): longint;begin    if n

Слайд 14PROGRAM KROLIKI;
USES CRT;
VAR N,I:INTEGER;
FUNCTION FIB(N:INTEGER):INTEGER;


begin
IF (N=1) OR (N=2) THEN FIB:=1
ELSE FIB:=FIB(N-1)+FIB(N-2);
end;
{-----------ОСНОВНАЯ ПРОГРАММА------------}
BEGIN
CLRSCR;
WRITELN('ЗАДАЧА ПРО КРОЛИКОВ (ЧИСЛА ФИБОНАЧЧИ)');
WRITE('ВВЕДИТЕ КОЛИЧЕСТВО МЕСЯЦЕВ: '); READ(N);

FOR I:=1 TO N DO WRITELN(I,' = ',FIB(I));
END.
PROGRAM KROLIKI;  USES CRT;  VAR N,I:INTEGER;  FUNCTION FIB(N:INTEGER):INTEGER;

Слайд 16Золотое сечение - это такое пропорциональное деление отрезка на неравные части,

при котором весь отрезок так относится к большей части, как сама большая часть относится к меньшей;
или другими словами, меньший отрезок так относится к большему, как больший ко всему

a : b = b : c или с : b = b : а.

Золотое сечение

Золотое сечение - это такое пропорциональное деление отрезка на неравные части, при котором весь отрезок так относится

Слайд 17Отрезки золотой пропорции выражаются бесконечной иррациональной дробью 0,618..., если c принять

за единицу, a = 0,382.
Числа 0.618 и 0.382 являются коэффициентами последовательности Фибоначчи.
На этой пропорции базируются основные геометрические фигуры.

Любой отрезок может быть разделен таким образом, что соотношение между его меньшей и большей частями будет равно отношению между большей частью и всем отрезком .
Это отношение всегда равно 0.618.

Отрезки золотой пропорции выражаются бесконечной иррациональной дробью 0,618..., если c принять за единицу, a = 0,382. Числа

Слайд 18{Значение золотого сечения по заданному n}
function sech(n:integer):real;
begin

sech:=fib(n)/fib(n-1);
end;  

var i : integer;  
begin

writeln('u(1) = ',fib(1));

for i:=2 to nmax do  
writeln('u(',i,') = ',fib(i),'    v(',i,') = ',sech(i));

end.

значение золотого сечения V(n) = u(n) / u(n-1)

{Значение золотого сечения по заданному n} function sech(n:integer):real; begin   sech:=fib(n)/fib(n-1); end;   var i :

Слайд 19A:= A - B
начало
нет
A  B
конец
ввод A,B
вывод A
A> B
B := B

- A

да

да

нет

Алгоритм Евклида

Определение наибольшего общего делителя ( НОД )
двух натуральных чисел

A:= A - BначалонетA  Bконецввод A,Bвывод AA> BB := B - AдаданетАлгоритм ЕвклидаОпределение наибольшего общего делителя

Слайд 20Задача
Даны три натуральных числа. Найти НОД наибольшего и наименьшего из этих

чисел.

ВВЕДИТЕ ТРИ ЧИСЛА: 18 24 36

Наименьшее число: 18
Наибольшее число: 36
НОД(18,36)=9

ВВЕДИТЕ ТРИ ЧИСЛА: 48 24 36

Наименьшее число: 24
Наибольшее число: 48
НОД(24,48)=24

ЗадачаДаны три натуральных числа. Найти НОД наибольшего и наименьшего из этих чисел.ВВЕДИТЕ ТРИ ЧИСЛА: 18 24 36Наименьшее

Слайд 21FUNCTION HOD(A,B:INTEGER):INTEGER;
begin
IF A=B THEN HOD:=A

ELSE if A>B then HOD:=HOD(A-B,B)
else HOD:=HOD(A,B-A);

FUNCTION HOD(A,B:INTEGER):INTEGER; begin IF A=B THEN HOD:=A        ELSE if A>B

Слайд 23 PROGRAM K8_V9_1;
{Найти НОД наибольшего и наименьшего из трех чисел}
USES

CRT;
VAR A, B, C, X, Y: INTEGER;
FUNCTION MAX(X,Y:INTEGER):INTEGER;
begin
IF X end;
FUNCTION MIN(X,Y:INTEGER):INTEGER;
begin
IF X end;
FUNCTION HOD(A,B:INTEGER):INTEGER;
begin
IF A=B THEN HOD:=A
ELSE if A>B then HOD:=HOD(A-B,B) else HOD:=HOD(A,B-A);
end;
BEGIN
CLRSCR;
WRITE('ВВЕДИТЕ ТРИ ЧИСЛА: '); READ(A,B,C);

X:=MAX(A,MAX(B,C)); Y:=MIN(A,MIN(B,C));

WRITELN('HOD(',Y,',',X,')= ',HOD(X,Y))
END.
PROGRAM K8_V9_1;{Найти НОД наибольшего и наименьшего из трех чисел} USES CRT; VAR A, B, C, X,

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть