- •Використання рекурсивних алгоритмів. Розв’язування задач.
- •Хід уроку
- •1. Перевірка домашнього завдання.
- •2. Актуалізація опорних знань.
- •Var n: Integer;
- •Що виведе на екран програма ?
- •Var n: Integer;
- •3. Мотивація.
- •4. Вивчення нового матеріалу.
- •Var X, y, z : char;
- •Var і, к, j : integer;
- •Var n, і : Integer;
- •Var м, n : Integer;
- •5. Створення та реалізація програми
- •6. Підсумки уроку.
- •Var s, а, в, d: Integer;
- •Var s, a, n, d: Integer;
- •7. Домашнє завдання.
- •Var s : String;
- •Var s : String;
- •Var s : String;
- •8. Підготуватися до тематичного оцінювання з теми «Функції та процедури».
Інформатика 10 (АП) Урок 82
Урок 82 -83 Інформатика (АП)
Використання рекурсивних алгоритмів. Розв’язування задач.
Мета.
Навчальна. Вчитися використовувати рекурсивні алгоритмидо розв’язування задач.
Розвиваюча. Розвивати логічне мислення, самостійність, вміння розуміти і бачити структуру програми, що працює з масивом.
Виховна. Виховувати наполегливість, зібраність, уважність, грамотно висловлювати свої думки, вміння раціонально використовувати час.
Тип уроку. Засвоєння нових знань, вмінь і навичок.
Матеріали для роботи з учнями:
Рекурсія.
Рекурсія і побічний ефект.
Рекурсія приклади задач.
Ханойська вежа
План
Перевірка домашнього завдання.
Актуалізація опорних знань.
Вивчення нового матеріалу.
Розв’язування вправ.
Підсумки уроку.
Домашнє завдання.
Пам’ятка для учня!
Пригадайте правила техніки безпеки при роботі з ПК.
Через кожні 15 хв виконуйте вправи для очей та для зняття м’язової втоми.
Хід уроку
1. Перевірка домашнього завдання.
Наявність.
Питання.
2. Актуалізація опорних знань.
Що таке рекурсія?
Який об'єкт або процес називають рекурсивним?
Наведіть приклади рекурсивного визначення.
Як виконується рекурсивний алгоритм?
Поясніть виконання рекурсивної функції обчислення степеня з натуральним показником.
Для даної функції обчисліть А (2), А (4):
Function A(N:lnteger):lnteger;
Begin
If N<= 1 Then A:=1
Else A:=A(N-1)+A(N-2);
End;
Які з наступних описів функції F(n), яка призначена для обчислення т!, є правильними?
в) Function
F (N 'lnteger): Integer;
Begin
If N=0 Then F:=1
Else F:=N*F(N-1)
End;
Рекурсивно опишіть функцію C(m,n), де 0<=m<=n,
Для даної функції обчисліть F(106), F(99), F(85). Яких взагалі значень набуває ця функція?
Function F (N:lnteger):lnteger;
Begin
If N>100 Then F:=N-10 Else F:=F (F (N+11))
End;
Яким буде результат такого виклику процедури: Rev(153)?
Procedure Rev (Nilnteger);
Begin
Write (N Mod 10);
If ((N Div 10)<>0) Then Rev (N Div 10)
End;
Що виведе на екран програма?
Program Pr;
Var n: Integer;
Procedure Rr (Var K:Integer);
Begin
If K<>5 Then Begin WriteLn (K);
K:=K+1;
Rr (K)
End;
K:=K— 1;
WriteLn (K)
End;
Begin
N:=1; Rr(N)
End.
Що виведе на екран програма ?
Program Prikl;
Var n: Integer;
Procedure Rec (Var Kilnteger);
Begin
While K<5 Do Begin
WriteLn (K);
K:=K+1;
Rec (K) End;
K:=K+1;
WriteLn (K)
End;
Begin
N:=1; Rec(N)
End.
3. Мотивація.
Рекурсивні алгоритми досить часто використовуються при складанні комп'ютерних програм. Рекурсивна форма організації алгоритму найчастіше виявляється компактніше нерекурсивної, але працює в деяких випадках повільніше.
Наприклад, повернемося до алгоритму обчислення п-то числа Фібоначчи. Рекурсивний алгоритм, який розглядається у прикладі 10.15, виглядає простим, але працює дуже неекономно: обчислення ФЩ.6) потребує 14 самовикликів підпрограми, а на виході з рекур- сії виконається 7 операцій додавання.
Нерекурсивний алгоритм (приклад 5.17) шосте число Фібоначчи обчислить на 4-му кроці. Кількість дій при рекурсивному обчисленні числа Фібоначчи різко збільшується, проте при обчисленні факторіала кількість дій при виконанні рекурсивної функції і при обчисленні в циклі однакова. Тому, хоча скласти рекурсивний алгоритм буває простіше ніж нерекурсивний, користатися рекурсі-єю треба обережно.
Рекурсивні алгоритми природно виникають у тих випадках, коли вихідну .задачу можна звести до такої ж задачі, але з іншими аргументами або в іншій обстановці. При цьому створення нерекурсивного алгоритму може виявитися занадто складним.
