Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Геометрія трикутника
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури сторони a, b, c; перевірити нерівності трикутника. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури сторони a, b, c; повернути структуру з периметром і площею Герона. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури сторони a, b, c; приймати сторони також аргументами та вивести тип за сторонами; відхилити вироджені. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 2. Дата і день тижня
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури дату: рік 1–9999, місяць, день; визначити високосність функцією. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури дату: рік 1–9999, місяць, день; перевірити дату і знайти день тижня алгоритмом Зеллера. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури дві дати (для кожної рік 1–9999, місяць і день). Перевірити обидві дати григоріанського календаря та вивести різницю другої і першої в днях зі знаком; однакові дати дають нуль. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 3. Швидкий степінь
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури основу double та показник 0–30; обчислити степінь циклічно. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури основу double та показник 0–30; реалізувати рекурсивне піднесення діленням показника навпіл. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури основу double та показник 0–30; реалізувати циклічне та рекурсивне (діленням показника навпіл) піднесення до степеня й порівняти число множень обох алгоритмів для показників 0–30. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 4. Системи числення
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури невід’ємне число до 1000000 і основу 2–16; надрукувати число рекурсивно. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури невід’ємне число до 1000000 і основу 2–16; повернути кількість цифр і перевірити нуль. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури невід’ємне число до 1000000 і основу 2–16; сформувати таблицю числа в усіх основах 2–16, приймати --help. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 5. Бісекція
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури межі 0–3 і точність 1e-10..1e-3; перевірити знак x*x-2 на кінцях. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати межі a, b у 0–3, де a < b, і допуск eps у 1e-10..1e-3. Для f(x) = x*x - 2 перевірити наявність кореня на кінцях або різні знаки, знайти корінь бісекцією до півширини інтервалу не більшої за eps, максимум 100 кроків. Вивести наближення, кількість кроків і причину зупинки. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати межі a, b у 0–3, де a < b, та три допуски у 1e-10..1e-3. Для f(x) = x*x - 2 перевірити корінь на кінцях або різні знаки. Для кожного допуску виконати бісекцію до півширини інтервалу не більшої за допуск, максимум 100 кроків; повернути структуру з коренем, кількістю кроків і модулем нев’язки, вивести порівняльну таблицю. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 6. Метод Ньютона
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури додатне число 1e-6..1e6; наблизити квадратний корінь функцією. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури додатне число 1e-6..1e6; перевантажити функцію для квадратного та кубічного кореня з параметром порядку. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури додатне число 1e-6..1e6; наблизити квадратний корінь методом Ньютона, вивести кроки збіжності й відхилити нульову похідну або перевищення ліміту 100 ітерацій. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 7. Складні відсотки
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму, ставку 0–100 і роки 0–50; повернути суму після введеної кількості років за формулою sum * pow(1 + rate / 100, years). Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму, ставку 0–100 і роки 0–50; використати типовий параметр кількості нарахувань 12. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури суму, ставку 0–100 і роки 0–50; порівняти річне, квартальне й місячне нарахування таблицею. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 8. Балістика
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури швидкість 1–1000 і кут 1–89 градусів; обчислити дальність при g=9.81 без опору. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури швидкість 1–1000 і кут 1–89 градусів; повернути структуру дальність/висота/час. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури швидкість 1–1000 і кут 1–89 градусів; знайти найкращий цілий кут 1–89 і надрукувати таблицю з параметром g за замовчуванням. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 9. Комбінаторика
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури n у 0–20 і k у 0..n; обчислити факторіал рекурсивно. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури n у 0–20 і k у 0..n; окремими функціями повернути розміщення й сполучення. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури n у 0–20 і k у 0..n; порівняти рекурсивне та ітеративне C(n, k) і перевірити сталі випадки через static_assert. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 10. Аккерман
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури m у 0–3 і n у 0–6; обчислити A(m, n) за стандартною рекурентною формулою. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури m у 0–3 і n у 0–6; рекурсивно обчислити функцію Аккермана A(m, n) і повернути число викликів через посилання. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури m у 0–3 і n у 0–6; рекурсивно обчислити функцію Аккермана A(m, n), відстежити максимальну глибину рекурсії та зупинити обчислення за заданим лімітом викликів. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 11. Прості множники
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури число 2–1000000; надрукувати прості множники функцією. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число 2–1000000; рекурсивно вивести множники зі степенями. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі діапазону чисел 2–1000000 довжиною до 1000 чисел; вивести розклад кожного числа діапазону на прості множники та перевірити добуток. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 12. Цифровий корінь
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури число 0–1000000000; рекурсивно знайти суму цифр. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число 0–1000000000; повторювати суму до однієї цифри і порахувати кроки. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури число 0–1000000000; обчислити його мультиплікативну стійкість – кількість кроків множення цифр до однієї цифри, обробивши нульові цифри. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 13. Температури
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури значення та шкалу C/F/K; перетворити C у F функцією. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури значення та шкалу C/F/K; використати enum class і перевантаження для повернення потрібної шкали. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури значення та шкалу C/F/K; побудувати таблицю трьох шкал для заданих меж, кроку й перевірки абсолютного нуля. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 14. Кості
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури зерно генератора і цільові очки 1–100; функцією повернути кидок кубика 1–6 і вивести його. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму гри в кості: зчитати з клавіатури зерно генератора і цільові очки 1–100; симулювати двох гравців, які по черзі кидають кубик 1–6 і накопичують очки до цілі, передаючи генератор за посиланням; вивести переможця. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму гри в кості: зчитати з клавіатури зерно генератора і цільові очки 1–100; провести 100 партій двох гравців, які по черзі кидають кубик 1–6 до досягнення цілі, і повернути структуру перемог, нічиїх і середньої кількості ходів. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 15. Час
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури години 0–1000, хвилини 0–1000, секунди 0–1000; нормалізувати через посилання. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури дві тривалості з годинами, хвилинами й секундами 0–1000; функціями додати й відняти їх і вивести нормалізовані результати. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 пар тривалостей з годинами, хвилинами й секундами 0–1000; надрукувати таблицю нормалізованих сум і абсолютних різниць кожної пари. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 16. Паліндроми
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури число 0–1000000000; функцією перевірити паліндром. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число 0–1000000000; рекурсивно побудувати реверс із контролем переповнення. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі діапазону 0–1000000000 шириною до 100000 чисел; знайти числові паліндроми діапазону, вивести їх та кількість. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 17. Паскаль
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури кількість рядків 1–20; вивести рядки трикутника Паскаля, обчислюючи елементи функцією C(n, k). Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури кількість рядків 1–20; обчислити коефіцієнти трикутника Паскаля рекурсивно та ітеративно й зіставити результати. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури кількість рядків 1–20; надрукувати центрований трикутник Паскаля з рекурсивним обчисленням C(n, k) і число викликів рекурсії для кожного рядка. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 18. Візерунки
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури непарну ширину 1–39; функцією вивести рядок зірочок. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури непарну ширину 1–39; рекурсивно надрукувати ромб. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури непарну ширину 1–39, а тип візерунка (ромб або сходи) та символ – з аргументів командного рядка, підтримати --help; вивести візерунок. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 19. Навчальні податки
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури дохід 0–1000000; обчислити утримання 10 % функцією. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури дохід 0–1000000; повернути структуру: утримання 10 %, збір 2 %, чиста сума. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури кількість і серію доходів 0–1000000; для кожного порівняти дві навчальні схеми: 10 % утримання плюс 2 % збору та 15 %. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 20. Кредит
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму, місячну ставку 0–10 %, місяці 1–120; обчислити платіж без відсотків. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму, місячну ставку 0–10 %, місяці 1–120; окремими функціями обчислити ануїтет і перший диференційований платіж. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури суму, місячну ставку 0–10 %, місяці 1–120; надрукувати графіки ануїтетних і диференційованих платежів та різницю переплати, обробити нульову ставку. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 21. Сума ряду
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури x у 0..1 і N у 0..100; обчислити циклом суму 1 + x + ... + x^N (для N=0 сума 1). Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури x у 0..1 і N у 0..100; порівняти рекурсивну та ітеративну суми 1 + x + ... + x^N (для N=0 сума 1). Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати x у [0, 1), допуск у 1e-12..1e-3 і максимальну кількість членів у 1–100000. Додавати члени геометричного ряду 1, x, x*x, ..., доки модуль наступного члена не менший за допуск або не досягнуто ліміту; вивести суму, кількість доданих членів і причину зупинки. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 22. Електричне коло
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури два додатні опори; обчислити послідовний опір. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури три додатні опори в омах; перевантажити функції для двох і трьох опорів та паралельного з’єднання. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури три додатні опори в омах; порівняти всі послідовно-паралельні схеми трьох опорів і повернути min/max. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 23. Оцінювання
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури три бали 0–100; повернути середній бал. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури три бали 0–100; через посилання повернути min/max, а значенням – середнє. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури три бали 0–100; перетворити оцінки за межами 90/82/74/64/60 в літери й сформувати звіт. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 24. PIN
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури чотиризначний код 0000–9999; функцією перевірити відсутність чотирьох однакових цифр. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури чотиризначний код 0000–9999; відхилити чотири однакові цифри та послідовності 1234/4321, перевіряючи кожну умову окремим предикатом. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати невід’ємне ціле зерно генератора; згенерувати 10 різних навчальних чотиризначних кодів із початковими нулями. Відхиляти чотири однакові цифри, 1234 і 4321. Використати ліміт 10000 спроб, вивести отримані коди та повідомити, чи досягнуто кількості 10. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 25. Розмін
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму 0–100; рекурсивно порахувати розмін монетами 1 і 5. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму 0–100; рекурсивно порахувати способи розміну монетами 1, 5 і 10, не рахуючи перестановки монет різними способами. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури суму 0–100; надрукувати всі трійки кількостей монет номіналами 1, 5 і 10 і порівняти число з рекурсивним результатом. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 26. Шляхи сіткою
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури M, N у 1–10; рекурсивно порахувати шляхи вправо/вниз. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати M, N у 1–10 та координати однієї забороненої клітинки (рядок 1–M і стовпець 1–N). Рекурсивно порахувати й вивести шляхи з (1,1) до (M,N) лише вправо та вниз без цієї клітинки. Якщо заборонено початок або кінець, результат нуль. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури M, N у 1–10; порахувати шляхи сіткою з (1,1) до (M,N) лише вправо та вниз рекурсією й комбінаторною формулою, порівняти результати й вивести кількість викликів. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 27. Одиниці маси
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури масу та одиницю g/kg/t; функцією перевести в кілограми. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури масу та одиницю g/kg/t; перевантажити конвертер для цілого та дробового значення. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури масу та одиницю g/kg/t; приймати одиниці й значення з argv, повністю перевірити токен і --help. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 28. Рейтинг Ело
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури два рейтинги 0–4000 і результат 0/0.5/1; обчислити очікувану частку перемоги. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури два рейтинги 0–4000 і результат 0/0.5/1; оновити обидва рейтинги через посилання з K=32 за замовчуванням. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури два рейтинги 0–4000 і результат 0/0.5/1; обробити серію результатів і порівняти K=16 та 32 без округлення проміжних значень. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 29. Крива Коха
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури початкову довжину й порядок 0–15; рекурсивно обчислити кількість відрізків кривої Коха 4^n. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури початкову довжину й порядок 0–15; повернути структуру з кількістю відрізків кривої Коха, довжиною відрізка та повною довжиною. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури початкову довжину й порядок 0–15; вивести таблицю порядків 0–15 та порівняти рекурсію з формулою L * pow(4.0 / 3.0, n). Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Варіант 30. Годинникові кути
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури годину 0–23 і хвилину 0–59; обчислити найменший кут між стрілками. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури годину 0–23 і хвилину 0–59; перевантажити функцію для часу із секундами. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури годину 0–23 і хвилину 0–59; перебрати добу з кроком 1 секунда і вивести моменти зближення до кута 0.01 градуса. Винести обчислення у функції, перевірити введення і вивести результат та пояснення помилки для недопустимих даних.
Порядок виконання та захисту роботи
- Визначте вхід, результат і передумови кожної функції.
- Відокремте числове обчислення від введення та виведення.
- Оберіть значення або посилання для кожного параметра.
- Для рекурсії запишіть базу, зменшення аргументу й межі.
- Перевірте звичайні, граничні та некоректні аргументи.
- Перегляньте один вкладений виклик у Call Stack.
- Додайте README з прикладами запуску та створіть коміт.