Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Якщо тарифи є навчальними, не підмінюйте їх чинними правовими ставками.
Варіанти
Варіант 1. Податок на доходи
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури дохід 0–1000000 і обчислити навчальний податок 10 %. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури дохід і застосувати навчальну шкалу: перші 10000 за 10 %, решта за 20 %; вивести податок і чистий дохід. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури початок, кінець і додатний крок доходів до 1000000; вивести таблицю податку за шкалою 10 % до 10000 і 20 % понад та ефективну ставку. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 2. Високосний рік
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури рік 1–9999 та повідомити високосність за правилом григоріанського календаря. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури рік і місяць та вивести кількість днів із перевіркою номерів. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури рік, місяць і день тижня першого числа 1–7; надрукувати календар із правильним числом днів і вирівнюванням. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 3. Квадратне рівняння
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури a, b, c з ненульовим a і надрукувати дійсні корені або їх відсутність. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури a, b, c; обробити також лінійний, суперечливий і тотожний випадки; вивести тип розв’язку. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури кількість до 100 і серію трійок a, b, c; вивести таблицю дискримінантів і кількості коренів; відхилити нескінченні дані. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 4. Цифри числа
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури невід’ємне число до 1000000000 і вивести суму цифр. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число до 1000000000; вивести реверс і ознаку паліндрома, окремо обробити 0. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі 0–999999; вивести шестизначні щасливі числа з початковими нулями, суми перших і останніх трьох цифр та кількість. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 5. Прості числа
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури n у 2–1000000 і перевірити простоту перебором до n/d. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури межі 2–100000 і надрукувати прості числа по п’ять у рядку. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі 2–100000; надрукувати прості числа, найбільший проміжок між сусідніми та кількість, включно з порожнім результатом. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 6. Паркування
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури години 1–24; вивести оплату за навчальним тарифом 20 за годину. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури хвилини 1–1440 і день тижня 1–7; округлити години вгору, застосувати 20 у будні та 15 у вихідні, вивести чек. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 стоянок із хвилинами та днем тижня; тариф 20/15 за почату годину, максимум 200 за добу; вивести чеки й загальний виторг. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 7. Електроенергія
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури споживання 0–10000 та навчальний тариф і вивести вартість. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури денні й нічні кВт·год та тарифи 4 і 2; вивести двозонну суму й економію проти єдиного тарифу 4. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури 12 місячних пар споживання; вивести таблицю оплат за тарифами 4/2, річну економію проти 4 та місяць найбільшої економії. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 8. Депозит
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму 1–1000000 і річний відсоток 0–100; вивести суму за рік. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму, відсоток і кількість місяців 1–120; вивести помісячну капіталізацію без поповнення. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури суму, річний відсоток, поповнення та місяці 1–120; щомісяця нарахувати відсоток, потім поповнення; вивести внески й нараховані проценти окремо. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 9. Витрата пального
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури відстань і літри на 100 км; вивести потрібне пальне. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури відстань, витрату і ціну літра; перевірити додатність та вивести літри і вартість. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 поїздок із відстанню, літрами й ціною; вивести загальну вартість та зважену витрату на 100 км, не ділити на нульову відстань. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 10. Конвертер довжини
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури метри 0–1000000; вивести сантиметри й кілометри. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури код одиниці m, cm, km та невід’ємне значення; вивести метри, відхилити невідомий код. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму з числовим меню переведення m/cm/km та таблицею для введених меж і додатного кроку; надрукувати максимум 1000 рядків. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 11. Шкала оцінювання
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури бал 0–100; вивести A для 90+, B для 82+, C для 74+, D для 64+, E для 60+, F нижче 60. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури кількість 1–100 і бали; вивести літери A/B/C/D/E/F за межами 90/82/74/64/60 та середній бал. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури бали до ознаки -1; вивести кількості категорій за межами 90/82/74/64/60, середнє та частку успішних; порожній набір обробити окремо. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 12. Двійкове подання
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури unsigned 0–255; вивести 8 біт і шістнадцятковий запис. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число 0–255 і номер біта 0–7; вивести значення біта та число після його інверсії. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури два числа 0–255; надрукувати таблицю AND, OR, XOR і зсувів 0–7 у двійковому та десятковому форматах. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 13. Послідовність Колатца
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури n у 1–100000; вивести послідовність до 1 з лімітом 1000 кроків. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури n у 1–1000000; вивести довжину та максимум, перевіряючи можливість 3*n+1. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі 1–10000; знайти початок із найдовшою послідовністю, при рівності менший; контролювати переповнення й 10000 кроків. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 14. Досконалі числа
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури n у 1–100000; вивести суму власних дільників та ознаку досконалості. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури N у 2–10000; вивести всі досконалі числа до N і їхні дільники. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури N у 2–5000; знайти дружні пари a<b<=N за сумами власних дільників, без дублів. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 15. Кредит
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму й місяці 1–120; для нульового відсотка вивести рівний щомісячний платіж. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму, річну ставку 0–100 і місяці 1–120; обчислити ануїтет, окремо обробити ставку 0. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури суму, ставку й місяці; вивести графік залишку, процентів і погашення тіла, скоригувати останній платіж та порівняти загальну переплату. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 16. Доставка
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури скінченну вагу weight у 0–30 кг; обчислити навчальну ціну base = 50 + 10 * ceil(weight). Вивести вагу, почату кількість кілограмів і ціну у гривнях із двома десятковими знаками; для нульової ваги ціна 50 грн. Перевірити введення; некоректні дані пояснити повідомленням.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури вагу weight у 0–30 кг, цілу зону zone у 1–3 та терміновість urgent як 0 або 1; обчислити base = 50 + 10 * ceil(weight) і total = base * zone * (urgent == 1 ? 1.5 : 1.0). Вивести почату кількість кілограмів, базову ціну, обидва множники та кінцеву ціну у гривнях із двома десятковими знаками. Для нульової ваги базова ціна дорівнює 50 грн. Відхилити нескінченну вагу та NaN. Перевірити введення; некоректні дані пояснити повідомленням.
3. Високий рівень. Створити консольну програму з меню додавання посилки, звіту та завершення; зберігати до 100 посилок. Для кожного додавання зчитати з клавіатури вагу weight у 0–30 кг, цілу зону zone у 1–3 та терміновість urgent як 0 або 1; обчислити base = 50 + 10 * ceil(weight) і total = base * zone * (urgent == 1 ? 1.5 : 1.0). Вивести почату кількість кілограмів, базову ціну, обидва множники та кінцеву ціну у гривнях із двома десятковими знаками. Для нульової ваги базова ціна дорівнює 50 грн. Звіт має містити чеки всіх посилок, кількість і суму для кожної зони та загальну суму; для порожнього списку всі підсумки нульові. Відхилити нескінченну вагу, NaN і додавання понад ліміт. Перевірити введення; некоректні дані пояснити повідомленням.
Варіант 17. Хід коня
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури дві клітинки як рядок і стовпець 1–8; перевірити хід коня. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури клітинку 1–8, 1–8; вивести дошку 8×8 із позначенням усіх допустимих ходів. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури послідовність до 100 клітинок; перевірити кожен перехід коня, вивести номер першого помилкового та підсумок правильних переходів. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 18. Температури
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури Цельсій не нижче -273.15; вивести Фаренгейт і Кельвін. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури початок, кінець і додатний крок Цельсія; вивести максимум 1000 рядків C/F/K. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму, яка реалізує меню C/F/K, перевіряє абсолютний нуль у вибраній шкалі та будує таблицю перетворень із заданим кроком. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 19. Темп бігу
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури додатні кілометри й хвилини; вивести км/год. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури дистанцію і секунди; вивести темп хв:с на кілометр з округленням. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 відрізків із кілометрами й секундами; вивести загальний темп і лінійний прогноз на 42.195 км, пояснити модель сталого темпу. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 20. НСД
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури два додатні числа до 1000000; вивести НСД алгоритмом Евкліда. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури чисельник 0–1000000 і знаменник 1–1000000; вивести скорочений дріб. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури серію до 100 дробів; вивести скорочення кожного та кількість кроків Евкліда, обробити нульовий чисельник. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 21. Фібоначчі
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури N у 1–40; вивести перші N чисел із початком 0, 1. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури N у 1–100; виводити члени до першого неприпустимого додавання long long і повідомити його індекс. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межу 0–максимум long long; вивести всі числа Фібоначчі не більші за межу та їх індекси, не виконувати переповнене додавання. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 22. Кості
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури зерно генератора і надрукувати два кубики 1–6 та суму. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури зерно й кількість 1–100000; вивести частоту суми 7 при двох кубиках. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури зерно й кількість кидків 1–1000000; вивести частоти всіх сум 2–12 і відсотки, перевірити суму частот. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 23. Знижки
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури суму; застосувати 5 % від 1000 та 0 % нижче, вивести оплату. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури суму; застосувати 0 % до 1000, 5 % від 1000 і 10 % від 5000, вивести знижку та оплату. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 позицій з ціною й кількістю; вивести чек, знижку 0/5/10 % за межами 1000/5000 та підсумок. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 24. Зарплата
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури години 0–168 і ставку; вивести оплату без надбавок. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури години й ставку; перші 40 годин звичайні, решта з коефіцієнтом 1.5; вивести складові. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури 7 денних значень годин 0–24 та ставку; вивести відомість, тижневу оплату з 1.5 понад 40 годин та навчальне утримання 10 %. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 25. Час доби
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури хвилини 0–1439; вивести hh:mm. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури години 0–23 і хвилини 0–59; вивести 12-годинний формат із AM/PM. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури два моменти hh mm; вивести тривалість до другого з переходом через північ, рівні моменти трактувати як 0. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 26. Ряд Тейлора
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури x у -1..1; обчислити x-x³/6+x⁵/120 і порівняти зі std::sin. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури x у -3..3 та точність 1e-12..1e-3; додавати члени sin рекурентно до допуску з лімітом 100. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури межі x у -3..3, крок і точність; вивести таблицю наближень, числа членів та похибок проти std::sin для максимум 1000 точок. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 27. Інтегрування
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури a<b та N у 1–100000; обчислити інтеграл x² лівими прямокутниками. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури a<b, N; порівняти ліві й середні прямокутники для x² з точним значенням (b³-a³)/3. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури a<b та допуск; подвоювати N для середніх прямокутників x² до зміни нижче допуску або N=1048576; вивести таблицю збіжності. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 28. Світлофор
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури стан 0–2; через enum class надрукувати назву червоний, жовтий, зелений. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури число циклів 1–100; вивести послідовність red 30, green 25, yellow 5 і накопичений час. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму світлофора: зчитати з клавіатури тривалості червоного, зеленого й жовтого сигналів 1–120 с та час 0–100000 с; симулювати зміни сигналів, вивести активний сигнал у кінці й кількість завершених циклів. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 29. Акумулятор
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури ємність і струм; обчислити ідеальний час заряджання без втрат. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури ємність, початковий відсоток 0–100 і додатний струм; вивести ідеальний час до 100 %. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури ємність, початковий заряд і струм; вивести поминутну таблицю лінійної моделі до 100 % із лімітом 1440 хв, не перевищувати 100 %. Перевірити діапазони введення; помилку повідомити користувачеві.
Варіант 30. Таксі
1. Початковий рівень. Створити консольну програму: зчитати з клавіатури кілометри 0–1000; вивести навчальну ціну 60+15*км. Перевірити діапазони введення; помилку повідомити користувачеві.
2. Базовий рівень. Створити консольну програму: зчитати з клавіатури кілометри і нічний прапорець 0/1; вночі помножити базову ціну (60 + 15 * км) на 1.2; вивести квитанцію. Перевірити діапазони введення; помилку повідомити користувачеві.
3. Високий рівень. Створити консольну програму: зчитати з клавіатури до 100 поїздок із відстанню, хвилинами очікування та нічним прапорцем; ціна за формулою (60+15*км+3*хв)*1.2 вночі; вивести чеки та підсумок. Перевірити діапазони введення; помилку повідомити користувачеві.
Порядок виконання та захисту роботи
- Запишіть вхідні дані, одиниці, обмеження і очікуваний результат.
- Оберіть типи та перевірте, чи вміщуються проміжні значення.
- Реалізуйте перевірку потоку, діапазонів та завершення введення.
- Зберіть програму з
/W4; виправте змістовні попередження. - Перевірте звичайні, граничні й некоректні дані; запишіть результати.
- Поясніть порядок виконання одного розгалуження і одного циклу.
- Створіть коміт із кодом та короткою таблицею тестів у README.