Файл: Задача изменить порядок действий в зависимости от выполнения некоторого условия.pptx

ВУЗ: Не указан

Категория: Решение задач

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 643

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Программирование на языке Python

Ветвления

Задача: изменить порядок действий в зависимости от выполнения некоторого условия. Условный оператор – оператор, который реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.

Структура полного условного оператора

if <условие>:

<Действия 1-го варианта (1-я серия инструкций)>

else:

<Действия 2-го варианта (2-я серия инструкций)>

Выбор наибольшего из двух чисел

Задача: изменить порядок действий в зависимости от выполнения некоторого условия.M = aa > 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 = aM = bполная форма условного оператораM = max(a, b)Решение в стиле Python:M = a if a > b else b

Выбор наибольшего из двух чисел-2

неполная форма ветвленияначалоM = aввод a,bM = 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 = bb = c46?464ab321ca, 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 = 1500if 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 - aeilf 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("не подходит")andv >= 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 день = 4if 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 – одновременное выполнение условий

    • x >= 25 and x <= 40
    • or – выполнение хотя бы одного из условий

    • x <= 25 or x >= 40
    • not – отрицание, обратное условие

    • not (x > 25)  ???
равноне равноx <= 25

Порядок выполнения операций

    • выражения в скобках
    • <, <=, >, >=, =, <>
    • not
    • and
    • or
1if not a > 2 or c != 5 and b < a: ...42356

Сложные условия

Истинно или ложно при a = 2; b = 3; c = 4not (a > b)a < b and b < ca > c or b > ca < b and b > ca > c and b > dnot (a >= b) or c = da >= 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 года.