Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
#1

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

20.08.2009, 14:36. Просмотров 1551. Ответов 4
Метки нет (Все метки)

тема: Шаблони функції

Помогите написпть код програми на Turbo C++


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

функції у вигляді параметра на етапі компіляції. Компілятор автоматично генерує правильний код, що відповідає переданому типу. Таким чином, створюється функція, що автоматично перевантажує сама себе І при цьому не містить накладних витрат, зв'язаних з параметризацією.
Шаблон функції визначається в такий спосіб:
template <classType> заголовок {
/* тіло функції */}
Замість слова Туре може використовуватися довільне ім'я. Ідентифікатор Туре, що задає так званий параметризований тип, може використовуватися як в іншій частині заголовка, так і в тілі функції. Параметризований тип — це усього лише фіктивне ім'я, яке компілятор автоматично замінить ім'ям реального типу даних при створенні конкретної версії функції. У загальному випадку шаблон функції може містити декілька параметризованих типів <class Туре1, class Туре2, class Туре3,... >.
Процес створення конкретної версії функції називається інстащіюванням шаблона або створенням екземпляра функції. Можливі два способи інстанціювання шаблона: а) явний, коли оголошується заголовок функції, у якому всі параметризовані типи замінені на конкретні типи, відомі в цей момент у програмі, б) неявний, коли створення екземпляра функції відбувається автоматично, якщо зустрічається фактичний виклик функції.
Індивідуальні завдання
Створити шаблони функцій сортування одномірних масивів різними методами (на основі Лабораторної роботи №16). Викликати шаблони функцій сортування для масивів цілочисельного та дійсного типу

Код лаби № 16

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream.h>
#include<conio.h>
int main(){
const int n=3,m=3;
int i,j,count=0;
float matr[n][m]={1, 0, 1, 0, 1, 0, 1, 0, 1};
float mid=0;
for(i=0;i<n;++i,cout<<'\n')
for(j=0;j<m;++j){
mid+=matr[i][j];
cout<<matr[i][j]<<' ';}
mid/=(n * m);
for(i=0;i<n;++i)
for(j=0;j<m;++j)
if(!matr[i][j]){
count++;
matr[i][j]=mid;}
cout<<"\nRezyl'tat:\n";
for(i=0;i<n;++i, cout<<'\n')
for(j=0;j<m;++j)
cout<<matr[i][j]<<' ';
cout<<"\nKolicgestvo nylei:\n"<<count;
getch();
return 0;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2009, 14:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шаблоны функций (C++):

Шаблоны функций - C++
Используя шаблоны функций, определите есть ли в данном двумерном массиве число A среди элементов массива. Код программы есть, но он без...

Шаблоны функций в с++ - C++
Подскажите, почему появляется сообщение об ошибке? как исправить? #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; //#include &lt;ctime&gt; ...

Шаблоны функций c++ - C++
Хэллоу фрэндс! Столкнулся с проблеммой в решении упражнения. Вот условие: Создайте шаблонную функцию maxn(), которая принимает в...

шаблоны функций на С++ - C++
помогите с задачей условие таково. Дан одна мерный массив состоящий из целых чисел нужно найти произвидение всех отрицательных элементов и...

Шаблоны функций - C++
Надо в этом задании добавить &quot;шаблоны ф-ций&quot;, помогите пжл Задачи надо переписывать в текст сообщения!!! Одно сообщение - одна...

Шаблоны функций - C++
Добрый вечер! less.h #pragma once #include &quot;StdAfx.h&quot; //preconditions: //defined operator&lt; template &lt;typename elemType&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
FilipFray
2666 / 654 / 45
Регистрация: 13.01.2009
Сообщений: 2,159
20.08.2009, 17:51 #2
Перевод на русс. яз.
тема: шаблоны функции

Помогите написать код программы на Turbo C++

Теоретические сведения:
с помощью шаблона функции можно определить алгоритм, который будет применятся к данным различных типов, а конкретный тип данных передается функции в виде параметра на этапе компиляции. Компилятор автоматически генерирует правильный код, что соответствует передаваемому типу. Таким способом, создается функция, которая автоматически перегружает сама себя и при этом не содержит накладных расходов, связанных параметризацией.
Шаблоны ф-ции определяются таким способом:
template <classType> заголовок {
/* тело ф-ции */}
Вместо слова Type может использоваться произвольное имя. Идентификатор Type, который задает так называемый параметризованный тип, может использоваться как в другой части заголовка, так и в теле ф-ции. Параметризованный тип – это всего лишь фиктивное имя, которое компилятор автоматически заменит именем реального типа данных при создании конкретной версии ф-ции. В общем случае шаблон ф-ции может содержать несколько параметризованных типов <class Туре1, class Туре2, class Туре3,... >. Процесс создания конкретной версии ф-ции называется инстанцированием шаблона или созданием экземпляра ф-ции. Возможны два способа инстанцирования шаблона:
a) Явный, когда объявляется заголовок ф-ции, в котором все параметризуемые типы заменены на конкретные типы, известные в этот момент в программе
b) Неявный, когда создание экземпляра ф-ции происходит автоматически, когда встречается фактический вызов ф-ции.
Индивидуальные задания
Создать шаблон ф-ций сортирование одномерных массивов различными методами (на основе Лабораторной работы №16). Вызвать шаблоны ф-ций сортирования для массивов целочисленного и действительного метода.

Код лаби № 16

Код C++

#include<iostream.h>
#include<conio.h>
int main(){
const int n=3,m=3;
int i,j,count=0;
float matr[n][m]={1, 0, 1, 0, 1, 0, 1, 0, 1};
float mid=0;
for(i=0;i<n;++i,cout<<'\n')
for(j=0;j<m;++j){
mid+=matr[i][j];
cout<<matr[i][j]<<' ';}
mid/=(n * m);
for(i=0;i<n;++i)
for(j=0;j<m;++j)
if(!matr[i][j]){
count++;
matr[i][j]=mid;}
cout<<"\nRezyl'tat:\n";
for(i=0;i<n;++i, cout<<'\n')
for(j=0;j<m;++j)
cout<<matr[i][j]<<' ';
cout<<"\nKolicgestvo nylei:\n"<<count;
getch();
return 0;}
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
20.08.2009, 18:04 #3
Цитата Сообщение от gusca Посмотреть сообщение
тема: Шаблони функції

Помогите написпть код програми на Turbo C++
"помогите" не означає "напишiть за мене". ви пояснiть, що саме вам допомогти, тодi можна подивитись.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
20.08.2009, 18:27 #4
gusca, у тебя со зрением плохо???
Алгоритмы сортировок там есть
шаблони функцій сортування одномірних масивів різними методами
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.08.2009, 19:09 #5
В соответствии с правилами форума официальный язык - русский.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2009, 19:09
Привет! Вот еще темы с ответами:

Шаблоны функций - C++
Добрый вечер! У меня возникли трудности с шаблонами функций. Вот код с шаблоном template &lt;class type,class ttype&gt; ttype...

Шаблоны функций C++ - C++
Привет ребят. Мб кто подскажет, у меня последняя часть кода &quot;максимальное из чисел, встречающихся в заданной матрице более одного раза&quot;...

Шаблоны функций - C++
Пытаюсь разобраться в шаблонах функций. Написал такой код, не работает: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace...

Шаблоны функций - C++
Написала прогу на шаблоны функций. не могу понять где ошибка // функции.cpp: определяет точку входа для консольного приложения. // ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.08.2009, 19:09
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru