Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Lỗi về nhập ,tính tổng tích của ma trận bằng con trỏ!

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Mặc định Lỗi về nhập ,tính tổng tích của ma trận bằng con trỏ!

    Các bạn xem hộ minh CODE sau.Nó chỉ nhập 1 ma trận, không display cái ma trận đấy luôn.Hàm tổng và tích cũng không tính được!Đưa lên để mọi người tìm lỗi hộ mình với!Thank trước nhe!

    PHP Code:
    #include <iostream.h>
    #include <conio.h>
    #include <fstream.h>

    class Matrix
    {
        private:
            
    int hang,cot;
            
    float **giatri;
        public:
            
    Matrix();
            
    Matrix(char *tentep);
            
    void Display();
            
    void Hieu(Matrix a,Matrix b);
            
    void Tich(Matrix a,Matrix b);
    };
    Matrix::Matrix()
    {
        
    cout<<endl<<"Hay nhap so hang va so cot cua ma tran: ";
        
    cin>>hang>>cot;
        
    giatri = new float*[hang];

        for(
    int i=0;i<hang;i++)


           for(
    int j=0;j<cot;j++)
          {
             
    cout<<endl<<"giatri ["<<i<<"]["<<j<<"] = ";
             
    cin>>giatri[i][j];
          }
    }
    /*Matrix::Matrix(char *tentep)
    {
        fstream fin(tentep,ios::in);
        fin>>hang;fin>>cot;
        giatri=new float*[hang];
        for(int i=0;i<hang;i++)
           for(int j=0;j<cot;j++)
           fin>>giatri[i][j];
        fin.close();
    }*/
    void Matrix::Hieu(Matrix a,Matrix b)
    {
        for (
    int i=1;i<=hang;i++)
            for (
    int j=1;j<=cot;j++)
                
    giatri[i][j]=a.giatri[i][j]-b.giatri[i][j];
    }

    void Matrix::Tich(Matrix a,Matrix b)
    {
        if (
    a.cot!=b.hangcout<<"Khong Tinh Dc";
                else
                for (
    int i=1;i<=a.hang;i++)
                    for (
    int j=1;j<=b.cot;j++)
                        for(
    int k=1;k<=a.cot;k++)
                            
    giatri[i][j]=giatri[i][j]+a.giatri[i][k]*b.giatri[k][j];
    }
    void Matrix::Display()
    {
        for(
    int i=0;i<hang;i++)
           for(
    int j=0;j<cot;j++)
          {
             
    cout<<giatri[i][j]<<"   ";
             
    cout<<"\n";
          }
           
    cout<<"\n";
    }

    int main()
    {
        
    Matrix A,B,C;
        
    //A.Matrix();
        //B.Matrix();
        
    C.Hieu(A,B);
        
    cout<<"ma Tran trong";
        
    C.Display();
        
    C.Tich(A,B);
        
    cout<<"Ma tran thich:";
        
    C.Display();
        
    //Matrix B("E:\\TC\\BIN\\matrix.txt");



  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Khoan nói các hàm khác, hàm tạo và hàm hủy làm chưa đc., còn sai thì làm mấy hàm kia làm gì ?
    code ra gió bão

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    Khoan nói các hàm khác, hàm tạo và hàm hủy làm chưa đc., còn sai thì làm mấy hàm kia làm gì ?
    Mình biết sai những chỗ đó nhưng không edit được nên nhờ các bạn!Chắc là do lỗi cấp phát động.Mình đôi khi vẫn hay gặp khó khăn về cái constructor và destructor!

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    336
    code ra gió bão

  5. #5
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Chơi mảng hai chiều cho lành . pointer làm cái gì cho nó khó nhìn ra. Mà sao class Matrix lại kiêm luôn mấy vụ nhập dữ liệu thế kia?. Thế nhỡ có bạn nào muốn lấy cái class của cậu dùng trong winform thì sao?. Cái ấy làm gì có console?, hay có bạn nào lại thích nhập từ một nguồn khác, display ra chỗ khác thì chịu à?.

    Edit:
    Ơ mà làm gì có destructor mà sai?.
    Đã được chỉnh sửa lần cuối bởi NamVoDang : 28-09-2008 lúc 05:12 PM.
    Phá toái hư không - Bạch nhật thăng thiên.

  6. #6
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Mặc định Lỗi về nhập ,tính tổng tích của ma trận bằng con trỏ!

    Ở diễn đàn mình không có nút Thanks nhỉ!Cám ơn bác 6220119 nhé!Nhưng bác có thể chỉ ra lỗi và edit hộ em được không!Em muốn biết mình sai ở đâu!

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi NamVoDang Xem bài viết
    Mà sao class Matrix lại kiêm luôn mấy vụ nhập dữ liệu thế kia?.
    Em không hiểu ý bác!

  8. #8
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Có ngĩa là cái Matrix bản thân nó thuộc về toán học, nó chỉ nên lưu giữ liệu về cai matrix đó và thực hiện tính toán thôi. Nó không nên ôm đồm những cái không phải của nó. Câu code thế thì cái class đó chỉ dùng được trong cái chương trình này của cậu mà thôi, khả năng sử dụng không cao .
    Phá toái hư không - Bạch nhật thăng thiên.

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    @quangtrien : code của bạn sai nhiều quá, mình chỉ sửa cho nó chạy được thôi, bạn tự nâng cấp nó nha.

    C++ Code:
    1. #include <iostream.h>
    2. #include <conio.h>
    3. #include <fstream.h>
    4.  
    5. class Matrix
    6. {
    7.      private:
    8.           int hang,cot;
    9.           float **giatri;
    10.      public:
    11.           ~Matrix();
    12.           Matrix();
    13.           Matrix(char *tentep);
    14.           void Display();
    15.           void Hieu(Matrix &a,Matrix &b);
    16.           void Tich(Matrix &a,Matrix &b);
    17. };
    18.  
    19. Matrix::~Matrix()
    20. {
    21.      for(int i=0;i<cot;i++)
    22.         delete giatri[i];
    23.     delete giatri;
    24. }
    25.  
    26. Matrix::Matrix()
    27. {
    28.      cout<<endl<<"Hay nhap so hang va so cot cua ma tran: ";
    29.      cin>>hang>>cot;
    30.      giatri = new float * [hang];
    31.  
    32.      for(int i=0;i<hang;i++)
    33.      {
    34.          giatri[i] = new float [cot];
    35.          for(int j=0;j<cot;j++)
    36.          {
    37.              cout<<endl<<"giatri ["<<i<<"]["<<j<<"] = ";
    38.              cin>>giatri[i][j];
    39.          }
    40.      }
    41. }
    42.  
    43. /*Matrix::Matrix(char *tentep)
    44. {
    45.     fstream fin(tentep,ios::in);
    46.     fin>>hang;fin>>cot;
    47.     giatri=new float*[hang];
    48.     for(int i=0;i<hang;i++)
    49.        for(int j=0;j<cot;j++)
    50.        fin>>giatri[i][j];
    51.     fin.close();
    52. }*/
    53.  
    54. void Matrix::Hieu(Matrix &a,Matrix &b)
    55. {
    56.     for (int i=0;i<hang;i++)
    57.         for (int j=0;j<cot;j++)
    58.             giatri[i][j]=a.giatri[i][j]-b.giatri[i][j];
    59. }
    60.  
    61. void Matrix::Tich(Matrix &a,Matrix &b)
    62. {
    63.     if (a.cot!=b.hang) cout<<"Khong Tinh Dc";
    64.             else
    65.             for (int i=0;i<hang;i++)
    66.                 for (int j=0;j<cot;j++)
    67.                 {
    68.                     giatri[i][j] = 0;
    69.                     for(int k=0;k<a.cot;k++)
    70.                       giatri[i][j] += a.giatri[i][k] * b.giatri[k][j];
    71.                 }
    72. }
    73. void Matrix::Display()
    74. {
    75.     for(int i=0;i<hang;i++)
    76.     {
    77.       for(int j=0;j<cot;j++)
    78.       {
    79.          cout<<giatri[i][j]<<"   ";
    80.       }
    81.       cout<<endl;
    82.     }
    83. }
    84.  
    85. int main()
    86. {
    87.     Matrix A,B, C;
    88.     //A.Matrix();
    89.     //B.Matrix();
    90.     C.Tich(A,B);
    91.     cout<<"Ma tran tich:"<<endl;
    92.     C.Display();
    93.     //Matrix B("E:\\TC\\BIN\\matrix.txt");
    94.  
    95.     return 1;
    96. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  10. #10
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi NamVoDang Xem bài viết
    Có ngĩa là cái Matrix bản thân nó thuộc về toán học, nó chỉ nên lưu giữ liệu về cai matrix đó và thực hiện tính toán thôi. Nó không nên ôm đồm những cái không phải của nó. Câu code thế thì cái class đó chỉ dùng được trong cái chương trình này của cậu mà thôi, khả năng sử dụng không cao .
    Bạn có thể nói rõ hơn không!Theo cậu đặc trưng của ma trận trong toán học gồm những gì?Và khi xây dựng class về matrix cậu sẽ xây dựng nó gồm những cái gì?!" Khẳ năng sử dụng không cao" Mình cũng không rõ matrix sẽ ứng dụng nhiều trong những trường hợp nào!Cậu có thể lấy vài con ví dụ được không?Thank trước nhé!

    Thank bạn meoconlongvang nhiều nhé!

Các đề tài tương tự

  1. Tin tuổi trẻ - cập nhật thông tin giới trẻ hot và nóng
    Gửi bởi apolo1512 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 13-12-2013, 10:15 AM
  2. căn hộ N05 trần duy hưng, chung cư N05 trần duy hưng, chênh thấp nhất thị trường
    Gửi bởi ephat_tt86 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 13-01-2012, 10:36 AM
  3. Thảo luận về thuật toán tìm đường đi ngắn nhất (có chi phí ít nhất) trên ma trận
    Gửi bởi hunterphu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 10-08-2010, 12:05 AM
  4. website cập nhật nhiều laptop mới và hot nhất, bán trả góp thủ tục đơn giản
    Gửi bởi diemnt trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 02-07-2010, 03:23 PM

Quyền hạn của bạn

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