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

Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: - C++

Восстановить пароль Регистрация
 
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
31.05.2013, 20:44     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #1
Надо написать обьектно-ориентованую программу с помощю шаблонов. Как ето делать? Я читаю литературу об шаблонах но не очень понял что надо, и как сделать.
Кликните здесь для просмотра всего текста
В одномерном массиве, состоящем из N целых элементов, вычислить: номер элемента массива, ближайшего к среднему арифметическому его значений;
сумму элементов массива, расположенных между первым отрицательным и вторым положительным элементами.
Преобразовать массив таким образом, чтобы в его первой половине располагались элементы, стоящие в четных позициях, а во второй половине - элементы, стоящие в нечетных позициях.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 20:44     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить:
Посмотрите здесь:

В одномерном массиве, состоящем из n целых элементов вычислить: C++
В одномерном массиве , состоящем из N целых элементов , вычислить : C++
В одномерном массиве, состоящем из целых элементов, вычислить C++
C++ В одномерном массиве, состоящем из целых элементов, вычислить
В одномерном массиве, состоящем из n целых элементов, вычислить: C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
31.05.2013, 20:47     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #2
o33ik, с помощью шаблонов-это с помощью STL?
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
31.05.2013, 20:52  [ТС]     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #3
metaluga145, скорее всего да. в условии не уточнено.

Добавлено через 3 минуты
ну, шаблонами ето с template
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
31.05.2013, 20:53     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #4
сумму элементов массива, расположенных между первым отрицательным и вторым положительным элементами.

Это уже есть на форуме, решал вчера. Ищите.
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
31.05.2013, 21:34  [ТС]     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #5
eocron, через template? меня именно шаблоны интересуют

Добавлено через 24 минуты
пример из Лафора:
Кликните здесь для просмотра всего текста
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
#include <iostream> 
 
using namespace std; 
 
//--------------------------------------------------------- 
 
template <class T>           // Шаблон функции! 
T abs(T n) 
{     
    return (n < 0) ? -n : n; 
} 
 
//--------------------------------------------------------- 
 
int main() 
{   
    int int1 = 5;   
    int int2 = -6;   
    long lon1 = 70000L;   
    long lon2 = -80000L;   
    double  dub1 = 9.95;   
    double  dub2 = -10.15;  
  // осуществления вызовов   
    cout << "\nabs(" << int1 << ")=" << abs(int1); // abs(int)   
    cout << "\nabs(" << int2 << ")=" << abs(int2); // abs(int)   
    cout << "\nabs(" << lon1 << ")=" << abs(lon1); // abs(long)   
    cout << "\nabs(" << lon2 << ")=" << abs(lon2); // abs(long)   
    cout << "\nabs(" << dub1 << ")=" << abs(dub1); // abs(double)   
    cout << "\nabs(" << dub2 << ")=" << abs(dub2); // abs(double)   
    cout << endl;   
    return 0; 
}

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

Добавлено через 6 минут
а нет, теперь понял

Добавлено через 7 минут
как понять
C++
1
<class t>
? что ето значит? почему именно класс?
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
31.05.2013, 22:09     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #6
можешь и так написать
C++
1
template <typedef T>
это говорит о том, что ты можешь передавать любой тип, для которого перегружен опреатор <...из твоего примера...)
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
31.05.2013, 22:21  [ТС]     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #7
NeonLost, перегружен в смысле етот оператор будет работать с типами файлов( < сравнивает int, float... )?

Добавлено через 6 минут
если мне для массива елементов надо сделать пару разных реализаций ф-ций(тип один, разное количество параметров) то надо делать типа так
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <class T>           // Шаблон функции! 
T abs(T n) 
{     
    return (n < 0) ? -n : n; 
}
T abs(T n, Tn2)
{
    фция 2
}
T abs(T n, T n2, T n3 )
{
   фция3
}
?
NeonLost
Пес войны
 Аватар для NeonLost
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
31.05.2013, 22:24     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #8
Цитата Сообщение от o33ik Посмотреть сообщение
перегружен в смысле етот оператор будет работать с типами файлов( < сравнивает int, float... )?
причем тут файлы вообще?

Цитата Сообщение от o33ik Посмотреть сообщение
template <class T> * * * * * // Шаблон функции!
T abs(T n)
{ * *
* * return (n < 0) ? -n : n;
}
{
* * фция 2
}
{
* *фция3
}
да, эти функции могут быть перегружены, если выполняют аналогичные действия..)
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
31.05.2013, 23:02  [ТС]     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #9
NeonLost, ой, не файлы, а просто типы. а что значит аналогичные действия? к примеру тут разные действия, но для одного типа даных. но для вызова будут разное число параметров передаваться(как я представляю). Вроде можна и зделать просто через перегрузку, но и темплейт тоже подойдет, да?
Кликните здесь для просмотра всего текста
В одномерном массиве, состоящем из N целых элементов, вычислить: номер элемента массива, ближайшего к среднему арифметическому его значений;
сумму элементов массива, расположенных между первым отрицательным и вторым положительным элементами.
Преобразовать массив таким образом, чтобы в его первой половине располагались элементы, стоящие в четных позициях, а во второй половине - элементы, стоящие в нечетных позициях.


Добавлено через 10 минут
что не так?
Кликните здесь для просмотра всего текста
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>
 
#define C 50
using namespace std;
 
template <class T>
T func(T n)
{
    return 0;
}
{
    return 0;
}
{
    return 0;
}
 
 
void main()
{
    int arr[C];
    
 
}


Добавлено через 2 минуты
NeonLost, все, я понял в чем фишка шаблонов. но я не могу понять как мне задание мое решить(

Добавлено через 6 минут
что не так?
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <time.h>
 
#define C 50
using namespace std;
 
template <class T>
T func(T n)
{
    int sum=0;
    for(int i=0; i<C; i++)
        sum = sum+n[i];
    return sum;
}
 
 
 
void main()
{
    srand((int)time);
    int arr[C];
    for (int i = 0; i < C; i++)
        arr[i] = rand()%60-30;
    cout << func(arr);
    system("pause");
}


Добавлено через 8 минут
сам розобрался

Добавлено через 6 минут
а типа так делать можно(ну както так)? если можно то как?
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <time.h>
 
#define C 50
using namespace std;
 
template <class atype>
int func(atype * arr)
{
    int sum=0;
    for(int i=0; i<C; i++)
        sum = sum+arr[i];
    return sum;
}
int func(atype * arr, atype n)
{
 
}
void main()
{
    srand((int)time);
    int arr[C];
    for (int i = 0; i < C; i++)
        arr[i] = rand()%60-30;
    cout << func(arr);
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2013, 23:18     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить:
Еще ссылки по теме:

В одномерном массиве, состоящем из n целых элементов вычислить: C++
C++ В одномерном массиве, состоящем из п целых элементов, вычислить:
В одномерном массиве, состоящем из n целых элементов, вычислить: C++

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

Или воспользуйтесь поиском по форуму:
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
31.05.2013, 23:18     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить: #10
Примерно так это можно сделать (подредактировал ваш код):
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
#include <iostream>
#include <time>
 
const std::size_t C = 50;
 
template <class atype>
atype func(atype * arr)
{
    atype sum = 0;
    for(std::size_t i = 0; i < C; ++i)
        sum += arr[i];
    return sum;
}
 
template<class atype>
atype func(atype * arr, std::size_t n)
{
    atype sum = 0;
    for(std::size_t i = 0; i < n; ++i)
        sum += arr[i];
    return sum;
}
 
 
template<class atype>
atype func2(atype * arr, std::size_t n = C)
{
    atype sum = 0;
    for(std::size_t i = 0; i < n; ++i)
        sum += arr[i];
    return sum;
}
 
 
int main()
{
    std::srand(time(0));
    int arr[C];
    for (std::size_t i = 0; i < C; i++)
        arr[i] = std::rand() % 60 - 30;
    std::cout << func<int>(arr) << std::endl;
    std::cout << func2<int>(arr) << std::endl;
    std::system("pause");
}
Перегруженную функцию func можно заменить одной функцией func2 с аргументом по умолчанию.
Yandex
Объявления
31.05.2013, 23:18     Шаблоны. В одномерном массиве, состоящем из N целых элементов, вычислить:
Ответ Создать тему
Опции темы

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