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