ЛР24. Парсер, валідація і політика помилок
Коротко про роботу
Текстовий файл містить записи name quantity price, серед яких є помилки формату та недопустимі значення. Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Текстовий файл містить записи name quantity price, серед яких є помилки формату та недопустимі значення.
Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.
2. Що треба знати
Робота виконується після Л1–Л10. Потрібні поняття:
istringstream- розбір і валідація
throw / try / catch- політика помилок
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л10. Не зливайте помилку формату та недопустиме значення в один невизначений лічильник.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Зміст |
|---|---|
input_file |
шлях до файла зі змішаними коректними й помилковими записами |
Поля результату
| Поле | Зміст |
|---|---|
accepted_count |
прийняті записи |
rejected_format |
відхилення формату/типів |
rejected_value |
відхилення через порушення правил значень |
total |
сума quantity * price для прийнятих записів |
Назви полів результату не змінюйте.
4. Терміни і правила
Терміни
- розбір рядка — перетворення тексту на окремі поля потрібних типів.
- валідація — перевірка змістових правил уже розібраних полів.
- помилка формату — рядок неможливо коректно розібрати.
- помилка значення — формат правильний, але значення порушує правило задачі.
Правила
- Кожний рядок має претендувати на формат
name quantity priceз рівно трьома полями. - Відхилення через формат виникає через неправильну кількість полів або неможливість прочитати
quantityякintчиpriceякdouble. - Після успішного розбору діють предметні правила
quantity > 0іprice >= 0; їх порушення збільшуєrejected_value. total— сумаquantity * priceтільки для прийнятих записів. Обробка продовжується після кожного очікуваного помилкового запису.
5. Завдання
Завдання 1
Напишіть функцію розбору рядка name quantity price. Вона має відрізняти правильний формат від помилкового.
Завдання 2
Для правильно розібраного запису перевірте quantity > 0 і price >= 0.
Завдання 3
Обробіть усі рядки. Запишіть accepted_count, rejected_format, rejected_value і total.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Для роботи з файлами покажіть у зошиті назви створених файлів. Також залиште видимий фрагмент або результат, який підтверджує їхню роботу.
Назва PDF: LR24_Прізвище_Група_VNN.pdf.