Similar presentations:
Программирование (Python). Функции. Часть 1. 9 класс
1. Программирование (Python)
1Программирование
(Python)
Функции
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
2. Что такое функция?
Программирование (Python), 9 класс2
Что такое функция?
Функция — это вспомогательный алгоритм, который
возвращает результат (число, строку символов и др.).
Задача. Написать функцию, которая вычисляет среднее
арифметическое двух целых чисел.
цел a, b
исходные данные
целые
def Avg(a, b):
return (a+b)/2
Avg
вещ r
результат
? Тип результата?
результат
функции
return – вернуть
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
3. Как вызывать функцию?
Программирование (Python), 9 класс3
Как вызывать функцию?
Запись результата в переменную:
sr = Avg(5, 8)
6.5
x = 2; y = 5
sr = Avg(x, 2*y+8)
Вывод на экран:
x = 2; y = 5
sr = Avg(x, y+3)
print( Avg(12,7) )
print( sr + Avg(x,12) )
К.Ю. Поляков, Е.А. Ерёмин, 2021
? Чему равно?
10
5
9.5
12
http://kpolyakov.spb.ru
4. Как вызывать функцию?
Программирование (Python), 9 класс4
Как вызывать функцию?
Использование в условных операторах:
a = int(input())
b = int(input())
if Avg(a,b) > 5:
print("Да!")
Когда печатает «Да»?
else:
print("Нет!");
?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
5. Как вызывать функцию?
Программирование (Python), 9 класс5
Как вызывать функцию?
Использование в циклах:
a = int(input())
b = int(input())
ввод двух чисел в
while Avg(a,b) > 0:
одной строчке
print("Нет!")
a,b = map(int, input().split())
print("Угадал!");
? Когда напечатает «Угадал»?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
6. В других языках программирования
Программирование (Python), 9 класс6
В других языках программирования
Паскаль:
function Avg(a, b: integer): real;
begin
Avg:=(a+b)/2
Avg
end.
специальная переменная для
записи результата функции
С:
float Avg(int a, int b)
{
return (a+b)/2.0;
}
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
7. Максимум из двух (трёх) чисел
Программирование (Python), 9 класс7
Максимум из двух (трёх) чисел
Задача. Составить функцию, которая определяет
наибольшее из двух целых чисел.
цел a, b
исходные данные
цел r
результат
Max
?
def Max(a, b):
Как с её помощью найти
if a > b then
максимум из трёх?
return a
else:
return b
def Max3(a, b, c):
return Max( Max(a,b), c )
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
8. Сумма цифр числа
Программирование (Python), 9 класс8
Сумма цифр числа
Задача. Составить функцию, которая вычисляет сумму
значений цифр натурального числа.
def sumDigits( N ):
sum = 0
# накапливаем сумму с 0
while N!=0:
d = N % 10
# выделим последнюю цифру
sum += d
# добавим к сумме
N = N // 10 # удалим последнюю цифру
return sum
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
9. Задачи
Программирование (Python), 9 класс9
Задачи
«A»: Напишите функцию, которая вычисляет среднее
арифметическое пяти целых чисел.
Пример:
Введите 5 чисел: 1 2 3 4 6
Среднее: 3.2
«B»: Напишите функцию, которая находит количество
цифр в десятичной записи числа.
Пример:
Введите число: 751
Количество цифр: 3
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
10. Задачи
Программирование (Python), 9 класс10
Задачи
«С»: Напишите функцию, которая находит количество
единиц в двоичной записи числа.
Пример:
Введите число: 75
Количество единиц: 4
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
11. Логические функции
Программирование (Python), 9 класс11
Логические функции
Задача. Составить функцию, которая возвращает
«True», если она получила чётное число и «False»,
если нечётное.
def Even( N ):
if N % 2 == 0:
def Even( N ):
return True
return (N % 2 == 0)
else:
return False
Логическая функция — это функция, возвращающая
логическое значения (да или нет).
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
12. Рекурсивная функция
Программирование (Python), 9 класс12
Рекурсивная функция
Задача. Составить рекурсивную функцию, которая
вычисляет сумму цифр числа.
Сумма цифр числа N
последняя цифра
Вход: натуральное число N.
Шаг 1: d = N % 10
число без
Шаг 2: M = N // 10
последней цифры
Шаг 3: s = сумма цифр числа M
Шаг 4: sum = s + d
Результат: sum.
Рекурсивная функция — это функция, которая
вызывает сама себя.
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
13. Сумма цифр числа (рекурсия)
Программирование (Python), 9 класс13
Сумма цифр числа (рекурсия)
def sumDigRec( N ):
if N == 0: return 0
else:
d = N % 10
sum = sumDigRec(N // 10)
return sum + d
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
14. Задачи 1
Программирование (Python), 9 класс14
Задачи 1
Алгоритм вычисления значения функции F(n), где n —
целое неотрицательное число, задан следующими
соотношениями:
F(0) = 0;
F(n) = F(n / 2), если n > 0 и при этом чётно;
F(n) = 1 + F(n − 1), если n нечётно.
Сколько существует таких чисел n, что 1 ≤ n ≤ 1000
и F(n) = 3?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
15. Задачи 1
Программирование (Python), 9 класс15
Задачи 1
def f(n):
if n == 0:
return 0
if n > 0 and n % 2 == 0:
return f(n / 2)
if n % 2 != 0:
return 1 + f(n - 1)
k=0
for n in range(1, 1001):
if f(n) == 3:
k += 1
print(k)
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
16. Задачи 2
Программирование (Python), 9 класс16
Задачи 2
F(n) = 0, при n ≤ 1;
F(n) = F(n − 1) + 3n2, если n > 1 и при этом нечётно;
F(n) = n / 2 + F(n − 1) + 2, если n > 1 и при этом чётно.
Чему равно значение функции F(49)? В ответе запишите
только целое число.
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
17. Задачи 3
Программирование (Python), 9 класс17
Задачи 3
Алгоритм вычисления значения функции F(n), где n —
натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n · F(n − 1), если n > 1.
Чему равно значение выражения F(2023) / F(2020)?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru