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

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

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

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru