---
tags: materials
---
# Базові порівняння та функції
## `min2`
Написати функцію `min2(a, b)` яка повертає менше з двух чисел. Якщо числа рівні, то вернути будь-яке.
:::info
Приклади:
- `min2(0, 5)` буде 0
- `min2(10, 3)` буде 3
- `min2(1, 1)` буде 1
:::
## `max2`
Написати функцію `max2(a, b)` яка повертає більше з двух чисел.
:::info
Приклади:
- `max2(0, 5)` буде 5
- `max2(10, 3)` буде 10
- `max2(1, 1)` буде 1
:::
## `abs1`
Написати функцію `abs1(x)`, яка повертає модуль числа.
:::info
Приклади:
- `abs1(5)` буде 5
- `abs1(-5)` буде 5
- `abs1(0)` буде 0
:::
## `min3` та `min4`
Написати функції `min3(a, b, c)` та `min4(a, b, c, d)`, які повертають найменше з чисел.
## `clamp`
Написати функцію `clamp(x, a, b)`, яка
- повертає `x`, якщо воно в проміжку `(a, b)`
- повертає `a`, якщо `x` менше `a`
- повертає `b`, якщо `x` більше `b`
Ця функція схожа на обмеження --- "не більше ніж b, але не менше ніж a".
## `sort2`
Написати функцію `sort2(a, b)` яка повертає аргументи у сортованому по зростанню порядку (у вигляді пари).
:::info
Приклади:
- `sort2(0, 5)` буде `(0, 5)`
- `sort2(10, 3)` буде `(3, 10)``
- `sort2(1, 1)` буде `(1, 1)`
:::
## `area`
Написати функцію `area( (x1, y1), (x2, y2) )`, яка повертає площу прямокутника, заданого координатами (x1, y1) та (x2, y2).

## `intersection`
Написати функцію `intersection((P0, P1), (P2, P3))`, яка повертає координати перетину прямокутників (P0, P1) та (P2, P3). P0-3 --- це пари (x,y), протилежні координати прямокутника.

## `distance`
Написати функцію `distance( (x1, y1), (x2, y2) )`, яка повертає відстань між цими двома точками. Відстань рахується по формулі з теореми Піфагора.

## `is_collision`
Написати функцію `is_collision(C1, R1, C2, R2)`, яка повертає булівський вираз --- чи два круга перетинаються. C1, C2 --- координати центрів, R1, R2 --- радіуси кругів.
