(курс 68 ч.) §25. Функции | Примеры функций (informatika_09_68_pol) (68 часов в уч. год)

Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, углубленный уровень)


Уроки 43 - 44
§25. Функции



Содержание урока

Что такое функция?

Функции в других языках программирования

Примеры функций

Логические функции

Рекурсия

Выводы

Вопросы и задания

Практическая работа №22 «Функции»

Практическая работа №23 «Функции-2»


Примеры функций


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

Алгоритм определения наибольшего из двух чисел вы уже знаете из курса 8 класса. Остаётся только «завернуть» его в функцию. Например, так:

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

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

Задача 2. Составить функцию, которая вычисляет сумму цифр натурального числа.

Последняя цифра — это остаток от деления числа на 10 (операция mod). Для того чтобы удалить последнюю цифру числа, можно разделить его на 10 без остатка (операция div). Поэтому для решения этой задачи на каждом шаге цикла «отрезаем» от числа последнюю цифру, добавляем её значение к сумме, и затем удаляем её из числа. Цикл заканчивается, когда все цифры удалены и осталось нулевое значение:

В алгоритмическом языке подпрограмма не может изменять значение параметра-аргумента. Поэтому мы вынуждены ввести дополнительную локальную переменную N, которая будет изменяться в цикле.

Как нужно изменить функцию, чтобы она вычисляла количество цифр числа?

Как нужно изменить функцию, чтобы она вычисляла количество единиц в двоичной записи числа?

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

Ответьте на вопросы по условию задачи.

— Какие исходные данные (параметры) принимает функция?
— Какой тип данных нужно использовать для хранения исходных данных?
— Что будет результатом работы этой функции?
— Какой тип данных нужно использовать для хранения результата?
— Нужно ли внутри функции использовать цикл?
— Если цикл нужен, то какого типа должен быть цикл (с известным числом повторений или с условием)?

Функция принимает один параметр — символьную строку, и возвращает тоже символьную строку, поэтому её заголовок выглядит так:

Поскольку двойных пробелов может быть много, в программе нужен цикл. Так как неизвестно, сколько их, это будет цикл с условием (пока, while). Он должен остановиться, когда двойных пробелов больше не останется.

С помощью какой функции можно определить, что в символьной строке больше нет двойных пробелов? Как её нужно использовать?

Запишите в тетради операторы языка программирования, с помощью которых:

а) в переменную р записывается номер символа в строке s, с которого начинается двойной пробел;
б) из строки s удаляется один символ в позиции р.

Приведём полный текст функции:

Изучите текст функции и ответьте на вопросы.

— Что означает условие р>0 в заголовке цикла?
— Что произойдёт, если удалить строку с вызовом функции позиция (pos) перед циклом? Если удалить такую же строку внутри цикла?

Следующая страница Логические функции



Cкачать материалы урока







Наверх