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

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

Войти
Регистрация
Восстановить пароль
 
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
#1

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

31.05.2013, 20:44. Просмотров 390. Ответов 9
Метки нет (Все метки)

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

В одномерном массиве, состоящем из n целых элементов, вычислить: - C++
Срочно помогите, пожалуйста, решить задачу! В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение...

В одномерном массиве, состоящем из целых элементов, вычислить - C++
c# В одномерном массиве, состоящем из целых элементов, вычислить: А) количество элементов массива, не больших заданного элемента С,...

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

В одномерном массиве, состоящем из целых элементов, вычислить - C++
В одномерном массиве, состоящем из целых элементов, вычислить: А) количество элементов массива, не больших заданного элемента С,...

В одномерном массиве, состоящем из n целых элементов, вычислить: - C++
1.) минимальный по модулю элемент массива; 2.) сумму модулей элементов массива, расположенных после первого элемента, равного...

В одномерном массиве, состоящем из п целых элементов, вычислить: - C++
Помогите пожалуйста: В одномерном массиве, состоящем из п целых элементов, вычислить: 1. произведение элементов массива с четными...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Кактус
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
Пес войны
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
Пес войны
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++
Есть проблемка. От меня требуется сделать два примера, но увы, с головным мозгом у меня видимо какие-то проблемы. После 4 часов работы и...

В одномерном массиве , состоящем из N целых элементов , вычислить : - C++
В одномерном массиве , состоящем из N целых элементов , вычислить : 1. минимальный по модулю элемент массива ; 2....

Вычислить произведение в одномерном массиве , состоящем из 8 целых элементов. - C++
Помогите сделать через stdio.h conio.h №1 Вычислить произведение в одномерном массиве , состоящем из 8 целых элементов. №2 Написать...

Шаблоны функций. В одномерном массиве, состоящем из n вещественных элементов, вычислить номер максимального по модулю элемента массива - C++
Задание 1: Работа с одномерными массивами. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Номер...

В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива - C++
В одномерном массиве, состоящем из N целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов...


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

Или воспользуйтесь поиском по форуму:
Гром
209 / 128 / 11
Регистрация: 20.03.2009
Сообщений: 1,101
Записей в блоге: 16
Завершенные тесты: 1
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 целых элементов, вычислить:
Ответ Создать тему
Опции темы

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