Рекурсивные функции
презентация урока для интерактивной доски по информатике и икт (11 класс)

Григорьева Алена Федоровна

Рекурсивные функции 11 кл

Скачать:

ВложениеРазмер
Файл rekursivnye_funktsii.odp422.63 КБ

Предварительный просмотр:


Подписи к слайдам:

Слайд 1

РЕКУРСИВНЫЕ ФУНКЦИИ

Слайд 2

1. Функции в математике факториал числа n определяется как n! = 1 ⋅ 2 ⋅ ... ⋅ n. Например, 5! = 1 ⋅ 2 ⋅ 3 ⋅ 4 ⋅ 5 = 120. Ясно, что факториал можно легко посчитать, воспользовавшись циклом for. Представим, что нам нужно в нашей программе вычислять факториал разных чисел несколько раз (или в разных местах кода). Конечно, можно написать вычисление факториала один раз, а затем используя Copy-Paste вставить его везде, где это будет нужно.

Слайд 4

если мы ошибёмся один раз в начальном коде, то потом эта ошибка попадёт в код во все места, куда мы скопировали вычисление факториала. Да и вообще, код занимает больше места, чем мог бы. Чтобы избежать повторного написания одной и той же логики, в языках программирования существуют функции. Функции — это такие участки кода, которые изолированы от остальной программы и выполняются только тогда, когда вызываются. Вы уже встречались с функциями sqrt(), len() и print().

Слайд 5

Функция factorial() , которая принимает один параметр — число, и возвращает значение — факториал этого числа.

Слайд 6

Код функции должен размещаться в начале программы , вернее, до того места, где мы захотим воспользоваться функцией factorial(). factorial — идентификатор, то есть имя нашей функции . После идентификатора в круглых скобках идет список параметров , которые получает наша функция. Список состоит из перечисленных через запятую идентификаторов параметров. В нашем случае список состоит из одной величины n. В конце строки ставится двоеточие. Далее тело функции , оформленное в виде блока, то есть с отступом. Внутри функции вычисляется значение факториала числа n и оно сохраняется в переменной res . Функция завершается инструкцией return res , которая завершает работу функции и возвращает значение переменной res .

Слайд 10

Инструкция return может встречаться в произвольном месте функции, ее исполнение завершает работу функции и возвращает указанное значение в место вызова. Если функция не возвращает значения, то инструкция return используется без возвращаемого значения. В функциях, которым не нужно возвращать значения, инструкция return может отсутствовать.

Слайд 12

2. Локальные и глобальные переменные Внутри функции можно использовать переменные, объявленные вне этой функции

Слайд 14

Будут выведены числа 1 и 0. Несмотря на то, что значение переменной a изменилось внутри функции, вне функции оно осталось прежним! Это сделано в целях “защиты” глобальных переменных от случайного изменения из функции. Например, если функция будет вызвана из цикла по переменной i, а в этой функции будет использована переменная i также для организации цикла, то эти переменные должны быть различными. Если вы не поняли последнее предложение, то посмотрите на следующий код и подумайте, как бы он работал, если бы внутри функции изменялась переменная i.

Слайд 15

Итак, если внутри функции модифицируется значение некоторой переменной, то переменная с таким именем становится локальной переменной, и ее модификация не приведет к изменению глобальной переменной с таким же именем. Более формально: интерпретатор Питон считает переменную локальной для данной функции, если в её коде есть хотя бы одна инструкция, модифицирующая значение переменной, то эта переменная считается локальной и не может быть использована до инициализации. Инструкция, модифицирующая значение переменной — это операторы =, +=, а также использование переменной в качестве параметра цикла for. При этом даже если инструкция, модицифицирующая переменную никогда не будет выполнена, интерпретатор это проверить не может, и переменная все равно считается локальной.

Слайд 18

Лучше не изменять значения глобальных переменных внутри функции. Если ваша функция должна поменять какую-то переменную, пусть лучше она вернёт это значением, и вы сами при вызове функции явно присвоите в переменную это значение. Если следовать этим правилам, то функции получаются независимыми от кода, и их можно легко копировать из одной программы в другую.

Слайд 20

функция может вызывать другую функцию. Но функция также может вызывать и саму себя! Рассмотрим это на примере функции вычисления факториала. Хорошо известно, что 0!=1, 1!=1. А как вычислить величину n! для большого n?


По теме: методические разработки, презентации и конспекты

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

Открытый урок по теме "Алгоритмизация" для 9-х классов. К описанию урока приложена презентация с примерами результатов работы рекурсивных алгоритмов в среде "kTurtle" и подробное описание хода урока (...

Как научить школьника писать рекурсивные процедуры: задача о ферзях

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

Обучение приемам рекурсивного программирования: задача о шахматном коне

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

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

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

Подготовка школьников к олимпиадам по программированию: рекурсивные процедуры

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

Презентация для подготовки к ЕГЭ по информатике по теме "Рекурсивные алгоритмы"

Презентация на тему "Рекурсивные алгоритмы" создана для подготовки обучающихся к ЕГЭ по информатике и ИКТ. В работе рассмотрено определение рекурсии, приведены примеры рекурсивно-определенных графичес...

Рекурсивные функции

Разбор заданий  ЕГЭ по материалам К.Ю. Полякова...