воскресенье, 25 сентября 2016 г.

Розгалуження в програмах

Заняття 4
На цьому занятті ми розглянемо елементи математичної логіки та розгалуження у програмах.
У більшості програм на певному кроці їх виконання потрібно вибирати той чи інший варіант подальших дій, тобто використовувати розгалуження. Умовою вибору того чи іншого варіанту є виконання деякої умови. Сама умова повинна бути булевського типу, тобто приймати лише два значення true або false. Сама умова записується одразу після оператора if, а після її через двокрапку записується команда, які необхідно виконати. Якщо команд декілька, то вони відокремлюються блоком, які мають однаковий відступ після оператора if. Відступ встановлюється клавішею Tab або пробілами. Якщо розгалуження закінчилося, то наступні команди слід писати під оператором if. Саме відступи виконують роль фігурних дужок на С++ або операторів begin end на PASCAL. Наприклад,
if a>0:
    print(“Дане число додатне”)
У випадку виконання інших команда у разі невиконання умови слід їх писати після оператора else, не забуваючи також поставити двокрапку. Наприклад,
if a>0:
    print(“Дане число додатне”)
else:
print(“Дане число недодатне”)
Якщо необхідно використати декілька гілок розгалуження, то використовують оператор elif, що є скороченою формою операторів else: if, причому їх кількість необмежена. Наприклад,
if a>0:
    print(“Дане число додатне”)
elif a<0:
    print(“Дане число відʼємне”)
else:
print(“Дане число дорівнює нулю”)
Зауваження: функцію print() можна писати в тому самому рядку, де і оператори if, elif чи else. Це можна робити, коли команда, що відноситься до умови лише одна, а у випадку блоку команд краще записувати з окремого рядка.

Розглянемо, які умови можна використовувати
Назва
Позначення
Приклад
Рівність
==
а==25
Більше
> 
a>25
Менше
< 
a<25
Більше або дорівнює
>=
a>=25
Менше або дорівнює
<=
a<=25
Не дорівнює
!=
а!=25
Якщо умова складна, то прості умови повʼязуються між собою службовими словами and, or та not()(логічне "і", логічне "або" та логічне "ні"). На мові PYTHON у цих операцій найнижчий пріоритет, тому прості умови не беруться в дужки. Наприклад, розглянемо, в якій координатній чверті знаходиться точка з координатами (x,y):
if x>0 and y>0:
    print(“І чверть”)
elif x<0 and y>0:
    print(“ІІ чверть”)
elif x<0 and y<0:
    print(“ІIІ чверть”)
elif x>0 and y<0:
    print(“ІV чверть”)
else:
print(“Точка лежить на координатних осях”)
Розглянемо ще один приклад перевірки умови рівності дробу x/y нулю.
if x==0 and not(y==0):
    print(“Дріб дорівнює нулю”)
Зауваження. Цю саму умову можна було записати і так:
if x==0 and y!=0:

Розглянемо кілька прикладів програм.

Приклад 1.
Дано одне натуральне число. Якщо воно парне, то вивести слово «YES», а якщо непарне, то – «NO»
Вхід                                   Вихід
34                                       YES
n=int(input())
if n%2==0:
    print(“YES”)
else:
    print(“NO”)

Приклад 2.
У двох рядках дано по одному цілому числу. Вивести максимальне з цих двох чисел.
Вхід                                   Вихід
3                                         4
4                   
a=int(input())
b=int(input())
if a>b:
    print(a)
else:
    print(b)

Приклад 3.
У одному рядку через пробіл дано три цілих числа. Вивести мінімальне з цих трьох чисел.
Вхід                                   Вихід
3 2 5                                   2
Програма:               
a, b, c = map(int, input().split())
m=a
if b<m:
    m=b
if c<m:
    m=c
print(m)

Приклад 4.
У одному рядку через пробіл дано чотири цілих числа – перші дві є координатами шахового коня на шаховій дошці, а інші два – координати короля протилежного кольору. Вивести слово «YES», якщо король перебуває під нападом з боку коня, або слово «NO», якщо ні.
Вхід                                   Вихід
3 2 5 1                                YES
Програма:               
x1, y1, x2, y2 = map(int, input().split())
if (abs(x1-x2)==1 and abs(y1-y2)==2) or (abs(x1-x2)==2 and abs(y1-y2)==1):
    print(“YES”)
else:
print(“NO”)

Зауваження. Оператор аbs() – це модуль числа, що стоїть у дужках. Читаємо умову: якщо модуль різниці перших координат дорівнює 1 і модуль різниці других координат дорівнює 2 або модуль різниці перших координат дорівнює 2 і модуль різниці других координат дорівнює 2, то виводимо слово «YES», інакше виводимо слово «NO».

Це був останній приклад на цьому занятті. На наступному занятті ми розглянемо оператори циклу. До зустрічі.


3 комментария:

  1. Шановні відвідувачі блогу. Автор щиро вдячний Вам за схвальні відгуки цього блогу, але маю Вам повідомити, що втратив можливість надалі вести цей блог. Тому його робота продовжиться за новою адресою pythonforschool.blogspot.com, де викладений матеріал по вивченню PYTHON саме для учнів 8 класу з розбивкою задач на теми, викладенням теоретичного матеріалу з прикладами, списком задач для класної та домашньої роботи та підтримкої їх онлайн-перевірки. Буду радий Вас всіх бачити на оновленому блозі.

    ОтветитьУдалить
  2. Дякую, все чітко і зроуміло.

    ОтветитьУдалить