Файл: Задача изменить порядок действий в зависимости от выполнения некоторого условия.pptx
Добавлен: 12.01.2024
Просмотров: 239
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Программирование на языке Python
Структура полного условного оператора
<Действия 1-го варианта (1-я серия инструкций)>
<Действия 2-го варианта (2-я серия инструкций)>
Выбор наибольшего из двух чисел
Выбор наибольшего из двух чисел-2
В других языках программирования
Задание 1. Написать программу по данному алгоритму.
Задачи (без функций min и max!)
Программирование на языке Python
Ветвления
Задача: изменить порядок действий в зависимости от выполнения некоторого условия.
Условный оператор – оператор, который реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.
Структура полного условного оператора
if <условие>:
<Действия 1-го варианта (1-я серия инструкций)>
else:
<Действия 2-го варианта (2-я серия инструкций)>
Выбор наибольшего из двух чисел
Задача: изменить порядок действий в зависимости от выполнения некоторого условия.
M = a
a > b?
M = b
да
нет
вывод M
полная форма ветвления
Если a = b?
?
if a > b:
M = a
else:
M = b
отступы
Вариант 1. Программа
print("Введите два целых числа")
a = int(input())
b = int(input()) if a > b: else: print("Наибольшее число", M)
M = a
M = b
полная форма условного оператора
M = max(a, b)
Решение в стиле Python:
M = a if a > b else b
Выбор наибольшего из двух чисел-2
неполная форма ветвления
начало
M = a
ввод a,b
M = b
конец
да
нет
b > a?
вывод M
Вариант 2. Программа
print("Введите два целых числа")
a = int(input())
b = int(input())
M = a if b > a: print("Наибольшее число", M)
M = b
неполная форма условного оператора
Примеры
if a < b:
M = a
if b < a:
M = b
Что плохо?
?
Когда работает неверно?
?
Поиск минимального:
Примеры
if a < b:
c = a
a = b
b = c
Что делает эта программа?
?
В чём отличие?
?
if a < b:
c = a
a = b
b = c
4
6
?
4
6
4
a
b
3
2
1
c
a, b = b, a
Решение в стиле Python:
В других языках программирования
if a < b then begin
c:= a;
a:= b;
b:= c;
end;
Паскаль:
С:
if (a < b) {
c = a;
a = b;
b = c;
}
Знаки отношений
>
<
>=
<=
==
!=
больше, меньше
больше или равно
меньше или равно
равно
не равно
Пример. Даны два вещественных числа а и b. Если первое больше второго, то увеличить каждое число в 2 раза, иначе – уменьшить в два раза.
Соответствующая программа:
a = float(input('a = '))
b = float(input('b = '))
if a > b:
a = a * 2
b = b * 2
else:
a = a/2
b = b/2
print('a =', a)
print('b =', b)
Вложенные условные операторы
if a > b:
print("Андрей старше")
else:
if a == b:
print("Одного возраста")
else:
print("Борис старше")
вложенный условный оператор
Зачем нужен?
?
Задача: в переменных a и b записаны возрасты Андрея и Бориса. Кто из них старше?
Сколько вариантов?
?
Каскадное ветвление
if a > b:
print("Андрей старше")
elif a == b:
print("Одного возраста")
else:
print("Борис старше")
elif = else if
!
Каскадное ветвление
cost = 1500
if cost < 1000:
print ( "Скидок нет." )
elif cost < 2000:
print ( "Скидка 2%." )
elif cost < 5000:
print ( "Скидка 5%." )
else:
print ( "Скидка 10%." )
Что выведет?
?
первое сработавшее условие
Скидка 2%.
Задание 1. Написать программу по данному алгоритму.
Соответствующая программа:
a = int(input('a = '))
b = int(input('b = '))
if a == b:
a = b - a
eilf a > b:
a = a - b
else:
b = b - a
print('a =', a)
print('b =', b)
Задачи (без функций min и max!)
«3»: Ввести два целых числа, найти наибольшее и наименьшее из них.
Пример:
Введите два целых числа:
1 5
Наибольшее число 5
Наименьшее число 1
«4»: Ввести четыре целых числа, найти наибольшее из них.
Пример:
Введите четыре целых числа:
1 5 4 3
Наибольшее число 5
Задачи
'5': Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Задачи
«6»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит").
Особенность: надо проверить, выполняются ли два условия одновременно:
возраст 25 возраст 40
Можно ли решить известными методами?
?
Плохое решение
print("Введите ваш возраст")
x = int(input())
if x >= 25:
if x <= 40:
print("Подходит!")
else:
print("Не подходит.")
else:
print("Не подходит.")
вложенный условный оператор
Хорошее решение (операция «И»)
if :
print("подходит")
else:
print("не подходит")
and
v >= 25 and v <= 40
сложное условие
«И»: одновременное выполнение всех условий!
Задача: набор сотрудников в возрасте 25-40 лет (включительно).
Примеры
Задача. Вывести "Да", если число в переменной a – двузначное.
if 10 <= a and a <= 99:
print("Да")
Задача. Вывести "Да", если число в переменной a – двузначное и делится на 7.
if 10 <= a and a <= 99 and (a % 7)==0:
print("Да")
Сложные условия: «ИЛИ»
Задача. Самолёт летает по понедельникам и четвергам. Ввести номер дня недели и определить, летает ли в этот день самолёт.
Особенность: надо проверить, выполняется ли одно из двух условий:
день = 1 день = 4
if d == 1 or d == 4 :
print("Летает")
else:
print("Не летает")
сложное условие
d == 1 or d == 4
or
«ИЛИ»: выполнение хотя бы одного из двух условий!
Ещё пример
Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит"). Использовать «ИЛИ».
if :
print("не подходит")
else:
print("подходит")
v < 25 or v > 40
Сложные условия: «НЕ»
if not(a < b):
print("Cтарт!")
not
«НЕ»: если выполняется обратное условие
if a >= b:
print("Cтарт!")
Как без «НЕ»?
?
Простые и сложные условия
Простые условия (отношения)
< <= > >= == <>
Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:
- and – одновременное выполнение условий
- or – выполнение хотя бы одного из условий
- not – отрицание, обратное условие
x >= 25 and x <= 40
x <= 25 or x >= 40
not (x > 25) ???
равно
не равно
x <= 25
Порядок выполнения операций
- выражения в скобках
- <, <=, >, >=, =, <>
- not
- and
- or
1
if not a > 2 or c != 5 and b < a:
...
4
2
3
5
6
Сложные условия
Истинно или ложно при a = 2; b = 3; c = 4
not (a > b)
a < b and b < c
a > c or b > c
a < b and b > c
a > c and b > d
not (a >= b) or c = d
a >= b or not (c < b)
a > c or b > c or b > a
Да
Да
Нет
Да
Да
Нет
Нет
Да
Задачи
«3»: Напишите программу, которая получает три числа - рост трёх спортсменов, и выводит сообщение «По росту.», если они стоят по возрастанию роста, или сообщение «Не по росту!», если они стоят не по росту.
Пример:
Введите рост трёх спортсменов:
165 170 172
По росту.
Пример:
Введите рост трёх спортсменов:
175 170 172
Не по росту!
Задачи
«4»: Напишите программу, которая получает номер месяца и выводит соответствующее ему время года или сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.
Задачи
«5»: Напишите программу, которая получает возраст человека (целое число, не превышающее 120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.