ЛР11. Аргументи за замовчуванням, перевантаження, шаблон функції та тести
Коротко про роботу
Невеликий набір допоміжних функцій має однаковий стиль виклику для кількох числових випадків. Варіант визначає
STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Невеликий набір допоміжних функцій має однаковий стиль виклику для кількох числових випадків.
Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні
змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.
2. Що треба знати
Робота виконується після Л1–Л6. Потрібні поняття:
- аргумент за замовчуванням
- перевантаження функцій
- перший шаблон функції
assertі передумова
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л6. Не використовуйте шаблони класів або складні узагальнені конструкції. Потрібний лише перший шаблон функції.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Тип | Зміст |
|---|---|---|
base |
int |
базове ціле |
explicit_delta |
int |
явна зміна |
int_value |
int |
ціле для перевантаження |
double_value |
double |
значення double для перевантаження |
int_a |
int |
перше ціле для шаблону |
int_b |
int |
друге ціле |
double_a |
double |
перше значення double |
double_b |
double |
друге значення double |
Поля результату
| Поле | Зміст |
|---|---|
default_adjusted |
adjust(base) |
explicit_adjusted |
adjust(base, explicit_delta) |
int_magnitude |
результат перевантаження для int |
double_magnitude |
результат перевантаження для double |
larger_int |
результат шаблону для int |
larger_double |
результат шаблону для double |
Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не оголошує предметні змінні. Перед
розв’язанням кожного завдання самостійно оголосіть потрібні вхідні змінні з показаними значеннями. Власні та результуючі
змінні також оголошуйте звичайно, як у лекційних прикладах. Обчислення виконуйте у блоці { ... }; код над блоком
використовуйте лише там, де це позначено. Наприкінці блока вже є службовий рядок самоперевірки для контрольних полів —
його не потрібно писати або змінювати. Формат std::cout обирайте за змістом завдання: спеціального формату для
самоперевірки немає.
4. Терміни і правила
Терміни
- аргумент за замовчуванням — значення параметра, яке використовується, якщо аргумент пропущено.
- перевантаження функції — кілька функцій з одним ім’ям і різними наборами параметрів.
- шаблон функції — узагальнене визначення функції для кількох типів.
Правила
adjust(value, delta = 1)повертаєvalue + delta. Виклик без другого аргументу використовуєdelta = 1.- Два перевантаження
magnitudeприймають відповідноintіdoubleта повертають невід’ємну величину значення. - Шаблон функції
larger(a, b)повертає більше з двох значень одного типу. - Перевірте задані виклики через
assert; результат кожного виклику запишіть у відповідне контрольне поле.
5. Завдання
Завдання 1
Реалізуйте adjust(value, delta = 1). Запишіть результати двох викликів у default_adjusted і explicit_adjusted.
Завдання 2
Реалізуйте magnitude для int і double. Запишіть результати у int_magnitude та double_magnitude.
Завдання 3
Реалізуйте шаблон larger(a, b). Запишіть larger_int і larger_double та перевірте їх через assert.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR11_Прізвище_Група_VNN.pdf.