Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Giúp các bé đáng thương ấy với

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Tuyển uploader dự án Safeshared có thu nhập

Ngập tràn ưu đãi cho tín đồ công nghệ tại sony show 2014

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tuyển Mod box Mobile
Trang 1/2 1 2 cuốicuối
kết quả từ 1 tới 15 trên 27
  1. #1
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default Viết chương trình nhân 2 ma trận !!! help me

    Viết chương tình nhân 2 ma trận : nxn
    * Yêu cầu : Sử dụng quy tắc viết mã hiệu quả. Mảng khai báo tĩnh
    - Modun hóa : Dùng các chương trình con cần thiết
    - Viết chú giải hợp lý
    - Truy nhập bộ nhớ
    - Đặt tên biến dễ nhớ, nhất quán
    Chương tình viết trên C hoặc C++
    Các bác nói rõ cho e hiểu mấy cái yêu cầu kia với. Em mới học nên không hiểu rõ lắm.

  2. Có 1 thành viên cảm ơn ngocdam92 cho bài viết này:
    tunh2011 (18-02-2012)

  3. #2
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.130/2.750 bài viết

    Default

    Viết chương tình nhân 2 ma trận : nxn
    * Yêu cầu : Sử dụng quy tắc viết mã hiệu quả. Mảng khai báo tĩnh
    -> khai báo bình thường, ví dụ như int matran[][]; hay là float matran[][];...

    - Modun hóa : Dùng các chương trình con cần thiết
    -> chia ra thành các chương trình con (các hàm) nhập ma trận, xuất ma trận, nhân ma trận, ...

    - Viết chú giải hợp lý
    -> lệnh nào hay vòng lặp nào chủ chốt của thuật toán thì viết chú thích bên cạnh là.. lệnh đó dùng để làm gì,..... các lệnh đơn giản quá thì bỏ qua

    - Truy nhập bộ nhớ

    - Đặt tên biến dễ nhớ, nhất quán
    -> ví dụ khai báo ma trận thì đặt tên matran[][];, số dòng và số cột thì khai báo int soDong,soCot;,.....
    để cho người đọc nhìn tên biến thì biết ngay là nó dùng để làm gì. Đặt tên theo quy ước chung, ví dụ như biến số cột viết hoa hết SOCOT, thì biến số dòng cũng nên tương tự vậy SODONG,...
    Nhưng cũng ko nên đặt tên quá dài


    Chương tình viết trên C hoặc C++

  4. Có 3 thành viên cảm ơn Tung_Huynh cho bài viết này:
    canphongbang23 (23-02-2013), minhbn93 (24-02-2013), ngocdam92 (15-02-2012)

  5. #3
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default

    thế cái phần truy nhập bộ nhớ thì sao hả bạn ???

  6. #4
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.130/2.750 bài viết

    Default

    Ý đấy mình cũng chả hiểu, câu đấy ko rõ ràng

  7. #5
    tranhuyhoang.nd's Avatar
    tranhuyhoang.nd vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Oct 2011
    Bài
    109
    Cảm ơn
    76
    Điểm
    19/14 bài viết

    Default

    của bạn đây
    cái này cho c++ với ma trận vuông cấp n,

    #include<iostream.h>
    #include<math.h>
    #include<iomanip.h>
    int main()
    {
    int a[10][10],b[10][10],tong[10][10],tich[10][10],i,j,h,c,k;
    cout<<"nhap so hang ";cin>>h;
    cout<<"nhap so cot ";cin>>c;
    for (i=1;i<=h;i++)//nhap ma tran a
    for (j=1;j<=c;j++)
    {
    cout<<"a["<<i<<","<<j<<"]=";
    cin>>a[i][j];

    }
    for (i=1;i<=h;i++)//nhap ma tran b
    for (j=1;j<=c;j++)
    {

    cout<<"b["<<i<<","<<j<<"]=";
    cin>>b[i][j];
    }
    for (i=1;i<=h;i++)
    for (j=1;j<=c;j++)
    tong[i][j]=a[i][j]+b[i][j];

    for (i=1;i<=h;i++)//dua ra ma tran a
    for (j=1;j<=c;j++)
    {
    if (j==1) cout<<endl;
    cout<<setw(5)<<a[i][j];

    }
    cout<<endl;
    cout<<setw(4)<<"
    "<<endl;

    for (i=1;i<=h;i++)//dua ra ma tran b
    for (j=1;j<=c;j++)
    {
    if (j==1) cout<<endl;
    cout<<setw(5)<<b[i][j];

    }

    cout<<endl;
    for (i=1;i<=h;i++)//nhan 2 ma tran
    for (j=1;j<=c;j++)
    {
    tich[i][j]=0;
    for (k=1;k<=h;k++)
    tich[i][j]+=a[i][k]*b[k][j];
    }
    for (i=1;i<=h;i++)
    for (j=1;j<=c;j++)
    {
    if(j==1) cout<<endl;
    cout<<setw(5)<<tich[i][j];
    cout<<endl;
    }
    return 0;
    }

  8. Có 4 thành viên cảm ơn tranhuyhoang.nd cho bài viết này:
    canphongbang23 (23-02-2013), htn9937 (19-02-2012), ngocdam92 (16-02-2012), tunh2011 (18-02-2012)

  9. #6
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.130/2.750 bài viết

    Default

    Trích tranhuyhoang.nd View Post
    của bạn đây
    cái này cho c++ với ma trận vuông cấp n,

    #include<iostream.h>
    #include<math.h>
    #include<iomanip.h>
    int main()
    {
    int a[10][10],b[10][10],tong[10][10],tich[10][10],i,j,h,c,k;
    cout<<"nhap so hang ";cin>>h;
    cout<<"nhap so cot ";cin>>c;
    for (i=1;i<=h;i++)//nhap ma tran a
    for (j=1;j<=c;j++)
    {
    cout<<"a["<<i<<","<<j<<"]=";
    cin>>a[i][j];

    }
    for (i=1;i<=h;i++)//nhap ma tran b
    for (j=1;j<=c;j++)
    {

    cout<<"b["<<i<<","<<j<<"]=";
    cin>>b[i][j];
    }
    for (i=1;i<=h;i++)
    for (j=1;j<=c;j++)
    tong[i][j]=a[i][j]+b[i][j];

    for (i=1;i<=h;i++)//dua ra ma tran a
    for (j=1;j<=c;j++)
    {
    if (j==1) cout<<endl;
    cout<<setw(5)<<a[i][j];

    }
    cout<<endl;
    cout<<setw(4)<<"
    "<<endl;

    for (i=1;i<=h;i++)//dua ra ma tran b
    for (j=1;j<=c;j++)
    {
    if (j==1) cout<<endl;
    cout<<setw(5)<<b[i][j];

    }

    cout<<endl;
    for (i=1;i<=h;i++)//nhan 2 ma tran
    for (j=1;j<=c;j++)
    {
    tich[i][j]=0;
    for (k=1;k<=h;k++)
    tich[i][j]+=a[i][k]*b[k][j];
    }
    for (i=1;i<=h;i++)
    for (j=1;j<=c;j++)
    {
    if(j==1) cout<<endl;
    cout<<setw(5)<<tich[i][j];
    cout<<endl;
    }
    return 0;
    }
    Để cho ng` ta tự làm chứ, chưa gì đã phang ngay code vào vậy bạn!
    Ng` ta có yêu cầu đâu

  10. Có 3 thành viên cảm ơn Tung_Huynh cho bài viết này:
    htn9937 (19-02-2012), ngocdam92 (16-02-2012), tranhuyhoang.nd (17-02-2012)

  11. #7
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default

    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
    main()
    {
    int *A, *B, *C;
    int i, j, n,k;
    printf("\n Bac cua ma tran la : ");
    scanf("%d",&n);
    //cap phat vung nho cho ma tran A
    A = (int *) malloc (n *n *sizeof(int));
    //nhap ma tran A
    for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    {
    printf("A[%d][%d]",i,j);
    scanf("%d",A+i*n+j);
    }
    // In ma tran A
    printf("\n Ma tran A :\n");
    for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
    printf("%p %d ",A+i*n+j,*(A+i*n+j));
    printf("\n");
    }
    //cap phat vung nho cho ma tran B
    B = (int *) malloc (n *n *sizeof(int));
    //nhap ma tran B
    for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    {
    printf("B[%d][%d]",i,j);
    scanf("%d",B+i*n+j);
    }
    // In ma tran B
    printf("\n Ma tran B :\n");
    for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
    printf("%p %d ",B+i*n+j,*(B+i*n+j));
    printf("\n");
    }
    //cap phat vung nho cho ma tran C
    C = (int *) malloc (n *n *sizeof(int));
    //tinh ma tran C
    for (i=0;i<n;i++)
    {for (j=0;j<n;j++)
    *(C+i*n+j)=0;
    for (k=0;k<n;k++)
    *(C+i*n+j)=(*(A+i*n+k))*(*(B+k*n+j));
    }
    // In ma tran C
    printf("\n Tich cua 2 ma tran la :\n");
    for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
    printf("%p %d ",C+i*n+j,*(C+i*n+j));
    printf("\n");
    }
    }
    Các bác tìm chỗ sai hộ em cái !!! Hiz cái này là 2 ma trận cấp phát động

  12. #8
    19-6's Avatar
    19-6 vẫn chưa có mặt trong diễn đàn Moderator
    Tham gia
    Sep 2008
    Đến từ
    Abyss
    Bài
    1.904
    Cảm ơn
    858
    Điểm
    3.417/1.515 bài viết

    Default

    Trích ngocdam92 View Post
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
    main()
    {
    	int *A, *B, *C;
    	int i, j, n,k;
    	printf("\n Bac cua ma tran la : ");
    	scanf("%d",&n);
    	//cap phat vung nho cho ma tran A
    	A = (int *) malloc (n *n *sizeof(int));
    	//nhap ma tran A
    	for (i=0;i<n;i++)
    	for (j=0;j<n;j++)
    	{
    		printf("A[%d][%d]",i,j);
    		scanf("%d",A+i*n+j);
    	}
    	// In ma tran A
    	printf("\n Ma tran A :\n");
    	for (i=0;i<n;i++)
    	{
    	for (j=0;j<n;j++)
    	printf("%p %d  ",A+i*n+j,*(A+i*n+j));
    	printf("\n");
    	}
    		//cap phat vung nho cho ma tran B
    	B = (int *) malloc (n *n *sizeof(int));
    	//nhap ma tran B
    	for (i=0;i<n;i++)
    	for (j=0;j<n;j++)
    	{
    		printf("B[%d][%d]",i,j);
    		scanf("%d",B+i*n+j);
    	}
    	// In ma tran B
    	printf("\n Ma tran B :\n");
    	for (i=0;i<n;i++)
    	{
    	for (j=0;j<n;j++)
    	printf("%p %d  ",B+i*n+j,*(B+i*n+j));
    	printf("\n");
    	}
    	//cap phat vung nho cho ma tran C
    	C = (int *) malloc (n *n *sizeof(int));
    	//tinh ma tran C
    	for (i=0;i<n;i++)
    	{for (j=0;j<n;j++)
    	*(C+i*n+j)=0;
    	for (k=0;k<n;k++)
    	*(C+i*n+j)=(*(A+i*n+k))*(*(B+k*n+j));
    	}
    	// In ma tran C
    	printf("\n Tich cua 2 ma tran la :\n");
    	for (i=0;i<n;i++)
    	{
    	for (j=0;j<n;j++)
    	printf("%p %d  ",C+i*n+j,*(C+i*n+j));
    	printf("\n");
    	}
    }
    Các bác tìm chỗ sai hộ em cái !!! Hiz cái này là 2 ma trận cấp phát động
    Sửa lại đoạn nhân ma trận như sau
    Code:
    	
    for (i=0;i<n;i++)
     for (j=0;j<n;j++)
     {
        *(C+i*n+j)=0;
        for (k=0;k<n;k++)
          *(C+i*n+j)+=(*(A+i*n+k))*(*(B+k*n+j));
     }


  13. Có 3 thành viên cảm ơn 19-6 cho bài viết này:
    canphongbang23 (23-02-2013), htn9937 (19-02-2012), ngocdam92 (16-02-2012)

  14. #9
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default

    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
    main()
    {
    int **A;
    int row, col, i, j;
    printf("\n So hang : ");
    scanf("%d",&row);
    printf("\n So cot :");
    scanf("%d",&col);
    //Cap phat vung nho cho 2 mang
    *A = (int *) malloc (row *sizeof(int));
    for (i=0;i<row;i++)
    *(A+i) = (int *) malloc (col *sizeof(int));
    //Nhap mang 1
    for (i=0;i<row;i++)
    for (i=0;i<col;i++)
    {
    printf("\n M1[%d][%d]",i,j);
    scanf("%d",*(A+i)+j);
    }
    //In mang
    printf("\n Mang 1 : ");
    for (i=0;i<row;i++)
    {
    for (i=0;i<col;i++)
    printf("%p %d ",*(A+i)+j,*(*(A+i)+j));
    printf("\n");
    }
    }

    Các bác xem hộ e cái này nữa !!! Hiz lúc run nó chỉ cho nhập hàng với cột song là tắt luôn !!!

  15. #10
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.130/2.750 bài viết

    Default

    Trích ngocdam92 View Post
    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
    main()
    {
    int **A;
    int row, col, i, j;
    printf("\n So hang : ");
    scanf("%d",&row);
    printf("\n So cot :");
    scanf("%d",&col);
    //Cap phat vung nho cho 2 mang
    *A = (int *) malloc (row *sizeof(int));
    for (i=0;i<row;i++)
    *(A+i) = (int *) malloc (col *sizeof(int));
    //Nhap mang 1
    for (i=0;i<row;i++)
    for (i=0;i<col;i++)
    {
    printf("\n M1[%d][%d]",i,j);
    scanf("%d",*(A+i)+j);
    }
    //In mang
    printf("\n Mang 1 : ");
    for (i=0;i<row;i++)
    {
    for (i=0;i<col;i++)
    printf("%p %d ",*(A+i)+j,*(*(A+i)+j));
    printf("\n");
    }
    }

    Các bác xem hộ e cái này nữa !!! Hiz lúc run nó chỉ cho nhập hàng với cột song là tắt luôn !!!
    Thêm getch(); vào cuối main

  16. Có 1 thành viên cảm ơn Tung_Huynh cho bài viết này:
    htn9937 (19-02-2012)

  17. #11
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default

    Trích Tung_Huynh View Post
    Thêm getch(); vào cuối main
    mình dùng C-Free 5 nên không cần getch()

  18. #12
    monkeyhd1992's Avatar
    monkeyhd1992 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    May 2011
    Bài
    9
    Cảm ơn
    0
    Điểm
    0/0 bài viết

    Default

    nếu mình muốn nhân 2 ma trận bất kì thì phải làm như thế nào?
    hai ca'ch
    Thay đổi nội dung bởi monkeyhd1992; 18-02-2012 lúc 20:46.

  19. #13
    monkeyhd1992's Avatar
    monkeyhd1992 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    May 2011
    Bài
    9
    Cảm ơn
    0
    Điểm
    0/0 bài viết

    Default

    Trích monkeyhd1992 View Post
    dùng devcpp c thì thêm getch() la chạy được.
    bài viết rất được nhưng nếu mình muốn nhân 2 ma trận bất kì thì phải làm như thế nào?
    minh lam the nay co dc ko?
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    float a[20][20];
    float b[20][20];
    float c[20][20];
    int ma,na,mb,nb;
    void init(){
    int i,j;
    float tg;
    printf("Nhap so hang, so cot ma tran A: ");
    scanf("%d%d",&ma,&na);
    for(i=1;i<=ma;i++)
    for (j=1;j<=na;j++)
    {
    printf("Nhap du lieu cho phan tu a[%d][%d] ",i,j);
    scanf("%f",&tg);
    a[i][j]=tg;
    }
    printf("Nhap so hang, so cot ma tran B:");
    scanf("%d%d",&mb,&nb);
    if (na!=mb)
    printf("Khong nhan duoc 2 ma tran nay\n");
    else {
    for(i=1;i<=mb;i++)
    for (j=1;j<=nb;j++)
    {
    printf("Nhap du lieu cho phan tu b[%d][%d] ",i,j);
    scanf("%f",&tg);
    b[i][j]=tg;
    }
    }
    }
    void nhan()
    {
    int i,j,t;
    for(i=1;i<=ma;i++)
    for (j=1;j<=nb;j++)
    {
    c[i][j]=0;
    for (t=1;t<=na;t++)
    c[i][j]=c[i][j]+a[i][t]*b[t][j];
    }
    }
    void inkq()
    {
    int i,j;
    for(i=1;i<=ma;i++)
    {
    for (j=1;j<=nb;j++)
    printf("%10.2f",c[i][j]);
    printf("\n");
    }
    }
    int main(int argc, char *argv[])
    {
    init();
    if (na==mb)
    {
    nhan();
    inkq();
    }
    system("PAUSE");
    return 0;
    }

  20. #14
    ngocdam92's Avatar
    ngocdam92 vẫn chưa có mặt trong diễn đàn Búa Đá
    Tham gia
    Feb 2011
    Bài
    54
    Cảm ơn
    20
    Điểm
    14/10 bài viết

    Default

    Trích monkeyhd1992 View Post
    minh lam the nay co dc ko?
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    float a[20][20];
    float b[20][20];
    float c[20][20];
    int ma,na,mb,nb;
    void init(){
    int i,j;
    float tg;
    printf("Nhap so hang, so cot ma tran A: ");
    scanf("%d%d",&ma,&na);
    for(i=1;i<=ma;i++)
    for (j=1;j<=na;j++)
    {
    printf("Nhap du lieu cho phan tu a[%d][%d] ",i,j);
    scanf("%f",&tg);
    a[i][j]=tg;
    }
    printf("Nhap so hang, so cot ma tran B:");
    scanf("%d%d",&mb,&nb);
    if (na!=mb)
    printf("Khong nhan duoc 2 ma tran nay\n");
    else {
    for(i=1;i<=mb;i++)
    for (j=1;j<=nb;j++)
    {
    printf("Nhap du lieu cho phan tu b[%d][%d] ",i,j);
    scanf("%f",&tg);
    b[i][j]=tg;
    }
    }
    }
    void nhan()
    {
    int i,j,t;
    for(i=1;i<=ma;i++)
    for (j=1;j<=nb;j++)
    {
    c[i][j]=0;
    for (t=1;t<=na;t++)
    c[i][j]=c[i][j]+a[i][t]*b[t][j];
    }
    }
    void inkq()
    {
    int i,j;
    for(i=1;i<=ma;i++)
    {
    for (j=1;j<=nb;j++)
    printf("%10.2f",c[i][j]);
    printf("\n");
    }
    }
    int main(int argc, char *argv[])
    {
    init();
    if (na==mb)
    {
    nhan();
    inkq();
    }
    system("PAUSE");
    return 0;
    }
    đề bài yêu cầu là phải dùng cấp phát động !!!

  21. #15
    tamt's Avatar
    tamt vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Dec 2007
    Bài
    24
    Cảm ơn
    28
    Điểm: 1/1 bài viết

    Default

    %p là định dạng j thế các bác?

 

 
Trang 1/2 1 2 cuốicuối

Quyền sử dụng

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể tự sửa bài viết của mình
  •