Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Формулюйте політику порожнього набору, рівних ключів і неправильних рядків до написання конвеєра. Не накопичуйте результат побічними ефектами у зовнішній список.
Варіанти
Варіант 1. Продажі за регіонами
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести регіон і суму продажу в копійках; згрупувати суми через groupingBy. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести регіон і суму продажу в копійках; згрупувати суми через groupingBy; вивести top-3 регіони та середню суму замовлення. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести регіон і суму продажу в копійках; згрупувати суми через groupingBy; вивести top-3 регіони та середню суму замовлення; підтримати фільтр ISO-дат і нічию за назвою. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 2. Вебжурнал
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і HTTP-код 100..599; порахувати коди. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і HTTP-код 100..599; порахувати коди; згрупувати кількість помилок 400..599 за годиною. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і HTTP-код 100..599; порахувати коди; згрупувати кількість помилок 400..599 за годиною; показати всі 24 години включно з нульовими та частку помилок. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 3. Успішність
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести студентів і бали 0..100; Predicate відбирає бали від 60. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести студентів і бали 0..100; Predicate відбирає бали від 60; partitioningBy розділяє успішних та інших. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести студентів і бали 0..100; Predicate відбирає бали від 60; partitioningBy розділяє успішних та інших; підсумувати групи і ранжувати студентів за балом та id. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 4. Каталог фільмів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести назву, рік і рейтинг 0..10; композиція Predicate фільтрує рік та рейтинг. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести назву, рік і рейтинг 0..10; композиція Predicate фільтрує рік та рейтинг; сортувати за рейтингом, потім назвою. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести назву, рік і рейтинг 0..10; композиція Predicate фільтрує рік та рейтинг; сортувати за рейтингом, потім назвою; додати незалежні необов’язкові фільтри й Optional найкращого. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 5. Погода за місяцями
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату і скінченну температуру; groupingBy групує за YearMonth. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату і скінченну температуру; groupingBy групує за YearMonth; показати мінімум, максимум і середнє. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату і скінченну температуру; groupingBy групує за YearMonth; показати мінімум, максимум і середнє; відхиляти повторні дати й окремо показати місяці без даних у заданому діапазоні. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 6. Навчальні транзакції
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести id і суму в копійках; Predicate перевіряє явно заданий поріг. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести id і суму в копійках; Predicate перевіряє явно заданий поріг; відокремити транзакції за знаком та підсумувати. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести id і суму в копійках; Predicate перевіряє явно заданий поріг; відокремити транзакції за знаком та підсумувати; застосувати кілька вигаданих правил із поясненнями; не давати фінансових рекомендацій. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 7. Каталог книг
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести назву, автора і рік; сортувати компараторами. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести назву, автора і рік; сортувати компараторами; згрупувати назви за автором. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести назву, автора і рік; сортувати компараторами; згрупувати назви за автором; знайти найновішу книгу кожного автора, нічию розв’язати назвою. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 8. Медальна таблиця
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести країну і тип медалі enum; groupingBy рахує типи. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести країну і тип медалі enum; groupingBy рахує типи; сортувати за золотом, сріблом і бронзою. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести країну і тип медалі enum; groupingBy рахує типи; сортувати за золотом, сріблом і бронзою; показати країни з нульовими типами медалей і перевірити нічиї. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 9. Бігові результати
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести додатні цілі секунди; IntSummaryStatistics формує звіт. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести додатні цілі секунди; IntSummaryStatistics формує звіт; відфільтрувати результати в заданому діапазоні. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести додатні цілі секунди; IntSummaryStatistics формує звіт; відфільтрувати результати в заданому діапазоні; додати top-k та явний напис для порожнього середнього. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 10. Онлайн-курси
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести слухача та список завершених курсів; flatMap отримує назви. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести слухача та список завершених курсів; flatMap отримує назви; порахувати популярність унікальних курсів на слухача. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести слухача та список завершених курсів; flatMap отримує назви; порахувати популярність унікальних курсів на слухача; знайти курси, спільні всім непорожнім спискам, і визначити порожній випадок. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 11. Медіани зарплат
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести відділ і невід’ємну зарплату в копійках; згрупувати відділи. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести відділ і невід’ємну зарплату в копійках; згрупувати відділи; відсортувати суми й обчислити медіану, для парного n середнє двох центральних. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести відділ і невід’ємну зарплату в копійках; згрупувати відділи; відсортувати суми й обчислити медіану, для парного n середнє двох центральних; використати точну дробову арифметику та показати кількість і медіану кожного відділу. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 12. Замовлення їжі
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести замовлення зі списками позицій назва–кількість; flatMap розгортає. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести замовлення зі списками позицій назва–кількість; flatMap розгортає; toMap з функцією злиття підсумовує кількості. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести замовлення зі списками позицій назва–кількість; flatMap розгортає; toMap з функцією злиття підсумовує кількості; показати top-k та відхиляти нульові й від’ємні кількості. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 13. Частоти слів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести кілька рядків латиницею; flatMap та toMap рахують слова. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести кілька рядків латиницею; flatMap та toMap рахують слова; сортувати за частотою і словом. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести кілька рядків латиницею; flatMap та toMap рахують слова; сортувати за частотою і словом; додати список стоп-слів і загальні кількості до та після фільтра. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 14. Тривалості поїздок
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести маршрут і додатні хвилини; groupingBy збирає статистику. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести маршрут і додатні хвилини; groupingBy збирає статистику; показати маршрути із середнім понад заданий поріг. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести маршрут і додатні хвилини; groupingBy збирає статистику; показати маршрути із середнім понад заданий поріг; обробити часовий фільтр і порожні групи без службових min/max. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 15. Конвеєр замовлень
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести статус і суму в копійках; filter залишає PAID. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести статус і суму в копійках; filter залишає PAID; map перетворює на рядки звіту й joining формує текст. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести статус і суму в копійках; filter залишає PAID; map перетворює на рядки звіту й joining формує текст; порахувати підсумок і частку оплачених без повторного використання потоку. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 16. Вікна датчика
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести цілі виміри і додатний розмір; Gatherers.windowSliding обчислює середні. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести цілі виміри і додатний розмір; Gatherers.windowSliding обчислює середні; явно обрати політику короткого джерела: одне неповне вікно або відкидання. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести цілі виміри і додатний розмір; Gatherers.windowSliding обчислює середні; явно обрати політику короткого джерела: одне неповне вікно або відкидання; порівняти з windowFixed і протестувати порожній, короткий та точний розмір. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 17. Ціни автомобілів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести марку, рік і ціну в копійках; композиція фільтрів відбирає. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести марку, рік і ціну в копійках; композиція фільтрів відбирає; знайти найдешевший для кожної марки. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести марку, рік і ціну в копійках; композиція фільтрів відбирає; знайти найдешевший для кожної марки; додати top-k за ціною та визначити порядок однакових цін. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 18. Ігри за жанрами
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести гру, список жанрів і рейтинг; flatMap створює жанр–гра. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести гру, список жанрів і рейтинг; flatMap створює жанр–гра; згрупувати середні рейтинги за жанром. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести гру, список жанрів і рейтинг; flatMap створює жанр–гра; згрупувати середні рейтинги за жанром; не рахувати повторений жанр тієї самої гри двічі й показати найкращу гру. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 19. Затримки рейсів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести аеропорт і цілі хвилини затримки; groupingBy рахує середнє. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести аеропорт і цілі хвилини затримки; groupingBy рахує середнє; partitioningBy відділяє додатні затримки від решти. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести аеропорт і цілі хвилини затримки; groupingBy рахує середнє; partitioningBy відділяє додатні затримки від решти; показати частку затриманих та top-k аеропортів за середнім. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 20. Вигаданий реєстр віку
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести лише вигадані id та вік 0..120; groupingBy групує за інтервалами 0..17, 18..64, 65..120. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести лише вигадані id та вік 0..120; groupingBy групує за інтервалами 0..17, 18..64, 65..120; порахувати кожну групу та загальну кількість. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести лише вигадані id та вік 0..120; groupingBy групує за інтервалами 0..17, 18..64, 65..120; порахувати кожну групу та загальну кількість; додати фільтри без будь-яких медичних висновків і перевірити межі 17, 18, 64, 65. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 21. Навчальні податки
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести дохід у копійках і явно задану ставку 0..100 відсотків; map обчислює навчальний платіж. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести дохід у копійках і явно задану ставку 0..100 відсотків; map обчислює навчальний платіж; згрупувати суми за заданою категорією. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести дохід у копійках і явно задану ставку 0..100 відсотків; map обчислює навчальний платіж; згрупувати суми за заданою категорією; зафіксувати правило округлення до копійки, не посилатися на реальне законодавство. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 22. Щоденник активності
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату та невід’ємну кількість кроків; mapToLong рахує підсумок. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату та невід’ємну кількість кроків; mapToLong рахує підсумок; згрупувати за тижнем із явним правилом ISO. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести ISO-дату та невід’ємну кількість кроків; mapToLong рахує підсумок; згрупувати за тижнем із явним правилом ISO; показати пропущені дні як відсутні, а не нульові виміри; без медичних порад. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 23. Ціна житла
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести район, додатну площу та ціну в копійках; map обчислює ціну за квадратний метр. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести район, додатну площу та ціну в копійках; map обчислює ціну за квадратний метр; згрупувати середні за районом. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести район, додатну площу та ціну в копійках; map обчислює ціну за квадратний метр; згрупувати середні за районом; порівняти середнє окремих цін і сумарну ціну, поділену на сумарну площу. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 24. Заповненість кіно
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести сеанс, місткість і продані місця; обчислити частку. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести сеанс, місткість і продані місця; обчислити частку; згрупувати загальну місткість та продажі за фільмом. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести сеанс, місткість і продані місця; обчислити частку; згрупувати загальну місткість та продажі за фільмом; ранжувати за зваженою заповненістю й відхиляти продажі понад місткість. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 25. Навчальні рецепти
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести вигадані позиції маса–умовна енергія на 100 одиниць; mapToDouble підсумовує. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести вигадані позиції маса–умовна енергія на 100 одиниць; mapToDouble підсумовує; згрупувати за рецептом. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести вигадані позиції маса–умовна енергія на 100 одиниць; mapToDouble підсумовує; згрупувати за рецептом; перевірити скінченність і діапазони; не формувати дієтичних рекомендацій. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 26. Відгуки готелів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести готель і бал 1..5; groupingBy рахує середнє. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести готель і бал 1..5; groupingBy рахує середнє; показати лише готелі з мінімальною кількістю відгуків. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести готель і бал 1..5; groupingBy рахує середнє; показати лише готелі з мінімальною кількістю відгуків; сортувати за середнім, кількістю й назвою та перевірити нічиї. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 27. Енергія за годинами
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і скінченне невід’ємне споживання; toMap злиттям підсумовує. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і скінченне невід’ємне споживання; toMap злиттям підсумовує; показати пікові години та добову суму. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести годину 0..23 і скінченне невід’ємне споживання; toMap злиттям підсумовує; показати пікові години та добову суму; додати ковзне середнє лише для послідовних годин, явно обробивши пропуски. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 28. Навантаження викладачів
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести викладача, дисципліну та додатні години; groupingBy підсумовує. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести викладача, дисципліну та додатні години; groupingBy підсумовує; згрупувати також за дисципліною. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести викладача, дисципліну та додатні години; groupingBy підсумовує; згрупувати також за дисципліною; показати частки загального навантаження та стабільний порядок. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 29. Перегляди відео
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести канал, відео та невід’ємні перегляди; groupingBy сумує. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести канал, відео та невід’ємні перегляди; groupingBy сумує; показати top-k відео кожного каналу. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести канал, відео та невід’ємні перегляди; groupingBy сумує; показати top-k відео кожного каналу; відхиляти повторний id або явно об’єднувати його, перевірити переповнення суми. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Варіант 30. Генератор тестових даних
1. Початковий рівень. Створити повну програму Java на JDK 27. Ввести seed і кількість 0..10000; Stream.generate з seeded Random утворює цілі 0..99. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
2. Базовий рівень. Створити повну програму Java на JDK 27. Ввести seed і кількість 0..10000; Stream.generate з seeded Random утворює цілі 0..99; обмежити потік limit і порахувати статистику. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід.
3. Високий рівень. Створити повну програму Java на JDK 27. Ввести seed і кількість 0..10000; Stream.generate з seeded Random утворює цілі 0..99; обмежити потік limit і порахувати статистику; довести відтворюваність однакового seed та заборонити паралельний доступ до спільного генератора. Використати Stream API без зміни джерела; вивести підписаний результат. Перевірити порожній набір, один елемент, повтори й неправильний ввід. Підтримати CLI ключ=значення і --help; без аргументів читати ті самі поля з клавіатури. Звіт – таблиця з підсумками, помилки – stderr. Коди: 0 успіх/довідка, 2 неправильний ввід, 1 операційний збій. Додати автоматизовані перевірки моделі та CLI.
Порядок виконання та захисту
- Запишіть тип джерела, проміжні типи й тип результату.
- Реалізуйте парсинг окремо від обчислення звіту.
- Перевірте порожній набір, один елемент, дублікати та нічию.
- Для Optional перевірте наявність і відсутність; для вікон – джерело коротше, рівне та довше за розмір вікна.
- Подайте фактичний вивід, автоматизовані перевірки й пояснення порядку операцій. Паралельність додавайте лише після вимірювання.