C++ tích 2 ma trận đây

Thảo luận trong 'Thuật toán' bắt đầu bởi boyqna9x, 25 Tháng năm 2009.

  1. Offline

    boyqna9x

    • Windows 3.0

    Số bài viết:
    29
    Đã được thích:
    37
    Điểm thành tích:
    40
    Mình thấy Votjnh_it có post lên nhưng bài đó bạn VoTjnh làm sai nên minh post lên:

    Thank mình 1 cái cổ vũ tinh thần nha. Các bạn không hiểu thì liên hệ mình sẽ hướng dẫn rõ hơn B1-208
    viethung_9xboythichkpop thích bài này.
  2. Offline

    boythichkpop

    • Thành Viên Mới

    Số bài viết:
    1
    Đã được thích:
    1
    Điểm thành tích:
    0
    cám ơn nhé, nhờ bài của bạn mình đã biết thuật toán. Nhưng bài của bạn trình bày hơi rối. Mạn phép trình bày lại như sau:
    Mã:
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<iomanip.h>
    
    void nhap(int a[10][20], int b[10][20], int &m, int &n){
    	do{
    		clrscr();
    		cout<<"\n Nhap so hag cua cac ma tran: ";
    		cin>>m;
    		cout<<"\n Nhap so cot cua cac ma tran: ";
    		cin>>n;
    	}while(n<2 && m>10);
    	cout<<"\n Nhap cac phtu cua ma tran thu 1: ";
    	for(int i=0;i<m;i++)
    		for(int j=0;j<n;j++){
    			cout<<"\n a["<<i+1<<","<<j+1<<"]= ";
    			cin>>a[i][j];
    		}
    	cout<<"\n Nhap cac phtu cua ma tran thu 2: ";
    	for(int i=0;i<m;i++)
    		for(int j=0;j<n;j++){
    			cout<<"\n b["<<i+1<<","<<j+1<<"]= ";
    			cin>>b[i][j];
    		}
    	return;
    }
    
    void tich(int a[10][20], int b[10][20], int m, int n){
    	int i,j,k,d[10][20];
    	if(m==n)
    		cout<<"\n Hai ma tran nay kha tich";
    	else{
    		cout<<"\n Ko ton tai tich 2 ma tran nay";
    		return; 
    	}
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++){
    			d[i][j]=0;
    			for(k=0;k<m;k++)
    				d[i][j]=d[i][j]+a[i][k]*b[k][j];
    		}
    	cout<<"\n Tich cua 2 ma tran vua nhap la: "<<endl;
    	for(i=0;i<m;i++)
    		for(j=0;j<n;j++){
    			cout<<setw(5)<<d[i][j];
    			if(j==n-1)
    				cout<<"\n";
    		}
    	return;
    }
    
    void main(){
    	int n,m,a[10][20],b[10][20];
    	nhap(a,b,m,n);
    	tich(a,b,m,n);
    }
    Thư viện iomanip.h chứa hàm setw() --> thêm vào trình bày cho đẹp ;)
    jinyotino thích bài này.
  3. Offline

    hongthulove

    • Thành Viên Mới

    Số bài viết:
    1
    Đã được thích:
    1
    Điểm thành tích:
    0
    cam ơn nhiều nha! nhưng thuật toán của bạn chưa tối ưu.bạn có thể tham khảo

    #include <iostream.h>
    #include <conio.h>
    #include <iomanip.h>
    main()
    {
    int x1;
    cout<<"Hay nhap so hang cua ma tran a:";
    cin >> x1;
    int a[x1][x1];int b[x1][x1];int c[x1][x1];
    cout<<"Hay nhap vao cac phan tu cua ma tran a:\n";
    for(int i=1;i<=x1;i++)
    for(int j=1;j<=x1;j++)
    {
    cout<<"a["<<i<<"]["<<j<<"]=";
    cin >> a[j];
    }
    cout<<"\nHay nhap vao cac phan tu cua ma tran b:\n";
    for(int i=1;i<=x1;i++)
    for(int j=1;j<=x1;j++)
    {
    cout<<"a["<<i<<"]["<<j<<"]=";
    cin >> a[j];
    }

    for(int i=1;i<=x1;i++)
    {
    for(int j=1;j<=x1;j++)
    {
    c[j]=0;
    for(int k=1;k<=x1;k++)
    {
    c[j] +=a[k] * b[k][j];
    }
    }
    }
    for(int i=1;i<=x1;i++)
    {
    for(int j=1;j<=x1;j++)
    {
    cout<<setw(10)<< c[j];

    }
    cout<<"\n";
    }
    getch();
    }
    chúc các bạn thành công :cheers:
    viethung_9x thích bài này.
  4. Offline

    vodanh_traloi1989

    • Thành Viên Mới

    Số bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    0
    tra loi

    bữa nay,ai viết như vậy nữa???????
    viết bằng hàm cho pro nha!
    update đi.:003::handshake::003:
  5. Offline

    vodanh_traloi1989

    • Thành Viên Mới

    Số bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    0
    nếu cần liên hệ với mình,mình viết hàm nha!!!
    2mit chỉ vậy thui!!!!!!!!!!!!!!:haha::haha::haha::infatuated:
  6. Offline

    jinyotino

    • Friends

    Số bài viết:
    569
    Đã được thích:
    211
    Điểm thành tích:
    140
    PHP:
    #include <iostream.h>
    #include <iomanip.h>

    int C[100][100];


    void nhap(int A[100][100], char k,int n,int m)
    {
        
    int i,j;
        
    cout<<"\nNhap gia tri cho ma tran "<<k<<" : "<<endl;
        for(
    i=1;i<=n;i++)
            for(
    j=1;j<=m;j++)
            {
                
    cout<<"A["<<i<<"]["<<j<<"]= ";
                
    cin>>A[i][j];
            }
    }

    void xuat(int A[100][100], char k,int n,int m)
    {
        
    int i,j;
        
    cout<<"\nXuat ma tran "<<k<<" : "<<endl;
        
    cout<<"\n";
        for(
    i=1;i<=n;i++)
        {
            for(
    j=1;j<=m;j++)
            {
                
    cout<<setw(4)<<A[i][j];
            }
            
    cout<<"\n\n";
        }
    }

    void nhan2mt(int A[100][100],int B[100][100],int C[100][100],int n,int m)
    {
        
    int i,h,k;
        for(
    i=1;i<=n;i++)
        {
            for(
    h=1;h<=n;h++)
                for(
    k=1;k<=m;k++){
                    
    C[i][h]+=A[i][k]*B[k][h];
                }
        }
    }

    void main()
    {
        
    int n,m;
        
    int A[100][100],B[100][100];
        
    cout<<"Nhap hang, cot : ";
        
    cin>>n>>m;
        
    nhap(A,'A',n,m);
        
    nhap(B,'B',m,n);
        
    xuat(A,'A',n,m);
        
    xuat(B,'B',m,n);
        
    nhan2mt(A,B,C,n,m);
        
    cout<<"\nA * B = C"<<endl;
        
    xuat(C,'C',n,n);
    }
    lebinhvhit03a thích bài này.

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí