Как это сделать программирование
Для вычисления матричных операций
Дан код для сложения и умножения 2 матриц в основной функции
1. Запустить код
2. Позвонить назначить функцию для инициализации матрицы случайными целыми числами [-3, 3]
3. Вызов функции дисплея матрица
4. Позвонить назначить функцию для инициализации матрицы B, так как случайные целые числа [-4, 4]
5. Вызов функции дисплея матрицы B
6. вычислите матрицу C=A+B в функции сложения матриц
7. Дисплей матричный с функцией дисплея
8. В функции main: назначение и отображение матрицы D(Я, J) = Я-J;
9. вычислите матрицу E = CD в матричной функции умножения
10. отображение матрицы E в функции отображения
Что я уже пробовал:
#include<iostream> #include<time.h> using namespace std; #define m 4 #define n 5 #define p 6 /*To operate on an array of 2D matrix /*To display indexes of a 2D matrix*/ /*To introduce a random number generator */ void main() { /*To declare and initialize an array A*/ int A[m][n], B[m][n], C[m][n], D[n][p], E[m][p]; clock_t wait; /*To assign matrix A as random integers [-3, 3] */ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) A[i][j] = (rand() % 5) - 3; } /*To display an array of matrix A*/ cout << "matrix A \n"; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << A[i][j] << "\t"; wait = clock(); while (clock() < wait + 200); } cout << "\n"; }cout << "\n"; /*To assign matrix B as random intergers [-4,4] */ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) B[i][j] = (rand()%5)-4; } /*To display an array of matrix B*/ cout << "matrix B \n"; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << B[i][j] << "\t"; wait = clock(); while (clock() < wait + 200); } cout << "\n"; }cout << "\n"; /*To compute matrix addition C = A+B, C(i,j) = dotproduct(row i of A,column j of B) */ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { C[i][j] = A[i][j] + B[i][j]; } } /*To display an array of matrix C*/ cout << "matrix C \n"; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << C[i][j] << "\t"; wait = clock(); while (clock() < wait + 200); } cout << "\n"; }cout << "\n"; /*To assign matrix D(i,j)=i-j using for loop*/ for (int i = 0; i < n; i++) { for (int j = 0; j < p; j++) D[i][j] = i - j; } /*To display an array of matrix D*/ cout << "matrix D \n"; for (int i = 0; i < n; i++) { for (int j = 0; j < p; j++) { cout << D[i][j] << "\t"; wait = clock(); while (clock() < wait + 200); } cout << "\n"; }cout << "\n"; /*To compute matrix multiplication E = CD, E(i,j) = dotproduct(row i of C,column j of D) */ for (int i = 0; i < m; i++) { for (int j = 0; j < p; j++) { E[i][j] = 0; for (int k = 0; k < n; k++) E[i][j] = E[i][j] + A[i][k] * D[k][j]; } } /*To display an array of matrix E*/ cout << "matrix E \n"; for (int i = 0; i < m; i++) { for (int j = 0; j < p; j++) { cout << E[i][j] << "\t"; wait = clock(); while (clock() < wait + 200); } cout << "\n"; }cout << "\n"; system("PAUSE"); }
Rick York
Ваше сообщение было немного изменено. Так в чем же заключается ваш вопрос? Если это "сделаешь ли ты за меня домашнее задание?", то ответ будет отрицательным. Если это "почему моя программа не работает?", ответ заключается в том, чтобы запустить отладчик и выяснить это самостоятельно.