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

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

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

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

Добавлен: 12.01.2024

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

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

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

Программирование на языке 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 – одновременное выполнение условий

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

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

    • 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 года.