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

ЛР12. Аргументи за замовчуванням, перевантаження, шаблон функції та тести

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

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

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

1. Умова

Невеликий набір допоміжних функцій має однаковий стиль виклику для кількох числових випадків.

Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.

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

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

  1. аргумент за замовчуванням
  2. перевантаження функцій
  3. перший шаблон функції
  4. assert і передумова

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

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

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

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

Вхідні дані

Поле Зміст
base базове ціле
explicit_delta явна зміна
int_value ціле для перевантаження
double_value значення double для перевантаження
int_a перше ціле для шаблону
int_b друге ціле
double_a перше значення double
double_b друге значення double

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

Поле Зміст
default_adjusted adjust(base)
explicit_adjusted adjust(base, explicit_delta)
int_magnitude результат перевантаження для int
double_magnitude результат перевантаження для double
larger_int результат шаблону для int
larger_double результат шаблону для double

Назви полів результату не змінюйте.

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

Терміни

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

Правила

  1. adjust(value, delta = 1) повертає value + delta. Виклик без другого аргументу використовує delta = 1.
  2. Два перевантаження magnitude приймають відповідно int і double та повертають невід’ємну величину значення.
  3. Шаблон функції larger(a, b) повертає більше з двох значень одного типу.
  4. Перевірте задані виклики через 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. Перевірка і здача

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

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