--- tags: Python --- # Практика 6. Умовний оператор ## Базовий рівень ### [Задача 1. Мінімум із двох чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/minimum/) Дано два цілих числа. Виведіть значення найменшого. [![](https://mermaid.ink/img/pako:eNplj81Kw0AQgF9lmJOFlFCPQfRSn6Deujks2V0bSHYlbrAhzUEPevHkoQdBBJ-gCEIp2GeYfaNOUw_Szml-vm-YaTFzSmOCpnAP2UxWHm7GwgLHxHN1NqVP2oYXWoUn2tImHcBweAm5m8b0Rt_0Ex55sIZ5BE2cHsTcHRjTzuECGrjq_vqm7y_oi1a0WTA36res_--J0x66tupI-gjLvXJ-ojTHCid89ntY0i9Dz-E1HQiLEZa6KmWu-Nl2Dwr0M11qgQmnShtZF16gsB2jsvZu0tgME1_VOsL6Tkmvx7m8rWSJiZHFve52cPp_Bg?type=png)](https://mermaid.live/edit#pako:eNplj81Kw0AQgF9lmJOFlFCPQfRSn6Deujks2V0bSHYlbrAhzUEPevHkoQdBBJ-gCEIp2GeYfaNOUw_Szml-vm-YaTFzSmOCpnAP2UxWHm7GwgLHxHN1NqVP2oYXWoUn2tImHcBweAm5m8b0Rt_0Ex55sIZ5BE2cHsTcHRjTzuECGrjq_vqm7y_oi1a0WTA36res_--J0x66tupI-gjLvXJ-ojTHCid89ntY0i9Dz-E1HQiLEZa6KmWu-Nl2Dwr0M11qgQmnShtZF16gsB2jsvZu0tgME1_VOsL6Tkmvx7m8rWSJiZHFve52cPp_Bg) :::spoiler Підказка ![](https://i.imgur.com/XrddXe4.png) <!-- ``` ввести x ввести y если x < y: вывести x иначе: вывести y ``` ``` python x = int(input()) y = int(input()) if x < y: print(x) else: print(y) ``` --> ::: ### [Задача 2. Знак числа](https://snakify.org/en/lessons/if_then_else_conditions/problems/signum/) У математиці функцію `sign(x)` (знак числа) визначено так: ```` sign(x) = 1, якщо x > 0, sign(x) = -1, якщо x < 0, sign(x) = 0, якщо x = 0. ```` Для цього числа `x` виведіть значення `sign(x)`. Це завдання бажано вирішити з використанням каскадних інструкцій `if... elif... else`. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення n cond=>condition: n > 0 ? io1=>inputoutput: Виведення 1 cond2=>condition: n < 0 ? io2=>inputoutput: Виведення -1 io3=>inputoutput: Виведення 0 st->io->cond cond(true@Так)->io1->e cond(false@Ні)->cond2 cond2(true@Так)->io2->e cond2(false@Ні)->io3->e ``` :::spoiler Підказка ![](https://i.imgur.com/9T3IRxx.png) <!-- ``` ввести n если n больше 0: вывести 1 иначе если n меньше 0: вывести -1 иначе: вывести 0 ``` ``` python n = int(input()) if n > 0: print(1) elif n < 0: print(-1) else: print(0) ``` --> ::: ### [Задача 3. Мінімум із трьох чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/minimum3/) Дано три цілих числа. Виведіть значення найменшого. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення a, b, c cond=>condition: (a <= b) та (a <= с) io1=>inputoutput: Виведення a cond2=>condition: (b <= a) та (b <= с) io2=>inputoutput: Виведення b io3=>inputoutput: Виведення c st->io->cond cond(true@Так)->io1->e cond(false@Ні)->cond2 cond2(true@Так)->io2->e cond2(false@Ні)->io3->e ``` :::spoiler Підказка ![](https://i.imgur.com/SVvCIFp.png) <!-- ``` ввести a, b, c если a меньше или равно b и a меньше или равно с: вывести a иначе если b меньше или равно a и c: вывести b иначе: вывести c ``` ``` python a = int(input()) b = int(input()) c = int(input()) if a <= b and a <= c: print(a) elif b <= a and b <= c: print(b) else: print(c) ``` --> ::: ### [Задача 4. Скільки збігається чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/num_equal/) Дано три цілих числа. Визначте, скільки з них збігаються. Програма повинна вивести одне з чисел: 3 (якщо всі збігаються), 2 (якщо два збігаються) або 0 (якщо всі числа є різними). [![](https://mermaid.ink/img/pako:eNplUj9Lw0AU_yrHmxpIiaZboHZpR6c62ctwSS5NIMmVeEEkzaCDLk4OHQQR_ARVEErBfIaXb-Q1KakmNxzv997vD7y7HFzhcbDAj8StG7BUkqspTYg6c6nQYIHvWFZPuK0esMS9rZHh8IKEYmHgC37hd3WvBjvCdOLoxDXsRhuKhubnjIzHxDlcLpkUx6lfT9f4gVvcrxX7vLbb_TEcGXZNmiVeR_RWbZTEN3MKg8ZdI8rnE0vSYPeEnSOeUGizzW642Qs3--Hmv3Qx6mnOuhpVqO29Vhv8UaTH6tnWaAI6xDyNWeipnecHIgUZ8JhTsFTpcZ9lkaRAk0JRWSbF_C5xwZJpxnXIVh6TfBqyZcpisHwW3bTdmRdKkbbNFUuuhTiRUpEtgxbxmnzZPH39A4pf4tzJcg?type=png)](https://mermaid.live/edit#pako:eNplUj9Lw0AU_yrHmxpIiaZboHZpR6c62ctwSS5NIMmVeEEkzaCDLk4OHQQR_ARVEErBfIaXb-Q1KakmNxzv997vD7y7HFzhcbDAj8StG7BUkqspTYg6c6nQYIHvWFZPuK0esMS9rZHh8IKEYmHgC37hd3WvBjvCdOLoxDXsRhuKhubnjIzHxDlcLpkUx6lfT9f4gVvcrxX7vLbb_TEcGXZNmiVeR_RWbZTEN3MKg8ZdI8rnE0vSYPeEnSOeUGizzW642Qs3--Hmv3Qx6mnOuhpVqO29Vhv8UaTH6tnWaAI6xDyNWeipnecHIgUZ8JhTsFTpcZ9lkaRAk0JRWSbF_C5xwZJpxnXIVh6TfBqyZcpisHwW3bTdmRdKkbbNFUuuhTiRUpEtgxbxmnzZPH39A4pf4tzJcg) :::spoiler Підказка ![](https://i.imgur.com/7Y1LOU4.png) <!-- ``` ввести a ввести b ввести c если a равно b равно c: вывести 3 если иначе a равно b или a равно c или b равно c: вывести 2 иначе: вывести 0 ``` ``` python a = int(input()) b = int(input()) c = int(input()) if a == b == c: print(3) elif a == b or a == c or b==c: print(2) else: print(0) ``` --> ::: ## Середній рівень ### [Задача 5. Хід тури](https://snakify.org/en/lessons/if_then_else_conditions/problems/rook_move/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="https://snakify.org/static/images/problems/rook_move.png"> </div> Шахова тура ходить по горизонталі або вертикалі. Дано дві різні клітини шахової дошки, визначте, чи може тура потрапити з першої клітини на другу одним ходом. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини. Програма повинна вивести `YES`, якщо з першої клітини ходом тури можна потрапити в другу або `NO` в іншому випадку. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення h1, v1, h2, v2 cond=>condition: h1 дорівнює h2 або v1 дорівнює v2 io1=>inputoutput: Виведення YES io2=>inputoutput: Виведення NO st->io->cond cond(true@Так)->io1->e cond(false@Ні)->io2->e ``` :::spoiler Підказка ![](https://i.imgur.com/6dwEHvc.png) <!-- ``` ввести h1, v1, h2, v2 если h1 равно h2 или v1 равно v2: вывести YES иначе: вывести NO ``` ``` python h1 = int(input()) v1 = int(input()) h2 = int(input()) v2 = int(input()) if (h1 == h2) or (v1 == v2): print('YES') else: print('NO') ``` --> ::: ### [Задача 6. Шахова дошка](https://snakify.org/en/lessons/if_then_else_conditions/problems/chess_board/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="http://3.bp.blogspot.com/-9b0biHqujnU/T0O1_lo30CI/AAAAAAAALc0/K4jlU1rEKX8/s1600/%D0%B4%D0%BE%D1%81%D0%BA%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B+%D0%B2+%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B+1.jpg"> </div> Задано дві клітинки шахівниці. Якщо вони пофарбовані в один колір, то виведіть слово YES, а якщо в різні кольори - то NO. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення v1, h1, v2, h2 cond=>condition: (v1 + h1) % 2 == (v2 + h2) % 2 io1=>inputoutput: Виведення YES io2=>inputoutput: Виведення NO st->io->cond cond(true@Так)->io1->e cond(false@Ні)->io2->e ``` :::spoiler Підказка ![](https://i.imgur.com/NZkhkrF.png) <!-- ``` ввести v1 ввести h1 ввести v2 ввести h2 если остаток от деления на 2 для (v1 + h1) равняется остатку от деления на 2 для (v2 + h2): вывести YES иначе: вывести NO ``` ``` python v1 = int(input()) h1 = int(input()) v2 = int(input()) h2 = int(input()) if (v1 + h1) % 2 == (v2 + h2) % 2: print('YES') else: print('NO') ``` --> ::: ### [Задача 7. Ход короля](https://snakify.org/en/lessons/if_then_else_conditions/problems/king_move/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="https://snakify.org/static/images/problems/king_move.png"> </div> Шаховий король ходить по горизонталі, вертикалі та діагоналі, але тільки на 1 клітинку. Дано дві різні клітини шахівниці, визначте, чи може король потрапити з першої клітини на другу одним ходом. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини. Програма повинна вивести `YES`, якщо з першої клітини ходом короля можна потрапити в другу або `NO` в іншому випадку. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення h1, v1, h2, v2 cond=>condition: модуля різниць h1, h2 та v1, v2 менше або рівні 1 io1=>inputoutput: Виведення YES io2=>inputoutput: Виведення NO st->io->cond cond(true@Так)->io1->e cond(false@Ні)->io2->e ``` :::spoiler Підказка ![](https://i.imgur.com/PUcIsqJ.png) <!-- ``` ввести h1, v1, h2, v2 если модуля разностей h1, h2 и v1, v2 меньше или равны 1: вывести YES иначе: вывести NO ``` ``` python h1 = int(input()) v1 = int(input()) h2 = int(input()) v2 = int(input()) if abs(h1 - h2) <= 1 and abs(v1 - v2) <= 1: print('YES') else: print('NO') ``` --> ::: ### [Задача 8. Хід слона](https://snakify.org/en/lessons/if_then_else_conditions/problems/bishop_move/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="https://snakify.org/static/images/problems/bishop_move.png"> </div> Шаховий слон ходить по діагоналі. Дано дві різні клітини шахової дошки, визначте, чи може слон потрапити з першої клітини на другу одним ходом. ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення h1, v1, h2, v2 cond=>condition: різниці h1, v1 и h2, v2 рівні або відповідні суми дорівнюють io1=>inputoutput: Виведення YES io2=>inputoutput: Виведення NO st->io->cond cond(true@Так)->io1->e cond(false@Ні)->io2->e ``` :::spoiler Підказка ![](https://i.imgur.com/6YkrDE4.png) <!-- ``` ввести h1, v1, h2, v2 если разности h1, v1 и h2, v2 равны или соответствующие суммы равны: вывести YES иначе: вывести NO ``` ``` python h1 = int(input()) v1 = int(input()) h2 = int(input()) v2 = int(input()) if (h1 - v1) == (h2 - v2) or (h1 + v1) == (h2 + v2): print('YES') else: print('NO') ``` --> ::: ## Підвищений рівень ### [Задача 9. Хід ферзя](https://snakify.org/en/lessons/if_then_else_conditions/problems/queen_move/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="https://snakify.org/static/images/problems/queen_move.png"> </div> Шаховий ферзь ходить по діагоналі, горизонталі чи вертикалі. Дано дві різні клітини шахової дошки, визначте, чи може ферзь потрапити з першої клітини на другу одним ходом. :::spoiler Підказка <!-- ``` ввести h1, v1, h2, v2 если h1 равно h2 или v1 равно v2 или разности h1, v1 и h2, v1 равны или соответствующие суммы равны: вывести YES иначе: вывести NO ``` ![](https://i.imgur.com/rCqvFu1.png) ``` python h1 = int(input()) v1 = int(input()) h2 = int(input()) v2 = int(input()) if (h1 == h2) or (v1 == v2) or (h1 - v1) == (h2 - v2) or (h1 + v1) == (h2 + v2): print('YES') else: print('NO') ``` --> ::: ### [Задача 10. Хід коня](https://snakify.org/en/lessons/if_then_else_conditions/problems/knight_move/) <div style="float: right; max-width: 25%;margin-left: 10px;" > <img src="https://snakify.org/static/images/problems/knight_move.png"> </div> Шаховий кінь ходить буквою "Г" - на дві клітинки по вертикалі в будь-якому напрямку і на одну клітинку по горизонталі, або навпаки. Дано дві різні клітини шахової дошки, визначте, чи може кінь потрапити з першої клітини на другу одним ходом. :::spoiler Підказка <!-- ``` ввести h1, v1, h2, v2 если модуль разности v1 и v2 равен 1, а модуль разности h1 и h2 равен 2 или модуль разности v1 и v2 равен 2, а модуль разности h1 и h2 равен 1: вывести YES иначе: вывести NO ``` ![](https://content.hneu.edu.ua/uploads/upload_62584feac9b74eac01511994c7080d26.png) ```python h1 = int(input()) v1 = int(input()) h2 = int(input()) v2 = int(input()) if abs(v1 - v2) == 1 and abs(h1 - h2) == 2 or \ abs(v1 - v2) == 2 and abs(h1 - h2) == 1: print('YES') else: print('NO') ``` --> ::: ### [Задача 11. Шоколадка](https://snakify.org/en/lessons/if_then_else_conditions/problems/chocolate/) Шоколадка має вигляд прямокутника, розділеного на `n×m` часточок. Шоколадку можна один раз розламати по прямій на дві частини. Визначте, чи можна таким чином відламати від шоколадки частину, що складається рівно з `k` часточок. Програма отримує на вхід три числа: `n, m, k` і повинна вивести `YES` або `NO`. :::spoiler Підказка <!-- ``` ввести n, m, k если k меньше чем площадь шоколадки и k кратно n или m: вывести YES иначе: вывести NO ``` ![](https://content.hneu.edu.ua/uploads/upload_cdee7cb963bac9f9db0c404688c8c09d.png) ```python n = int(input()) m = int(input()) k = int(input()) if k < (n * m) and (k % n == 0 or k % m == 0): print('YES') else: print('NO') ``` --> ::: ### [Задача 12. Високосний рік](https://snakify.org/en/lessons/if_then_else_conditions/problems/leap_year/) Дано натуральне число. Потрібно визначити, чи є рік із цим номером високосним. Якщо рік є високосним, то виведіть LEAP, інакше виведіть COMMON. Нагадаємо, що відповідно до григоріанського календаря, рік є високосним, якщо його номер кратний 4, але не кратний 100, а також якщо він кратний 400. :::spoiler Підказка <!-- ```flow st=>start: Початок e=>end: Кінець io=>inputoutput: Введення n cond=>condition: (n кратно 4 та n не кратно 100) або (n кратно 400) io1=>inputoutput: Виведення LEAP io2=>inputoutput: Виведення COMMON st->io->cond cond(true@Да)->io1->e cond(false@Нет)->io2->e ``` ![](https://i.imgur.com/XaGiZfR.png) ``` ввести n если (n кратно 4 и n не кратно 100) или (n кратно 400): вывести YES иначе: вывести NO ``` ``` python n = int(input()) if (n % 4 == 0 and n % 100!= 0) or (n % 400 == 0): print('YES') else: print('NO') ``` --> ::: ### Задача 13. Яша плаває у басейні Яша плавав у басейні розміром `N×M` метрів і втомився. У цей момент він виявив, що знаходиться на відстані `x` метрів від одного з довгих бортиків (не обов'язково від найближчого) та `y` метрів від одного з коротких бортиків. Яку мінімальну відстань має пропливти Яша, щоб вибратися з басейну на борт? Програма отримує вхід числа `N, M, x, y`. Програма повинна вивести число метрів, яке потрібно пропливти Яші до борту. --- (c) Яценко Р.М., 2018-2025 [![kit](https://i.imgur.com/Kh901c1.png =10%x)](http://kit.kh.ua/) [Навчальний центр комп'ютерних технологій "Кіт"](http://kit.kh.ua/)