Similar presentations:
Ветвление. Язык Python. Лекция 4
1.
Лекц_4 ВетвлениеД/З – 4 вида заданий
2. Случайные числа
Алгоритмизация и программирование, язык Python, 10 класс2
Случайные числа
Случайно…
• встретить друга на улице
• разбить тарелку
• найти 10 рублей
• выиграть в лотерею
Случайный выбор:
• жеребьевка на
соревнованиях
• выигравшие номера
в лотерее
Как получить случайность?
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
3. Случайные числа на компьютере
Алгоритмизация и программирование, язык Python, 10 класс3
Случайные числа на компьютере
Электронный генератор
• нужно специальное устройство
• нельзя воспроизвести результаты
Псевдослучайные числа – обладают свойствами
случайных чисел, но каждое следующее число
вычисляется по заданной формуле.
Метод середины квадрата (Дж. фон Нейман)
зерно
564321
318458191041
458191
в квадрате • малый период
(последовательность
повторяется через 106 чисел)
209938992481
938992
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
4. Генератор случайных чисел
Алгоритмизация и программирование, язык Python, 10 класс4
Генератор случайных чисел
import random
англ. random – случайный
Генератор на [0,1):
X = random(); # псевдослучайное число
Y = random() # это уже другое число!
Целые числа на отрезке [a,b]:
X = randint(a, b) # псевдослучайное число
Y = randint(a, b) # это уже другое число!
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
5. Д/З Задачи -1
Алгоритмизация и программирование, язык Python, 10 класс5
Д/З Задачи -1
«A»: Ввести с клавиатуры три целых числа, найти их сумму,
произведение и среднее арифметическое.
Пример:
Введите три целых числа:
5 7 8
5+7+8=20
5*7*8=280
(5+7+8)/3=6.667
«B»: Ввести с клавиатуры координаты двух точек (A и B) на
плоскости (вещественные числа). Вычислить длину отрезка AB.
Пример:
Введите координаты точки A:
5.5 3.5
Введите координаты точки B:
1.5 2
Длина отрезка AB = 4.272
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
6. Д/З Задачи -1
Алгоритмизация и программирование, язык Python, 10 класс6
Д/З Задачи -1
«C»: Получить случайное трехзначное число и вывести через
запятую его отдельные цифры.
Пример:
Получено число 123.
Его цифры 1, 2, 3.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
7. Программирование на языке Python
Ветвления7
8. Условный оператор
Алгоритмизация и программирование, язык Python, 10 класс8
Условный оператор
Задача: изменить порядок действий в зависимости от
выполнения некоторого условия.
полная
форма
да
нет
ветвления
a > b?
M=a
?
M=b
вывод M
отступы
К.Ю. Поляков, Е.А. Ерёмин, 2014
Если a = b?
if a > b:
M = a
else:
M = b
http://kpolyakov.spb.ru
9. Условный оператор: неполная форма
Алгоритмизация и программирование, язык Python, 10 класс9
Условный оператор: неполная форма
M=a
да
b > a?
нет
M = a
if b > a:
M = b
M=b
неполная
форма
ветвления
вывод M
Решение в стиле Python:
M = max(a, b)
К.Ю. Поляков, Е.А. Ерёмин, 2014
M = a if a > b else b
http://kpolyakov.spb.ru
10. Условный оператор
Алгоритмизация и программирование, язык Python, 10 класс10
Условный оператор
if a > b:
с = a
a = b
b = c
?
?
Можно ли обойтись
без переменной c?
Решение в стиле Python:
Что делает?
b
a
4
6
2
6
4
?
4
c
a, b = b, a
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
11. Знаки отношений
Алгоритмизация и программирование, язык Python, 10 класс11
Знаки отношений
> <
К.Ю. Поляков, Е.А. Ерёмин, 2014
больше, меньше
>=
больше или равно
<=
меньше или равно
==
равно
!=
не равно
http://kpolyakov.spb.ru
12. Вложенные условные операторы
Алгоритмизация и программирование, язык Python, 10 класс12
Вложенные условные операторы
Задача: в переменных a и b записаны возрасты Андрея и
Бориса. Кто из них старше?
Сколько вариантов?
if a > b:
print("Андрей старше")
else:
if a == b:
print("Одного возраста")
else:
print("Борис старше")
?
?
К.Ю. Поляков, Е.А. Ерёмин, 2014
Зачем нужен?
вложенный
условный оператор
http://kpolyakov.spb.ru
13. Каскадное ветвление
Алгоритмизация и программирование, язык Python, 10 класс13
Каскадное ветвление
if a > b:
print("Андрей старше")
elif a == b:
print("Одного возраста")
else:
print("Борис старше")
!
К.Ю. Поляков, Е.А. Ерёмин, 2014
elif = else if
http://kpolyakov.spb.ru
14. Каскадное ветвление
Алгоритмизация и программирование, язык Python, 10 класс14
Каскадное ветвление
cost = 1500
if cost < 1000:
print ( "Скидок
elif cost < 2000:
print ( "Скидка
elif cost < 5000:
print ( "Скидка
else:
print ( "Скидка
?
К.Ю. Поляков, Е.А. Ерёмин, 2014
Что выведет?
нет." )
2%." )
первое сработавшее
условие
5%." )
10%." )
Скидка 2%.
http://kpolyakov.spb.ru
15. Д/З Задачи -2
Алгоритмизация и программирование, язык Python, 10 класс15
Д/З Задачи -2
«A»: Ввести три целых числа, найти максимальное из них.
Пример:
Введите три целых числа:
1 5 4
Максимальное число 5
«B»: Ввести пять целых чисел, найти максимальное из них.
Пример:
Введите пять целых чисел:
1 5 4 3 2
Максимальное число 5
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
16. Д/З Задачи -2
Алгоритмизация и программирование, язык Python, 10 класс16
Д/З Задачи -2
«C»: Ввести последовательно возраст Антона, Бориса и
Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
17. Сложные условия
Алгоритмизация и программирование, язык Python, 10 класс17
Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет
(включительно). сложное условие
and «И»
if v >= 25 and v <= 40 :
print("не подходит")
else:
print("не подходит")
or «ИЛИ»
not «НЕ»
Приоритет :
1) отношения (<, >, <=, >=, ==, !=)
2)not («НЕ»)
3)and («И»)
4)or («ИЛИ»)
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
18. Д/З Задачи -3
Алгоритмизация и программирование, язык Python, 10 класс18
Д/З Задачи -3
«A»: Напишите программу, которая получает три числа и
выводит количество одинаковых чисел в этой цепочке.
Пример:
Введите три числа:
5 5 5
Все числа одинаковые.
Пример:
Введите три числа:
5 7 5
Два числа одинаковые.
Пример:
Введите три числа:
5 7 8
Нет одинаковых чисел.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
19. Д/З Задачи -3
Алгоритмизация и программирование, язык Python, 10 класс19
Д/З Задачи -3
«B»: Напишите программу, которая получает номер месяца и
выводит соответствующее ему время года или сообщение
об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
20. Д/з Задачи
Алгоритмизация и программирование, язык Python, 10 класс20
Д/з Задачи
«C»: Напишите программу, которая получает возраст человека
(целое число, не превышающее 120) и выводит этот
возраст со словом «год», «года» или «лет». Например,
«21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
21. Д/з Задачи -4
Алгоритмизация и программирование, язык Python, 10 класс21
Д/з Задачи -4
«A»: Напишите условие, которое определяет
заштрихованную область.
а)
а
б) б
y
) x2 y 2 4
y
)
в
y sin( x)
)
y 0,5
x
y x
x
x 2
«B»: Напишите условие, которое определяет
заштрихованную область.
а)
б)
y
в)
y x
y
y 1
y
x2 y 2 1
y x 1
x
y x2
0
y 2 x
x
x2 y2 1
x
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
22. Д/з Задачи -4
Алгоритмизация и программирование, язык Python, 10 класс22
Д/з Задачи -4
«C»: Напишите условие, которое определяет
заштрихованную область.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru