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

Ошибка при работе с объектами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождения цикла в орграфе http://www.cyberforum.ru/cpp-beginners/thread966102.html
Задан орграф списком смежности, при этом его вершинами являются строчные латинские символы. Описание выглядит примерно так: <описание i-ой вершины> ::= <символ, записанный в i-й вершине> <число di дуг, исходящих из i-й вершины> <номер вершины, в которую ведёт первая дуга>...<номер вершины, в которую ведёт di-ая дуга> Теперь что касается самого вопроса. Как в таком графе найти...
C++ Посчитать количество различных элементов массива Собственно задача обозначена в заглавии темы. НЕ могу понять что неправильно в моем говнокоде (постоянно вывадит 100). Подскажите пожалста что нетак? for (iii = 0; iii <100; iii++) { tmp=0; for (jjj = 0; jjj <100; jjj++) {if (arrayStringSum==arrayStringSum); tmp++; } http://www.cyberforum.ru/cpp-beginners/thread966089.html
C++ Список структур данных
Имеется вот такое задание: Описать, используя структуру данных запись, школьный класс (Фамилия и инициалы, дата рождения, месяц рождения, год рождения). Составить программу, выдающую список учеников, рожденных в мае месяце. мои наработки: #include <string> #include <iostream> using namespace std;
C++ Если a или b не число
Решил для разминки написать действие сложения, так как сам не писал его не разу, решил попробовать. всё получилось с 1 раза, но проблема в том что мне нужно если a или b не равно числу то программа выдаёт что "Нельзя использовать буквы, введите число опять" и вновь ожидала ввода a и b. #include "Class.h" #include <iostream> #include "windows.h" using namespace std;
C++ Нахождение элементов массива, встречающихся не менее определенного количества раз http://www.cyberforum.ru/cpp-beginners/thread966059.html
В файле записано огромное количество таких же огромных чисел (например, один миллиард чисел, каждое из которых находится в промежутке от нуля до миллиарда). Числа эти считываются последовательно, то есть нет возможности прочитать после третьего не четвертое, а десятое число. Необходимо найти такие элементы, которые встречаются в последовательности не меньше заданного количества раз (например, не...
C++ Функция Помогите в етой задаче использовать функцию #include <iostream> #include <math.h> #include <cmath> using namespace std; int main() { double y; double x; for (x=0.1 ; x<=1 ; x=x+0.09) подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2013, 00:53     Ошибка при работе с объектами
Кликните здесь для просмотра всего текста
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
class Matrix
{
//private:
 public:   
    int** matrix; // указатель на двухмерный массив
    int rows, columns; // число строк и столбцов
    bool Init; // инициализирована ли матрица
 
 
    Matrix (int sizeX, int sizeY, int** table = nullptr);
    Matrix (const Matrix& obj); // копирующий конструктор
    ~Matrix ();
 
    int Transposition (); //транспонирование
    double Determinant (); // поиск определителя
 
    int Print (); // вывод на экран
    bool Read (char filename []); // чтение матрицы из файла
    bool Load (char filename []); // сохранение в файл
 
    Matrix& operator= (const Matrix& obj); // оператор присваивания
 
    const Matrix operator*(Matrix& obj);
    //friend Matrix operator* (Matrix& obj1, Matrix& obj2);
 
};
 
Matrix :: Matrix (int SizeX, int SizeY, int** table): rows (SizeY), columns (SizeX), Init (false)
{
    if (table == nullptr) // если нет инициализатора матрицы
    {
        // выделение памяти под двухмерный массив
        matrix = new int* [SizeY];
        for (int i = 0; i < SizeY; i ++)
            *(matrix + i) = new int [SizeX];
    }
 
    else
    {
        matrix = table;
        for (int i = 0; i < SizeY; i ++)
            *(matrix + i) = *(table + i);
    }
 
 
}
 
Matrix :: Matrix (const Matrix& obj)
{
    // выделяем память
    this -> matrix = new int* [obj.rows];
    for (int i = 0; i < obj.rows; i ++)
        *(matrix + i) = new int [obj.columns];
 
    this -> rows = obj.rows;
    this -> columns = obj.columns;
 
    // копируем значения
    for (int i = 0; i < this -> rows; i ++)
        for (int j = 0; j < this -> columns; j ++)
            this -> matrix [i] [j] = obj.matrix [i] [j];
}
 
Matrix :: ~Matrix ()
{
    for (int i = 0; i < this -> rows; i ++)
        delete [] matrix [i];
 
    delete [] matrix;
 
    //delete [] combination;
}
 
Matrix& Matrix :: operator= (const Matrix& obj)
{
    if (this != &obj) // если не самоприсваивание
    {
        //if (this -> rows != obj.rows || this -> columns != obj.columns)
        //  throw BadSize ();
 
        // копируем значения
        for (int i = 0; i < this -> rows; i ++)
            for (int j = 0; j < this -> columns; j ++)
                this -> matrix [i] [j] = obj.matrix [i] [j];
 
    }
 
    return *this;
}
 
const Matrix Matrix :: operator*(Matrix& obj)
{
    //if (!this -> Init || !obj.Init)
    //  throw NotInit ();
 
    //if (this -> columns != obj.rows)
        //throw BadSize ();
 
    // выделяем память под новую матрицу
    int** table = new int* [this -> rows];
    for (int i = 0; i < this -> rows; i ++)
        *(table + i) = new int [obj.columns];
 
    // следующий страшный алгоритм умножает строки на столбцы
    int a;
    int x = -1, y = -1;
 
    for (int k = 0; k < this -> rows; k ++)
    {
        y ++;
        x = -1;
        for (int i = 0; i < obj.rows; i ++)
        {
            a = 0;
            x++;
            for (int j = 0; j < this -> columns; j ++)
                a += this -> matrix [k] [j] * obj.matrix [j] [i];
 
            table [y] [x] = a;
        }
    }
 
    return Matrix (x + 1, y + 1, table);
}
 
#include <iostream>
using std :: cout;
using std :: cin;
using std :: endl; 
//#include "Class_Matrix.h"
 
#include <Windows.h>
 
int main ()
{
    setlocale (LC_ALL, "Rus");
 
    Matrix M1 (2, 2);
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j)
            M1.matrix[i][j] = j + 1;
 
    for (int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 2; ++j)
           cout << M1.matrix[i][j] << ' ';
        cout << endl;
    }
    cout << endl;
   // M1.Read ("1.txt");
    
    Matrix M2 (2, 2);
     for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j)
            M2.matrix[i][j] = j + 2;
 
     for (int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 2; ++j)
           cout << M2.matrix[i][j] << ' ';
        cout << endl;
    }
    cout << endl;
     //M2.Read ("2.txt");
 
    Matrix M3 = M1 * M2;
 
    for (int i = 0; i < 2; ++i)
    {
        for (int j = 0; j < 2; ++j)
           cout << M3.matrix[i][j] << ' ';
        cout << endl;
    }
 
    //M3.Load ("3.txt");
 
    system ("pause");
    return 0;
}
Миниатюры
Ошибка при работе с объектами  
 
Текущее время: 20:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru