тип имя_функции (type param1, type param2)




{

// тело функции

}

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

template <class A, class B, int i> void f(){...}

 

Например, функция сортировки методом Шелла в виде шаблона может выглядеть так:

// Пример родовой функции или шаблона сортировки методом Шелла

 

#include <iostream.h>

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

const int n=10;

// Это шаблон функции сортировки методом Шелла

template <class T> void chelsort(T arr[],int col)

//сортировка методом Шелла

{int h[] = {9,5,3,1};

for(int i=0,deapazon=h[0]; i<4; deapazon=h[++i])

{ for(int i=deapazon; i < col; i++)

for(int j=i-deapazon;j>=0&&arr[j]>arr[j+deapazon]; j-=deapazon)

{ T temp = arr[j];

arr[j] = arr[j+deapazon];

arr[j+deapazon] = temp;

}

}

}

 

int main(void)

{ int arr[n], i,col=n;

float arr1[n];

randomize();

// формирование массива целых чисел

for(i=0; i<n; i++)

arr[i]= rand() % 100;

chelsort(arr,col);

for(i=0; i<n; i++)

cout<<arr[i]<<'\n';

// формирование массива вещественных чисел

for(i=0; i<n; i++)

arr1[i]= rand()/ 100.;

chelsort(arr1,col);

for(i=0; i<n; i++)

cout<<arr1[i]<<'\n';

getchar();

return 0;

}

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

 

2.5.6. Контрольные вопросы.

1.Основные правила составления функций.

2.Объяснить назначение оператора return.

3.Какие типы функций поддерживаются языком C++?

4.Место расположения функции по отношению к основной программе.

5.Какие типы формальных и фактических параметров поддерживаются языком C++?

 

 

Перечень лабораторных работ.

Лабораторные работы проводятся на ПК с использованием средств TurboС V3.0 или BuilderC++ V5.0 (или V6.0).

При подготовке к лабораторной работе необходимо ознакомиться с материалами лекций, начитанных по теме лабораторной работы, а также с предложенной литературой. Список предлагаемой литературы представлен в конце данного методического пособия.

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

Таблица 3.

  № п/п № раздела дисциплины   Наименование лабораторных работ Кол-во часов  
  1-7 Вычисление суммы бесконечного ряда с заданной точностью  
    Решение задач с использованием массивов  
    Решение задач с использованием структур  
    Решение задач с использованием функций  

 

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

Для закрепления изученного материала и самопроверки студентами полученных знаний в каждой лабораторной работе дается перечень контрольных вопросов.

Общие требования к отчетам по лабораторным работам таков: отчет должен содержать:

- титульный лист,

- название лабораторной работы,

- цель и задание,

- текст программы (или несколько текстов программ), снабженный комментариями,

- результаты работы программы.

Дополнительные требования к отчету по каждой лабораторной работе и варианты индивидуальных заданий приведены в методических указаниях по выполнению лабораторных работ по данному курсу.

 

 

Список рекомендуемой литературы.

 

Основная:

1. Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си (+СД): Учебное пособие.- Финансы и статистика, 2004.- 464с: ил.

2. Страуструп Б. / Дизайн и эволюция С++ / Москва / ДМК Пресс / 2008 – 448 с

3. Канцедал С. А. Алгоритмизация и программирование: учебное пособие / С.А. Канцедал. - М.: ИНФРА-М, 2008; М.: Форум, 2008. - 352 с.: ил. - ISBN 978-5-8199-0355-1: 157.41

4. Павловская Т. А. С++ Объектно-ориентированное программирование [Text]: практикум / Т.А. Павловская, Ю.А. Щупак. - СПб.: Питер, 2004. - 265 с.: ил. - ISBN 5-94723-842-х: 115.00

5. Павловская, Т. А. С/С++ Структурное программирование [Text]: практикум / Т.А.Павловская, Ю.А.Щупак. - СПб.: Питер, 2007

6. Колдаев В. Д. Основы алгоритмизации и программирования [Text]: учебное пособие / В.Д.Колдаев; Под. ред. проф. Л.Г.Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2009. - 416 с.: ил. - ISBN 978-5-16-002690-9: 116.05

 

Дополнительная:

1. Боровский А.Н. Borland C++ Builder. Самоучитель. – СПб: «Питер», 2005г., 256с, ил.

2. Скляров В.А. Программирование на языках Си и Си++. Практ. пособие

3. Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. – М: Финансы и статистика, 2004, - 320с: ил.

4. Шамис В.А. Borland C++ Builder 6. Для профессионалов. – СПб: «Питер», 2005г., 798с, ил.

5. Пантелеев А. В. Методы оптимизации в примерах и задачах [Text]: учебное пособие / А.В. Пантелеев, Т.А. Летова. - 3-е изд., стер. - М.: Высшая школа, 2008. - 544 с.: ил. - ISBN 978-5-06-004137-8: 633.93

6. Бритик В.И., Козырь О.Ф. Программирование и основы алгоритмизации. Основы программирования. Основы программирования и алгоритмизации. Методические указания к выполнению домашних и курсовых работ (очная, очно-заочная и заочная формы обучения) - Старый Оскол: Изд-во СОФ МИСиС, 2008 – 60 с.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: