Примеры написания программ

Порядок написания программы

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

Цель работы

1. Научиться:

–писать шаблоны функций;

– правильно размещать текст программы в файлах проекта;

– знать особенности составления проекта при использовании шаблонов;

–вызывать функцию пользователя из функции main;

2. Составить, выполнить и протестировать указанную задачу с помощью компьютера.

 

Выполняем задание с использованием готового текста проекта по теме «Функции и матрицы».

 

1. Внимательно прочитать условие задачи и формулировку функций.

2. Для каждой функции:

Понять, какое данное мы хотим обобщить;

Меняем конкретный тип на параметризованный;

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

Замечание. В функции можно, при необходимости, вводить несколько параметризованных типов.

3. Правильно оформить тексты функций пользователя.

4. Правильно оформить прототипы функций.

5. Написать функцию main с вызовом функций пользователя для матриц целого и вещественного типа (убедиться в правильности работы шаблона).

6. Создать проект, учитывая его особенности с использованием шаблонов. Выполнить проект.

 

Примечание. Вызов функции Rus перед строками-константами с русским текстом осуществляйте самостоятельно.

 

Задача.Написать функцию-шаблон для вывода двумерного массива на экран.

 

Функция должна выводить двумерный массив любого типа, следовательно, параметризованный тип выражает тип массива

 

Программа будет строиться в виде проекта.

 

Текст заголовочного файла shablon.h будет выглядеть так:

 

#ifndef SHABLON_H

#define SHABLON_H

 

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include <iomanip>

 

template <class T> //пишем у каждой параметризованной функции

void OutMas(T*p,int n,int m) {

int i,j;

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

for (j=0; j<m;j++) {

cout << setw(5) << *(p+i*m+j);

}

cout << endl;

}

return;

}

 

#endif

 

Текст функции mainбудет выглядеть так:

 

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include "shablon.h"

 

int main (void)

{

int A[2][3]= {1,2,3,4,5,6};

double B[3][3] = {1.5,2.6,3.7,4.8};

cout << "\n Целый массив:\n";

OutMas(A[0],2,3);

cout << "\n Дробный массив:\n";

OutMas(B[0],3,3);

return 0;

}

 

 

Контрольные вопросы и задания

 

1. Что такое шаблон функции?

2. Как определить, какое данное должно выражаться параметризованным типом?

3. Сколько параметризованных типов может быть у шаблона функции?

4. Может ли объявление параметризованного типа быть в теле функции?

5. Как в таком случае вызывается функция?

6. Как компилятор обрабатывает шаблон функции?

7. Как размещаются шаблоны функций в файлах проекта?

Задание

 

Взять за основу проект по теме «Функции и матрицы». Каждую функцию превратить в шаблон, построить проект и выполнить его для целого и вещественного типа.