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

Описать класс, соответствующий матрицам, с операциями их сложения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 3-х мерный массив+Строки+функции http://www.cyberforum.ru/cpp-beginners/thread19106.html
Задача: Обработать n1 матриц размером n*m. Элемент строка. В каждой из матриц есть одно слово состоящее только из цифр. Найти его, преобразовать, записать в новый массив. Дополнение: -Обязательно использовать функции(Ввод матрицы, поиск слова, и тд) -Использовать динамическую память -Использовать операторы C++ нельзя. Только С Главная проблема это выделить память под всю эту конструкцию и...
C++ Поиск кратчашего пути в ненагруженном неорграфе от любой вершины до любой Задача: необходимо найти кратчайший путь в ненагруженном неорграфе от любой вершины до любой. Соображения: алгоритм Флойда не годится (О(n^3) - много). Общая идея - построение остовного дерева и определение пути с помощью оного. Кратчайший путь в данном случае находится с помощью глубинного обхода (вершина, от которой считается расстояние, объявляется корнем остовного дерева). Просьба: скинуть... http://www.cyberforum.ru/cpp-beginners/thread19105.html
Поиск в строке по образцу. C++
Подсчитайте количество указанных цепочек в файле, найденных по образцу. Причем в образце символ "+" означает один произвольный символ, а символ "*" – произвольную цепочку длиной не более 5 символов. Помогите разобраться с "+" и "*", никак не соображу как условие записать.:help:
C++ Напишите программу, вычисляющую стоимость покупки с учетом скидки.
Помогите решить 4 задачи: :wall:1) Известно, что оптимальный вес вычисляется по форуме: рост(в сантиметрах) - 100.Напишите программу, которая вычисляет оптимальный вес и выдает рекомендации. Рекомендуемый вид экрана: Введите свой рост и вес: 170 68 Вам надо оправиться на 2,00 килограмма. :wall:2) Напишите программу, вычисляющую стоимость покупки с учетом скидки. Скидка 10%...
C++ Работа со стуктурой и файлами http://www.cyberforum.ru/cpp-beginners/thread19101.html
Есть задачка, состоит с двух частей. Превую часть я сделал: Создать структуру, чтоб можна было добавлять данные , удалять, поиск за заданым елементом, выводить на екран всю структуру, запись в файл и прочитать с файла. А второе задание просто незнаю. Для первого курса ето вроде за очень мудро: 1)Возможность выбрать имя файла для сохранения и чтения записей. 2)Возможность удалять выбранные...
C++ строки в файле должны перевернуться вверх-ногами есть файл со строками, строки должны перевернуться вверх-ногами, сделать нужно с помощью классов.:help: подробнее

Показать сообщение отдельно
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10

Описать класс, соответствующий матрицам, с операциями их сложения - C++

20.12.2008, 23:13. Просмотров 10548. Ответов 2
Метки (Все метки)

ПОМОГИТЕ ПОЖАЛУЙСТА!!!
Задание:
1. Описать класс, соответствующий матрицам размерности 7 × 7, с операциями сложения матриц, умножения матрицы на число, умножения матриц друг на друга*, вычисления определителя матрицы** и вывода матрицы на экран. Создать объекты A и B этого класса. Каждый элемент матрицы A равен сумме номеров (нумерация начинается с 0) своих столбца и строки, т. е. aij = i + j. Строки матрицы B сверху-вниз и слева-направо заполняются остатками от деления на 5 последовательных целых чисел, начинающихся с 0. Вычислить и вывести на экран дисплея значения следующих выражений: A + B, −7A + 4B, A ∗ B, (4B − 3E)2 − 2A2 , det(B), det(BA − E), где E — единичная матрица размерности 7 × 7.
* — если A = (aij ) и B = (bij ), то C = A + B = (aij + bij ), D = kA = (k ∗ aij ), F = A ∗ B = (fij = k aik ∗ bkj ).
** — Определитель матрицы A = (aij ) из n строк вычисляется следующим образом:
................. и т.д.
Прогу написал: (в Линуксе)

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
#include <iostream>
   using namespace std;
 void halt (int ErrNo) {
    cout << "Error!\n";
    exit (ErrNo);
}
 
class Matrix 
{
private:
    int value[7][7];
public:
    int &operator() (int p1, int p2);
    Matrix operator+ (Matrix);
    Matrix operator- (Matrix);
    Matrix operator* (int Num);
    Matrix operator* (Matrix);
    Matrix operator- ();
    friend double Det (Matrix);
};
 
ostream& operator <<(ostream& Out, Matrix matrix)
{
    Out <<"\n+-------------------------------------------------------+\n";
    for(int i = 0; i < 7; i++)
    {
        Out << '+';
        for(int j = 0; j < 7; j++)
        {
            Out.width(6);
            Out << matrix(i,j)<<" |";
        }
        Out << "\n";
    }
    Out <<"+-------------------------------------------------------+\n";
    return Out;
};
 
int& Matrix ::operator()(int p1, int p2)
{
    if (p1 > 7 || p2 > 7)
    {   cout << "Error\n" << endl;
        exit(1);
    }
    return value[p1][p2];
};
 
Matrix Matrix ::operator+ (Matrix matrix)
{
    Matrix TempMatrix;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
            TempMatrix(i,j) = (*this)(i,j) + matrix(i,j);
    return TempMatrix;
};
 
Matrix Matrix ::operator- (Matrix matrix)
{
    Matrix TempMatrix;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
            TempMatrix(i,j) = (*this)(i,j) - matrix(i,j);
    return TempMatrix;
};
 
Matrix Matrix ::operator- ()
{
    Matrix TempMatrix;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
            TempMatrix(i,j) = -(*this)(i,j);
    return TempMatrix;
};
 
Matrix Matrix ::operator* (int n)
{
    Matrix TempMatrix;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
            TempMatrix(i,j) = (*this)(i,j) * n;
    return TempMatrix;
};
 
Matrix Matrix ::operator* (Matrix matrix)
{
    Matrix TempMatrix;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
        {
            TempMatrix(i,j) = 0;
            for (int k = 0; k < 7; k++)
                TempMatrix(i,j) += (*this)(i,k) * matrix(k,j);
        }
    return TempMatrix;
};
 
double Det(Matrix matrix) {
    double sign=1, d, X[7][7];
    for (int i1=0; i1<7; i1++)
        for (int j=0; j<7; j++)
            X[i1][j]=matrix.value[i1][j];
    for (int i=0; i<7; i++){
        if(X[i][i]==0){
            d=0;
            for (int j=i+1; j<7; j++){
                if (X[j][i]=0) {
                    for (int k=0; k<7; k++){
                        d=X[i][k];
                        X[i][k]=X[j][k];
                        X[j][k]=d;
                    }
                    sign=-sign;
                    d=1;
                    break;
                }
            }
            if (d==0) return 0;
        }
        for (int j=i+1; j<7; j++)
            for (int k=6; k>=i; k--) {
                X[j][k]=X[j][k]-X[i][k]*X[j][i]/X[i][i];
            }
    }
    for (int l=0; l<7; l++)
        sign*=X[l][l];
    return sign;
}
 
int main () {
    Matrix A,B,E;
    for (int i = 0; i < 7; i++)
        for(int j = 0; j < 7; j++)
        {
            if (i == j) E(i,j) = 1;
            else E(i,j) = 0;
            A(i,j) = i + j;
            B(i,j) = (i*7 + j)%5;
        }
                cout << "\n" << " A:" << A << endl;
                cout << "\n" << " B:" << B << endl;
                cout << "\n" << " E:" << E << endl;
        cout << "\n" << " (A+B):" << A + B << endl;
        cout << " (-7A + 4B):" << A*-7 + B*4 << endl;
        cout << " (A * B):" << A * B << endl;
        cout << " ((4B - 3E)^2 - 2A^2):" << (B*4 - E*3)*(B*4 - E*3) - (A*A)*2 << endl;
        cout << " Det(B) = " << Det(B) << endl;
        cout << " Det(BA-E) = " << Det(B*A - E) << "\n" << endl;
        return 0;
}
[/CODE]
но!!!!ПОМОГИТЕ ПОЖАЛУЙСТА СДЕЛАТЬ ПЕРЕДАЧУ МАТРИЦЫ ПО ССЫЛКЕ!!(через &)В проге-передача по значению..
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru