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

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

Восстановить пароль Регистрация
 
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
20.08.2009, 13:37     Шаблоны функций #1
Rififi, привет какой у тебя емеил

Добавлено через 58 минут 9 секунд

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

Помогите написпть код програми на 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, 13:37     Шаблоны функций
Посмотрите здесь:

C++ Шаблоны функций
Шаблоны функций C++
C++ Шаблоны функций
C++ Шаблоны функций c++
C++ Шаблоны функций.
Шаблоны функций C++
C++ Шаблоны функций
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
20.08.2009, 16:20     Шаблоны функций #2
Цитата Сообщение от gusca Посмотреть сообщение
Створити шаблони функцій сортування одномірних масивів різними методами (на основі Лабораторної роботи №16). Викликати шаблони функцій сортування для масивів цілочисельного та дійсного типу
Алгоритмы сортировок
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
21.08.2009, 21:43  [ТС]     Шаблоны функций #3
Цитата Сообщение от kazak Посмотреть сообщение
Вторая задача
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
   int const sz = 10;
   int arr[sz][sz];
   int sum = 0;
   srand(time(NULL));
 
   for (int i = 0; i < sz; i++)
   {
      for (int j = 0; j < sz; j++)
      {
         arr[i][j] = rand() % 10 - 1;
      }
   }
 
   for (int i = 0; i < sz; i++)
   {
      for (int j = 0; j < sz; j++)
      {
         if (arr[j][i] < 0)
         {
            sum = 0;
            break;
         }
         sum += arr[j][i];
      }
      if (sum != 0)
         cout << "Stolbets " << i << " ne soderjit otritsatiel'nyh elementov, summa ravna " << sum << endl;
      sum = 0;
   }
   system("pause");
   return 0;
}

зайди в аську


Добавлено через 1 час 2 минуты 38 секунд
ISergey, Зайди в аську

Добавлено через 23 часа 49 минут 12 секунд
pfqM128K145, зайди в маил агент
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
24.08.2009, 11:34  [ТС]     Шаблоны функций #4
M128K145, Прива помои мне две лабы зделать завтра мен на екзамен, плиз

Добавлено через 2 минуты
Цитата Сообщение от gusca Посмотреть сообщение
M128K145, Прива помои мне две лабы зделать завтра мен на екзамен, плиз
А лучше зайди на mail.ru!!!!!!!!
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.08.2009, 11:40     Шаблоны функций #5
пиши сюда
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.08.2009, 13:26     Шаблоны функций #6
16 + 13
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <math.h>
using namespace std;
float Mult(float *n, int m)
{
    int max(0), i;
    float mult(1);
    for(i = 0; i < m; ++i)
        if(abs(n[i]) > abs(n[max]))
            max = i;
 
    if(max = m - 1)
        return 0;
    for(i = max + 1; i < m; ++i)
        mult *= n[i];
    return mult;
}
int Count(float *n, int m, float c)
{
    int count(0); 
    for(int i = 0; i < m; ++i)
        if(n[i] > c)
            count++;
    return count;
}
int Sum(int **matr, int n, int m)
{
    int i, j;
    int sum(0);
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            if(matr[i][j]%2 == 0)
                sum += matr[i][j];
    return sum;
}
int Count(int **matr, int n, int m)
{
    int i, j;
    int count(0);
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            if(matr[i][j]%2 == 0 && matr[i][j] != 0)
                count++;
    return count;
}
int main()
{
    int n, m, k, i,j,count=0;
    float c;
    cout<<"Vvedite n ", cin>>n;
    cout<<"Vvedite m ", cin>>m;
    int **matr = new int*[n];
    for(i = 0; i < n; ++i)
        matr[i] = new int[m];
 
    cout<<"Vvedite matricy:\n";
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            cin>>matr[i][j];
 
    cout<<"Vvedite k:\n", cin>>k;
    float *mas = new float[k];
 
    cout<<"Vvedite massiv:\n";
    for(i = 0; i < k; ++i)
        cin>>mas[i];
 
    cout<<"Vvedite c:\n", cin>>c;
 
    cout<<"Matrica\n";
    for(i=0;i<n;++i,cout<<'\n')
        for(j=0;j<m;++j)
            cout<<matr[i][j]<<' ';
 
    cout<<"Massiv:\n";
    for(i = 0; i < k; ++i)
        cout<<mas[i]<<' ';
 
    cout<<"\nKolicgestvo parnuh el:\n"<<Count(matr, n, m);
    cout<<"\nSumma:\n"<<Sum(matr, n, m);
    for(i = 0; i < n; ++i)
        delete []matr[i];
    delete []matr; 
 
    cout<<"\nkilkist elem. mas., cho bilshi "<<c<<" : \n"<<Count(mas, k, c)<<endl;
    cout<<"Proizv elementiv masivu, cho roztachovani pisl. max. elem.: "<<Mult(mas, k)<<endl;
    delete []mas;
 
    cin.get();
    cin.get();
    return 0;
}


Добавлено через 1 минуту
Цитата Сообщение от gusca Посмотреть сообщение
я просто тот код каторый ты мне даёш я ево выравниваю под свою среду где я работаю!!!!!!
ты хочеш сказать, что в Turbo C++ не работает кнопка Tab??? НЕ ВЕРЮ
Monte-Cristo
24.08.2009, 13:31     Шаблоны функций
  #7

Не по теме:

M128K145, поставь в опциях редактора замену Tab на пробелы (например у меня стоит на 4 пробела). Это сделает форматирование более универсальным.

Yandex
Объявления
24.08.2009, 13:31     Шаблоны функций
Закрытая тема Создать тему
Опции темы

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