Text: |
ФІО = Для Ванию
Запитання:// матрица на матрицу транспонированую. ВРоде не правильно считает... проверяй...
#include <iostream>
#include <cstdlib> // тут rand (), srand ()
#include <stdio.h>
#include <conio.h> //
using namespace std; // підключаємо все необхідне для роботи програми
void PrintMas(double *A,int m,int n){// ДрукМатриці. Приймає вказівник на перший
//елемент масиву і кількість елементів
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < m ; j++){
cout<<*(A+i*m+j)<<"\t ";
}
cout<<endl;
}
cout<<endl;
return ;
}
void EnterMas(double *A,int m,int n){// Заповнення матриці з клави. Парам.аналог.якв^^
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < m ; j++){
cout<<"Enter Matrix ["<<j+1<<"]x["<<i+1<<"] = ";
cin>>*(A+i*m+j);
}
}
return ;
}
void MnojMartixMas(double *A, double *C,int m,int n){
// множення матриці. Приймає вказіники на початки масивів A,B,C та розмірність
for(int irow = 0; irow < n; irow++)
for(int icol = 0; icol < m; icol++) {
double sum = 0;
for(int k = 0; k < m; k++) {
// sum += (*(A+irow*m+k)) * (*(A+k*n+icol));
sum += (*(A+irow*m+k)) * (*(A+k*n+icol));
}
*(C+irow*m+icol) = sum;
}
return ;
}
main ()
{
int m, n; // розмірність матриці
do{
cout<<"Matrix\n Enter M = ";
cin>>m;
if (m<=0) cout<<"ERROR : M > 0 !\n";
}while (m<=0); // не даємо вийти, поки не буде введено m>0
do{
cout<<"Matrix\n Enter N = ";
cin>>n;
if (n<=0) cout<<"ERROR : N > 0 !\n";
}while (n<=0); // не даємо вийти, поки не буде введено n>0
double *A = new double [m*n]; // створюємо вказівники на масиви
double *C = new double [m*n]; // розмірністю n x n
EnterMas(A,m,n); // заповнюємо масив A розм. n*n з клави
PrintMas(A,m,n); // друк масив A розм. n*n
MnojMartixMas(A, C,m, n);
PrintMas(C,n,m); // друк масив C розм. n*n
delete(A); delete(C); // звільняємо пам'ять
system ("PAUSE");
return 0;
}
====================================
|