Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
1

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

16.01.2013, 22:19. Просмотров 596. Ответов 17
Метки нет (Все метки)

Написала прогу на шаблоны функций. не могу понять где ошибка
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
// функции.cpp: определяет точку входа для консольного приложения.
//
 
 
 
#include "stdafx.h"
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
using namespace std;
template <typename T> int function(big <T> &mat)
{ char ind = 0;
    int  m[100][100];
    bool first = false;
    for (i = 0; i < n; i++)
    {
        first=1;
        j=0;
        while(j<k)
        {
            if(m[j][i]<0)
            {
                first=0;
                break;
            }
            j++;
        }
        if(first==1)
        {
            ind=i+1;
            break;
        
 
 
 
 
int  main()
{
int n, k;
int  ind = 0;
 
int _getch();
    setlocale (LC_ALL,"russian");
    int i, j;
    int m[100][100];
    cout << "Введите кол-во строк матрицы M (<100): ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы M (<100): ";
    cin >> k;
    cout << "Введите матрицу: " << "\n";
    for (i = 0; i < n; i++)
        for (j = 0; j < k; j++)
            cin >> m[i][j];  _getch(); 
    int ans=function(big);
 
    if (first)
    {
        cout << "Столбец без отриц. элементов (индекс столбца): " << ind;
        first = false;
    
 
    _getch();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 22:19
Ответы с готовыми решениями:

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

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

Шаблоны функций
не совсем понимаю, как работают шаблоны функций , в учебнике только дан пример...

Шаблоны функций
Всем доброго времени суток. Встала такая проблема: //.h template &lt;class T&gt; T...

шаблоны функций
Помогите пожалуйста с задачей: Разработайте программу, в которой реализовано...

17
zss
Модератор
Эксперт С++
7481 / 6850 / 4324
Регистрация: 18.12.2011
Сообщений: 18,119
Завершенные тесты: 1
16.01.2013, 22:31 2
Оъявление шаблонной функии:
C++
1
template <typename T> int function(T &mat);
0
rangerx
1944 / 1553 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
16.01.2013, 22:46 3
Яночка_лисичка, выложите само задание...
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 22:55  [ТС] 4
Цитата Сообщение от rangerx Посмотреть сообщение
Яночка_лисичка, выложите само задание...
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке.
Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.Написать программу используя шаблоны функций
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
16.01.2013, 23:05 5
i-необъявленная переменная

Добавлено через 25 секунд
В функции, вот и ошибка.
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 23:06  [ТС] 6
Цитата Сообщение от Wolkodav Посмотреть сообщение
i-необъявленная переменная

Добавлено через 25 секунд
В функции, вот и ошибка.
Переделайте пожалуйста я замучилась уже с этой задачей
0
grindaah
20 / 20 / 3
Регистрация: 25.05.2011
Сообщений: 62
16.01.2013, 23:08 7
1. ZSS правильно указал на ошибку в объявлении функции.
2. Вы "откусили" часть функции при копировании-вставке.
3. Ф-ция объявлена как шаблонная, но ничего шаблонного в ней не происходит - тип T должен где-то использоваться
4. for (int i = 0; i < n; i++)
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
16.01.2013, 23:10 8
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
#include "stdafx.h"
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
using namespace std;
template <typename T> int function(big <T> &mat)
{ char ind = 0;
    int  m[100][100];
    bool first = false;
    for (int i = 0; i < n; i++)
    {
        first=1;
        j=0;
        while(j<k)
        {
            if(m[j][i]<0)
            {
                first=0;
                break;
            }
            j++;
        }
        if(first==1)
        {
            ind=i+1;
            break;
        }
    }
}
 
 
 
int  main()
{
int n, k;
int  ind = 0;
 
int _getch();//
    setlocale (LC_ALL,"russian");
    int m[100][100];
    cout << "Введите кол-во строк матрицы M (<100): ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы M (<100): ";
    cin >> k;
    cout << "Введите матрицу: " << "\n";
    for (int i = 0; i < n; i++)
        for (int j = 0; j < k; j++)
            cin >> m[i][j];  _getch(); 
    int ans=function(big);
 
    if (first)
    {
        cout << "Столбец без отриц. элементов (индекс столбца): " << ind;
        first = false;
    
    }
    _getch();
}
Добавлено через 23 секунды
40 строка, что это такое?
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 23:14  [ТС] 9
Цитата Сообщение от Wolkodav Посмотреть сообщение
[CPP]

40 строка, что это такое?
объявление функции _getch() . без объявления не работала. эта функция ожидает нажатия от пользователя какой-либо клавиши
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
16.01.2013, 23:17 10
Ну ладно. Если честно может Ms VS меня развратила, но я такого не слышал.
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 23:24  [ТС] 11
Цитата Сообщение от Wolkodav Посмотреть сообщение
Ну ладно. Если честно может Ms VS меня развратила, но я такого не слышал.
наподобие ретурна она

Добавлено через 4 минуты
[QUOTE=Wolkodav;4012999][CPP]

Спасибо за помощь, но ваша прога у меня почему-то не работает
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
16.01.2013, 23:53 12
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <locale>
 
using namespace std;
template <typename T>
int function(big <T> &mat)
{ char ind = 0;
    int  m[100][100];
    bool first = false;
    for (int i = 0; i < n; i++)
    {
        first=1;
        j=0;
        while(j<k)
        {
            if(m[j][i]<0)
            {
                first=0;
                break;
            }
            j++;
        }
        if(first==1)
        {
            ind=i+1;
            break;
        }
    }
}
 
 
 
int  main()
{
    int n, k;
    int  ind = 0;
    setlocale (LC_ALL,"Russian");
    int m[100][100];
    cout << "Введите кол-во строк матрицы M (<100): ";
    cin >> n;
    cout << "Введите кол-во столбцов матрицы M (<100): ";
    cin >> k;
    cout << "Введите матрицу: " << "\n";
    for (int i = 0; i < n; i++)
        for (int j = 0; j < k; j++)
            cin >> m[i][j];  _getch(); 
    int ans=function(big);
    if (first)
    {
        cout << "Столбец без отриц. элементов (индекс столбца): " << ind;
        first = false;
    
    }
    _getch();
}
Единственное он не знает у stdafx.h и тип big, а так всё хорошо.

Добавлено через 2 минуты
Хотя мне кажется если он найдёт big, и библиотеку, то всё-равно не заработает.

Добавлено через 42 секунды
Да тут точно не заработает.
1
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 23:57  [ТС] 13
[QUOTE=Wolkodav;4013168][CPP]
биг это функция которая столбец ищет мы ее фаблоном в темплет описываем
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
16.01.2013, 23:58 14
Короче вот функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template<typename T>
int function(T** a,int n,int m)
{
bool flag=true;
int index;
for (int i=0;j<m;i++)
{
if (!flag)
break;
for (int j=0;i<n;j++)
if (a[i][j]<0)
continue;
else
{
index=j;
break;
flag=false;
}
}
return index;
}
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
16.01.2013, 23:59  [ТС] 15
Цитата Сообщение от Wolkodav Посмотреть сообщение
Короче вот функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<typename T>
int function(T* a,int n,int m)
{
int index;
for (int i=0;j<m;i++)
for (int j=0;i<n;j++)
if (a[i][j]<0)
continue;
else
{
index=j;
break;
}
return index;
}
Оформите ее в проге пожалуйста
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
17.01.2013, 00:01 16
Вот так вот. В данном случае у нас будет данная функция будет работать для любого объекта, для которого перегружен оператор "<"
0
Яночка_лисичка
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
17.01.2013, 00:05  [ТС] 17
Цитата Сообщение от Wolkodav Посмотреть сообщение
Вот так вот. В данном случае у нас будет данная функция будет работать для любого объекта, для которого перегружен оператор "<"
А что делать с этой вещью
C++
1
2
3
4
5
6
7
8
9
int ans=function(function);
    if (first)
    {
        cout << "Столбец без отриц. элементов (индекс столбца): " << ind;
        first = false;
    
    }
    _getch();
}
0
Wolkodav
610 / 463 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
17.01.2013, 00:09 18
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
#include <iostream>
#include <locale>
using namespace std;
 
template<typename T>
int function(T* a,int n,int m)
{
int index;
bool flag=true;
for (int i=0;j<m;i++)
{
if (!flag)
break;
for (int j=0;i<n;j++)
if (a[i][j]<0)
continue;
else
{
index=j;
break;
}
}
return index;
}
 
void main()
{
setlocale(LC_ALL,"Russian");
int m,n;
cout<<"Введите размеры матрица:";
cin>>n>>m;
cout<<endl;
int** A=new int*[n];
for (int i=0;i<n;i++)
A[i]=new int [m];
cout<<"Ввод матрици:"<<endl;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
{
cout<<"A"<i<<" "<<j<<":";
cin>>A[i][j];
cout<<endl;
}
int index=function(A,n,m);
cout<<"Искомый столбец:"<<index<<endl;
 
return;
}
Добавлено через 2 минуты
Вот так вот.
1
17.01.2013, 00:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 00:09

Шаблоны функций
Пытаюсь разобраться в шаблонах функций. Написал такой код, не работает: ...

Шаблоны функций
Добрый вечер! У меня возникли трудности с шаблонами функций. Вот код с...

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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