Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Рекурсивное программирование

Задачи с рекурсивной формулировкойПример: вычисление факториала натурального числаFunction factorial(n: integer): longint; Begin If n = 1 then factorial:=1 else factorial:= n * factorial (n – 1); End;
Рекурсивное программированиеРекурсия – это метод, сводящий общую задачу к некоторым задачам более Задачи с рекурсивной формулировкойПример: вычисление факториала натурального числаFunction factorial(n: integer): longint; Begin Найдем 5!Первый вызов этой функции будет из основной программы.Например, α:= factorial(5)Function factorial ЗаданияСоставить рекурсивную программу ввода с клавиатуры последовательности чисел (окончание ввода - 0) Пример: перевод натурального числа из десятичной системы счисления в двоичную.3910 = 1001112Procedure Procedure Rec begin  Rec(n Div 2);  Write(n Mod 2);End;1 вызов ЗаданиеНаписать процедуру перевода из десятичной системы в  N - ю, при Procedure Picture1(x,y,r,r1,n:integer);Var x1,y1:integer; i:integer;Begin if n > 0 then {“заглушка”}  begin Uses Graph;Var x,y,n,r,r1,cd,gm:integer; k1,k2:real;Procedure Picture1(x,y,r,r1,n:integer);…End;Begin Writeln(‘Введите количество уровней n’); Readln(n); x:=600 Div
Слайды презентации

Слайд 2 Задачи с рекурсивной формулировкой
Пример: вычисление факториала натурального числа
Function

Задачи с рекурсивной формулировкойПример: вычисление факториала натурального числаFunction factorial(n: integer): longint;

factorial(n: integer): longint;
Begin
If n = 1

then factorial:=1
else factorial:= n * factorial (n – 1);
End;

Слайд 3 Найдем 5!
Первый вызов этой функции будет из основной

Найдем 5!Первый вызов этой функции будет из основной программы.Например, α:= factorial(5)Function

программы.
Например, α:= factorial(5)
Function factorial
Begin
factorial:= 5

* factorial(4);
End;

Function factorial
Begin
factorial:= 4* factorial(3);
End;

Function factorial
Begin
factorial:= 2* factorial(1);
End;

Function factorial
Begin
factorial:= 3* factorial(2);
End;

Function factorial
Begin
factorial:= 1;
End;

3 вызов (n=3)

2 вызов (n=4)

4 вызов (n=2)

5 вызов (n=1)

1 вызов (n=5)

2 *1

5 *24

4 *6

3 *2

factorial(5) = 120

α:= 120


Слайд 4 Задания
Составить рекурсивную программу ввода с клавиатуры последовательности чисел

ЗаданияСоставить рекурсивную программу ввода с клавиатуры последовательности чисел (окончание ввода -

(окончание ввода - 0) и вывода ее на экран

в обратном порядке.

2. Найти первые N чисел Фибоначчи. Каждое число равно сумме двух предыдущих чисел при условии, что первые два равны 1 (1, 1, 2, 3, 5, 8, 13, 21, …)

Слайд 5 Пример: перевод натурального числа из десятичной системы счисления

Пример: перевод натурального числа из десятичной системы счисления в двоичную.3910 =

в двоичную.
3910 = 1001112
Procedure Rec(n: integer);
begin

If n > 1 then Rec(n Div 2);
Write(n Mod 2);
End;

Слайд 6 Procedure Rec
begin
Rec(n Div 2);

Procedure Rec begin Rec(n Div 2); Write(n Mod 2);End;1 вызов (n

Write(n Mod 2);
End;
1 вызов (n = 39)
Procedure Rec
begin

Rec(n Div 2);
Write(n Mod 2);
End;

Procedure Rec
begin
Rec(n Div 2);
Write(n Mod 2);
End;

Procedure Rec
begin
Rec(n Div 2);
Write(n Mod 2);
End;

Procedure Rec
begin
Rec(n Div 2);
Write(n Mod 2);
End;

Procedure Rec
begin
Write(n Mod 2);
End;

2 вызов (n = 19)

3 вызов (n = 9)

4 вызов (n = 4)

6 вызов (n = 1)

5 вызов (n = 2)


Слайд 7 Задание
Написать процедуру перевода из десятичной системы в

ЗаданиеНаписать процедуру перевода из десятичной системы в N - ю, при

N - ю, при условии, что 2 ≤ N

≥ 16 и его значение вводить с клавиатуры. Каким будет условие завершения входа в рекурсию?

Слайд 8 Procedure Picture1(x,y,r,r1,n:integer);
Var x1,y1:integer; i:integer;
Begin
if n > 0

Procedure Picture1(x,y,r,r1,n:integer);Var x1,y1:integer; i:integer;Begin if n > 0 then {“заглушка”} begin

then {“заглушка”}
begin
circle(x,y,r);r1:=trunc(r*k2); {рисование окружности}


r1:=trunc(r*k2) {вычисление радиуса орбиты}
For i:=1 to 4 do
begin
x1:=trunc(x+r1*cos(pi/2*i); { координаты центра }
y1:=trunc(y+r1*sin(pi/2*i); { i-ой окружности }
Picture1(x1,y1,trunc(r*k1),r1,n-1);
end;
end;
end;

  • Имя файла: rekursivnoe-programmirovanie.pptx
  • Количество просмотров: 109
  • Количество скачиваний: 0