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

Составить класс для работы с целочисленной матрицей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с текстовым файлом http://www.cyberforum.ru/cpp-beginners/thread423136.html
Добрый вечер, помогите пожалуйста с решением следущей проблемы: Есть текстовый файл, в котором находится 40 000 различных английских слов, каждое слово начинается на новой строке, самое короткое слово имеет одну букву, самое длинное 8. Нужно написать программу в Си, где введём слово, она просмотрит файл и выпишет все слова с файла которые даное слово имеют как подслово.
C++ реализация класса строка не могу понять как реализовать ... помогите вот там где "???????????" там абсолютно непонятно, что мне делать.... задание: реализовать класс строка с динамическим кол-вом эел-тов, требования: 1) возврат подстроки (вывести элементы из строки например с 3 по 5) 2) изменить размер строки путем добавления в конец пустых символов 3) вставить подстроку в строку после определенного символа (символ... http://www.cyberforum.ru/cpp-beginners/thread423128.html
C++ Определить, есть ли в массиве...
Определить, есть ли в массиве L значение, равное (min +max) / 2 и вывести его номер. Удалить это значение в массиве.
компилятор c++ C++
Решил вот обратиться к умным людям насчет c++. Подумал я и решил начать изучать c++, ибо паскаль уже, скажем так, не "катит". Поспрашивал насчет компилятора - посоветовали Microsoft Visual Studio. Поставил, скачал достаточно много книг и туториалов для чайников по языкам c/c++. И тут же меня настигли неудачи: многие библиотеки, описываемые в книгах отсутствуют, ну по крайней мере VS пишет что...
C++ прога вычисляет не правильно http://www.cyberforum.ru/cpp-beginners/thread423102.html
Задание к работе Пользовательский класс должен содержать необходимые элементы-данные, метод установки их начальных значений: Void set(double X, …); метод печати: Void print(void); метод, решающий поставленную задачу: Void Run(void); Код методов – вне пространства определения класса. Программа должна включать в себя статический и динамический способы создания объектов, и для каждого...
C++ Найти произведение элементов побочной диагонали матрицы Х(6,6). Помогите плиз на Turbo C подробнее

Показать сообщение отдельно
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
09.01.2012, 09:21     Составить класс для работы с целочисленной матрицей
wallhack,
Цитата Сообщение от isaak Посмотреть сообщение
Помогло все заработало
заработать то заработало. Но это кривой костыль. Как раз разбираюсь что я сделал не так как надо.

Добавлено через 8 часов 32 минуты
версия 2.0.
тестируйте.

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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <iomanip>
using std::setw;
 
#include <cstdlib>
#include <ctime>
 
class MyMatrix{
public:
    MyMatrix(const int & = 4,const  int & = 4);
    MyMatrix(const MyMatrix &);
    ~MyMatrix();
 
    MyMatrix operator*(const MyMatrix &);
    MyMatrix &operator=(const MyMatrix &);
 
    void print() const;
    void setRandValues(const int, const int);
    int getRows() const;
    int getColumns() const;
 
private:
    int rows;
    int cols;
    int ** matrix;
};
 
 
//create new object, allocate memory and set all elements to zero;
MyMatrix::MyMatrix(const int &r, const int &c) : rows(r), cols(c){
    matrix = new int*[rows];
    for(int i = 0; i < rows; ++i){
        matrix[i] = new int[cols];
        for(int j = 0; j < cols; ++j){
            matrix[i][j] = 0;
        }
    }
}
 
 
MyMatrix::MyMatrix(const MyMatrix &right){
    rows = right.rows;
    cols = right.cols;
    matrix = new int*[rows];
    for(int i = 0; i < rows; ++i){
        matrix[i] = new int[cols];
        for(int j = 0; j < cols; ++j){
            matrix[i][j] = right.matrix[i][j];
        }
    }
}
 
MyMatrix::~MyMatrix(){
    for(int i = 0; i < rows; ++i){
        delete[] matrix[i];
    }
    delete[] matrix;
}
 
MyMatrix MyMatrix::operator*(const MyMatrix &right){
    MyMatrix temp(rows, right.cols);
    if(cols != right.rows){
        temp = right;
    }else {
        for (int i = 0; i < rows; ++i) {
            for (int j = 0; j < right.cols; ++j) {
                for (int k = 0; k < cols; ++k) {
                    temp.matrix[i][j] += (matrix[i][k] * right.matrix[k][j]);
                }
            }
        }
    }
    return temp;
}
 
MyMatrix &MyMatrix::operator=(const MyMatrix &right){
    if(rows!=right.rows || cols!=right.cols){
        for(int j = 0; j < rows; ++j){
            delete[] matrix[j] ;
        }
        delete[] matrix;
        rows = right.rows;
        cols = right.cols;
        matrix = new int*[rows];
        for(int j = 0; j < rows; ++j){
            matrix[j] = new int[cols]; ;
        }
    }
    if(this != &right){
        for(int i = 0; i < rows; ++i){
            for(int j = 0; j < cols; ++j){
                matrix[i][j] = right.matrix[i][j];
            }
        }
    }
    return *this;
}
 
void MyMatrix::print() const{
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            cout << setw(4) << matrix[i][j];
        }
        cout << endl;
    }
}
 
//fill matrix with random values
void MyMatrix::setRandValues(const int from, const int to) {
    srand(time(NULL));
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            matrix[i][j] = (from + (rand() % ((to+1) - from)));
        }
    }
}
 
int MyMatrix::getRows() const{
    return rows;
}
 
int MyMatrix::getColumns() const{
    return cols;
}
 
 
int main() {
 
    MyMatrix matrix(6,5);
    MyMatrix zatrix(5,6);
    MyMatrix xatrix;
 
    bool exit = false;
    int userChoice;
 
 
 
    while(!exit){
        system("CLS");
        cout << "-= MATRIX MULTIPLICATION =-" << endl;
        cout << "1 :: Print first matrix and it's size" << endl;
        cout << "2 :: Print second matrix and it's size" << endl;
        cout << "3 :: Fill first matrix with rand values" << endl;
        cout << "4 :: Fill seconde matrix with rand values" << endl;
        cout << "5 :: Perform multiplication and print result" << endl;
        cout << "6 :: Exit" << endl;
        cout << ">";
 
        cin >> userChoice;
        cin.ignore();
 
        switch(userChoice){
        case 1:
            cout << "MATRIX SIZE :: "<< matrix.getRows()<<"x"<<matrix.getColumns()<< endl;
            matrix.print();
            cout << "\n\npress ENTER"<< endl;
            cin.get();
            break;
        case 2:
            cout << "ZATRIX SIZE :: "<< zatrix.getRows()<<"x"<<zatrix.getColumns()<< endl;
            zatrix.print();
            cout << "\n\npress ENTER"<< endl;
            cin.get();
            break;
        case 3:
            matrix.setRandValues(0,5);
            cout << "MATRIX FILLING DONE\n\npress ENTER"<< endl;
            cin.get();
            break;
        case 4:
            zatrix.setRandValues(5,10);
            cout << "ZATRIX FILLING DONE\n\npress ENTER"<< endl;
            cin.get();
            break;
        case 5:
 
            matrix.print();
            cout << "\n * \n";
            zatrix.print();
            xatrix = matrix*zatrix;
            cout << "\n = \n";
            xatrix.print();
            cout << "\n\npress ENTER"<< endl;
            cin.get();
            break;
        case 6:
            exit = true;
            break;
        }
    }
 
    return 0;
}

Не по теме:

получите пятерки поднимите пиФФка с тостом "За знания и старания!"

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