Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
У звіті обґрунтуйте вибір інтерфейсу й конкретної реалізації. Порядок виводу повинен бути визначений умовою, а не випадковою поведінкою HashMap.
Варіанти
Варіант 1. Частоти слів
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести текст латиницею; HashMap рахує слова без урахування регістру. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести текст латиницею; HashMap рахує слова без урахування регістру; вивести TreeMap в алфавітному порядку. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести текст латиницею; HashMap рахує слова без урахування регістру; вивести TreeMap в алфавітному порядку; додати top-k за частотою, нічию розв’язувати словом. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 2. Телефонна книга
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я та номер; Map зберігає один номер для імені. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я та номер; Map зберігає один номер для імені; підтримати кілька унікальних номерів на ім’я. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я та номер; Map зберігає один номер для імені; підтримати кілька унікальних номерів на ім’я; додати пошук префікса й перевірити видалення останнього номера. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 3. Черга навчального центру
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести вигадані заявки з пріоритетом 1..5; PriorityQueue обслуговує менший пріоритет першим. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести вигадані заявки з пріоритетом 1..5; PriorityQueue обслуговує менший пріоритет першим; за рівності зберігати порядок надходження. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести вигадані заявки з пріоритетом 1..5; PriorityQueue обслуговує менший пріоритет першим; за рівності зберігати порядок надходження; додати скасування за id; жодних реальних медичних рекомендацій. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 4. Бібліотечні позики
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести книги й видачі за id; Map зберігає поточного читача. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести книги й видачі за id; Map зберігає поточного читача; заборонити подвійну видачу та підтримати повернення. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести книги й видачі за id; Map зберігає поточного читача; заборонити подвійну видачу та підтримати повернення; додати чергу очікування ArrayDeque для кожної книги. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 5. Розклад кімнат
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести кімнату й цілі години початку та кінця; перевірити накладання напіввідкритих інтервалів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести кімнату й цілі години початку та кінця; перевірити накладання напіввідкритих інтервалів; зберігати розклад у TreeMap і шукати вільний проміжок. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести кімнату й цілі години початку та кінця; перевірити накладання напіввідкритих інтервалів; зберігати розклад у TreeMap і шукати вільний проміжок; додати перенесення лише після перевірки всіх конфліктів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 6. Мережа доріг
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести неорієнтовані ребра між містами; Map міста до Set сусідів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести неорієнтовані ребра між містами; Map міста до Set сусідів; знайти найкоротший за кількістю ребер шлях BFS. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести неорієнтовані ребра між містами; Map міста до Set сусідів; знайти найкоротший за кількістю ребер шлях BFS; додати видалення міста та перевірити незв’язний граф. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 7. Множини IP-адрес
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести два списки коректних IPv4; знайти перетин HashSet. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести два списки коректних IPv4; знайти перетин HashSet; вивести об’єднання й різницю в числовому порядку октетів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести два списки коректних IPv4; знайти перетин HashSet; вивести об’єднання й різницю в числовому порядку октетів; нормалізувати адреси без DNS-запитів і повідомляти неправильні рядки. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 8. Історія браузера
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести команди open/back/forward; два Deque зберігають історію. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести команди open/back/forward; два Deque зберігають історію; нова адреса після back очищує forward. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести команди open/back/forward; два Deque зберігають історію; нова адреса після back очищує forward; обмежити довжину історії й перевірити порожні переходи. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 9. Результати марафону
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я, вік і секунди; List сортується за часом. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я, вік і секунди; List сортується за часом; розділити учасників на явно задані вікові групи. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести ім’я, вік і секунди; List сортується за часом; розділити учасників на явно задані вікові групи; сформувати top-3 кожної групи з однаковими правилами нічиєї. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 10. Складські резерви
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести товар і невід’ємну кількість; Map зберігає залишки. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести товар і невід’ємну кількість; Map зберігає залишки; додати резервування та скасування без від’ємного залишку. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести товар і невід’ємну кількість; Map зберігає залишки; додати резервування та скасування без від’ємного залишку; резервувати замовлення з кількома товарами повністю або не змінювати стан. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 11. Граф синонімів
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести пари слів; Map до Set зберігає симетричні зв’язки. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести пари слів; Map до Set зберігає симетричні зв’язки; знайти всі досяжні синоніми без повторів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести пари слів; Map до Set зберігає симетричні зв’язки; знайти всі досяжні синоніми без повторів; обчислити компоненти зв’язності й відсортувати кожну. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 12. LRU-кеш
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести додатну місткість і команди put/get; LinkedHashMap працює в access-order. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести додатну місткість і команди put/get; LinkedHashMap працює в access-order; витісняти найдавніше невикористаний запис. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести додатну місткість і команди put/get; LinkedHashMap працює в access-order; витісняти найдавніше невикористаний запис; вивести число влучень, промахів і витіснень; оновлення не збільшує розмір. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 13. Пріоритетні дедлайни
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести id, пріоритет і ISO-дедлайн; PriorityQueue вибирає менший пріоритет, потім ранішу дату. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести id, пріоритет і ISO-дедлайн; PriorityQueue вибирає менший пріоритет, потім ранішу дату; за повної рівності порівнювати id. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести id, пріоритет і ISO-дедлайн; PriorityQueue вибирає менший пріоритет, потім ранішу дату; за повної рівності порівнювати id; додати зміну пріоритету через вилучення й повторне вставлення. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 14. Лотерейні збіги
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести два набори різних чисел 1..49; Set знаходить збіги. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести два набори різних чисел 1..49; Set знаходить збіги; перевірити діапазон і точну кількість шести чисел. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести два набори різних чисел 1..49; Set знаходить збіги; перевірити діапазон і точну кількість шести чисел; обробити кілька квитків та вивести розподіл кількостей збігів без прогнозів виграшу. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 15. Журнал відвідування
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести ISO-дати та id студентів; TreeMap зберігає Set присутніх. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести ISO-дати та id студентів; TreeMap зберігає Set присутніх; порахувати відвідування в заданому включному діапазоні дат. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести ISO-дати та id студентів; TreeMap зберігає Set присутніх; порахувати відвідування в заданому включному діапазоні дат; показати студентів без жодного відвідування за окремим списком групи. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 16. Інгредієнти рецептів
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести рецепт і набір інгредієнтів; Map до Set. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести рецепт і набір інгредієнтів; Map до Set; знайти рецепти, усі інгредієнти яких є в запасі. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести рецепт і набір інгредієнтів; Map до Set; знайти рецепти, усі інгредієнти яких є в запасі; для кожного іншого рецепта показати відсутні інгредієнти в алфавітному порядку. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 17. Аеропортовий розклад
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести id рейсу й ISO-час; TreeMap шукає найближчий наступний час. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести id рейсу й ISO-час; TreeMap шукає найближчий наступний час; підтримати кілька рейсів на один час. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести id рейсу й ISO-час; TreeMap шукає найближчий наступний час; підтримати кілька рейсів на один час; додати скасування й пошук у напіввідкритому часовому інтервалі. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 18. Друзі друзів
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести симетричні пари користувачів; Map до Set. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести симетричні пари користувачів; Map до Set; знайти друзів другого кроку без себе й прямих друзів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести симетричні пари користувачів; Map до Set; знайти друзів другого кроку без себе й прямих друзів; ранжувати кандидатів за кількістю спільних друзів, потім за id. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 19. Родинне дерево
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести id та id батька або відсутність; Map зберігає дітей. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести id та id батька або відсутність; Map зберігає дітей; вивести нащадків BFS без повторів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести id та id батька або відсутність; Map зберігає дітей; вивести нащадків BFS без повторів; перевірити цикли й відсутніх батьків перед побудовою. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 20. Скасування редагування
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести текстові стани; два Deque підтримують undo/redo. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести текстові стани; два Deque підтримують undo/redo; нова зміна очищує redo. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести текстові стани; два Deque підтримують undo/redo; нова зміна очищує redo; додати межу історії та довести незалежність знімків. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 21. Групи анаграм
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести слова латиницею; Map групує за відсортованими літерами. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести слова латиницею; Map групує за відсортованими літерами; ігнорувати регістр, прибрати повтори слів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести слова латиницею; Map групує за відсортованими літерами; ігнорувати регістр, прибрати повтори слів; вивести групи розміром від двох у детермінованому порядку. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 22. Реєстр номерів
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести рядкові автомобільні номери; TreeSet зберігає унікальні. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести рядкові автомобільні номери; TreeSet зберігає унікальні; знайти номери у включному лексикографічному діапазоні. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести рядкові автомобільні номери; TreeSet зберігає унікальні; знайти номери у включному лексикографічному діапазоні; додати floor/ceiling та явно повідомляти відсутність сусіда. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 23. Голосування
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести кандидата кожного бюлетеня; Map підраховує голоси. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести кандидата кожного бюлетеня; Map підраховує голоси; визначити переможця лише за строгою більшістю всіх дійсних голосів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести кандидата кожного бюлетеня; Map підраховує голоси; визначити переможця лише за строгою більшістю всіх дійсних голосів; за її відсутності обрати двох фіналістів, нічию розв’язати за id. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 24. Календар зустрічей
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести початок і кінець зустрічей; List сортує інтервали. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести початок і кінець зустрічей; List сортує інтервали; об’єднати лише інтервали, що перетинаються. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести початок і кінець зустрічей; List сортує інтервали; об’єднати лише інтервали, що перетинаються; показати вільні проміжки всередині заданого робочого дня. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 25. Музичний чарт
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести id композиції та кількість прослуховувань; Map накопичує. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести id композиції та кількість прослуховувань; Map накопичує; сортувати за спаданням кількості, потім за id. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести id композиції та кількість прослуховувань; Map накопичує; сортувати за спаданням кількості, потім за id; порівняти два чарти й показати зміну позиції та нові композиції. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 26. Метро
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести станції й неорієнтовані переходи; Map до Set. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести станції й неорієнтовані переходи; Map до Set; знайти найменшу кількість переходів BFS. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести станції й неорієнтовані переходи; Map до Set; знайти найменшу кількість переходів BFS; вивести сам шлях і перевірити однакові початок та кінець. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 27. Ігрова статистика
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести події enum WIN/LOSS/DRAW; EnumMap рахує кожен тип. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести події enum WIN/LOSS/DRAW; EnumMap рахує кожен тип; показати нуль для відсутніх типів. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести події enum WIN/LOSS/DRAW; EnumMap рахує кожен тип; показати нуль для відсутніх типів; вести статистику кількох гравців і вивести стабільний рейтинг. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 28. Навчальні групи
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести групи з місткістю та заявки студентів; Map зберігає склад. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести групи з місткістю та заявки студентів; Map зберігає склад; заборонити дублікати студента й переповнення. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести групи з місткістю та заявки студентів; Map зберігає склад; заборонити дублікати студента й переповнення; додати чергу очікування та автоматичне переведення після виходу. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 29. Перевірка словника
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести словник і слова тексту; HashSet визначає невідомі слова. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести словник і слова тексту; HashSet визначає невідомі слова; нормалізувати регістр і показати унікальні помилки. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести словник і слова тексту; HashSet визначає невідомі слова; нормалізувати регістр і показати унікальні помилки; запропонувати слова з однією вставкою, вилученням або заміною латинської літери. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Варіант 30. Історія цін
1. Початковий рівень. Створити повну консольну програму Java на JDK 27. Ввести унікальний id зміни й невід’ємну ціну в копійках; SequencedMap зберігає порядок. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
2. Базовий рівень. Створити повну консольну програму Java на JDK 27. Ввести унікальний id зміни й невід’ємну ціну в копійках; SequencedMap зберігає порядок; показати перший, останній і зворотний звіт. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення.
3. Високий рівень. Створити повну консольну програму Java на JDK 27. Ввести унікальний id зміни й невід’ємну ціну в копійках; SequencedMap зберігає порядок; показати перший, останній і зворотний звіт; створити незалежний знімок та перевірити його після зміни початкового словника. Вивести підписаний результат; перевірити порожній набір, дублікати й неправильні значення. Підтримати CLI ключ=значення і --help, без аргументів читати ті самі поля з клавіатури. Вивести таблицю та підсумки. Помилки – у stderr; коди 0 – успіх/довідка, 2 – неправильний ввід, 1 – операційна помилка. Додати автоматизовані перевірки моделі й CLI.
Порядок виконання та захисту
- Визначте ключі, рівність, порядок і дозволені повторення.
- Реалізуйте ввід, модель та формування звіту окремими методами.
- Перевірте порожній набір, дублікати, рівні ключі сортування, відсутній пошук та неправильні значення.
- Для подань і копій продемонструйте наслідки зміни джерела.
- Подайте код, команди запуску й таблицю фактичних результатів.