План урока по информатике рекурсия

Обновлено: 05.07.2024

Образовательная. Продолжить изучение подпрограмм. Показать сущность рекурсии на конкретных примерах. Способствовать приобретению опыта применения рекурсивных функции при составлении программ.

Воспитательные. Создать условия для воспитания познавательных потребностей, интерес к предмету.познавательных интересов, интеллектуальных и творческих способностей в информационной деятельности, в профильных областях и с применением специализированных профессиональных инструментов;

I. Организационный момент (мотивационная беседа).

а) Записать тему урока. "РЕКУРСИЯ" (RECURCIО - возвращение)

б) Поставить цель урока. Продолжим изучение подпрограмм. Узнаем, что такое рекурсия, как выполняется рекурсивный алгоритм. Слайд 2

II. Повторение изученного (создание ситуации успеха)

Учитель: что такое подпрограмма? (Слайд 3).

Ученик: подпрограмма - это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.

Учитель: что такое формальные и фактические параметры? (Слайд 4).

Ученик: Формальные - условные обозначения в описании процедуры - описываются в ее заголовке. Фактические - с которыми требуется выполнить процедуру - перечисляются при вызове процедуры.

Учитель: что такое функция? (Слайд 5).

Ученик: подпрограмма, имеющая единственный результат, может быть оформлена, как функция.

Учитель: к чему относится описание типа в конце заголовка подпрограммы функции? (Слайд 6).

Ученик: Это описание относится к имени функции, которому необходимо присвоить значение результата.

III. Изучение нового материала.

В Паскале возможно применения рекурсии в процедурах и функциях.

Под рекурсией понимается такой вычислительный процесс, когда процедура или функция явно или неявно вызывает саму себя.

Что такое рекурсивный объект и каковы его свойства (Слайд 7).

Рассмотрим несколько примеров

1. Если поставить два зеркала напротив друг друга и между ними поместить предмет, то получится бесконечное множество отображений, причем каждое из них содержит свое собственное отображение.

Любое из этих изображений можно рассматривать как рекурсивный объект, который частично состоит или определяется с помощью самого себя.

Свойства рекурсивных объектов. (Слайд 17).

Несхожесть конечного результата с начальными данными;

2. Примеры рекурсивного определения в математике. (Слайд 18 и 19).

1) Определение натурального числа.

а) 1 - натуральное число;

б) число, следующее за натуральным (т.е. больше его на единицу), есть натуральное число.

2) Арифметическая прогрессия:

б) аnn-1+d. При а0=1, d=1 имеем натуральный ряд 1,2,3.

3) Геометрическая прогрессия:

б) аnn-1*q. При а0=2, q=2 имеем степенной ряд 2,4,8,16,32. ;

4) Факториал an=n! (Fасtоr- сомножитель) n!=1*2*3*4*5*б*. *n.

5) Числа Фибоначчи.

Один из наиболее ярких примеров применения рекурсии дают числа Фибоначчи. Они определяются следующим образом:

Каждый элемент ряда Фибоначчи является суммой двух предшествующих элементов, т.е.

1, 1, 2, 3, 5, 8, 13, 21, 34, 55,:

Историческая справка: (Слайд 20).

Леонардо Фибоначчи (Пизанский), годы жизни 1180 - 1250. В "Книге абака> 1202 г. изложил формулы решения квадратного уравнения по образцу аль-Хорезми, в этой книге впервые встречается правило для нахождения суммы членов произвольной арифметической прогрессии. Фибоначчи придумал последовательность (названную в последствии его именем) натуральных чисел

а) если n 1, то управление передается на ветку иначе и функция F:=5*F(4).

2 вызов (n=4) n<>1, то F:=4*F(3).

З вызов (n=З) n<>1, то F:=3*F(2).

4 вызов (n=2) n<>1, то F:=2*F(1)=2*1=2..

Возвращаемся назад поднимаясь вверх по цепочке рекурсивных вызовов. (Слайд 26).

3 вызов (n=3), , то F:=3*F(2)=З*2=6.

2 вызов (n=4) , то F:=4*F(3)=4*6=24.

1 вызов (n=5), то F:=5*F(4)=5*24=120.

Это значение присваивается переменной.

  • с помощью последовательного присоединения (или итерации в форме цикла);
  • с помощью вложения одной операции в другую (а именно, рекурсий).

Рассмотрим программы вычисления чисел Фибоначчи (Слайд 27).

IV. Ввод и исполнение программы вычисления чисел Фибоначчи.

Сколько раз вызывается функция Fib при n=8?

Ответ:21 раз. (Слайд 27-29).

Вывод. Подпрограммы функции, дёлают программу, более наглядной, но рекурсивный вызов функции иногда существенно замедляет работу программы. (Слайд 30).

Свидетельство и скидка на обучение каждому участнику

Зарегистрироваться 15–17 марта 2022 г.

Уровень обучение: базовый

Мезникова Е.Л., учитель информатики и ИКТ

2020-2021 учебный год

Тип: урок открытия новых знаний, обретения новых умений и навыков.

1. Деятельностная: научить новым способам нахождения знания, ввести новые понятия, термины.

2. Содержательная: сформировать систему новых понятий, расширить знания учеников за счет включения новых терминов, описаний, алгоритмов

Задачи урока:

Предметные: формирование представления о рекурсивном объекте и рекурсивном алгоритме; освоение приемов реализации рекурсивных алгоритмов на языке Pascal .

Метапредметные:

- умение самостоятельно планировать пути достижения целей; умение соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности, определять способы действий в рамках предложенных условий, корректировать свои действия в соответствии с изменяющейся ситуацией; умение оценивать правильность выполнения учебной задачи.

Личностные: - алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе; представление о программировании как сфере возможной профессиональной деятельности.

Решаемые учебные задачи:

1. напомнить сущность понятия вспомогательного алгоритма, подпрограммы;

2. напомнить способы реализации вспомогательных алгоритмов в Pascal

3. познакомить с примерами использования вспомогательных алгоротмов для реализации рекурсивных процедур.

Педагогическая технология: проблемного обучения.

Метод: словесный, наглядный, практическая работа.

Формы работы: фронтальная, выполнение практической работы, работа в группах.
Обеспечение урока: доска , компьютерный класс, мультимедийный проектор, ОC Windows, среда программирования Free Pascal.

Ожидаемые результаты: Учащиеся должны

· способы реализации вспомогательных алгоритмов, синтаксис и семантику их записи.

· осуществлять оптимальный выбор вспомогательного алгоритма;

· обосновать необходимость применения вспомогательного алгоритма;

· разрабатывать программы с применением рекурсивных алгоритмов.

Структура урока:

I. Организационный момент (1 мин.)

Приветствие, проверка присутствующих. Организация учебной работы.

II. Мотивационный этап. (5 мин.)

ü Анализ результатов

III. Открытие нового знания (10 мин.)

IV. Первичное закрепление нового знания. Выполнение задания практической работы (12 мин)

V. Включение в систему знаний и умений. (10 мин.)

VI. Рефлексия учебной деятельности, самоанализ (5 мин.)

VII. Домашнее задание. Итог урока (2 мин.)

I. Организационный момент

Приветствие, проверка присутствующих. Организация учебной работы.

II. Мотивационный этап.

b. Получение результатов тестирование, анализ ошибок.

III. Открытие нового знания

Может ли процедура или функция содержать вызов других процедур или функций?

Выдвигают свои версии, приводят примеры.

А может ли процедура или функция вызывать сама себя?

Сегодня мы и познакомимся с такими алгоритмами.

Совместно с учителем формулируют цели урока

Запись основных понятий в тетрадь

Решение задачи

Используя рекурсивный алгоритм, вывести на печать цифры заданного натурального числа ch в обратном порядке.

Например, для входного числа 1598 на экран будет выведено 8951. (Приложение 2)

Учащимся предлагается распечатка программы решения задачи. По ходу объяснения учителя учащиеся заполняют таблицу исполнителя для рекурсивного алгоритма

IV. Первичное закрепление нового знания. Выполнение практической работы. Анализ результатов по эталону.

V. Включение в систему знаний и умений. Самостоятельная работа учащихся в группах. (Приложение 3)

В качестве второго примера рассмотрим блок-схему вспомогательного алгоритма вычисления факториала числа

Нетрудно заметить, что

Таким образом, значение факториала числа можно вычислить через факториал на единицу меньшего числа, то есть вычислить последующее через предыдущее и, следовательно, решить данную алгоритмическую задачу можно при помощи ______________ алгоритма (рекурсивного).

Рассмотрим блок-схему вспомогательного алгоритма-функции Fact для вычисления факториала числа n

http://smiuk.sfu-kras.ru/kodnyanko/site/1_2_courses/AlgLabs/5/FactFun.jpg

Записать фрагмент вспомогательного алгоритма-функции.

VI. Рефлексия учебной деятельности, самоанализ.

Ответы обсуждаются, при необходимости работа программы, вызвавшая затруднение, разбирается на доске с помощью учителя.

VII. Домашнее задание. (Выучить конспект. Записать программу для вычисления факториала заданного числа.) Итог урока (2 мин.)

Приложение 1

Рекурсия – это такой способ организации вычислительного процесса, при котором процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. При использовании рекурсии необходимо обращать особое внимание на выход из подпрограммы в нужный момент, чтобы не вызвать зацикливания программы.

Рекурсивностью в Паскале могут обладать как функции, так и процедуры.

Таким образом, если в теле процедуры (функции) встречается вызов самой этой процедуры (функции), то это и есть рекурсия.

Аналогия рекурсивного алгоритма:

Матрешка, которая внутри содержит другую матрешку

Зеркальная комната с многократным отражением.

Приложение 2

Идея решения задачи

Основная программа : вводится натуральное число и передается во вспомогательный алгоритм.

Рекурсивный алгоритм прекращает свою работу, когда число становится равным 0.

Нажмите, чтобы узнать подробности

Цель: создать условия для формирования представлений учащихся о применении рекурсии в программировании, его значении, способах применения. На практике оценить возможности рекурсии.

Развивающая: формирование алгоритмического стиля мышления; развитие творческой активности, формирование умения анализировать и находить оптимальное решение к задачам.

Воспитывающая: воспитание самостоятельности, аккуратности, внимательности

Планируемые образовательные результаты

предметные – представления о методах структурного программирования, умение представлять план действий формального исполнителя по решению задачи укрупненными шагами (модулями), осуществлять детализацию каждого из укрупненных шагов формального исполнителя с помощью понятных ему команд;

метапредметные – умение самостоятельно планировать пути достижения целей; умение оценивать правильность выполнения учебной задачи;

личностные – алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе; представление о программировании как сфере возможной профессиональной деятельности.

коммуникативные-развитие учебного сотрудничества с учителем и сверстниками.

Дидактические средства: учебник, памятки, карточки с заданиями для групповой работы.

Оборудование: мультимедийный проектор, видео и аудио фрагменты, презентация Microsoft Office Power Point по теме урока, видео и аудио фрагменты, раздаточный материал, компьютерный тест "Язык программирования Pascal. Рекурсия" в программе MyTestEditor, приложение Pascal ABC.

Используемая технология: программируемое обучение.

Структура урока

Тип урока: урок изучения и первичного закрепления новых знаний.

Объяснение нового материала

Подведение итогов, рефлексия

Постановка домашнего задания

Содержание деятельности учителя

Методы, приемы обучения

Содержание деятельности учащихся

I. Организационный момент

Здравствуйте, ребята.
Присаживайтесь.

II. Целеполагание

Прочитайте высказывания на слайде. Какую особенность вы можете выделить в этом высказывании? Правильно, в данном высказывании мы как бы возвращаемся в начало высказывания. Отметьте, особенности изображения на втором слайде.

Отвечают на вопросы

III. Объяснение нового материала


Урок сформирует понятия рекурсивного объекта и рекурсивного определения, познакомит учащихся с рекурсивными алгоритмами.

Описание разработки

Цели:

Предметные: сформировать понятия рекурсивного объекта и рекурсивного определения, познакомить учащихся с рекурсивными алгоритмами, научить ребят составлять программы с использованием рекурсивных функций;

выражений на алгоритмический язык;

Метапредметные: развитие умений учащихся применять знания в стандартных условиях, а также в измененных нестандартных условиях.

Личностные: развитие мышления, памяти и внимания, аналитических умений, коммуникативных навыков.

Ход урока.

Исходя из темы, попробуем поставить себе цель урока (вспоминаем как правильно поставить цель).

Затем определимся с задачами, которые помогут нам достигнуть цели.

Давайте посмотрим на данный алгоритм.

- Данный алгоритм конечен?

Давайте вспомним, что такое процедура, для чего и как она применяется?

Теперь посмотрим на следующий алгоритм. Что выполняет данная программа?

Определение: Если подпрограмма обращается сама к себе как к подпрограмме непосредственно или через цепочку подпрограмм, то это называется рекурсией.

А такие подпрограммы называются рекурсивными.

Рекурсия (презентация)

Посмотрите, где в обычной жизни нас окружает рекурсия.

Сразу же после определения может возникнуть вопрос:

Для чего нужна рекурсия?

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

Итак, если для некоторой задачи возможны два решения, предпочтение следует отдать итерации.

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

Какой алгоритм выбрать - решать вам.

Что необходимо написать, чтоб рекурсия не зациклилась?

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

Попробуйте написать программу для решения Задания 4.

Теперь практическая работа. У вас есть три задачи. Вы с напарником должны решить одну.

А теперь заполните, пожалуйста анкету. (на рабочих листах)

Пока ребята заполняют анкету, учитель ставит оценки и выдает сертификаты лучшим.

Спасибо за работу. До свидания!

Весь материал - в архиве.

Содержимое разработки

Учитель: Гусева Марина Альфонсовна.

Тема урока: РЕКУРСИЯ.

Предметные: сформировать понятия рекурсивного объекта и рекурсивного определения, познакомить учащихся с рекурсивными алгоритмами, научить ребят составлять программы с использованием рекурсивных функций;

выражений на алгоритмический язык;

Метапредметные: развитие умений учащихся применять знания в стандартных условиях, а также в измененных нестандартных условиях.

Личностные: развитие мышления, памяти и внимания, аналитических умений, коммуникативных навыков.

Исходя из темы, попробуем поставить себе цель урока (вспоминаем как правильно поставить цель). Затем определимся с задачами, которые помогут нам достигнуть цели.

Записывают цель и задачи, которые должны привести к данной цели.

Давайте посмотрим на данный алгоритм.

-Данный алгоритм конечен?

-в этом алгоритме есть процедура, которая вызывает сама себя

Давайте вспомним, что такое процедура, для чего и как она применяется?

Дают определение процедуры и способы ее применения.

Выполняют задание 1.

Теперь посмотрим на следующий алгоритм. Что выполняет данная программа?

Определение: Если подпрограмма обращается сама к себе как к подпрограмме непосредственно или через цепочку подпрограмм, то это называется рекурсией. А такие подпрограммы называются рекурсивными.

-В ней используется процедура которая вызывает сама себя.

-Алгоритм вычисления факториала.

Посмотрите, где в обычной жизни нас окружает рекурсия.

Для чего нужна рекурсия?

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

Что необходимо написать, чтоб рекурсия не зациклилась?

-необходимо задать условие.

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

Попробуйте написать программу для решения Задания 4.

Решают задание 4.

Теперь практическая работа. У вас есть три задачи. Вы с напарником должны решить одну.

Пишут программу и проверяют в тестирующей системе.

А теперь заполните, пожалуйста анкету. (на рабочих листах)

Пока ребята заполняют анкету, учитель ставит оценки и выдает сертификаты лучшим.

Спасибо за работу. До свидания!

Содержимое разработки

ИМЯ ____________________________ ФАМИЛИЯ ________________________________________

Цель урока ______________________________________________________________________________________________________________________________________________________________________________________________


Задание 1.


procedure zvezda;
var i : integer ;
begin
for i :=1 to 60 do write (‘ * ');

end;
end;

Что напечатает данная программа ?

Нарисуйте блок – схему алгоритма.

Напишите эту программу на С++.

Посмотрите на следующий код программы?

Что вычисляет программа?

using namespace std;

int factor(int n)

Что такое рекурсия?

Для чего используется рекурсия?

Что обязательно должно быть в рекурсивном алгоритме?

Задание 3. Совместно с соседом 

Вам необходимо как можно быстрее решить следующие 2 задачи в которых используется _________________

Алгоритм вычисления значения функции F ( n ), где n – натуральное число, задан следующими соотношениями:

F(n) = F(n–1) * (n + 1), при n 1

Чему равно значение функции F (5)? В ответе запишите только целое число.

Алгоритм вычисления значения функции F ( n ), где n – натуральное число, задан следующими соотношениями:

F(n) = F(n–1) * (n + 2), при n 1

Чему равно значение функции F (5)? В ответе запишите только целое число.

(у соседа есть задания) или (у соседа есть место для решения)

Задание 4. Каждая бактерия делится на две в течении одной минуты. Сначала была одна, сколько бактерий будет через N минут?

(напишите программу используя рекурсию)


Задание 5 (практическое). Разные задачи-Рекурсия(совместно с соседом  )

Домашнее задание – любая другая из трех.

Ваше мнение: 1. Достигли вы цели урока? ____________

Какое из заданий показалось самым интересным и почему (возможно несколько вариантов)?______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Вам больше понравилось работать в паре или индивидуально? Почему?

Оцените свою работу на уроке. Обведите то количество смайликов, которое соответствуют вашей работе на уроке.

     (0-ничего не делал(а), 1-решил(а) задания при помощи учителя или соседа, 2-что-то решил(а) сам, 3 – решил(а) сам теоретические задания, 4- решил(а) сам теоретические задания и помог соседу, 5 – решил(а) все задания самостоятельно, успел(а) помочь соседу и все понял(а))

Читайте также: