Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Використайте Kotlin/JVM, JDK 27, явні типи функціонального API й визначений порядок результатів. Не приховуйте втрату дублікатів у associateBy і не запускайте нескінченну послідовність кінцевою операцією без обмеження.
Варіанти
Варіант 1. Аналіз продажів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу продажів. Вхід: записи продажів: дата ISO, категорія товару, сума в копійках. Реалізувати обчислення сум продажів за категоріями. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу продажів. Вхід: записи продажів: дата ISO, категорія товару, сума в копійках. Реалізувати обчислення сум продажів за категоріями; місячні підсумки і сортування сума спадно/назва. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу продажів. Вхід: записи продажів: дата ISO, категорія товару, сума в копійках. Реалізувати обчислення сум продажів за категоріями; місячні підсумки і сортування сума спадно/назва; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 2. Фільмотека
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для роботи з фільмотекою. Вхід: фільми: назва, рік, рейтинг 0..10. Реалізувати відбір фільмів за мінімальним рейтингом. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для роботи з фільмотекою. Вхід: фільми: назва, рік, рейтинг 0..10. Реалізувати відбір фільмів за мінімальним рейтингом; топ-N із порядком рейтинг спадно/рік/назва. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для роботи з фільмотекою. Вхід: фільми: назва, рік, рейтинг 0..10. Реалізувати відбір фільмів за мінімальним рейтингом; топ-N із порядком рейтинг спадно/рік/назва; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 3. Журнал вебсервера
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу журналу вебсервера. Вхід: записи журналу: час ISO, шлях запиту, HTTP-статус 100..599. Реалізувати підрахунок кількості запитів для кожного статусу. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу журналу вебсервера. Вхід: записи журналу: час ISO, шлях запиту, HTTP-статус 100..599. Реалізувати підрахунок кількості запитів для кожного статусу; найчастіші шляхи помилок 4xx/5xx і частки. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу журналу вебсервера. Вхід: записи журналу: час ISO, шлях запиту, HTTP-статус 100..599. Реалізувати підрахунок кількості запитів для кожного статусу; найчастіші шляхи помилок 4xx/5xx і частки; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 4. Баскетбольна статистика
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу баскетбольної статистики. Вхід: записи гравців: ім’я, кількість ігор, набрані очки. Реалізувати обчислення середніх очок за гру без ділення на нуль. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу баскетбольної статистики. Вхід: записи гравців: ім’я, кількість ігор, набрані очки. Реалізувати обчислення середніх очок за гру без ділення на нуль; partition за порогом 10 і рейтинг із правилом нічиєї. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу баскетбольної статистики. Вхід: записи гравців: ім’я, кількість ігор, набрані очки. Реалізувати обчислення середніх очок за гру без ділення на нуль; partition за порогом 10 і рейтинг із правилом нічиєї; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 5. Прості числа
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку простих чисел. Вхід: верхня межа 0..1000000 і кількість N. Реалізувати Sequence простих чисел до межі через yield і виведення перших N. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку простих чисел. Вхід: верхня межа 0..1000000 і кількість N. Реалізувати Sequence простих чисел до межі через yield і виведення перших N; лічильник перевірок та порівняння take(N) з повним списком. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку простих чисел. Вхід: верхня межа 0..1000000 і кількість N. Реалізувати Sequence простих чисел до межі через yield і виведення перших N; лічильник перевірок та порівняння take(N) з повним списком; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 6. Працівники
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку працівників. Вхід: записи працівників: id, ім’я, відділ, зарплата в копійках. Реалізувати індекс працівників за id через associateBy після перевірки унікальності id. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку працівників. Вхід: записи працівників: id, ім’я, відділ, зарплата в копійках. Реалізувати індекс працівників за id через associateBy після перевірки унікальності id; groupBy відділу і суми/максимуми без втрати дублікатів імен. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку працівників. Вхід: записи працівників: id, ім’я, відділ, зарплата в копійках. Реалізувати індекс працівників за id через associateBy після перевірки унікальності id; groupBy відділу і суми/максимуми без втрати дублікатів імен; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 7. Рейтинг студентів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання рейтингу студентів. Вхід: записи студентів: id, ім’я, список оцінок 0..100. Реалізувати обчислення середніх балів через fold із явним порожнім випадком. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання рейтингу студентів. Вхід: записи студентів: id, ім’я, список оцінок 0..100. Реалізувати обчислення середніх балів через fold із явним порожнім випадком; сортування середнє спадно/ім’я/id і верхні N. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання рейтингу студентів. Вхід: записи студентів: id, ім’я, список оцінок 0..100. Реалізувати обчислення середніх балів через fold із явним порожнім випадком; сортування середнє спадно/ім’я/id і верхні N; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 8. Погодні дані
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу погодних даних. Вхід: послідовність скінченних температур і розмір вікна k>0. Реалізувати обчислення середніх температур повних вікон через windowed(k). Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу погодних даних. Вхід: послідовність скінченних температур і розмір вікна k>0. Реалізувати обчислення середніх температур повних вікон через windowed(k); порівняння кроку 1 та k, явна політика неповного хвоста. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу погодних даних. Вхід: послідовність скінченних температур і розмір вікна k>0. Реалізувати обчислення середніх температур повних вікон через windowed(k); порівняння кроку 1 та k, явна політика неповного хвоста; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 9. Обробка тексту
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки рядка ланцюжком перетворень. Вхід: рядок і назви перетворень trim/lowercase/reverse. Реалізувати композицію вибраних функцій у порядку введення та виведення перетвореного рядка. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки рядка ланцюжком перетворень. Вхід: рядок і назви перетворень trim/lowercase/reverse. Реалізувати композицію вибраних функцій у порядку введення та виведення перетвореного рядка; функція вищого порядку повертає готовий перетворювач; перевірити некомутативність. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки рядка ланцюжком перетворень. Вхід: рядок і назви перетворень trim/lowercase/reverse. Реалізувати композицію вибраних функцій у порядку введення та виведення перетвореного рядка; функція вищого порядку повертає готовий перетворювач; перевірити некомутативність; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 10. Банківські операції
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу банківських операцій. Вхід: операції: умовний рахунок, хвилина доби 0..1439, додатна сума. Реалізувати відбір операцій із сумою понад заданий навчальний поріг. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу банківських операцій. Вхід: операції: умовний рахунок, хвилина доби 0..1439, додатна сума. Реалізувати відбір операцій із сумою понад заданий навчальний поріг; групування за рахунком і сумою в годині; висновок лише про задане правило. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу банківських операцій. Вхід: операції: умовний рахунок, хвилина доби 0..1439, додатна сума. Реалізувати відбір операцій із сумою понад заданий навчальний поріг; групування за рахунком і сумою в годині; висновок лише про задане правило; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 11. Розклад рейсів
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу розкладу рейсів. Вхід: списки міст маршруту і часу прибуття в хвилинах однакової довжини. Реалізувати поєднання списків у пари місто–час через zip після перевірки довжин. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу розкладу рейсів. Вхід: списки міст маршруту і часу прибуття в хвилинах однакової довжини. Реалізувати поєднання списків у пари місто–час через zip після перевірки довжин; пересадки від 15 до 120 хв у спільному місті. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу розкладу рейсів. Вхід: списки міст маршруту і часу прибуття в хвилинах однакової довжини. Реалізувати поєднання списків у пари місто–час через zip після перевірки довжин; пересадки від 15 до 120 хв у спільному місті; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 12. Раціон харчування
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для планування раціону харчування. Вхід: страви (назва, умовні ккал), діапазон ккал і бюджет ккал. Реалізувати відбір страв, калорійність яких потрапляє в заданий діапазон. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для планування раціону харчування. Вхід: страви (назва, умовні ккал), діапазон ккал і бюджет ккал. Реалізувати відбір страв, калорійність яких потрапляє в заданий діапазон; послідовність пар різних страв у бюджеті; дані навчальні без рекомендацій. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для планування раціону харчування. Вхід: страви (назва, умовні ккал), діапазон ккал і бюджет ккал. Реалізувати відбір страв, калорійність яких потрапляє в заданий діапазон; послідовність пар різних страв у бюджеті; дані навчальні без рекомендацій; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 13. Числа Фібоначчі
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для генерації чисел Фібоначчі. Вхід: N від 0 до 90. Реалізувати generateSequence пар послідовних чисел Фібоначчі типу Long і виведення чисел F0..FN. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для генерації чисел Фібоначчі. Вхід: N від 0 до 90. Реалізувати generateSequence пар послідовних чисел Фібоначчі типу Long і виведення чисел F0..FN; takeWhile за межею з явним захистом переповнення. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для генерації чисел Фібоначчі. Вхід: N від 0 до 90. Реалізувати generateSequence пар послідовних чисел Фібоначчі типу Long і виведення чисел F0..FN; takeWhile за межею з явним захистом переповнення; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 14. Промокоди
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для застосування промокодів. Вхід: сума в копійках і код промокоду none/ten/fixed. Реалізувати Map функцій знижки 0%, 10% або 100 копійок та виведення суми після знижки. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для застосування промокодів. Вхід: сума в копійках і код промокоду none/ten/fixed. Реалізувати Map функцій знижки 0%, 10% або 100 копійок та виведення суми після знижки; композиція стратегій з правилом порядку і нижньою межею 0. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для застосування промокодів. Вхід: сума в копійках і код промокоду none/ten/fixed. Реалізувати Map функцій знижки 0%, 10% або 100 копійок та виведення суми після знижки; композиція стратегій з правилом порядку і нижньою межею 0; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 15. Бібліотека
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу бібліотечного фонду. Вхід: книги: назва, список авторів, список жанрів. Реалізувати отримання унікальних авторів через flatMap. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу бібліотечного фонду. Вхід: книги: назва, список авторів, список жанрів. Реалізувати отримання унікальних авторів через flatMap; частоти жанрів через groupingBy і стабільний топ. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу бібліотечного фонду. Вхід: книги: назва, список авторів, список жанрів. Реалізувати отримання унікальних авторів через flatMap; частоти жанрів через groupingBy і стабільний топ; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 16. Датчики IoT
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки показань IoT-датчиків. Вхід: скінченні показання й розмір пакета k>0. Реалізувати розбиття показань на пакети через chunked(k) і середні пакетів. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки показань IoT-датчиків. Вхід: скінченні показання й розмір пакета k>0. Реалізувати розбиття показань на пакети через chunked(k) і середні пакетів; пакети з розмахом понад поріг і неповний останній пакет. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обробки показань IoT-датчиків. Вхід: скінченні показання й розмір пакета k>0. Реалізувати розбиття показань на пакети через chunked(k) і середні пакетів; пакети з розмахом понад поріг і неповний останній пакет; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 17. Туристичний бюджет
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку туристичного бюджету. Вхід: бюджет і витрати: категорія, сума в копійках. Реалізувати суми за категоріями і пошук найдорожчої витрати через maxByOrNull. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку туристичного бюджету. Вхід: бюджет і витрати: категорія, сума в копійках. Реалізувати суми за категоріями і пошук найдорожчої витрати через maxByOrNull; залишок бюджету і частки категорій без ділення на нуль. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для обліку туристичного бюджету. Вхід: бюджет і витрати: категорія, сума в копійках. Реалізувати суми за категоріями і пошук найдорожчої витрати через maxByOrNull; залишок бюджету і частки категорій без ділення на нуль; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 18. Правила валідації
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки анкети за правилами валідації. Вхід: поля анкети: ім’я, вік 0..120, пошта. Реалізувати List функцій-правил, що повертають повідомлення про порушення. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки анкети за правилами валідації. Вхід: поля анкети: ім’я, вік 0..120, пошта. Реалізувати List функцій-правил, що повертають повідомлення про порушення; режими перша/всі помилки та лічильник викликів. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для перевірки анкети за правилами валідації. Вхід: поля анкети: ім’я, вік 0..120, пошта. Реалізувати List функцій-правил, що повертають повідомлення про порушення; режими перша/всі помилки та лічильник викликів; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 19. Ігровий інвентар
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування ігровим інвентарем. Вхід: предмети: id, назва, маса, ціна. Реалізувати відбір предметів із масою, не більшою за задану максимальну. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування ігровим інвентарем. Вхід: предмети: id, назва, маса, ціна. Реалізувати відбір предметів із масою, не більшою за задану максимальну; sortedWith за ціною спадно/масою/id. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для керування ігровим інвентарем. Вхід: предмети: id, назва, маса, ціна. Реалізувати відбір предметів із масою, не більшою за задану максимальну; sortedWith за ціною спадно/масою/id; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 20. Екзаменаційна сесія
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу екзаменаційної сесії. Вхід: результати: студент, предмет, оцінка 0..100. Реалізувати групування результатів за предметом через groupBy і середні бали. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу екзаменаційної сесії. Вхід: результати: студент, предмет, оцінка 0..100. Реалізувати групування результатів за предметом через groupBy і середні бали; associate результатів після перевірки унікальної пари студент/предмет. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу екзаменаційної сесії. Вхід: результати: студент, предмет, оцінка 0..100. Реалізувати групування результатів за предметом через groupBy і середні бали; associate результатів після перевірки унікальної пари студент/предмет; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 21. Авторинок
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку автомобілів на авторинку. Вхід: оголошення: марка, рік, ціна. Реалізувати предикати меж року та ціни й відбір оголошень за ними. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку автомобілів на авторинку. Вхід: оголошення: марка, рік, ціна. Реалізувати предикати меж року та ціни й відбір оголошень за ними; функція композиції необов’язкових фільтрів через all. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для пошуку автомобілів на авторинку. Вхід: оголошення: марка, рік, ціна. Реалізувати предикати меж року та ціни й відбір оголошень за ними; функція композиції необов’язкових фільтрів через all; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 22. Музичні чарти
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для порівняння двох музичних чартів. Вхід: два тижневі чарти як упорядковані списки унікальних id треків. Реалізувати визначення позицій треків через withIndex та associate. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для порівняння двох музичних чартів. Вхід: два тижневі чарти як упорядковані списки унікальних id треків. Реалізувати визначення позицій треків через withIndex та associate; підйоми/падіння/нові/вибулі з визначеним порядком. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для порівняння двох музичних чартів. Вхід: два тижневі чарти як упорядковані списки унікальних id треків. Реалізувати визначення позицій треків через withIndex та associate; підйоми/падіння/нові/вибулі з визначеним порядком; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 23. Опитування
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Вхід: відповіді A/B/C. Реалізувати підрахунок кількості кожної відповіді через groupingBy().eachCount. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Вхід: відповіді A/B/C. Реалізувати підрахунок кількості кожної відповіді через groupingBy().eachCount; Markdown-гістограма з заданим масштабом і порожнім звітом. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для підрахунку результатів опитування. Вхід: відповіді A/B/C. Реалізувати підрахунок кількості кожної відповіді через groupingBy().eachCount; Markdown-гістограма з заданим масштабом і порожнім звітом; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 24. Замовлення таксі
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу замовлень таксі. Вхід: замовлення: район, година 0..23, ціна в копійках. Реалізувати групування замовлень за районом із кількістю та сумою. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу замовлень таксі. Вхід: замовлення: район, година 0..23, ціна в копійках. Реалізувати групування замовлень за районом із кількістю та сумою; вкладені підсумки район/година і найдорожчий запис. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу замовлень таксі. Вхід: замовлення: район, година 0..23, ціна в копійках. Реалізувати групування замовлень за районом із кількістю та сумою; вкладені підсумки район/година і найдорожчий запис; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 25. Будівник подій
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для опису подій через DSL-будівник. Вхід: назва події, початок і кінець у хвилинах. Реалізувати DSL Event.() -> Unit з перевіркою часу. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для опису подій через DSL-будівник. Вхід: назва події, початок і кінець у хвилинах. Реалізувати DSL Event.() -> Unit з перевіркою часу; список подій і виявлення перетину напіввідкритих інтервалів. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для опису подій через DSL-будівник. Вхід: назва події, початок і кінець у хвилинах. Реалізувати DSL Event.() -> Unit з перевіркою часу; список подій і виявлення перетину напіввідкритих інтервалів; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 26. Розклад консультацій
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання розкладу консультацій. Вхід: списки викладачів, днів і годин. Реалізувати ліниве породження комбінацій викладач–день–година через sequence. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання розкладу консультацій. Вхід: списки викладачів, днів і годин. Реалізувати ліниве породження комбінацій викладач–день–година через sequence; відбір доступних слотів і take(N) з лічильником кандидатів. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для складання розкладу консультацій. Вхід: списки викладачів, днів і годин. Реалізувати ліниве породження комбінацій викладач–день–година через sequence; відбір доступних слотів і take(N) з лічильником кандидатів; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 27. Шаховий турнір
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для організації шахового турніру. Вхід: унікальні імена учасників. Реалізувати sequence усіх неупорядкованих пар учасників без самопар. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для організації шахового турніру. Вхід: унікальні імена учасників. Реалізувати sequence усіх неупорядкованих пар учасників без самопар; результати 1/0.5/0 і таблиця очок/імені. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для організації шахового турніру. Вхід: унікальні імена учасників. Реалізувати sequence усіх неупорядкованих пар учасників без самопар; результати 1/0.5/0 і таблиця очок/імені; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 28. Мемоізація
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для демонстрації мемоізації. Вхід: цілі аргументи 0..30. Реалізувати функцію вищого порядку, яка кешує результати обчислення квадрата. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для демонстрації мемоізації. Вхід: цілі аргументи 0..30. Реалізувати функцію вищого порядку, яка кешує результати обчислення квадрата; лічильник реальних обчислень і політика кешування nullable-результату. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для демонстрації мемоізації. Вхід: цілі аргументи 0..30. Реалізувати функцію вищого порядку, яка кешує результати обчислення квадрата; лічильник реальних обчислень і політика кешування nullable-результату; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 29. Енергоспоживання
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу енергоспоживання. Вхід: показання: година 0..23, невід’ємне скінченне значення споживання. Реалізувати пошук пікових годин споживання через maxByOrNull. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу енергоспоживання. Вхід: показання: година 0..23, невід’ємне скінченне значення споживання. Реалізувати пошук пікових годин споживання через maxByOrNull; windowed ковзне середнє і порівняння з порогом. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для аналізу енергоспоживання. Вхід: показання: година 0..23, невід’ємне скінченне значення споживання. Реалізувати пошук пікових годин споживання через maxByOrNull; windowed ковзне середнє і порівняння з порогом; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Варіант 30. Звіт у Markdown
1. Початковий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для формування звіту у вигляді Markdown-таблиці. Вхід: назви колонок і рядки однакової ширини. Реалізувати DSL побудови таблиці з лямбдою-приймачем і виведення Markdown-тексту. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
2. Базовий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для формування звіту у вигляді Markdown-таблиці. Вхід: назви колонок і рядки однакової ширини. Реалізувати DSL побудови таблиці з лямбдою-приймачем і виведення Markdown-тексту; екранування вертикальної риски й переносу рядка, перевірка порожньої таблиці. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані.
3. Високий рівень. Створити консольну програму Kotlin/JVM на JDK 27 для формування звіту у вигляді Markdown-таблиці. Вхід: назви колонок і рядки однакової ширини. Реалізувати DSL побудови таблиці з лямбдою-приймачем і виведення Markdown-тексту; екранування вертикальної риски й переносу рядка, перевірка порожньої таблиці; виділити узагальнену функцію вищого порядку і порівняти лінивий та негайний обхід на одному наборі. Відокремити введення від чистого перетворення; вивести результат або причину відмови. Перевірити порожній набір, межу і неправильні дані. Додати аргументи CLI у форматі ключ=значення та --help; без аргументів читати ті самі поля з клавіатури. Виводити підписаний табличний звіт із підсумком; помилки надсилати у stderr. Коди завершення: 0 – успіх або довідка, 2 – неправильний ввід, 1 – операційний збій.
Порядок виконання та захисту роботи
- Визначте тип входу, виходу й функціональних параметрів.
- Відокремте чисті перетворення від читання та друку.
- Перевірте порожній набір, нічию, повторні ключі й неправильний вхід.
- Для Sequence порахуйте виклики перетворення та поясніть момент запуску.
- Для замикання перевірте незалежність двох фабричних екземплярів.
- Подайте фактичні результати п’яти перевірок, код і README.
- На захисті замініть одну лямбду посиланням на функцію та поясніть тип.