MaTran
//nhan ma tran voi x
#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
//khai bao lop doi tuong ma tran
class MaTran
{
private:
enum {size=10};
int a[size][size];
int m,n;
public:
MaTran();
MaTran operator*(float x);
float TBC();
//ham ban
friend ifstream& operator>>(ifstream &fin,MaTran &mt);
friend ostream& operator<<(ostream &cout,MaTran &mt);
};
int main()
{
//tao 3 doi tuong ma tran
MaTran A,B;
//khai bao bien
int x;
float tbc;
//tao doi tuong doc tep
ifstream fin("matran.txt");
fin>>A;
//Dua ra ma tran A ra man hinh
cout<<"Chuong trinh nhan ma tran voi 1 so thuc x.\n\n";
cout<<"\nNhap vao x: "; cin>>x;
//nhan ma tran A voi x va tinh TBC cua mt A
B = A * x;
tbc = A.TBC();
//dua ra man hinh
cout<<"Ma tran A la: \n"; cout <<A;
printf("\nTBC cua ma tran A la: %0.2f", tbc);
cout<<"\nMa tran nhan la: \n"; cout<<B;
cout<<endl;
return 0;
}
//dinh nghia ham
MaTran::MaTran():m(0),n(0)
{
}
MaTran MaTran::operator*(float x)
{
MaTran tich;
tich.m = m;
tich.n = n;
//nhan ma tran A voi x
for(int i = 0;i<m;i++)
for(int j=0;j<n;j++)
tich.a[i][j] = a[i][j] * x;
return tich;
}
float MaTran::TBC()
{
float tong = 0;
for(int i = 0;i<m;i++)
for(int j=0;j<n;j++)
tong += a[i][j];
return tong/(m*n);
}
//ham ban
ifstream& operator>>(ifstream &fin, MaTran &mt)
{
fin>>mt.m>>mt.n;
//doc ma tran tep
for(int i = 0;i<mt.m;i++)
for(int j =0;j<mt.n;j++)
fin>>mt.a[i][j];
return fin;
}
ostream& operator<<(ostream &cout,MaTran &mt)
{
for(int i = 0;i<mt.m;i++)
{
for(int j =0;j<mt.n;j++)
printf("%6d",mt.a[i][j]);
//xuong dong
cout<<endl;
}
return cout;
}Last updated