Условный оператор

Алгоритм разветвленной структуры

Основы программирования

Как мы уже говорили, любой алгоритм можно составить из нескольких базовых структур. Простейшая из них — линейная (следование). В ней команды выполняются однократно в той последовательности, как они записаны. Однако далеко не всегда для решения задачи последовательность действий одна и та же при любых исходных данных. Если на каком-то этапе исполнитель должен выбирать один вариант из нескольких, в алгоритме используют ветвление.

В алгоритме разветвленной структуры (ветвлении) в зависимости от истинности или ложности некоторого условия выбирается одна из двух серий команд.

Пример программы разветвленной структуры

Блок-схема

блок-схема (ветвление)

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

# разветвленный алгоритм
a = float(input('a='))
b = float(input('b='))
c = float(input('c='))
d = b * b - 4 * a * c

if d < 0 :
    print('корней нет')
else :
    print('корни есть')

Обратите внимание, что операторы в каждой части условного оператора if...else... сдвинуты вправо. Именно по этому смещению — оно должно быть одинаковым для всех строк в блоке — транслятор языка Python и определяет, какие операторы входят в этот блок. Принято делать отступ величиной в 4 пробела.

В том случае, если при ложности условия никаких действий не выполняется, на блок-схеме на стрелке «НЕТ» не чертят никаких блоков, а в записи условного оператора пропускают часть «else». Если же, напротив, при невыполнении первого условия нужно выбирать еще из нескольких вариантов, возможно использование сокращения «elif» (от «else if» — «иначе, если»). Например:

if d < 0 :
    print('корней нет')

elif d == 0 :
    print('один корень')

else :
    print('два корня')

Если d меньше 0, то
вывести на экран «корней нет».

Иначе, если d равен 0, то
вывести на экран «один корень».

Иначе [то есть, когда не выполнено ни одно из условий]
вывести на экран «два корня».

Если в программе есть ветвление, нужно…

  1. Определить, какие существуют варианты действий и сколько их всего. Количество условий будет на одно меньше, чем число вариантов.
  2. Выяснить, при каких условиях должен выполняться каждый из вариантов.
  3. Если вариантов больше двух, выбрать последовательность проверки условий. При необходимости построить блок-схему.
  4. Записать алгоритм на языке программирования.
  5. Подобрать данные для тестирования программы (предусмотреть наборы данных, позволяющие проверить каждый вариант действий).

Операции сравнения

При записи условий в языке Python можно использовать следующие операции сравнения:

ОперацияОбозначениеПример записи
Равно?==d == 0
Больше?>x + y > 100
Меньше?<z < 5 * x
Больше либо равно?>=math.sin(a) >= 0.5
Меньше либо равно?<=v <= 60
Не равно?!=y != 0

Результатом операции сравнения всегда будет логическое значение — либо False (ложь), либо True (истина).

Логические операции

Нередко условие, требующее проверки, нельзя выразить с помощью единственного сравнения. Тогда используют составные условия, образующиеся с помощью логических операций. В языке программирования Python их три:

ОперацияОбозначениеРезультатПример записи
«И»
(конъюнкция)
and«истина», если истинны
оба операнда 
(и первый, и второй)
(x > -2) and (x < 2)
«Или»
(дизъюнкция)
or«истина», если истинен
хотя бы один операнд 
(первый или второй)
(x < -2) or (x > 2)
«Не»
(инверсия)
not«истина», если операнд ложенnot (a > b)

Задания

  1. Определите значение следующего выражения при x=1, y=2:
    • (x >= 0) or (y * y != 4)
    • (x * y != 0) and (x < y)
    • (not(x * y > 0)) and (y > x)
  2. Запишите по правилам Python следующие выражения:
    • a меньше 8 или b больше -10;
    • d меньше либо равно 0 или w больше d;
    • 0 < y ≤ 100.
  3. Составьте на языке Python программу, определяющую, какой из двух мешков тяжелее при условии, что масса первого из них (m1) вводится в килограммах, а второго (m2) — в пудах.

Для справки:
1 пуд = 16,38 кг

Основы программирования