Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Використовуйте Python 3.14 та анотації параметрів і результатів. Перед реалізацією визначте допустимі типи операндів, поведінку для неправильних даних і правило зміни стану. Не перевантажуйте операцію лише задля її наявності: поясніть її предметний зміст.
Варіанти
Варіант 1. Раціональні дроби
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два дроби як пари цілих чисельник/знаменник. Потрібно скоротити через gcd, нульовий знаменник відхилити; обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два дроби як пари цілих чисельник/знаменник. Потрібно скоротити через gcd, нульовий знаменник відхилити; обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два дроби як пари цілих чисельник/знаменник. Потрібно скоротити через gcd, нульовий знаменник відхилити; обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати порівняння за перехресними добутками й незмінний хеш. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 2. Комплексні числа
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві пари скінченних дійсних координат. Потрібно додати комплексні числа та вивести модуль через hypot. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві пари скінченних дійсних координат. Потрібно додати комплексні числа та вивести модуль через hypot. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві пари скінченних дійсних координат. Потрібно додати комплексні числа та вивести модуль через hypot. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати множення (a*c-b*d, a*d+b*c) та власний формат .2f. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 3. Тривалість
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні цілі тривалості в секундах. Потрібно обчислити суму й показати години, хвилини, секунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні цілі тривалості в секундах. Потрібно обчислити суму й показати години, хвилини, секунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні цілі тривалості в секундах. Потрібно обчислити суму й показати години, хвилини, секунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково реалізувати frozen dataclass, множення на невід’ємне ціле й total_ordering. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 4. Мультивалютні гроші
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві десяткові суми й коди UAH або EUR. Потрібно додавати лише одну валюту та друкувати суму з двома знаками. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві десяткові суми й коди UAH або EUR. Потрібно додавати лише одну валюту та друкувати суму з двома знаками. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві десяткові суми й коди UAH або EUR. Потрібно додавати лише одну валюту та друкувати суму з двома знаками. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково зберігати Decimal, Enum валют; окремим методом конвертувати за фіксованим навчальним курсом 50 UAH/EUR. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 5. Многочлени
1. Початковий рівень. Створити консольну програму Python 3.14, що читає коефіцієнти a, b, c двох квадратних многочленів і число x. Потрібно реалізувати додавання коефіцієнтів та виклик для a*x*x+b*x+c. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає коефіцієнти a, b, c двох квадратних многочленів і число x. Потрібно реалізувати додавання коефіцієнтів та виклик для a*x*x+b*x+c. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає коефіцієнти a, b, c двох квадратних многочленів і число x. Потрібно реалізувати додавання коефіцієнтів та виклик для a*x*x+b*x+c. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати множення з результатом степеня до чотирьох та контейнер коефіцієнтів. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 6. Колода карт
1. Початковий рівень. Створити консольну програму Python 3.14, що читає число карт n від 1 до 52. Потрібно створити dataclass карти з мастю Enum і рангом 2..14, вивести перші n без повторів. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає число карт n від 1 до 52. Потрібно створити dataclass карти з мастю Enum і рангом 2..14, вивести перші n без повторів. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає число карт n від 1 до 52. Потрібно створити dataclass карти з мастю Enum і рангом 2..14, вивести перші n без повторів. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати контейнер Deck, індекси й перемішування з явно введеним seed. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 7. Матриці
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві матриці 2 на 2 із цілих чисел. Потрібно реалізувати індекси (рядок, стовпець) та поелементне додавання. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві матриці 2 на 2 із цілих чисел. Потрібно реалізувати індекси (рядок, стовпець) та поелементне додавання. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві матриці 2 на 2 із цілих чисел. Потрібно реалізувати індекси (рядок, стовпець) та поелементне додавання. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково реалізувати матричний добуток оператором @ і транспонування. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 8. Температура
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два скінченні значення зі шкалою C або F. Потрібно перевести до C за (F-32)*5/9 та порівняти, відхиляючи C нижче -273.15. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два скінченні значення зі шкалою C або F. Потрібно перевести до C за (F-32)*5/9 та порівняти, відхиляючи C нижче -273.15. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два скінченні значення зі шкалою C або F. Потрібно перевести до C за (F-32)*5/9 та порівняти, відхиляючи C нижче -273.15. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати Enum шкал і __format__ з точністю .1f та явним суфіксом шкали. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 9. GPS-координати
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві широти -90..90 і довготи -180..180. Потрібно створити frozen dataclass та вивести рівність і кількість різних точок. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві широти -90..90 і довготи -180..180. Потрібно створити frozen dataclass та вивести рівність і кількість різних точок. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві широти -90..90 і довготи -180..180. Потрібно створити frozen dataclass та вивести рівність і кількість різних точок. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково реалізувати віднімання як кутову відстань: acos від скалярного добутку одиничних 3D-векторів, аргумент обмежити до -1..1; результат у радіанах. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 10. Версії програм
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два записи major.minor.patch з невід’ємними цілими частинами. Потрібно створити незмінний тип і порівняти лексикографічно числові трійки. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два записи major.minor.patch з невід’ємними цілими частинами. Потрібно створити незмінний тип і порівняти лексикографічно числові трійки. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два записи major.minor.patch з невід’ємними цілими частинами. Потрібно створити незмінний тип і порівняти лексикографічно числові трійки. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати from_string, total_ordering, сортування трьох версій; суфікси заборонити. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 11. Кошик покупок
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три назви товарів, ціну в копійках та кількість 1..100. Потрібно обчислити загальну вартість і перевірити наявність назви через in. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три назви товарів, ціну в копійках та кількість 1..100. Потрібно обчислити загальну вартість і перевірити наявність назви через in. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три назви товарів, ціну в копійках та кількість 1..100. Потрібно обчислити загальну вартість і перевірити наявність назви через in. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати __iadd__ для нового рядка та StrEnum категорій; повторну назву з іншою ціною відхиляти. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 12. Числові інтервали
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві пари цілих меж l<=r. Потрібно побудувати замкнені інтервали й перевірити належність введеного числа. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві пари цілих меж l<=r. Потрібно побудувати замкнені інтервали й перевірити належність введеного числа. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві пари цілих меж l<=r. Потрібно побудувати замкнені інтервали й перевірити належність введеного числа. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково реалізувати & як перетин із None для порожнього та | як список одного або двох неперервних інтервалів. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 13. Вектор 3D
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві трійки скінченних координат. Потрібно реалізувати додавання та модуль sqrt(x*x+y*y+z*z). Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві трійки скінченних координат. Потрібно реалізувати додавання та модуль sqrt(x*x+y*y+z*z). Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві трійки скінченних координат. Потрібно реалізувати додавання та модуль sqrt(x*x+y*y+z*z). Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати скалярний добуток через @ та __iter__ для розпакування. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 14. Розклад занять
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три записи: день 1..7, початок 0..1439 хвилин, назва. Потрібно створити Lesson і вивести заняття за днем і часом. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три записи: день 1..7, початок 0..1439 хвилин, назва. Потрібно створити Lesson і вивести заняття за днем і часом. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три записи: день 1..7, початок 0..1439 хвилин, назва. Потрібно створити Lesson і вивести заняття за днем і часом. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати Enum днів, order=True з правильним порядком полів та відхилення порожньої назви. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 15. Права доступу
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два набори літер R, W, X і запитане право. Потрібно побудувати Flag та перевірити належність права. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два набори літер R, W, X і запитане право. Потрібно побудувати Flag та перевірити належність права. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два набори літер R, W, X і запитане право. Потрібно побудувати Flag та перевірити належність права. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково вивести об’єднання й перетин прав; невідомі літери відхиляти, порожній набір дозволити. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 16. Довжина з одиницями
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні довжини в мм, см або м. Потрібно перевести до цілих міліметрів і обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні довжини в мм, см або м. Потрібно перевести до цілих міліметрів і обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дві невід’ємні довжини в мм, см або м. Потрібно перевести до цілих міліметрів і обчислити суму. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати Enum одиниць, порівняння та форматування в обраній одиниці. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 17. Тенісний рахунок
1. Початковий рівень. Створити консольну програму Python 3.14, що читає послідовність переможців розіграшів A або B. Потрібно вести очки одного гейму до перемоги: від чотирьох очок із перевагою два. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає послідовність переможців розіграшів A або B. Потрібно вести очки одного гейму до перемоги: від чотирьох очок із перевагою два. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає послідовність переможців розіграшів A або B. Потрібно вести очки одного гейму до перемоги: від чотирьох очок із перевагою два. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати Enum станів, __str__ для deuce/advantage/win; після завершення нові очки відхиляти. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 18. Замовлення таксі
1. Початковий рівень. Створити консольну програму Python 3.14, що читає ім’я пасажира та послідовність статусів new, accepted, done. Потрібно створити dataclass і дозволяти лише new→accepted→done. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає ім’я пасажира та послідовність статусів new, accepted, done. Потрібно створити dataclass і дозволяти лише new→accepted→done. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає ім’я пасажира та послідовність статусів new, accepted, done. Потрібно створити dataclass і дозволяти лише new→accepted→done. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати окрему історію через default_factory та match для повідомлення про статус. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 19. Кольори RGB
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два кольори як трійки цілих 0..255. Потрібно створити frozen dataclass та показати HEX через __format__. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два кольори як трійки цілих 0..255. Потрібно створити frozen dataclass та показати HEX через __format__. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два кольори як трійки цілих 0..255. Потрібно створити frozen dataclass та показати HEX через __format__. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково реалізувати змішування оператором + як покомпонентне середнє з округленням вниз. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 20. Будильники тижня
1. Початковий рівень. Створити консольну програму Python 3.14, що читає два набори номерів днів 1..7 та час HH:MM. Потрібно створити Flag днів та показати активні дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає два набори номерів днів 1..7 та час HH:MM. Потрібно створити Flag днів та показати активні дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає два набори номерів днів 1..7 та час HH:MM. Потрібно створити Flag днів та показати активні дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати об’єднання й перетин розкладів за однакового часу; різний час відхиляти. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 21. Банківська історія
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три операції: опис і ціла сума зі знаком у копійках. Потрібно створити контейнер і вивести суму та останню операцію. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три операції: опис і ціла сума зі знаком у копійках. Потрібно створити контейнер і вивести суму та останню операцію. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три операції: опис і ціла сума зі знаком у копійках. Потрібно створити контейнер і вивести суму та останню операцію. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати зрізи з новим контейнером, незалежну ітерацію й незмінні dataclass-записи. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 22. Шахова позиція
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три різні клітини a1..h8 та коди K, Q, R. Потрібно створити dataclass Square, Enum фігур та показати фігуру введеної клітини. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три різні клітини a1..h8 та коди K, Q, R. Потрібно створити dataclass Square, Enum фігур та показати фігуру введеної клітини. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три різні клітини a1..h8 та коди K, Q, R. Потрібно створити dataclass Square, Enum фігур та показати фігуру введеної клітини. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати індексування дошки, перевірку конфлікту зайнятих клітин; правила ходів не потрібні. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 23. Рецептурні інгредієнти
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три назви інгредієнтів, додатні кількості й одиниці g або ml. Потрібно створити рецепт і помножити кількості на введений додатний коефіцієнт. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три назви інгредієнтів, додатні кількості й одиниці g або ml. Потрібно створити рецепт і помножити кількості на введений додатний коефіцієнт. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три назви інгредієнтів, додатні кількості й одиниці g або ml. Потрібно створити рецепт і помножити кількості на введений додатний коефіцієнт. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати Enum одиниць і незмінні записи; не змішувати g та ml, округлювати тільки друк. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 24. Власна дата
1. Початковий рівень. Створити консольну програму Python 3.14, що читає дату ISO РРРР-ММ-ДД та цілу кількість днів. Потрібно обгорнути datetime.date у власний незмінний тип і додати дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає дату ISO РРРР-ММ-ДД та цілу кількість днів. Потрібно обгорнути datetime.date у власний незмінний тип і додати дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає дату ISO РРРР-ММ-ДД та цілу кількість днів. Потрібно обгорнути datetime.date у власний незмінний тип і додати дні. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати різницю двох дат, порівняння й __format__ для формату %d.%m.%Y. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 25. Черга завдань
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три назви та пріоритети 1..3. Потрібно створити dataclass та вивести завдання за пріоритетом і порядком надходження. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три назви та пріоритети 1..3. Потрібно створити dataclass та вивести завдання за пріоритетом і порядком надходження. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три назви та пріоритети 1..3. Потрібно створити dataclass та вивести завдання за пріоритетом і порядком надходження. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати IntEnum та heapq; ключ із пріоритету й унікального номера, текст не впливає на порядок. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 26. Замір часу
1. Початковий рівень. Створити консольну програму Python 3.14, що читає кількість n від 1 до 100000. Потрібно виміряти обчислення суми range(n) менеджером контексту. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає кількість n від 1 до 100000. Потрібно виміряти обчислення суми range(n) менеджером контексту. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає кількість n від 1 до 100000. Потрібно виміряти обчислення суми range(n) менеджером контексту. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати вкладені окремі таймери, звіт і перевірку очищення при ValueError; тривалість не фіксувати константою. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 27. Фігури у match
1. Початковий рівень. Створити консольну програму Python 3.14, що читає тип circle або rectangle та додатні параметри. Потрібно створити dataclass фігур і обчислити площу через match. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає тип circle або rectangle та додатні параметри. Потрібно створити dataclass фігур і обчислити площу через match. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає тип circle або rectangle та додатні параметри. Потрібно створити dataclass фігур і обчислити площу через match. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати сортування за площею і рівність за типом та розмірами, описати __match_args__. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 28. Статуси замовлення
1. Початковий рівень. Створити консольну програму Python 3.14, що читає номер замовлення та команди pay, ship. Потрібно створити StrEnum new, paid, shipped і виконати дозволені переходи. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає номер замовлення та команди pay, ship. Потрібно створити StrEnum new, paid, shipped і виконати дозволені переходи. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає номер замовлення та команди pay, ship. Потрібно створити StrEnum new, paid, shipped і виконати дозволені переходи. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати історію, match і відмову для повторної/передчасної команди без зміни стану. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 29. Час кола
1. Початковий рівень. Створити консольну програму Python 3.14, що читає три додатні цілі результати в мілісекундах. Потрібно створити LapTime, реалізувати суму та формат хвилини:секунди.мілісекунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає три додатні цілі результати в мілісекундах. Потрібно створити LapTime, реалізувати суму та формат хвилини:секунди.мілісекунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає три додатні цілі результати в мілісекундах. Потрібно створити LapTime, реалізувати суму та формат хвилини:секунди.мілісекунди. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати порівняння, середнє як Decimal мілісекунд та заборону зміни хешованого значення. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Варіант 30. Розріджений вектор
1. Початковий рівень. Створити консольну програму Python 3.14, що читає довжину 1..100 і три пари індекс/скінченне значення. Потрібно зберігати ненульові координати у словнику, відсутні читати як 0. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами.
2. Базовий рівень. Створити консольну програму Python 3.14, що читає довжину 1..100 і три пари індекс/скінченне значення. Потрібно зберігати ненульові координати у словнику, відсутні читати як 0. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Реалізувати узгоджені __repr__ і __str__, предметну валідацію та перевірку невідомого типу операнда. Подати п’ять контрольних прикладів.
3. Високий рівень. Створити консольну програму Python 3.14, що читає довжину 1..100 і три пари індекс/скінченне значення. Потрібно зберігати ненульові координати у словнику, відсутні читати як 0. Вивести результат із підписами або повідомлення про недопустимі дані. Використати клас із анотованими методами. Додатково додати __setitem__, __len__ як математичну довжину та додавання рівних розмірностей; нуль видаляє запис. Перевірити нормальний, граничний і неправильний випадки, незалежність екземплярів та поведінку непідтримуваних операцій.
Порядок виконання та захисту роботи
- Запишіть поля, інваріанти й підтримувані операції класу; визначте незмінні та змінювані частини моделі.
- Реалізуйте клас і консольний сценарій із явним контрактом входу. Для невідомих арифметичних операндів повертайте
NotImplemented. - Перевірте звичайний, нульовий, граничний та неправильний випадки, незалежність екземплярів і збереження початкових операндів.
- Для хешованого класу перевірте рівні екземпляри в множині; для контейнера – індекси, зріз і повторний обхід; для контексту – збій.
- Покажіть у PyCharm параметри dataclass та стан об’єкта після операції. Подайте таблицю щонайменше п’яти перевірок.
- Збережіть код і README в локальному Git-репозиторії; GitHub необов’язковий. На захисті обґрунтуйте один невдалий оператор.