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

ЛР10. Рефакторинг у функції

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

Монолітний фрагмент працює, але змішує три різні обчислення над однією послідовністю. Варіант визначає STUDENT_X.

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

1. Умова

Монолітний фрагмент працює, але змішує три різні обчислення над однією послідовністю.

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

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

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

  1. функція, параметр і аргумент
  2. return і void
  3. посилання та const&
  4. локальна область видимості

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

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

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

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

Вхідні дані

Поле Тип Зміст
values std::vector<int> числова послідовність
threshold int поріг
text std::string рядок
target_char std::string символ

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

Поле Зміст
sum_result сума значень
count_result кількість значень вище порога
text_count кількість заданого символу

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

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

Терміни

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

Правила

  1. sum_result — сума всіх елементів values.
  2. count_result — кількість елементів values, які строго більші за threshold.
  3. text_count — кількість точних входжень target_char у text.
  4. Кожне з трьох обчислень оформіть окремою функцією з явними параметрами; глобальний стан для передавання даних не використовуйте.

5. Завдання

Завдання 1

Напишіть функцію, яка повертає суму values. Результат запишіть у sum_result.

Завдання 2

Напишіть функцію, яка рахує значення більші за threshold. Результат запишіть у count_result.

Завдання 3

Напишіть функцію, яка рахує target_char у text. Результат запишіть у text_count; функція не повинна читати глобальні дані.

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

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

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