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

Что-то в шаблоне не так - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Добавление экземпляров одного класса в другой класс http://www.cyberforum.ru/cpp-beginners/thread745074.html
Доброе утро! В программе создано 2 класса. 1-й предназначен для создания объекта под названием "студент". Он имеет различные свойства (фио, дата рождения, адрес и т.п.). 2-ой класс называется группа....
C++ Подсчитать количество слов, начинающихся с одинаковой группы символов Доброго времени суток. Необходимо написать программу, которая будет считывать текст из файла, считать количество слов, начинающихся с одинаковой группы символов, и затем выводить в выходной... http://www.cyberforum.ru/cpp-beginners/thread745068.html
Работа с памятью C++
Всем привет! Не могу разобраться, как написать код программы, которая моделирует механизм виртуальной памяти. Кто сможет реализовать хотя бы что-то по этому заданию, буду очень благодарен ;) ...
Возвращение по ссылке C++
Здравствуйте! Суть проблемы следующая. Необходимо, чтобы методы класса Pstring2 возвращали значения по ссылке, с возможностью размещения вызова функции слева от знака равно в операциях со сроками....
C++ Написать функцию без параметров, возвращающую при каждом вызове следующее простое число http://www.cyberforum.ru/cpp-beginners/thread745058.html
Написать функцию без параметров, возвращающую при каждом вызове следующее простое число (первый вызов возвращает 2, следующий – 3, третий – 5, и т. д.). Запрещено создавать темы с множеством...
C++ Написать функцию, вычисляющую число последовательностей из нулей и единиц длины n, не содержащих двух единиц подряд 1)Написать функцию, вычисляющую число последовательностей из нулей и единиц длины n, не содержащих двух единиц подряд (обозначим это число p(n)). Используйте рекурсию, то есть подумайте, как... подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
25.12.2012, 22:22
Андрей0792, я ничего не понял) Поправил код из первого поста, чтобы он хотя бы компилировался:
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <cstdlib>
#include <numeric>
//#include <conio.h>
#include <algorithm>
 
 
using namespace std;
 
template <int n, typename T> class MATR{
    private:
        T **mat;
    public:
        MATR(T **mat1, int nn){
            mat=new T *[nn];
            for(int i=0; i<nn; i++)
                mat[i]=new T[n];
            for(int i=0; i<nn; i++)
                for(int j=0; j<nn; j++)
                    mat[i][j]=mat1[i][j];
        }
        
        explicit MATR(T const (&array)[n][n]) {
           mat = new T *[n];
           for (int i = 0; i != n; ++i) {
              mat[i] = new T[n];
              std::copy(&array[i][0], &array[i][0] + n, &mat[i][0]);
           }
        }
 
        ~MATR() {
           for (int i = 0; i != n; ++i) {
              delete[] mat[i];
           }
           delete[] mat;
        }
        
        //MATR create();
        void sum_negative();
        T rows_and_colums();
        void print();
};
 
int main() {
    //setlocale(LC_ALL, "Russian");
    int n = 8;
    int mat1[8][8]={{-1 ,  2 ,  3 , -4 ,  5 ,  6 ,  7 ,   8},
                    { 2 ,  3 ,  3 ,  5 ,  9 ,  8 ,  5 ,   9},
                    { 3 ,  4 ,  5 ,  6 ,  6 ,  7 ,  4 ,  10},
                    {-4 ,  5 ,  6 ,  7 ,  8 ,  9 , 10 ,  11},
                    { 5 ,  3 ,  4 ,  8 , 10 ,  9 ,  4 ,  12},
                    { 6 ,  5 ,  2 ,  9 ,  3 ,  1 , 11 ,  13},
                    { 7 , 14 , 15 , 10 , 11 ,  3 ,  2 ,  14},
                    { 8 ,  9 , 10 , 11 , 12 , 13 , 14 , -15}};
 
    float mat[8][8]={{-1.1 , 2.1 ,  3.1 , -4.1 ,  5.1 ,  6.1 ,  7.1 ,   8.1},
                     { 2.1 , 3.2 ,  3.3 ,  5.2 ,  9.8 ,  8.5 ,  5.9 ,   9.3},
                     { 3.1 , 4.3 ,  5.4 ,  6.3 ,  6.4 ,  7.4 ,  4.1 ,  10.4},
                     {-4.1 , 5.2 ,  6.3 ,  7.4 ,  8.5 ,  9.6 , 10.7 ,  11.8},
                     { 5.1 ,   3 ,    4 ,  8.5 , 10.2 ,  9.4 ,  4.9 ,  12.5},
                     { 6.1 ,   5 ,    2 ,  9.6 ,  3.2 ,  1.2 , 11.5 ,  13.6},
                     { 7.1 ,  14 ,   15 , 10.7 , 11.2 ,  3.2 ,  2.3 ,  14.7},
                     { 8.1 , 9.3 , 10.4 , 11.8 , 12.5 , 13.6 , 14.7 , -15.8}};
 
    cout << endl << "*** Пример для вещественных значений ***"<<endl;
    MATR <8, float> m(mat);
    m.print();
    m.rows_and_colums();
    m.sum_negative();
 
    cout << endl << "*** Пример для целых значений ***"<<endl;
    MATR <8, int> m1(mat1);
    m1.print();
    m1.rows_and_colums();
    m1.sum_negative();
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
//template <int n, typename T> MATR<n,T> MATR<n,T>::create(){
//    int i,j;
//   cout << "Input demtntion" << endl;
//    do
//        cin >> n;
//    while(n<0);
// 
//    mat=new T *[n];
//    for(i=0; i<n; i++)
//        mat[i]=new T [n];
//    cout << "Input " << n*n << " elements" << endl;
//    for(i=0; i<n; i++)
//       for(j=0; j<n; j++)
//            cin >> mat[i][j];
//    MATR m(mat);
//    *this=m;
//    return m;
//}
 
template <int n, typename T> void MATR<n,T>::sum_negative(){
    int i,j;
    T *sum;
    sum=new T [n];
    for(i=0; i<n; i++){
        sum[i]=0;
        for(j=0; j<n; j++){
            if(mat[i][j]<0){
                sum[i]+=mat[i][j];
            }
        }
    }
    cout << "Сумма эл-ов строки с отрицательными эл-ми" << endl;
    for(i=0; i<n; i++)
        cout << sum[i] << ' ';
    cout << endl;
}
 
template <int n, typename T> T MATR<n,T>::rows_and_colums(){
    bool matches[n];
    int flag;
    int mat1[8][8];
    for(int i=0; i<=n; i++){
        matches[i] = 0;
        flag = 0;
        for(int j=0; j<=n; j++){
            if (mat1[i][j] == mat1[j][i])
                flag++;
        }
        if (flag == n)
            matches[i] = 1;
        cout << endl;
    }
    cout << endl;
    for (int i=0; i<=n; i++){
        if (matches[i])
            cout << "\nСовпадают строка и столбец под номером: " << i;
    }
    return 0;
}
 
template <int n, typename T> void MATR<n,T>::print(){
    int i,j;
    for(i=0; i<n; i++){
        for(j=0; j<n; j++){
            cout.width(5);
            cout << mat[i][j];
        }
        cout << endl;
    }
}
http://liveworkspace.org/code/1HVJW9
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru