153.85K
Категория: ПрограммированиеПрограммирование

Вспомогательные алгоритмы. Подпрограммы

1.

Вспомогательные
алгоритмы
Подпрограммы

2.

Программирование (Python), 9 класс
2
Два типа подпрограмм
Подпрограммы
Процедуры
выполняют действия
? Процедура или функция?
Функции
+ возвращают некоторый
результат
а) рисует окружность на экране
б) определяет площадь круга
в) вычисляет значение синуса угла
г) изменяет режим работы программы
д) возводит число x в степень y
е) включает двигатель автомобиля
ж) проверяет оставшееся количество бензина в баке
з) измеряет высоту полёта самолёта
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

3.

Программирование (Python), 9 класс
3
Простая процедура
define – определить
def printLine():
print("----------")
? Что делает?
...
вызов
printLine()
процедуры
...
какие-то
операторы
можно вызывать сколько угодно раз
нет дублирования кода
изменять – в одном месте
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

4.

Программирование (Python), 9 класс
4
Линии разной длины
def printLine5():
print("-----")
? Как улучшить?
def printLine10():
print("----------")
def printLine10():
print("-"*10)
параметр
процедуры
def printLine( n ):
print("-"*n)
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

5.

Программирование (Python), 9 класс
5
Процедура с параметром
Параметр – величина, от
которой зависит
работа процедуры.
def printLine( n ):
...
...
printLine(10)
...
printLine(7)
printLine(5)
printLine(3)
К.Ю. Поляков, Е.А. Ерёмин, 2021
? Что делает?
Аргумент – значение
параметра при
конкретном вызове.
http://kpolyakov.spb.ru

6.

Программирование (Python), 9 класс
6
Несколько параметров
символьная строка
def printLine(c, n):
print(c*n)
? Что изменилось?
? Как вызывать?
printLine( "+", 5 )
printLine( "+-+", 5 )
printLine( 5, "+" )
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

7.

Программирование (Python), 9 класс
7
Как не нужно писать процедуры
def summa():
print(x + y)
? Что плохо?
x = 10
y = 5
summa()
def summa( x, y ):
print(x + y)
x = 10
y = 5
только x + y
summa( x, y )
не перенести в
другую программу summa( 2*x+y, 7 )
! Процедура принимает данные только
через параметры!
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

8.

Программирование (Python), 9 класс
8
Что такое функция?
Функция — это вспомогательный алгоритм, который
возвращает результат (число, строку символов и др.).
Задача. Написать функцию, которая вычисляет среднее
арифметическое двух целых чисел.
цел a, b
исходные данные
целые
def Avg(a, b):
return (a+b)/2
Avg
вещ r
результат
? Тип результата?
результат
функции
return – вернуть
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

9.

Программирование (Python), 9 класс
9
Как вызывать функцию?
Запись результата в переменную:
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

10.

Программирование (Python), 9 класс
10
Как вызывать функцию?
Использование в условных операторах:
a = int(input())
b = int(input())
if Avg(a,b) > 5:
print("Да!")
Когда печатает «Да»?
else:
print("Нет!");
?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

11.

Программирование (Python), 9 класс
11
Как вызывать функцию?
Использование в циклах:
a = int(input())
b = int(input())
ввод двух чисел в
while Avg(a,b) > 0:
одной строчке
print("Нет!")
a,b = map(int, input().split())
print("Угадал!");
? Когда напечатает «Угадал»?
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

12.

Программирование (Python), 9 класс
12
Максимум из двух (трёх) чисел
Задача. Составить функцию, которая определяет
наибольшее из двух целых чисел.
цел 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

13.

Программирование (Python), 9 класс
13
Сумма цифр числа
Задача. Составить функцию, которая вычисляет сумму
значений цифр натурального числа.
def sumDigits( N ):
sum = 0
# накапливаем сумму с 0
while N!=0:
d = N % 10
# выделим последнюю цифру
sum += d
# добавим к сумме
N = N // 10 # удалим последнюю цифру
return sum
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

14.

Программирование (Python), 9 класс
14
Домашние задачи
«A»: Напишите процедуру, которая принимает параметр –
натуральное число N – и выводит на экран две линии из
N символов "–".
Пример:
Длина цепочки: 7
------------«B»: Напишите процедуру, которая принимает один
параметр – натуральное число N, – и выводит на
экран прямоугольник длиной N и высотой 3
символа.
Пример:
Длина прямоугольника: 7
ooooooo
o
o
ooooooo
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru

15.

Программирование (Python), 9 класс
15
Домашние задачи
«C»: Напишите функцию, которая вычисляет среднее
арифметическое пяти целых чисел.
Пример:
Введите 5 чисел: 1 2 3 4 6
Среднее: 3.2
«D»: Напишите функцию, которая находит количество
цифр в десятичной записи числа.
Пример:
Введите число: 751
Количество цифр: 3
К.Ю. Поляков, Е.А. Ерёмин, 2021
http://kpolyakov.spb.ru
English     Русский Правила