bai4_matran

Màu nền
Font chữ
Font size
Chiều cao dòng

#include "stdio.h"

#include "conio.h"

#include "iostream.h"

#include "iomanip.h"

#include "math.h"

class matran

    {

    private:

             int a[50][50];

             int n,m;

        public:

             void nhap();

             void xuat();

             int tongchinh();

             int tongphu();

             void sx_tangcot();

             void sx_chinh();

             friend void tongmt(matran mt1,matran mt2,matran &S,int &kt);

             friend void tichmt(matran mt1,matran mt2,matran &T,int &kt);

    };

void matran::nhap()

    {

        int i,j;

        cout<<"

Nhap so hang n=";cin>>n;

        cout<<"

Nhap so cot m=";cin>>m;

        for(i=1;i<=n;i++)

            for(j=1;j<=m;j++)

                {

                     cout<<"a["<<i<<"]["<<j<<"]=";

                     cin>>a[i][j];

                }

    }

void matran::xuat()

    {

        int i,j;

        for(i=1;i<=n;i++)

        {

            cout<<"

";

            for(j=1;j<=m;j++)

            cout<<setw(4)<<a[i][j];

        }

    }

int matran::tongchinh()

    {

        int i,S;

        S=0;

        for(i=1;i<=n;i++)

            S+=a[i][i];

        return S;

    }

int matran::tongphu()

    {

        int i,S;

        S=0;

        for(i=1;i<=n;i++)

            S+=a[i][n-i+1];

        return S;

    }

void matran::sx_tangcot()

    {

        int i,j,k,tg;

        for(j=1;j<=m;j++)

            for(i=1;i<n;i++)

                for(k=i+1;k<=n;k++)

                    if(a[i][j]>a[k][j])

                           {tg=a[i][j];a[i][j]=a[k][j];a[k][j]=tg;}

    }

void matran::sx_chinh()

    {

        int i,j,tg;

        for(i=1;i<n;i++)

            for(j=i+1;j<=n;j++)

                if(a[i][i]>a[j][j])

                {tg=a[i][i];a[i][i]=a[j][j];a[j][j]=tg;}

    }

void tongmt(matran mt1,matran mt2,matran &S,int &kt)

    {

        int i,j;

        if(mt1.n==mt2.n&&mt1.m==mt2.m)

            {

                kt=1;

                for(i=1;i<=mt1.n;i++)

                    for(j=1;j<=mt1.m;j++)

                        S.a[i][j]=mt1.a[i][j]+mt2.a[i][j];

                S.n=mt1.n;S.m=mt1.m;

            }

        else

            kt=0;

    }

void tichmt(matran mt1,matran mt2,matran &T,int &kt)

    {

        int i,j,k;

        if(mt1.m==mt2.n)

           {

               kt=1;

                for(i=1;i<=mt1.n;i++)

                    for(j=1;j<=mt2.m;j++)

                    {

                T.a[i][j]=0;

                        for(k=1;k<=mt1.m;k++)

                            T.a[i][j]+=mt1.a[i][k]*mt2.a[k][j];

                    }

                T.n=mt1.n;T.m=mt2.m;

           }

        else

            kt=0;

    }

void main()

    {

        matran A,B,T,S;

        int kt,kt1;

        clrscr();

        cout<<"

Nhap ma tran A:

";

        A.nhap();

        cout<<"

Ma tran A la:

";

        A.xuat();

        cout<<"

Tong cac phan tu tren duong cheo chinh S="<<A.tongchinh();

        cout<<"

Tong cac phan tu tren phu cheo chinh S="<<A.tongphu();

        A.sx_tangcot();

        cout<<"

Sap xep ma tran tang dan theo cot:

";

        A.xuat();

        cout<<"

Nhap ma tran B:

";

        B.nhap();

        cout<<"

Ma tran B la:

";

        B.xuat();

        B.sx_chinh();

        cout<<"

Sap xep ma tran B tang dan tren duong cheo chinh:

";

        B.xuat();

        tongmt(A,B,S,kt);

        if(kt==1)

            {

                cout<<"

Tong hai ma tran la:

";

                S.xuat();

            }

        else

            cout<<"

Khong tinh duoc tong:

";

        tichmt(A,B,T,kt1);

        if(kt1==1)

            {

                cout<<"

Tich hai ma tran la:

";

                T.xuat();

            }

        else

            cout<<"

Khong tinh duoc tich:

";

        getch();

    }

Bạn đang đọc truyện trên: Truyen2U.Pro

#123