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

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

Войти
Регистрация
Восстановить пароль
 
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
#1

Программа на C++ с использованием шаблона функции. - C++

23.03.2011, 17:57. Просмотров 748. Ответов 10
Метки нет (Все метки)

Нужно написать программу которая считает сумму элементов главной диагонали матрицы. Для подсчета использовать шаблон функции. помогите пожалуйста кому не сложно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2011, 17:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа на C++ с использованием шаблона функции. (C++):

Программа в виде шаблона функции - C++
помогите оформить программу в виде шаблона функции, пожалуйста! #include <iostream> using namespace std; int main() { ...

Программа с использованием функции и указателя - C++
Разработать функцию, осуществляющую подсчет нечетных и произведение положительных элементов одномерного массива. Обязательно использовать...

Программа с использованием дружественной функции и классов - C++
Я в С++ новичок. Нужна программа с использованием дружественной функции и классов. Можете привести пожалуйста пару примеров? Заранее...

Программа для вычисления суммы и произведения элементов массива с использованием функции - C++
Программа для вычисления суммы и произведения элементов массива с использованием функции.Рассмотреть возможность образения к этим функциям...

Программа с использованием функции. По заданной квадратной матрицей розмиолм 10х10 построить вектор длиной 19 - C++
По заданной квадратной матрицей розмиолм 10х10 построить вектор длиной 19, элементы которого максимумы элементов диагоналей равнобежных...

Программа должна вычислять значение функции exp(x) действительного аргумента x с точностью ε с использованием рекурсии. - C++
Построить рекурсивный алгоритм, записать алгоритм в виде блок-схемы и на алгоритмическом языке. Программа должна вычислять значение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
23.03.2011, 18:14 #2
sheill, Создание шаблона функции
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
23.03.2011, 18:39  [ТС] #3
я с шаблоном вроде разобрался, сделал заполнение матрицы, но дальше ничего не могу сообразить соединить все воедино.(((
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
23.03.2011, 18:42 #4
sheill, Почитай про функции, многое проясниться.
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
23.03.2011, 18:52  [ТС] #5
Спасибо!)
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 18:54 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <stdlib.h>
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
T sumDiagonalMatrix(T (&m)[n1][n2])
{
    if(n1 != n2)
    {
        std::cout << "Матрица не квадратная!"; 
        return 0;
    }
    
    T sumDM = 0;
    for(unsigned int i = 0; i < n1; i++)
    {
        sumDM += m[i][i];
    }
    return sumDM;
}
 
//-----------------------------------------------------------
int main(int argc, char *argv[])
{
    const unsigned int N = 3;
    const unsigned int M = 3;
    if(N != M)
    {
        std::cout << "Матрица не квадратная!";
        return 0;
    }
    
    int x[N][M];
 
    //Инициализация случайными числами  и вывод на консоль
    for(unsigned int i = 0; i < N; i++)
    {
        for(unsigned int j = 0; j < M; j++)
        {
            x[i][j] = rand() % 10;
            std::cout <<"x["<<i<<"]"<<"["<<j<<"] = " << x[i][j] << "\n";
        }
    }
 
    std::cout << sumDiagonalMatrix(x);
 
    return 0;
}
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
23.03.2011, 19:17  [ТС] #7
Большое спасибо!)))
Alex1234,

Добавлено через 18 минут
Alex1234, А посмотри вот эту задачу, я смысл не пойму может подскажешь? Создать класс "арифметическое выражение" с компонентными данными: 1-й аргумент, 2-й аргумент, знак арифметического выражения( перечислимого типа "+", "-", "*","/"). Определить компонентные функции: получение каждого элемента класса по отдельности, изменение значения операндов, вычисление значения выражения, вывод на экран в формате "арг1 операция арг2=результат".
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 19:46 #8
К сожалению, ничего не пойму, щас времени нет потом попробую разобраться.
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
23.03.2011, 20:01  [ТС] #9
Alex1234, Спасибо!)))
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
23.03.2011, 20:44 #10
sheill, Обычный калькулятор...
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
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
 
template<class T>
class Expr
{
public:
   enum opers {plus='+', sub='-', mul='*', div='/', none};
   Expr(const T& arg1_=T(), const T& arg2_=T(), const opers& op=none):
      arg1(arg1_), arg2(arg2_), oper(op)
   {
   }
   void setFirstArg(const T& val)
   {
       arg1=val;
   }
   void setSecondArg(const T& val)
   {
       arg2=val;
   }
   void setOper(const opers& op)
   {
       oper=op;
   }
   const T& getFirstArg() const {return arg1;}
   const T& getSecondArg() const {return arg2;}
   const opers& getOper() const {return oper;}
   T countExpr() const 
   {
        switch(oper)
        {
             case plus:
             {
                 return arg1+arg2;
             }
             break;
             case sub:
             {
                 return arg1-arg2;
             }
             break;
             case mul:
             {
                 return arg1*arg2;
             }
             break;
             case div:
             {
                 if(arg2 == 0)
                     throw std::exception("Can`t divide by 0");
                 return arg1/arg2;
             }
             break;
             default:
             {
                 throw std::exception("Can`t count expr with oper 'none'");
             }
       }
    }
private:
    T arg1;
    T arg2;
    opers oper;
};
 
template<class T>
std::ostream& operator <<(std::ostream& os, const Expr<T>& expr)
{
    os<<expr.getFirstArg()<<static_cast<unsigned char>(expr.getOper())<<expr.getSecondArg()<<"="<<expr.countExpr()<<'\n';
    return os;
}
 
int main()
{
    Expr<int> expr(5, 10, Expr<int>::plus);
    std::cout<<expr<<'\n';
}
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
23.03.2011, 22:31  [ТС] #11
ForEveR, Большое спасибо)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2011, 22:31
Привет! Вот еще темы с ответами:

Стек с использованием шаблона классов - C++
Помогите найти ошибку , реализация стека с использованием шаблона классов. Когда без int все работало #include &lt;iostream&gt; ...

Переделать программу с использованием шаблона класса - C++
Организовать программу с помощью Шаблона класса. class ttt { char *str; public: ttt(); bool operator &gt;= (ttt...

Форматирование текста в классе с использованием шаблона - C++
Подскажите, написал класс с использованием шаблона. Входящие данные к примеру int или double , и мне их в итоге нужно перевести в формат...

Как определиться со структурой программы с использованием шаблона - C++
Получил задание : &quot;Написать программу «Моя записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.03.2011, 22:31
Ответ Создать тему
Опции темы

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