Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Посимвольні завдання виконуються для ASCII, якщо не задано інше. Довжину UTF-8 не називайте числом літер.
Варіанти
Варіант 1. Решето Ератосфена
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури N у 2–100000; має побудувати решето у векторі й вивести прості числа та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури N у 2–100000; має вивести кількість простих і найбільший проміжок між сусідніми та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури N у 2–100000; має порівняти решето з перевіркою діленням для N до 10000 і повідомити розбіжності та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 2. Гра «Життя»
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури прямокутне поле до 30×30 із . та X; має обчислити одне покоління за правилами B3/S23 без замикання країв та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури прямокутне поле до 30×30 із . та X і кількість поколінь N до 100; має обчислити N поколінь гри «Життя» за правилами B3/S23 без замикання країв і вивести кожне покоління та кількість живих клітин. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури прямокутне поле до 30×30 із . та X; має обчислювати покоління гри «Життя» за правилами B3/S23 без замикання країв, завершити при стабілізації або повторі попереднього покоління та вивести номер зупинки й останнє поле. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 3. Хрестики-нулики
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури послідовність координат 1–3 для двох гравців; має зберегти ходи в array 3×3 та відхилити зайняту клітинку та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури послідовність координат 1–3 для двох гравців; має визначити переможця по рядках, стовпцях, діагоналях або нічию та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури послідовність координат 1–3 для двох гравців; має вести журнал ходів і команду скасування останнього ходу, не дозволяти гру після перемоги та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 4. Морський бій
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури поле 10×10 з одноклітинними кораблями та координати пострілів; має позначити влучення або промах та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури поле 10×10 з одноклітинними кораблями та координати пострілів; має відхилити повторні постріли і підрахувати решту кораблів та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури поле 10×10 з одноклітинними кораблями та координати пострілів; має перевірити розстановку без сусідніх кораблів у восьми напрямах і завершити після останнього влучення та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 5. Спіральна матриця
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури N, M у 1–30; має заповнити матрицю послідовними числами по рядках змійкою та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури N, M у 1–30; має заповнити матрицю N×M послідовними числами спіраллю за годинниковою стрілкою та надрукувати її. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури N, M у 1–30; має заповнити матрицю N×M послідовними числами спіраллю за годинниковою стрілкою, вивести її, а потім для кожного введеного користувачем значення вивести його координати; перевірити вузькі матриці. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 6. Магічний квадрат
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури квадрат до 9×9; має порівняти суми рядків і стовпців та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури квадрат до 9×9; має перевірити, чи він магічний: однакові суми рядків, стовпців і обох діагоналей та наявність чисел 1..N² без повторів, і надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму: зчитати непарний розмір N у 1–9; побудувати квадрат методом Сіаму з числами 1..N² та перевірити незалежною функцією унікальність чисел і рівність сум усіх рядків, стовпців та обох діагоналей. Вивести квадрат, спільну суму та результат перевірки. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 7. RLE
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок до 1000 літер A–Z; має стиснути серії у форматі літера:кількість через кому та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури закодований рядок до 10000 символів у форматі A:3,B:2: літера A–Z, двокрапка, додатна десяткова кількість, серії розділено комами; розпакувати його, відхиливши неповний формат і результат довший за 10000 символів, та вивести відновлений рядок. Порожній рядок декодується в порожній. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму з меню стискання, розпакування й завершення. Для стискання зчитати рядок до 1000 літер A–Z, вивести серії у форматі A:3,B:2 та перевірити відновлення початкового рядка. Для розпакування зчитати закодований рядок до 10000 символів у форматі A:3,B:2: літера A–Z, двокрапка, додатна десяткова кількість, серії розділено комами; розпакувати його, відхиливши неповний формат і результат довший за 10000 символів, та вивести відновлений рядок. Порожній рядок в обох режимах дає порожній результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 8. Морзе
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок A–Z та пробіли; має перевести літери таблицею array у Морзе, пробіли кодувати / та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму: зчитати рядок кодів Морзе до 1000 символів; коди літер A–Z розділено одним пробілом, окремий токен / позначає пробіл між словами. Декодувати таблицею, вивести текст або позицію невідомого коду. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму: зчитати режим encode/decode. Для encode зчитати до 1000 літер A–Z і пробілів, вивести коди Морзе через пробіл, пробіл тексту кодувати окремим токеном /. Для decode зчитати до 5000 символів у цьому форматі, вивести текст або позицію невідомого токена. Для коректного введення перевірити двостороннє перетворення. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 9. Римські числа
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ціле число 1–3999; має перетворити у канонічний римський запис та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму: зчитати рядок до 15 символів I,V,X,L,C,D,M; розібрати римське число у діапазоні 1–3999 та перевірити канонічність зворотним перетворенням. Вивести десяткове значення або пояснення помилки. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму: зчитати кількість записів 1–100; для кожного зчитати режим decimal/roman і відповідно ціле 1–3999 або римський рядок до 15 символів I,V,X,L,C,D,M. Десяткове число перетворити в канонічний римський запис; римський перевірити зворотним перетворенням і перевести в десятковий. Вивести таблицю результатів та помилок. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 10. Пароль
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок довжиною до 100; має перевірити мінімум 8 символів і наявність цифри та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок довжиною до 100; має перевірити великі, малі літери, цифру та знак !?; вивести всі порушення та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури зерно генератора; має згенерувати 10 паролів довжини 12 і незалежною функцією перевірити правила: великі й малі літери, цифра та знак ! або ?, та надрукувати паролі й результати перевірки. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 11. Довга арифметика
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури два невід’ємні десяткові рядки до 100 цифр; має додати числа справа наліво без вбудованого великого типу та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури два невід’ємні десяткові рядки до 100 цифр; має помножити числа стовпчиком і нормалізувати початкові нулі та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури два невід’ємні десяткові рядки до 100 цифр; має реалізувати меню + і множення з перевіркою токенів та вивести довжину результату та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 12. Анаграми
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури два ASCII-рядки до 1000 символів; має перевірити паліндром першого без пробілів і регістру та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури два ASCII-рядки до 1000 символів; має визначити анаграмність через частоти A–Z, відхилити інші непробільні символи та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 ASCII-слів; має згрупувати їх у групи анаграм без map, використавши вектор структур, та надрукувати групи. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 13. Телефони
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури рядок номера з цифрами, пробілами, дефісами та початковим +; має прибрати оформлення й перевірити 12 цифр з префіксом 380 та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 рядків телефонних номерів із цифрами, пробілами, дефісами та початковим +; має нормалізувати кожен у +380XXXXXXXXX, відхилити некоректні, знайти дублікати та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 рядків телефонних номерів із цифрами, пробілами, дефісами та початковим +; має нормалізувати їх у +380XXXXXXXXX, згрупувати за двома цифрами коду після 380, не приписуючи оператору актуальність, та надрукувати групи. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 14. CSV
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури один ASCII-рядок CSV до 1000 символів; має розділити нецитовані поля по комі зі збереженням порожніх та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури один ASCII-рядок CSV до 1000 символів; має розділити його на поля по комі зі збереженням порожніх, з підтримкою цитованих полів у лапках і подвоєних лапок усередині, та надрукувати поля. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 ASCII-рядків CSV до 1000 символів; має розділити кожен на поля з підтримкою лапок, перевірити однакову кількість полів, вивести таблицю або номер рядка із синтаксичною помилкою. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 15. Метеостанція
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 31 скінченного показника -100..100; має знайти мінімум, максимум і середнє та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 31 скінченного показника -100..100; має обчислити ковзне середнє з непарним вікном 3 або 5 лише для повних вікон та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 31 скінченного показника -100..100; має позначити дні, що відхиляються від загального середнього більше введеного порога, та вивести їхні індекси та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 16. Гістограма
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 цілих балів 0–100; має підрахувати кількості за діапазонами 0–9, ..., 90–100 та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 цілих балів 0–100; має згрупувати їх за діапазонами 0–9, ..., 90–100 і вивести гістограму з однією зірочкою на кожен бал групи. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 цілих балів 0–100; має згрупувати їх за діапазонами 0–9, ..., 90–100, вивести гістограму зі стовпчиками, масштабованими до 50 зірочок, і надрукувати точні частоти та відсотки. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 17. Довідник
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 записів ASCII-ім’я та номер; має знайти ім’я лінійним пошуком та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 записів ASCII-ім’я та номер; має відсортувати структури за ім’ям вручну і виконати бінарний пошук та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 записів ASCII-ім’я та номер і ім’я для пошуку; має знайти всі записи з цим ім’ям лінійним пошуком і бінарним пошуком після сортування та порівняти кількість порівнянь обох пошуків. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 18. Вирівнювання
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-абзац і ширину 10–80; має розбити текст на рядки без розриву слів та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-абзац і ширину 10–80; має вирівняти всі повні рядки додатковими пробілами, останній ліворуч та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-абзац і ширину 10–80; має підтримати режими left/right/justify і відхилити слово, довше за ширину, та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 19. Турнір
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 20 назв команд і результати матчів; має підрахувати очки: перемога 3, нічия 1 та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 20 назв команд і результати матчів; має вивести таблицю очок, забитих і пропущених м’ячів та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 20 назв команд і результати матчів; має сортувати за очками, різницею м’ячів, назвою; відхилити матч команди з собою та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 20. Поліном
1. Початковий рівень. Створити консольну програму: зчитати степінь N у 0–20, N+1 скінченних коефіцієнтів від вільного члена до старшого та скінченне значення x. Обчислити поліном у x схемою Горнера й вивести результат; повідомити переповнення, якщо результат нескінченний. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури коефіцієнти від вільного члена до степеня N до 20; має побудувати вектор коефіцієнтів похідної та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму: зчитати степені двох поліномів у 0–20 і для кожного всі скінченні коефіцієнти від вільного до старшого. Додати поліноми, прибрати зайві старші нулі (нульовий поліном зберігати як один нуль). Далі зчитати кількість точок 1–100 і їх скінченні значення x; вивести коефіцієнти суми й таблицю значень обох поліномів та суми в цих точках. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 21. Сніданок
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 замовлень з назвою страви, кількістю та ціною; має обчислити суму всіх замовлень та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 замовлень з назвою страви, кількістю та ціною; має об’єднати однакові страви у векторі підсумків та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 замовлень з назвою страви, кількістю та ціною; має вивести потребу порцій і виторг за стравами, відхилити суперечливу ціну однакової назви та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 22. Транзакції
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 сум із додатним надходженням і від’ємною витратою; має знайти кінцевий баланс від початкового нуля та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 сум із додатним надходженням і від’ємною витратою; має вивести найбільшу витрату та проміжні баланси та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 1000 сум із додатним надходженням і від’ємною витратою; має знайти перший від’ємний баланс і підсумки надходжень/витрат, не втрачати порядок записів та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 23. Частота слів
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок до 10000 літер і пробілів; має порахувати слова після приведення до нижнього регістру та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок до 10000 літер і пробілів; має зберегти частоти у векторі пар слово/кількість та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-рядок до 10000 літер і пробілів; має вивести топ-10 за частотою й алфавітом для нічиєї, використати власне сортування та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 24. Судоку
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю 9×9 чисел 1–9; має перевірити унікальність кожного рядка та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю 9×9 чисел 1–9; має перевірити рядки, стовпці й блоки 3×3 та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю 9×9 чисел 1–9; має вивести всі порушені рядки, стовпці та блоки без припинення після першої помилки та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 25. Номерні знаки
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 ASCII-кодів формату AA1234BB; має перевірити дві літери, чотири цифри, дві літери та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 ASCII-кодів формату AA1234BB; має нормалізувати регістр і знайти дублікати та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 ASCII-кодів формату AA1234BB; має згрупувати за першими двома літерами й вивести кількості та список некоректних кодів та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 26. Шаблон файла
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-шаблон з ? і список назв; має перевірити збіг ? з одним символом за однакової довжини та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-шаблон і список назв; має вивести назви, що збігаються з шаблоном, де ? означає один символ, а * – довільну кількість символів. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури ASCII-шаблон із ? (один символ) і * (довільна кількість символів) та до 1000 назв довжиною до 100; має відфільтрувати назви за шаблоном, відсортувати їх, прибрати дублікати та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 27. Мінне поле
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури поле до 30×30 з . та *; має порахувати сусідні міни для кожної вільної клітинки та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури поле до 30×30 з . та *; має відкрити введену клітинку, повідомити міну або кількість та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури поле до 30×30 з . та *; має реалізувати відкриття зв’язної нульової області і її межі, не виходячи за координати, та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 28. Автобуси
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 моментів hh:mm та поточний час; має знайти найближчий рейс цього дня лінійним пошуком та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 моментів hh:mm та поточний час; має відсортувати хвилини й знайти рейс бінарним пошуком та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури до 100 часів відправлення автобусів hh:mm та поточний час; має знайти найближчий рейс, а якщо сьогодні рейсів більше немає, узяти перший завтрашній, і вивести рейс та час очікування. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 29. Зображення
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю до 30×30 яскравостей 0–255; має віддзеркалити горизонтально та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю до 30×30 яскравостей 0–255; має розмити середнім існуючих сусідів 3×3, читаючи незмінну копію, та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури матрицю до 30×30 яскравостей 0–255; має застосувати контраст навколо 128 із насиченням до 0–255 і вивести ASCII-візуалізацію та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Варіант 30. Розклад
1. Початковий рівень. Створити консольну програму, яка зчитує з клавіатури таблицю 5 днів по 6 слотів з ASCII-назвами або -; має порахувати заняття за днями та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму, яка зчитує з клавіатури таблицю 5 днів по 6 слотів з ASCII-назвами або -; має знайти вікна між першим і останнім заняттями та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму, яка зчитує з клавіатури таблицю 5 днів по 6 слотів з ASCII-назвами або -; має знайти дні з понад 4 заняттями й дублікати предмета в сусідніх слотах та надрукувати результат. Використати масиви або вектори; перевірити введення і межі. Некоректні дані пояснити повідомленням.
Порядок виконання та захисту
- Оберіть array або vector відповідно до зміни розміру.
- Запишіть допустимі індекси і максимальний обсяг введення.
- Визначте власників рядків та час життя виглядів.
- Реалізуйте пошук і сортування, поясніть їхні інваріанти.
- Перевірте порожню колекцію, один елемент і дублікати.
- Перегляньте size/capacity і елементи у Watch.
- Збережіть результати тестів і код у Git.