Сокращенный условный оператор

Если необходимо выполнить некоторое действие только при истинности проверяемого условия, то в таком случае применяется сокращенный условный оператор. Общий вид в алгоритме конструкции сокращенного условного оператора представлен на рис. 29.

Блок-схема сокращенного условного оператора

Рис. 29. Блок-схема сокращенного условного оператора

Синтаксис сокращенного условного оператора следующий:

К Лог. выражение:

Р.

где гї (если) - зарезервированное слово, а Рі - оператор.

Например, в листинге 8 при истинности логического выражения выводится соответствующее сообщение «Тест 1 ветви».

Листинг 8

а = іп1(іпри1("Введите значение а ")) Ь = іп!:(іпри1:("Введите значение Ь ")) а<Ь:

ргіп1("Тест 1 ветви")_

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

Если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор. Общий вид в алгоритме конструкции составного условного оператора представлен на рис. 30.

Блок-схема составного условного оператора

Рис. 30. Блок-схема составного условного оператора

Синтаксис составного условного оператора следующий:

И- Лог. выражение:

Р,

Р2

О

else:

М,

м2

где if, else - зарезервированные слова, а Рь Р2,... Pn, Mi, М2,... Мп - операторы.

Например, в листинге 9 в каждой ветви условного оператора мы хотим выполнить по два оператора. Тогда каждый из них мы должны сместить вправо ровно на четыре пробела от начала строки.

Листинг 9

а = int(input("BBeflHTe значение а

"))

b = int(input("BBeflHTe значение b

"))

if а < Ь:

а=а+Ь

print("CyMMa двух чисел =", а)

else:

a=a*b

рпп1:("Произведение двух чисел

=", а)

Многозначные ветвления

Очень часто приходиться выбирать путь решения задачи не из двух, а из нескольких возможных. В программировании данный ход можно реализовать, используя несколько условных операторов. Общий вид в алгоритме конструкции многозначных ветвлений представлен на рис. 31.

Блок-схема конструкции многозначных ветвлений

Рис. 31. Блок-схема конструкции многозначных ветвлений

Синтаксис условного оператора в конструкции многозначных ветвлений следующий:

іґ Лог. выражение 1:

Р.

е11Г Лог. выражение2:

Р2

еігї Лог. выражениеЗ:

Рз p4

else

где if, elif, else - зарезервированные слова, a Pi, P2, P3, P4 - операторы.

Алгоритм работы такой конструкции состоит в следующем. Если Логическое вьіражениеі истинно, то выполняется оператор или блок операторов, следующих в данной ветви, в противном случае этот оператор или блок пропускается. Если логическое выражение, следующее за оператором if, ложно, то анализируется Логическое выражение2, следующее за оператором elif. Если оно истинно, то выполняется оператор или блок операторов, следующих в данной ветви, в противном случае этот оператор или блок пропускается. Операторы, следующие за последним else, выполняются лишь в том случае, если ложны все предыдущие логические выражения. Условные операторы if в такой конструкции называются вложенными.

Например, в листинге 10 показан процесс тестирования трех ветвей программы. Пользователь может менять исходные данные, которые будут находиться в ячейках а и Ь, и всякий раз получать тот или иной результат.

Листинг 10

а = int(input("BBeflHTe значение а ")) b = int(input("BBeflHTe значение b ")) if а < Ь: а=а+Ь

print("CyMMa двух чисел =", а) elif a=b: а=а*Ь

ргіп1:("Произведение двух чисел =", а) else: a=a-b

print("Pa3HOCTb двух чисел =", а)_

Алгоритмы поиска максимального и минимального элементов

Рассмотрим алгоритмы нахождения максимального и минимального значений, которые будут востребованы при дальнейшем изучении языка программирования Python.

Задача 1. Найдите максимальное из двух чисел. Разработка алгоритма решения задачи представлена на рис. 32.

Листинг 11

а = int(input("BBeflHTe значение а ")) b = int(input("BBeflHTe значение b ")) if а >= Ь:

тах=а

еЬе:

тах=Ь

ргіп1("Максимальное из двух чисел =", тах)

Алгоритм нахождения максимального из двух чисел

Рис. 32. Алгоритм нахождения максимального из двух чисел

Конец

_

Задача 2. Найдите минимальное из трех чисел. Алгоритм нахождения максимального или минимального элемента может быть запрограммирован нескольким способами. Фрагмент разработки алгоритма решения задачи (первый способ) представлен на рис. 33. Очевидно, что при большом количестве чисел, из которых нужно осуществить выбор экстремального значения, алгоритм ста-

Алгоритм нахождения минимального из грех чисел (первый способ)

Рис. 33. Алгоритм нахождения минимального из грех чисел (первый способ)

Второй способ, представленный на рис. 34, более простой и наглядный. Сравнив два числа между собой и определив минимальное из них, каждое последующее число будем сравнивать с тем, которое уже находится в ячейке min, и осуществлять перезапись ячейки оператором присваивания.

Алгоритм нахождения минимального из трех чисел (второй способ)

Рис. 34. Алгоритм нахождения минимального из трех чисел (второй способ)

Фрагмент разработки алгоритма решения задачи (третий способ) представлен на рис. 35.

Алгоритм нахождения минимального из трех чисел (третий способ)

Рис. 35. Алгоритм нахождения минимального из трех чисел (третий способ)

Листинг 12

а = т<:(три<:("Введите значение а ")) b - int(input("BBeflHTe значение b "))

с = int(input("BBeflHTe значение с ")) min=a if b < min: min=b if c

print("MHHHMaabHoe из трех чисел =", min)

На основе рассмотренных алгоритмов решим следующую задачу.

Задача 4. Вычислите значение функции у, если дана следующая функция.

пнп(а1,а2,аЗ), если-1<х<1 у = тах{Ь1,Ь2,тт{с1,с2}}, если х > 1 1, еслих<-1

Разработка алгоритма решения задачи представлена на рис. 36.

ґ->

Начало

ч_/

Ниже приведен код программы, отвечающий за решение задачи. Еще раз обратите внимание на отступы, сделанные в листинге 13. Каждый оператор її имеет свое вложение операторов согласно алгоритму решения задачи и, соответственно, отступ вправо. Как только условный оператор закончил свою работу, следующий оператор (операторы) пишется (пишутся) без отступа, как, например, в следующем фрагменте. После выполнения оператора шах=шіп условный оператор ії закончил свою работу, далее операторы (выделены курсивом) уже не относятся к оператору И- и при наборе программы смещаются влево.

if min>max: max=min yl =max

print("Tecm 2 ветви ") print ("у 1 =", yl)

Листинг 13

al = int(input("BBeflHTe значение al ")) a2 = int(input("BBeflHTe значение a2 ")) a3 = int(input("BBeflHTe значение a3 ")) bl = int(input("BBeflHTe значение bl ")) b2 = int(input("BBeflHTe значение b2 ")) cl = int(input("BBeflHTe значение cl ")) c2 = int(input("BBeflHTe значение c2 ")) x = int(input("BBeflHTe значение x ")) if x >=1: min=c 1 if c2 < min: min=c2 max=b1 if b2 > max: max=b2 if min>max: max=min yl=max

print("TecT 2 ветви") print("yl =",yl) elif (-l

print("TecT 1 ветви") print("y2 =", y2) else:

У3 = 1_

print("TecT 3 ветви") print("y3 =", уЗ)

 
< Пред   СОДЕРЖАНИЕ     След >