Шаблоны функций
Автор: Ринат Хуснутдинов • Январь 13, 2023 • Практическая работа • 601 Слов (3 Страниц) • 157 Просмотры
План-конспект
Практического занятия на тему :
«Шаблоны функций»
1. Цели:
Обучающие - выстроить систему знаний о том, как на практике реализуются шаблоны функций
Развивающие - развить навыки проектирования шаблонных функций
Воспитывающие - создание воспитательного процесса для понимания обучающихся назначение шаблонов функций и их взаимосвязь с другими аспектами языка программирования.
2. Тип занятия — практическое занятие
3. Методы:
Обучения - диалогический в сочетании с алгоритмическим и исследовательским
Преподавания - объяснительно-стимулирующий, инструктивный, побуждающий
Учения - практический, поисковой
4. Электронное и материальное оснащение практического занятия:
Воронцова, Е. А. Программирование на С++ с погружением: практические задания и примеры кода
Ход практического занятия по этапам
Действия преподавателя | Действия студента |
| |
Преподаватель дает вводную информацию, по данной тематике. «Шаблоны функций - средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам. Функции и классы являются мощными и гибкими инструментами для эффективного программирования, в некоторых случаях они ограничены из-за требования C++ указывать типы всех используемых параметров». Преподаватель использует прием побуждающего действия: указывает на значимость данной темы и необходимость ее изучения в современном программировании. Данный прием направлен на сосредоточении студентов в отношении данной темы. Что знаете о шаблонных функциях и их назначении? Как было сказано в начале, шаблоны функций могут значительно упростить некоторые моменты связанные с написанием функций. Особенно важно это, для того чтобы не писать несколько версий одной и той же функции. Например, предположим, что нам нужно написать функцию для вычисления наибольшего среди двух чисел: int max(int a, int b) { return (a>b) ? a : b; } Всё отлично до тех пор, пока мы работаем с целочисленными значениями. А что если нам придется работать и со значениями типа double? Мы, вероятно, решим перегрузить функцию max() для работы с типом double: double max(double a, double b) { return (a>b) ? a : b; } Теперь у нас есть две версии одной функции, которые работают c разными типами данных. Поскольку C++ требует, чтобы мы указывали типы наших переменных, нам приходится записывать несколько версий одной и той же функции, где единственное, что меняется — это тип параметров. А это нарушает одну из концепций эффективного программирования — сократить до минимума дублирование кода. Именно поэтому следует использовать шаблонные функции. Шаблоны функций — это функции, которые служат образцом для создания других подобных функций. Главная идея — создание функций без указания точного типа(ов) некоторых или всех переменных. Для этого мы определяем функцию, указывая тип параметра шаблона, который используется вместо любого типа данных. После того, как мы создали функцию с типом параметра шаблона, мы фактически создали «трафарет функции». T max(T a, T b) { return (a>b) ? a : b; } Но это еще не всё. Программа работать не будет, так как компилятор не знает, что такое Т! Чтобы всё заработало, нам нужно сообщить компилятору две вещи: 1. Определение шаблона функции. 2. Указание того, что Т является типом параметра шаблона функции. Делается это при помощи template <typename T> Сначала пишем ключевое слово template, которое сообщает компилятору, что дальше мы будем объявлять параметры шаблона. Параметры шаблона функции указываются в угловых скобках Далее преподаватель дает задание студентам для самостоятельной работы: Используя то что было сказано выше попробуйте реализовать шаблон функции для поиска минимального значения из двух аргументов. После того, как преподаватель проверил решения заданий, преподаватель дает список задач для решения. | Студенты слушают и анализируют получаемую информацию. Если студенты не смогут ответить на поставленные вопросы, то преподаватель объясняет сам. Студенты пытаются самостоятельно решить данную задачу и показывают преподавателю. |
| |
На основании информации данной в начале пары, необходимо решить список задач. Реализовать шаблонную функцию, которая позволяла бы суммировать аргумент практически любого типа, который ей передан. Необходимо написать программу, которая использует шаблон функции по имени Min для определения наименьшего из двух аргументов. | Студенты самостоятельно пытаются решить задачи |
| |
На вход программе подается число, используя шаблонные функции необходимо ввывести двоичное представление заданного числа. |
...