Announcement

Collapse
No announcement yet.

[JS] Gặp lỗi trong hàm tính tổng 2 ma trận

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [JS] Gặp lỗi trong hàm tính tổng 2 ma trận

    Mới tập tành nghịch JS thì gặp lỗi này:
    PHP Code:
    function Calc(m1,m2,n)
        {
            var 
    m=Array(Array(),Array());
            var 
    i,j;
            for(
    i=0;i<n;++i)
            {
                for (
    j=0;j<n;++j
                {
                    
    m[i][j]=parseInt(m1[i][j])+parseInt(m2[i][j]);
                    
    document.write(m[i][j]+"  ");
                }            
                
    document.write("<br/>");
            }
        } 
    Hàm tính tổng 2 ma trận vuông m1 và m2 có n hàng và n cột.
    Ở vòng lặp với i bằng 0 và 1 thì
    PHP Code:
    m[i][j]=parseInt(m1[i][j])+parseInt(m2[i][j]); 
    được thực thi (có nghĩa là nếu n=2 thì hàm chạy bình thường), nhưng với i>1 thì nó không làm nữa, vòng lặp tự động thoát (n=3 trở đi thì nó chỉ in được 2 dòng đầu >"<).
    Mong nhận được giúp đỡ :love:
    Last edited by 11520132; 27-12-2012, 14:44.


  • #2
    :sexy::nose::stick::go:

    Comment


    • #3
      Originally posted by 11520045 View Post
      :sexy::nose::stick::go:
      Đang hóng sự giúp đỡ, kiểu này dễ bị cho ra đảo lắm ớ >"<

      Comment


      • #4
        up dùm mà còn la!

        Comment


        • #5
          Nếu bạn chưa test được thì đưa thêm cái input mà bạn gặp lỗi nữa, test cho dễ.

          Comment


          • #6
            Code:
            <!DOCTYPE html>
            <html>
            <head>
            <script>
            var n = 3;
            var m1 =[[1,2,6],
                    [3,4,8],
                    [5,6,9]];
            var m2 =[[1,2,6],
                    [3,4,8],
                    [5,6,9]];
                    
            function Calc(m1,m2,n)
                {
                   [COLOR=#ff0000] var m= new Array(n);
                    for(var i = 0; i < n ; i++)
                        m[i] = new Array(n);[/COLOR]
                    var i,j;
                    for(i=0;i<n;++i)
                    {
                        for (j=0;j<n;++j) 
                        {
                            m[i][j]=parseInt(m1[i][j])+parseInt(m2[i][j]);
                            document.write(m[i][j]+"  ");
                        }            
                        document.write("<br/>");
                    }
                }  
            Calc(m1,m2,n);
            </script>
            </head>
            <body>
            <p> START</p>
            </body>
            </html>
            Tui cũng lò dò, chỉ sửa lại cái phần khai báo mảng 2 chiều m, thấy chạy ổn, tui tìm hoài mà không thấy cách khai báo mảng 2 chiều nào như ông :shock:.
            Last edited by 11520246; 27-12-2012, 19:37. Reason: thẻ PHP chết tiệt
            Thân Lãng Tử Phiêu Du Theo Ngàn Gió,
            Chốn Phiêu Hồng Buông Kiếm Tựa Hồng Nhan

            Đời Đạo Gian

            Comment


            • #7
              Code:
              function Calc(m1,m2,n)
                  {
                      [COLOR="#FF0000"]var m=Array(Array(),Array());[/COLOR]
                      var i,j;
                      for(i=0;i<n;++i)
                      {
                          for (j=0;j<n;++j) 
                          {
                              m[i][j]=parseInt(m1[i][j])+parseInt(m2[i][j]);
                              document.write(m[i][j]+"  ");
                          }            
                          document.write("<br/>");
                      }
                  }
              Chỗ khai báo mảng bị sai. Theo cách khai báo mảng của anh thì mảng m sẽ chỉ có dạng m[2][]. Vì khi khai báo m=Array(Array(),Array()) thì nghĩa là đầu tiên anh khai báo 1 mảng có 2 phần tử với mỗi phần tử đó là 1 mảng khác. Do đó số cột vẫn đúng vì khai báo mảng ko định độ dài nhưng số hàng thì chỉ tối đa là 2 vì m=Array(x,y)
              Last edited by 12520238; 30-12-2012, 19:00.
              Khi ta chào đời, ta khóc mọi người cười
              Sống sao để khi chết đi ta cười còn mọi người khóc.


              Cuộc đời chỉ đáng sống khi còn bạn bè, người thân và quan trọng nhất là ta còn có thể đem lại niềm vui cho người khác

              Comment


              • #8
                Originally posted by 12520238 View Post
                [CODE]

                Chỗ khai báo mảng bị sai. Theo cách khai báo mảng của anh thì mảng m sẽ chỉ có dạng m[2][]. Vì khi khai báo m=Array(Array(),Array()) thì nghĩa là đầu tiên anh khai báo 1 mảng có 2 phần tử với mỗi phần tử đó là 1 mảng khác. Do đó số cột vẫn đúng vì khai báo mảng ko định độ dài nhưng số hàng thì chỉ tối đa là 2 vì m=Array(x,y)
                Chuẩn! Phúc đáp rất rõ. Tưởng đâu topic bị lãng quên rùi chứ. Trích:
                Ma trận mxn là tập hợp mảng một chiều (dòng,m), với mỗi phần tử của mảng một chiều đó là một ma trận khác (cột, n).
                :hungry:
                Thân Lãng Tử Phiêu Du Theo Ngàn Gió,
                Chốn Phiêu Hồng Buông Kiếm Tựa Hồng Nhan

                Đời Đạo Gian

                Comment

                LHQC

                Collapse
                Working...
                X