--- 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). ![](https://i.imgur.com/iwyYFFc.png) ## `intersection` Написати функцію `intersection((P0, P1), (P2, P3))`, яка повертає координати перетину прямокутників (P0, P1) та (P2, P3). P0-3 --- це пари (x,y), протилежні координати прямокутника. ![](https://i.imgur.com/5NgTKRB.png) ## `distance` Написати функцію `distance( (x1, y1), (x2, y2) )`, яка повертає відстань між цими двома точками. Відстань рахується по формулі з теореми Піфагора. ![](https://i.imgur.com/yzyooaU.png) ## `is_collision` Написати функцію `is_collision(C1, R1, C2, R2)`, яка повертає булівський вираз --- чи два круга перетинаються. C1, C2 --- координати центрів, R1, R2 --- радіуси кругів. ![](https://i.imgur.com/11MU1eh.png)