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

ЛР7. Самостійна задача з циклом і контрприкладом

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

Лічильник ресурсу збільшується фіксованим кроком, доки поточне значення не перевищить межу. Варіант визначає STUDENT_X.

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

1. Умова

Лічильник ресурсу збільшується фіксованим кроком, доки поточне значення не перевищить межу.

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

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

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

  1. стан циклу
  2. умова завершення
  3. помилка на одиницю
  4. контрприклад і повторна перевірка

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

Використовуйте поняття, вивчені до Л1–Л4. Не використовуйте контейнер або готову послідовність. Побудуйте повторення зі змін стану.

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

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

Вхідні дані

Поле Тип Зміст
start int початкове значення
step int крок зміни
limit int максимальне значення, яке ще обробляється

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

Поле Зміст
iterations кількість оброблених значень
total сума оброблених значень
final_current перше значення після допустимої межі

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

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

Терміни

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

Правила

  1. Розглядайте члени арифметичної послідовності start, start + step, ..., які не перевищують limit.
  2. iterations — кількість членів цієї послідовності, що не перевищують limit.
  3. total — сума цих членів.
  4. final_current — перший наступний член послідовності, який уже перевищує limit.

5. Завдання

Завдання 1

Обчисліть iterations, total і final_current для значень, що не перевищують limit.

Завдання 2

Зробіть помилкову версію, де стан оновлюється у неправильному порядку. Знайдіть малий приклад, на якому результати відрізняються.

Завдання 3

Поверніть правильний порядок дій. Повторіть тест і перевірте дані свого варіанта.

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

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

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