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