Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2013, 19:05   #1
Даша1046
Пользователь
 
Регистрация: 15.01.2013
Сообщений: 15
По умолчанию Проблема с шаблонами. Программа не компилирует.

Код:
#include<conio.h>
#include<iostream>
#include<stdio.h>
#include<fstream>
using namespace std;

template<class T> void nul(T vec, const int size);
template<class T1> void sum_after_min(T1 vec,const int size);
template<class T2> void sort(T2 vec,const int size);
int main() {
	const int N=5;
	setlocale(LC_ALL,"Russian");
    int vec[N];
  for(int i = 0; i <N; i++)
   {
           cout<<"a["<<i<<"]=";cin>>vec[i] ;     
}
    nul(vec,N);
    sum_after_min(vec,N);
    sort(vec,N);
    getch();
}
 
template<class T> void f(T vec[]) 
{
     T count = 0;
     for(int i=0; i<size; i++) {
             if(vec[i] == 0) count++;
     }
     cout << endl << "Количество элементов, равных 0 " << count << endl;
}
 
template<class T1> void l(T1 vec[]) {
     T1 minIndex = 0, int min = vec[0],int  sum = 0;
     for(int i=0; i<size; i++) {
             if(vec[i] < min) {
                     int  min = vec[i];
                       minIndex = i;
             }
     }
     for(int i=minIndex+1; i<size; i++) {
             sum += vec[i];
     }
     cout << endl << "Сумма после минимального элемента = " << sum << endl;
}
 
template<class T2> void m(T2 vec[]) 
{
     T2 temp = 0;
     for(int i=0; i<size; i++) {
             vec[i] = abs(vec[i]);
     }
     for(int i=0; i<size-1; i++) {
             for(int j=0; j<size-1; j++) {
                     if(vec[j+1] < vec[j]) {
                                int temp = vec[j+1]; 
                               int  vec[j+1] = vec[j];
                               int  vec[j] = temp;                                
                     }
             }
     }
     cout << endl << "Сортировка модулей элементов по возрастанию:" << endl;
     for(int i=0; i<size; i++) {
             cout << vec[i] << "   ";
     }
	 getch();}
Помогите пожалуйста, программа не компилирует, выдает ошибку, что 3 неразрешенных элемента. Возможно проблема в том, что внутри программы классы задала через f,l,m, но если делать без этого, а используя название функции внутри программы выдается другая ошибка - отсутствует спецификатор типа int.

Последний раз редактировалось Stilet; 03.07.2013 в 20:25.
Даша1046 вне форума Ответить с цитированием
Старый 03.07.2013, 19:28   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код:
#include<conio.h>
#include<iostream>
#include<stdio.h>
#include<fstream>
using namespace std;

template<class T>
void nul(T vec[], const int size)
{
  T count = 0;
  for(int i=0; i<size; i++) {
    if(vec[i] == 0) count++;
  }
  cout << endl << "Количество элементов, равных 0 " << count << endl;
}

template<class T1>
void sum_after_min(T1 vec[],const int size) {
  T1 minIndex = 0;
  int min = vec[0];
  int sum = 0;
  for(int i=0; i<size; i++) {
    if(vec[i] < min) {
      int min = vec[i];
      minIndex = i;
      }
  }
  for(int i=minIndex+1; i<size; i++) {
          sum += vec[i];
  }
  cout << endl << "Сумма после минимального элемента = " << sum << endl;
}

template<class T2>
void sort(T2 vec[],const int size)
{
  T2 temp = 0;
  for(int i=0; i<size; i++) {
    vec[i] = abs(vec[i]);
  }
    for(int i=0; i<size-1; i++) {
      for(int j=0; j<size-1; j++) {
        if(vec[j+1] < vec[j]) {
          int temp = vec[j+1];
          vec[j+1] = vec[j];
          vec[j] = temp;
        }
      }
    }
    cout << endl << "Сортировка модулей элементов по возрастанию:" << endl;
    for(int i=0; i<size; i++) {
            cout << vec[i] << " ";
    }
  getch();
}

int main() {
  const int N=5;
  setlocale(LC_ALL,"Russian");
  int vec[N];
  for(int i = 0; i <N; i++)
  {
  cout<<"a["<<i<<"]=";cin>>vec[i] ;
  }
  nul(vec,N);
  sum_after_min(vec,N);
  sort(vec,N);
  getch();
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 03.07.2013, 19:53   #3
Даша1046
Пользователь
 
Регистрация: 15.01.2013
Сообщений: 15
По умолчанию

Спасибо большое!
Даша1046 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с шаблонами в Word 2010 0tshelnik Microsoft Office Word 2 15.06.2012 22:52
c++ проблема с шаблонами world12_tk Помощь студентам 1 14.11.2011 22:58
VC++ 2010, проблема с линковой и шаблонами AJlekceu Visual C++ 2 02.10.2011 09:08
Проблемы с шаблонами Syuf Общие вопросы C/C++ 8 11.09.2011 22:32
Работа с шаблонами Viteef PHP 3 30.07.2007 03:39