Перейти до змісту

ЛР2. Перша програма C++ і контрольоване налагодження

Коротко про роботу

Невелике замовлення має ціну одиниці, кількість, доставку та окрему плату за пакування. Варіант визначає STUDENT_X.

Відкрити робочий зошит Як виконувати лабораторні

1. Умова

Невелике замовлення має ціну одиниці, кількість, доставку та окрему плату за пакування.

Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.

2. Що треба знати

Робота виконується після Л1. Потрібні поняття:

  1. структура простої програми C++
  2. оголошення і присвоєння
  3. std::cout
  4. читання діагностики компілятора

Межа матеріалу

Використовуйте поняття, вивчені до Л1. Не використовуйте умови, цикли або власні функції для базового розрахунку.

3. Варіант, вхідні дані та результат

У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.

Вхідні дані

Поле Тип Зміст
unit_price double ціна одиниці
quantity int кількість
delivery int вартість доставки
packaging int вартість пакування

Поля результату

Поле Зміст
subtotal вартість товарів
base_total сума без пакування
modified_total сума з пакуванням

Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не оголошує предметні змінні. Перед розв’язанням кожного завдання самостійно оголосіть потрібні вхідні змінні з показаними значеннями. Власні та результуючі змінні також оголошуйте звичайно, як у лекційних прикладах. Обчислення виконуйте у блоці { ... }; код над блоком використовуйте лише там, де це позначено. Наприкінці блока вже є службовий рядок самоперевірки для контрольних полів — його не потрібно писати або змінювати. Формат std::cout обирайте за змістом завдання: спеціального формату для самоперевірки немає.

4. Терміни і правила

Терміни

  • діагностика компілятора — повідомлення компілятора про місце та тип помилки.
  • логічна помилка — код компілюється, але обчислює неправильний результат для певних даних.

Правила

  1. subtotal означає вартість усіх товарів без доставки та пакування.
  2. base_total включає товари й доставку.
  3. modified_total включає товари, доставку та пакування.
  4. Три дефектні фрагменти нижче незалежні. Виправлення одного фрагмента не повинно змінювати два інші.

Матеріал для налагодження

Після базового розрахунку розгляньте три незалежні фрагменти. Кожний містить рівно один навчальний дефект.

Фрагмент A — компіляція

double subtotal{unit_price * quantity}
std::cout << subtotal << "\\n";

Фрагмент B — ім’я

double subtotal{unit_price * quantity};
std::cout << sub_total << "\\n";

Фрагмент C — поведінка

double subtotal{unit_price * quantity};
double base_total{subtotal * delivery};
std::cout << base_total << "\\n";

Для кожного фрагмента зафіксуйте: сигнал, першопричину та мінімальне виправлення. Для логічного дефекту додайте числовий тест, який відрізняє правильну формулу від помилкової.

5. Завдання

Завдання 1

Обчисліть subtotal і base_total. Перед запуском запишіть очікувані значення.

Завдання 2

Перевірте фрагменти A, B і C. Для кожного запишіть помилку, її причину та виправлений рядок.

Завдання 3

Додайте вартість пакування та обчисліть modified_total. Виведіть subtotal, base_total і modified_total.

6. Перевірка і здача

  1. Запустіть самоперевірку та виправте помилки.
  2. Перезапустіть ядро і виконайте роботу ще раз від початку.
  3. Збережіть .ipynb і PDF з кодом та результатами.

Назва PDF: LR02_Прізвище_Група_VNN.pdf.