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

ЛР6. Типові схеми циклів і трасування

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

Послідовність значень утворюється арифметичним правилом, тому її можна опрацьовувати без контейнера. Варіант визначає STUDENT_X.

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

1. Умова

Послідовність значень утворюється арифметичним правилом, тому її можна опрацьовувати без контейнера.

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

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

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

  1. for, while, do-while
  2. лічильник і накопичувач
  3. break та continue
  4. сигнальне значення

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

Використовуйте поняття, вивчені до Л1–Л4. Контейнери та масиви не потрібні. Дані для циклів задаються стартом, кроком і межею.

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

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

Вхідні дані

Поле Тип Зміст
start int перше значення основної послідовності
step int крок
n int кількість значень
target int ціль пошуку
sentinel_start int початок послідовності із сигнальним значенням
sentinel_step int її крок
sentinel_value int значення-завершувач

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

Поле Зміст
for_sum сума n значень
for_best найбільше значення
search_found результат пошуку
search_iterations кількість перевірок до завершення
sentinel_count кількість значень до сигнального значення

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

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

Терміни

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

Правила

  1. Основна арифметична послідовність містить рівно n значень: перше дорівнює start, кожне наступне збільшується на step.
  2. for_sum і for_best обчислюються за всіма n значеннями основної послідовності.
  3. Пошук перевіряє основну послідовність від першого значення до першого збігу з target. search_iterations рахує перевірки з target.
  4. Послідовність із сигнальним значенням починається з sentinel_start і зростає на sentinel_step. Значення sentinel_value завершує цикл і до sentinel_count не входить.

5. Завдання

Завдання 1

Через for опрацюйте n значень. Запишіть суму у for_sum, а найбільше значення — у for_best.

Завдання 2

Через while шукайте target. Запишіть результат у search_found і кількість перевірок у search_iterations.

Завдання 3

Напишіть цикл із сигнальним значенням. Кількість значень до сигналу запишіть у sentinel_count.

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

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

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