---
# System prepended metadata

title: Практика 6. Умовний оператор
tags: [Python]

---

---
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/)
