Пракическая работа 1. условный оператор. Задача изменить порядок действий в зависимости от выполнения некоторого условия
Скачать 352.28 Kb.
|
Программирование на языке 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тарт!") Как без «НЕ»? ? Простые и сложные условияПростые условия (отношения) < <= > >= == <> Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:
x >= 25 and x <= 40 x <= 25 or x >= 40 not (x > 25) ??? равно не равно x <= 25 Порядок выполнения операций
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 года. |