Tìm kiếm

BT Về Lập trình hướng đối tượng (Mở đầu)

4. Xây dựng lớp ma trận gồm các thành phần:
-DL: số dòng, số cột, mảng các phần tử
-Pt: nhập, in, kiểm tra ma trận có là đơn vị không
Hàm main:
-Nhập ma trận a
-Thông báo có là ma trận đơn vị không
-In ma trận

Code:


#include <conio.h>
#include <iostream.h>
class MT
{
private:



// so hang m, so cot n, mang a chua cac phan tu cua ma tran
int m;
int n;
float a[10][10];
public:

// khai bao ham kiem tra ma tran don vi la ham ban cua lop MT
friend int ktra(MT x);

//============================
// ma tran khoi tao
MT()
{
m=1;
n=1;
for (int i=1;i<=m;i++)
  for (int j=1;j<=n;j++)
  a[i][j]=0;
}

//============================
// toan tu xuat ma tran
friend ostream& operator<<(ostream& os,const MT &x)
{
 for (int i=1;i<=x.m;i++)
  {
  for (int j=1;j<=x.n;j++)
 os<<x.a[i][j]<<" ";
 os<<"\n";
  }
 return os;
 }

// ===========================
// toan tu nhap ma tran
friend istream& operator>>(istream& is,MT &x)
{
cout<<"Nhap so hang :";is>>x.m;
cout<<"Nhap so cot :";is>>x.n;
 for (int i=1;i<=x.m;i++)
  for (int j=1;j<=x.n;j++)
  {
 cout<<"Nhap phan tu hang "<<i<<", cot "<<j<<" : ";
 is>>x.a[i][j];
 }
 return is;
}

//============================
// toan tu cong 2 ma tran
MT operator+(MT x2)
{
 if (m!=x2.m||n!=x2.n)
  {
  cout<<"Khong thuc hien duoc phep cong ma tran \n";
  return x2;
  }
 else
 {
 MT x3;
 x3.m = x2.m;
 x3.n = x2.n;
 for (int i=1;i<=m;i++)

  for (int j=1;j<=n;j++)
  {
 x3.a[i][j]=a[i][j]+x2.a[i][j];
 }

 return x3;
 }
}

//===========================
// toan tu tru 2 ma tran
MT operator-(MT x2)
{
 if (m!=x2.m||n!=x2.n)
  {
  cout<<"Khong thuc hien duoc phep tru ma tran \n";
  return x2;
  }
 else
 {
 MT x3;
 x3.m = x2.m;
 x3.n = x2.n;
 for (int i=1;i<=m;i++)

  for (int j=1;j<=n;j++)
  {
 x3.a[i][j]=a[i][j]-x2.a[i][j];
 }

 return x3;
 }
}

//=============================
// toan tu nhan 2 ma tran
MT operator*(MT x2)
{
  if (this->n!=x2.m)
  {
 cout<<"Khong nhan duoc 2 ma tran \n";
  return x2;
  }
  else
  {
  MT x3;

// khoi tao so hang va so cot cua ma tran tich
  x3.m=m;
  x3.n=x2.n;
  for (int i=1;i<=m;i++)
  for (int j=1;j<=n;j++)
 {
   x3.a[i][j]=0;
   for (int k=1;k<=x2.m;k++)
  x3.a[i][j]+=a[i][k]*x2.a[k][j];
  }
 return x3;
 }
 }
};

//============================
// kiem tra ma tran don vi
int ktra(MT x)
{
 if (x.m!=x.n) return 0;
 else
 {
  int t;
  x.m = t;
  x.n = t;
  for (int i= 1;i<=t;i++)
 if (x.a[i][i]!=1) return 0;
  else
  {
 for (i=1;i<=t;i++)
  for (int j=1;j<=t;j++)
  {
   if ((i!=j)&&(x.a[i][j]!=0)) return 0;
  else
 return 1;
 }
  }
 }
 }

//============================
// ham main
void main()
{
clrscr();

// chuong trinh xay dung lop ma tran
// vu dinh vinh
MT d,b,c,e,f;
cin>>c>>b;
d=c+b;
e=c-b;
f=c*b;
cout<<"Tong 2 ma tran :\n"<<d;
cout<<"Hieu 2 ma tran :\n"<<e;
cout<<"Tich 2 ma tran :\n"<<f;
cout<<"=================================\n";
cout<<"Nhap ma tran de kiem tra :\n";
MT p;
cin>>p;
cout<<"Ma tran :\n";
cout<<p;
if (ktra(p)==1) cout<<"La ma tran don vi \n";
else
cout<<"Khong la ma tran don vi  \n";
getch();
}

Read Users' Comments (0)

0 Response to "BT Về Lập trình hướng đối tượng (Mở đầu)"

Đăng nhận xét

Support

Liên hệ DMTuan-Uneti
Mọi thông tin góp ý các bạn liên hệ với mình ! Mail:
  1. manhtuan.leo@gmail.com
  2. manhtuan.itvp@gmail.com

Y!M: manhtuan.it92