Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
DareDeviL
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
1

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

09.01.2012, 17:19. Просмотров 519. Ответов 8
Метки нет (Все метки)

Реализуйте следующие задание с использованием шаблона функции. Продемонстрируйте вызов шаблона для различных типов данных.
Работа с одномерными массивами.
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1. Произведение отрицательных элементов массива.
Задание 2: Работа с двумерными массивами.
Дана целочисленная прямоугольная матрица. Определить:
1. Произведение элементов в тех строках, которые не содержат нулевых элементов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 17:19
Ответы с готовыми решениями:

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

Функции-шаблоны
Подсчитать норму матрицы по формуле А = (сумма по i ) maxai,j ( а и житое ) ...

Шаблоны функции
Делаю задание по программированию, нужна явная специализация шаблона. Пишет...

Функции-шаблоны
как с помощью шаблон-функций подсчитать сумму элементов, расположенных на...

Шаблоны функции
Очень нужно на завтра. Есть готовая программа. Нужно просто ее оформить в виде...

8
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:27 2
Готовыми из algorithm можно пользоваться?
0
DareDeviL
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
09.01.2012, 17:29  [ТС] 3
нет нельзя(
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:41 4
Цитата Сообщение от DareDeviL Посмотреть сообщение
нет нельзя(
А, не, ошибся, accumulate в numeric же. Ну, не суть.
Цитата Сообщение от DareDeviL Посмотреть сообщение
1. Произведение отрицательных элементов массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <class Iterator, class T, class BinaryOperation>
T product(Iterator first, Iterator last, T init, BinaryOperation op)
{
    while(first != last)
        init = op(init, *first++);
    return init;
}
 
template <class T> 
T isNegative(T init, T num)
{
    return ((num < 0) ? (init * num) : (init));
}
//вызов
int arr[size];
std::cout << product(arr, arr + size, 1, isNegative<int>);
Разбил на 2 функции. Корректно работает, если в массиве точно будет отрицательный элемент. Иначе придется передавать еще переменную bool, поскольку какое бы не возвращали значение при отсутствии отрицательных элементов - все это можно будет свалить на тесте.
0
DareDeviL
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
09.01.2012, 17:47  [ТС] 5
это оба задания? можно весь код?
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:49 6
Ну а во второй можно вызвать для каждой строки нижеследующую функцию, либо проверять для каждой строки наличие нулевых элементов и в результате этого вызывать.
C++
1
2
3
4
5
6
7
8
9
10
11
template <class Iterator, class T>
T product(Iterator first, Iterator last, T init)
{
    while(first != last)
        init *= *first++;
    return init;
}
//вызов
int arr[rows][cols];
for(int i = 0; i < rows; ++i)
    std::cout << product(arr, arr + cols, 1);
Добавлено через 1 минуту
Цитата Сообщение от DareDeviL Посмотреть сообщение
можно весь код?
Там просто main дописать, не справитесь что ли?
0
DareDeviL
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
09.01.2012, 17:50  [ТС] 7
пробовал..кучу ошибок выбивает
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.01.2012, 17:53 8
Давайте код который пробовали, будем править.
0
DareDeviL
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
09.01.2012, 18:16  [ТС] 9
я уже удалил((
0
09.01.2012, 18:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 18:16

Шаблоны функции | C++
Помогите оформить каждый пункт задания в виде шаблона функции. Все необходимые...

Шаблоны, функции, etc
Софорумчане и просто зашедшие, прошу вашей помощи... Не могу разобраться как...

Шаблоны функции
Помогите решить срочняк:umnik: S=(exp(y)*exp(x))+sqrt(x)


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

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

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