Оператор ветвления


Общий вид оператора ветвления:

Полная форма:

if  условие:
     блок операторов1 
else:
    блок операторов2

Краткая форма:

if условие:
    блок операторов


if (если), else (иначе) - служебные слова.

Если условие, стоящее за служебным словом if, истинно, то выполняется блок операторов1. Если условие ложно, то при использовании полной формы оператора, выполняется блок операторов2.


Пример 1.
Определить принадлежит ли заданное число х отрезку [a; b].

Ввод
a, b
х
Вывод: 
текст "yes" или "no"

a,b = map (int,input().split())
x = int (input())
if a < x < b:
  print ('yes')
else:
  print ('no')  

Получим:
4 6 5 yes
или
-5 15 20 no

Пример 2.
Вывести на экран большее из двух данных чисел.

Ввод: 
x, y - два числа (числа не равны)
Вывод: 
большее из данных чисел

a,b = map (float,input().split())
if a > b:
  print (a)
else:
  print (b)  

Получим
45 89 89.0
или
4.8 3.6 4.8

ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ РАБОТЫ

1) Измените программу для нахождения меньшего из двух чисел.

2) Измените программу для нахождения большего из трех чисел.


Пример 3.
Составить программу, которая меняет отрицательное число на противоположное ему.

Ввод:
x - число
Вывод: 
х

a = float (input())
if a < 0:
  a = -a
print (a)  

Получим
-2.5 2.5
или
45 45.0

ВЛОЖЕННОЕ ВЕТВЛЕНИЕ


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

Общий вид вложенного ветвления

if условие1:   
    блок операторов
else:   
    if условие2:        
        блок операторов    
    else:        
        if условие3:             
             блок операторов       
        ...


Пример 4.
Даны три целых положительных числа - стороны треугольника, определить вид треугольника: равносторонний, равнобедренный, разносторонний.

Ввод:
a, b, c  - стороны треугольника
Вывод:
Равносторонний или разносторонний, или равнобедренный

a, b, c = map (intinput().split())
if a == b:
    if b == c:
        print('равносторонний')
    else:
        print('равнобедренный')
else:
    if a == c:
        print('равнобедренный')
    else:
        if b == c:
            print('равнобедренный')
        else:
            print('разносторонний')

Получим
3 4 5 разносторонний
или
4 4 6 равнобедренный
или
6 6 6 равносторонний


Каскадный условный оператор


Если требуется проверить несколько условий, в языке Python используется каскадный условный оператор.

Общий вид каскадного условного оператора:
if условие1:
    блок операторов 
elif условие2:
    блок операторов
... 
else: блок операторов


Пример 5.
Дан порядковый номер месяца. Напишите программу, которая выводит на экран количество дней в этом месяце (год является невисокосным).

Ввод:
n - номер месяца
Вывод:
Количество дней

n = int(input())
if n == 2:
    print(28)
elif n == 4 or n == 6 or n == 9 or n == 11:
    print(30)
else:
    print(31)

Получим
2 28
или
5 31

ЗАДАНИЯ

1. Составьте программу, определяющую, является ли число А делителем числа В.

2. Составьте программу, заменяющую меньшее из двух данных чисел суммой, а большее - произведением этих чисел (числа не равны).

3. Даны положительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоугольника. Ответ получить в текстовой форме: можно или нельзя.

4. Даны положительные числа a, b, c, х. Выяснить, пройдет ли кирпич с ребрами a, b, c в квадратное отверстие со стороной х. Просовывать кирпич в отверстие можно только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

5. Даны три числа a, b, c. Удвоить каждое из данных чисел, если a>=b>=c и заменить числа их модулями в противном случае.

6. Даны числа х, у. Если х и у отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 5; если оба значения неотрицательны, то оба значения увеличить в 10 раз.

7. Если сумма трех попарно различных чисел x, y, z меньше единицы, то меньшее из х, у заменить суммой y и z, иначе большее из х и z заменить на 5у.

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

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

10. Длины сторон треугольника равны a, b, c. Определить, является ли этот треугольник: а) равносторонним, равнобедренным, разносторонним; б) остроугольным, тупоугольным или прямоугольным.

11. Даны величины трех углов четырехугольника ABCD: угол А равен a, угол В равен b, угол С равен c. Является ли этот четырехугольник параллелограммом, трапецией или не является ни параллелограммом, ни трапецией?

12. Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

1. Дано трехзначное число. Определить, верно ли, что все его цифры одинаковые.

2. Составить программу определения наибольшего и наименьшего из трех заданных чисел.

3. Даны три числа. Определить, существует ли треугольник со сторонами равными введенным числам. (Треугольник существует, если сумма меньших сторон больше наибольшей стороны и все числа положительны)

4. Составить программу определения номера координатной четверти для введенных чисел, координат точки.

5. Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т. е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.