рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ЛАБОРАТОРНАЯ РАБОТА N 8

ЛАБОРАТОРНАЯ РАБОТА N 8 - раздел Программирование, Программирование алгоритмов сортировки массивов Шаблоны Функций   1.перегрузка И Шаблоны Функций ...

Шаблоны функций

 

1.Перегрузка и шаблоны функций

 

В одной программе может быть размещено несколько функций с одним и тем же именем, если списки формальных параметров у них различны. Требование уникальности, таким образом, предъявляется к расширенному имени функции, состоящему из собственно имени функции и списка формальных параметров.

Для описания семейства функций, реализующих аналогичные алгоритмы, можно воспользоваться шаблоном функции в соответствии со следующим синтаксисом:

template <<список формальных параметров шаблона>><возвращаемое значение><имя функции>(<список формальных параметров функции>)

{<тело функции>}

Список формальных параметров шаблона содержит формальные параметры типа, разделенные запятыми. Формальный параметр может состоять из ключевого слова class и идентификатора типа.

Пример описания шаблона

template <class T> min(T t1,T t2)

{if(t1,t2) return t1; else return t2;}

Конкретная функция генерируется из шаблона компилятором при обработке вызова функции с конкретными фактическими параметрами.

Чтобы уточнить шаблон для особых типов параметров функции, можно определить специализированные шаблонные функции. Так, в дополнение к вышеприведенному примеру:

//специализированная версия min():

char *min(char*t1,char*t2)

{if(strcmp(t1,t2)<0) return t1; else return t2;}

В функции main при первом вызове min используется ее специализированная версия, а при втором – версия, сгенерированная по шаблону для данных типа float:

void main()

{ char *p=min(“abc”,”123”);

float a=min(1.2,3.4);

}

2.Задание на лабораторную работу

 

Написать функцию-шаблон для одной из операций над одномерным массивом элементов простых типов, предусмотрев специализированную реализацию этой же операции для массива структур. Операцию над массивом выбрать в соответствии с вариантом задания.

  1. Определение количества элементов, равных первому
  2. Обмен значениями двух элементов, заданных номерами
  3. Определение номера элемента, заданного значением
  4. Обращение массива
  5. Вставка заданного элемента в заданную позицию массива
  6. Удаление элемента, заданного номером
  7. Определение размера самого длинного участка подряд следующих элементов с одинаковыми значениями
  8. Определение размера самого короткого участка подряд следующих элементов с одинаковыми значениями
  9. Замена всех элементов, имеющих заданное значение, элементами с другим заданным значением
  10. Определение количества участков подряд следующих элементов с одинаковыми значениями

 

– Конец работы –

Эта тема принадлежит разделу:

Программирование алгоритмов сортировки массивов

Государственное образовательное учреждение... Высшего профессионального образования... Санкт Петербургский государственный университет...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЛАБОРАТОРНАЯ РАБОТА N 8

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Санкт-Петербург
Составители: Т.М.Максимова   Рецензент: В.П.Попов     В методические указания включены краткие теоретические сведения, необходимые д

ОБЩИЕ ТРЕБОВАНИЯ К СОДЕРЖАНИЮ ОТЧЕТОВ
  В методические указания включены задания на 8 лабораторных работ, содержанием которых является разработка программы на языке С. Процесс разработки программы студент должен отразить

Текст программы
  void sort(int *a, char n) //функция сортировки n первых элементов (n<=100) массива a { bool f=true; //признак выполнения операции обмена char

ЛАБОРАТОРНАЯ РАБОТА N 1
Встроенные типы данных   1. Основные типы данных Язык С поддерживает несколько базовых типов данных, которые также называют простыми. Перечислим некоторые из них.

ЛАБОРАТОРНАЯ РАБОТА N 2
Программирование операций ввода-вывода   1.Некоторые библиотечные функции для работы с файлами   Функции файлового ввода-вывода используют указатель фа

ЛАБОРАТОРНАЯ РАБОТА № 3
Целочисленная арифметика   1. Введение в постановку задачи 1.1. Позиционные системы счисления При записи числа в позиционной системе счисления вклад каждой

ЛАБОРАТОРНАЯ РАБОТА № 4
Вещественная арифметика   1. Генератор псевдослучайных чисел   Для многих задач программирования, связанных с математическими моделями случайных явлени

ЛАБОРАТОРНАЯ РАБОТА № 5
Операции над многословными операндами   1. Многословные операнды   Арифметические выражения в языке C представляют собой формулы для вычисления значени

ЛАБОРАТОРНАЯ РАБОТА N 6
Работа со структурами   1 Понятие табличной структуры данных   Таблицей называется структура данных, элементы которой представляют собой записи, состоя

ЛАБОРАТОРНАЯ РАБОТА N 7
Операции над списковыми структурами   1.Принципы реализации динамических структур данных   Линейный список является примером динамической структуры дан

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
  1. Вирт Н. Алгоритмы и структуры данных. - М.: Мир,1989. - 360с. 2. Карпов Б., Баранова Т. С++: Специальный справочник. – СПб.: Питер, 2001. – 480с. 3. Кнут Д. Иск

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги