SlideShare a Scribd company logo
1 of 14
Download to read offline
Two Dimensional Arrays - 10                                         Computer Programming using Java               131
  CHAPTER                                            อาเรย์สองมิติ
      10                                        (Two Dimensional Arrays)
1. การประกาศและสร้ างอาเรย์ สองมิติ
1. การประกาศและสร้ างอาเรย์ สองมิตโดยใช้ Initialized List
                                            ิ
   การประกาศและสร้ างอาเรย์สองมิติโดยใช้ Initialized List เป็ นการสร้ างอาเรย์สองมิติแบบง่าย ซึงจะประกาศ
                                                                                                 ่
   ใช้ ได้ ก็ตอเมื่อทราบค่าทุกค่าที่จะเก็บลงไปในอาเรย์แล้ ว โดยมีรูปแบบคําสังดังนี ้
              ่                                                             ่         หลังชื่ออาเรย์ต้องมี
     <ประเภทข้ อมูล> <ชื่ออาเรย์>[][] = {{ สมาชิก ,..., สมาชิก },...};                     สัญลักษณ์ [][]

    เช่น   int num[][] = {{1,0},{2,1},{2,4}};            สามารถวาดเป็ นโครงสร้ างตารางได้ ดงนี ้
                                                                                           ั
      1      0       อาเรย์ num มีขนาด 3 x 2 ซึงประกอบไปด้ วย
                                               ่
                                                                   ในเซตใหญ่มีเซตย่อย 3 เซต นันคือมี 3 แถว
                                                                                              ่
      2      1         แถว (แนวนอน) จํานวน 3 แถว
                                                                   ในแต่ละเซตย่อยมีสมาชิก 2 ค่า นันคือมี 2 หลัก
                                                                                                  ่
      2      4         หลัก (แนวตัง) จํานวน 2 หลัก
                                   ้

โจทย์ ข้อที่ 1 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่อประกาศและสร้ างอาเรย์ สองมิตโดยใช้ Initialized
                                                                                    ิ
List ตามรายละเอียดที่กาหนดให้ ต่อไปนี ้ (10 คะแนน)
                          ํ
1) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ a ขนาด 2 x 3 โดยให้ สมาชิกทุกตัวมีค่าเป็ น 0 (2 คะแนน)
                                    ิ



2) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ b ขนาด 5 x 2 โดยให้ สมาชิกทุกตัวมีค่าเป็ น 1 (2 คะแนน)
                               ิ



3) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ s ขนาด 3 x 1 โดยให้ สมาชิกทุกตัวเป็ นคําว่ า "Java" (2 คะแนน)
                               ิ



4) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ t ขนาด 1 x 3 โดยให้ สมาชิกทุกตัวเป็ นคําว่ า "Java" (2 คะแนน)
                               ิ



5) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ em ประเภทจํานวนจริง ขนาด 0 x 0 (2 คะแนน)
                               ิ



© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
132   Computer Programming using Java                                                       10 - Two Dimensional Arrays


  โจทย์ ข้อที่ 2 [ระดับง่ าย] จงวาดรปโครงสร้ างตารางของอาเรย์ สองมิตท่ ีกาหนดให้ ต่อไปนี ้ พร้ อมทังกํา-
                                    ู                               ิ ํ                            ้
  หนดค่ าให้ กับสมาชิกแต่ ละช่ องของตารางให้ ถกต้ อง (6 คะแนน)
                                              ู
  1) int m[][] = {{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}}; (2 คะแนน)
  2) int n[][] = {{1},{2,3},{3,4,5},{4,5,6,7}}; (2 คะแนน)
  3) int p[][] = {{1,2,3},{2,3},{3,4,5,6},{4},{5,6}}; (2 คะแนน)
         ข้ อที่ 1 อาเรย์   m[][]            ข้ อที่ 2 อาเรย์   n[][]                        ข้ อที่ 3 อาเรย์   p[][]




  2. การประกาศและสร้ างอาเรย์ สองมิตโดยการ new
                                      ิ
     การประกาศและการสร้ างอาเรย์สองมิตโดยการ new นี ้จะเป็ นวิธีแบบทัวไปที่ใช้ ในภาษาจาวา ซึงมีขนตอนดังนี ้
                                        ิ                            ่                      ่ ั้
     1) การประกาศตัวแปรอาเรย์สองมิติ
                                                                      จํานวนมิติให้ นบที่จํานวนคู่ของเครื่ องหมาย [] เช่น
                                                                                      ั
            <ประเภทข้ อมูล> <ชื่ออาเรย์>[][];
                                                                      ถ้ าเป็ นอาเรย์สองมิติจะต้ องมี [] จํานวน 2 คู่
                                                 a
          เช่น   int a[][];


       2) การสร้ างอาเรย์สองมิติ
                                           หลังชื่ออาเรย์ไม่ต้องมีเครื่ องหมาย [][]
          (1) สร้ างแถวของอาเรย์
            <ชื่ออาเรย์> = new <ประเภทข้ อมูล>[<ขนาดแถว>][];                               ภายใน [] คูที่สองไม่ต้องระบุค่า
                                                                                                           ่
                                                                                           ใดๆ (ให้ เว้ นว่างเอาไว้ )
                                                 a
          เช่น   a = new int[3][];
                                          [0]

                                          [1]
                                                                    สร้ างอาเรย์ a ให้ มีขนาดเป็ น 3 แถว แต่ยงไม่ระบุขนาด
                                                                                                             ั
                                          [2]
                                                                    ของหลัก (เว้ นว่างเอาไว้ )

          (2) สร้ างหลักหรื อคอลัมน์ของอาเรย์ (เริ่มสร้ างหลักของทุกแถว โดยเริ่มตังแต่แถวแรกจนถึงแถวสุดท้ าย)
                                                                                  ้
            <ชื่ออาเรย์>[<ตําแหน่งแถว>] = new <ประเภทข้ อมูล>[<ขนาดหลัก>];


          เช่น   a[0] = new int[3];
                                                 a          [0] [1] [2] [3]
                 a[1] = new int[2];       [0]                   0        0      0               แถวที่ 1 (ตําแหน่ง 0) มี 3 หลัก
                 a[2] = new int[4];
                                          [1]                   0        0                      แถวที่ 2 (ตําแหน่ง 1) มี 2 หลัก
                                          [2]                   0        0      0      0        แถวที่ 3 (ตําแหน่ง 2) มี 4 หลัก

  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                          Computer Programming using Java              133
    3) อาเรย์สองมิตที่ได้ หลังจากการประกาศและการสร้ างในขันตอนที่ 1 และ 2
                   ิ                                      ้
         a[0][0] a[0][1] a[0][2]                         ถ้ า ประกาศและสร้ างอาเรย์ แ บบแยกส่ ว นจะ
         a[1][0] a[1][1]                                 สามารถสร้ างอาเรย์ สองมิติที่บิดเบี ยว โดยที่มี
                                                                                             ้
                                                         จํานวนช่องของแถวแต่ละแถวไม่เท่ากัน
         a[2][0] a[2][1] a[2][2] a[2][3]

    4) การประกาศและการสร้ างอาเรย์สองมิตโดยรวมขันตอนที่ 1 และ 2 เข้ าด้ วยกัน (มี 2 วิธีให้ เลือกใช้ )
                                        ิ       ้
         <ประเภทข้ อมูล> <ชื่ออาเรย์>[][] = new <ประเภทข้ อมูล>[<ขนาดแถว>][<ขนาดหลัก>];                        หรื อ

         <ประเภทข้ อมูล> [][]<ชื่ออาเรย์> = new <ประเภทข้ อมูล>[<ขนาดแถว>][<ขนาดหลัก>];


        เช่น   int a[][] = new int[3][4];
                                                        เครื่ องหมาย [][] จะอยูหน้ าหรื อหลังชื่ออาเรย์ก็ได้
                                                                              ่
               int[][] a = new int[3][4];

        หมายเหตุ ขนาดแถวและขนาดหลักต้ องระบุเป็ นตัวเลขจํานวนเต็มเท่านัน
                                                                       ้
    5) ข้ อสังเกตในการประกาศและสร้ างอาเรย์สองมิติ
       ข้ อสังเกต        3 คือ ขนาดหรื อความยาวของแถว (ขนาดของมิตที่ 1) แถวคือช่องในแนวนอน
                                                                       ิ
                         4 คือ ขนาดหรื อความยาวของหลัก (ขนาดของมิตที่ 2) หลักคือช่องในแนวตัง้
                                                                         ิ
       อย่าสับสน         ตําแหน่งสมาชิกของอาเรย์ (สมาชิกตําแหน่งที่) เริ่มนับที่ 0
                         ลําดับสมาชิกของอาเรย์ (สมาชิกลําดับที่ / สมาชิกตัวที่) เริ่มนับที่ 1
       หมายเหตุ ถ้ าต้ องการอาเรย์แบบที่บดเบี ้ยวจะไม่สามารถประกาศและสร้ างอาเรย์แบบขันตอนที่ 4 นี ้ได้
                                           ิ                                                  ้
       ซึงจะต้ องใช้ การประกาศและสร้ างอาเรย์แบบแยกส่วนแทน
          ่
    6) อาเรย์สองมิตที่ได้ หลังจากการประกาศและการสร้ างในขันตอนที่ 4
                   ิ                                      ้
        a[0][0] a[0][1] a[0][2] a[0][3]
                                                        ถ้ าประกาศและสร้ างอาเรย์แบบรวมจะได้ อาเรย์สอง
         a[1][0] a[1][1] a[1][2] a[1][3]                มิติที่มีจํานวนช่องของแถวแต่ละแถวเท่ากันทุกแถว
         a[2][0] a[2][1] a[2][2] a[2][3]                โดยไม่มีการบิดเบี ้ยว


โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่อประกาศและสร้ างอาเรย์ ต่อไปนี ้ (12 คะแนน)
1) ประกาศและสร้ างอาเรย์ ช่ ือ matrix เป็ นเมตริกซ์ เก็บค่ าความจริงขนาด 5 x 8 (2 คะแนน)



2) ประกาศและสร้ างอาเรย์ ช่ ือ chess เพื่อสร้ างตารางหมากรุ ก (2 คะแนน)



© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
134   Computer Programming using Java                                           10 - Two Dimensional Arrays


  3) ประกาศและสร้ างอาเรย์ ช่ ือ tranMatrix เป็ นเมตริ กซ์ ประเภทจํานวนเต็มที่เกิดจากการทรานสโพส-
     ของเมตริกซ์ ขนาด 9 x 4 (2 คะแนน)



  4) ประกาศและสร้ างอาเรย์ ช่ ือ data เก็บคะแนนรวมของรายวิชา 2110101 ของนิสิต 300 คน โดยในแต่
     ละคนประกอบไปด้ วยคะแนนการบ้ าน คะแนนกลางภาค และคะแนนปลายภาค (2 คะแนน)



  5) สร้ างจํานวนช่ องของแถวลําดับที่ 8 ของอาเรย์ n ชนิดจํานวนเต็มที่ประกาศไว้ ก่อนหน้ านีแล้ ว ให้ มี
                                                                                          ้
     ตําแหน่ งสงสุดได้ ถงตําแหน่ งที่ 3 (2 คะแนน)
                ู       ึ



  6) สร้ างจํานวนช่ องของแถวตําแหน่ งที่ 4 ของอาเรย์ n ชนิดจํานวนเต็มที่ประกาศไว้ ก่อนหน้ านีแล้ ว ให้ มี
                                                                                             ้
     จํานวนช่ องทังหมด x2 + 1 ช่ อง (2 คะแนน)
                  ้



  โจทย์ ข้อที่ 4 [ระดับปานกลาง] จงเขียนเมท็อด getTable(…) เพื่อคืนค่ าตารางที่ใช้ สาหรั บเก็บปริมาณ
                                                                                    ํ
  นําฝนตังแต่ วันที่ 1 มกราคม ของ พ.ศ. ปั จจุบัน ถึงวันที่ 31 ธันวาคม ของ พ.ศ. ปั จจุบัน โดยแบ่ งการ
    ้      ้
  จัดเก็บออกเป็ น 12 เดือน และในแต่ ละเดือนก็แบ่ งตามจํานวนวันของเดือนนันๆ (12 คะแนน)
                                                                          ้




  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                            Computer Programming using Java                 135
3. การหาขนาดและความยาวของอาเรย์ สองมิติ
   การหาขนาดของอาเรย์สองมิติจะใช้ คําสัง .length เหมือนกับการหาขนาดของอาเรย์หนึ่งมิติแต่จะต้ องระบุ
                                         ่
   ตําแหน่งของแถวหรื อหลักที่ต้องการจะหาขนาดด้ วย
   1) การหาขนาดของแถว (ขนาดของมิตที่ 1)ิ
                                                                        [0]       [1]    [2]      [3]
          <ชื่ออาเรย์>.length                                    [0]     0         0       0       0

    2) การหาขนาดของหลัก (ขนาดของมิตท่ี 2)
                                   ิ                             [1]     0         0       0       0

          <ชื่ออาเรย์>[<ตําแหน่งแถว>].length                     [2]     0         0       0       0


    ตัวอย่างโปรแกรม
                                                                              ความยาวแถวของอาเรย์ a
     1        int[][] a = new int[3][4];
     2        System.out.println(a.length);                        3              ความยาวหลักของแถวตําแหน่งที่ 2
     3        System.out.println(a[0].length);                     4
     4        System.out.println(a[1].length);                     4              หรื อแถวที่ 3 ของอาเรย์ a
     5        System.out.println(a[2].length);                     4
     6        System.out.println(a[3].length);                     Error           ไม่มีแถวตําแหน่งที่ 3


4. การอ้ างอิงค่ า การกําหนดค่ า และการแสดงผลของอาเรย์ สองมิติ
   1) การอ้ างอิงค่าจากอาเรย์ มีรูปแบบคําสังดังนี ้
                                           ่
          <ประเภทข้ อมูล> <ชื่อตัวแปร> = <ชื่ออาเรย์>[<ตําแหน่งแถว>][<ตําแหน่งหลัก>];


         เช่น int n = num[0][0];
         (ให้ ตวแปร n ประเภทจํานวนเต็ม เก็บค่าจากอาเรย์ num แถวตําแหน่งที่ 0 และหลักตําแหน่งที่ 0)
               ั
    2) การกําหนดค่าลงไปในอาเรย์ มีรูปแบบคําสังดังนี ้
                                             ่
          <ชื่ออาเรย์>[<ตําแหน่งแถว>][<ตําแหน่งหลัก>] = <ค่าข้ อมูล>;


         เช่น   num[0][0] = 13; (ให้ อาเรย์ num แถวตําแหน่งที่ 0 และหลักตําแหน่งที่ 0 มีคาเท่ากับ 13)
                                                                                         ่
    3) การแสดงผลของอาเรย์ (สองมิติ) จะใช้ คําสัง for ซ้ อน for หรื อ while ซ้ อน while ในการเข้ าไปยัง
                                                  ่
       สมาชิกแต่ละตัวในอาเรย์ตงแต่สมาชิกตัวแรก (แถวตําแหน่งที่ 0 หลักตําแหน่งที่ 0) จนถึงสมาชิกตัวสุด-
                                  ั้
       ท้ าย (แถวตําแหน่งที่ length - 1 หลักตําแหน่งที่ length - 1) ดังตัวอย่างต่อไปนี ้
                                                                                               คําสัง for i วน
                                                                                                    ่
          1       int a[][] = new int[5][8];                                                   ตังแต่แถวแรกจนถึง
                                                                                                 ้
          2       for (int i = 0; i < a.length; i++) {
          3         for (int j = 0; j < a[i].length; j++) {                                    แถวสุดท้ าย
          4           a[i][j] = 13;
          5         }                                     คําสัง for j วนตังแต่หลักแรกจนถึง
                                                               ่           ้
          6       }
                        เริ่ มพิจารณาที่สมาชิกในแถวแต่และแถวของอาเรย์และตาม      หลักสุดท้ ายของแถวตําแหน่งที่ i ใดๆ
                        ด้ วยสมาชิกแต่ละตัว (แต่ละหลัก) ของอาเรย์ ณ แถวนันๆ
                                                                         ้

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
136   Computer Programming using Java                                           10 - Two Dimensional Arrays


  โจทย์ ข้อที่ 5 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่ออ้ างอิงและกําหนดค่ าจากอาเรย์ ต่อไปนี ้ (16 คะแนน)
  1) ให้ ตวแปร x เก็บข้ อมลประเภทจํานวนเต็มจากอาเรย์ num ตัวที่ 50 ของแถวตําแหน่ งที่ 51 (2 คะแนน)
           ั                   ู



  2) ให้ ตวแปร c เก็บข้ อมลประเภทอักขระจากอาเรย์ code ตําแหน่ งที่ 60 ของแถวที่ 10 (2 คะแนน)
          ั               ู



  3) ให้ ตวแปร var1 เก็บข้ อมลประเภทจํานวนเต็มจากอาเรย์ bank แถวที่ 1 หลักที่ 2 (2 คะแนน)
          ั                  ู



  4) ให้ ตวแปร var2 เก็บข้ อมลประเภทจํานวนจริงจากอาเรย์ bank ตัวสุดท้ ายของแถวที่ 2 (2 คะแนน)
          ั                  ู



  5) ให้ ค่าสมาชิกหลักที่ 5 แถวที่ 7 ของอาเรย์ code เท่ ากับค่ าจากตัวแปร x (2 คะแนน)



  6) ให้ ค่าสมาชิกตําแหน่ งที่ 9 ของแถวที่ 1 ของอาเรย์ sName เท่ ากับค่ าจากตัวแปร s1 (2 คะแนน)



  7) ให้ ค่าสมาชิกตัวที่ 3 ของแถวที่ 2 ของอาเรย์ sName เท่ ากับค่ าจากตัวแปร s2 (2 คะแนน)



  8) ให้ ค่าสมาชิกแถวสุดท้ ายและหลักสุดท้ ายของอาเรย์ a เท่ ากับค่ าจากตัวแปร y (2 คะแนน)




  โจทย์ ข้อที่ 6 [ระดับง่ าย] จงเขียนและเรี ยกใช้ เมท็อด setArray(…) ที่สมบรณ์ เพื่อรั บอาเรย์ สองมิตชนิด
                                                                            ู                         ิ
  จํานวนเต็มเข้ ามาหนึ่งตัว แล้ วกําหนดค่ าสมาชิกแต่ ละตัวของอาเรย์ ให้ มีค่าเท่ ากับผลคณของหมายเลข
                                                                                          ู
  แถวและหลักของช่ องนันๆ เช่ น อาเรย์ แถวที่ 3 หลักที่ 4 เก็บค่ า 12 (เกิดจาก 3 x 4) เป็ นต้ น (12 คะแนน)
                            ้
  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                        Computer Programming using Java          137
public class The2DArray {




   public static void main(String[] args) {




  } //End of main
} //End of class

โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนและเรี ยกใช้ เมท็อด isArrayEquals(…) ที่สมบรณ์ เพื่อรั บอาเรย์
                                                                                          ู
สองมิติชนิดจํานวนเต็ม 2 อาเรย์ ใดๆ เข้ ามาทางพารามิเตอร์ เพื่อใช้ ตรวจสอบว่ าอาเรย์ ทังสองเท่ ากัน
                                                                                              ้
หรื อไม่ โดยอาเรย์ ท่ รับเข้ ามาอาจจะเป็ นอาเรย์ แหว่ งที่มีจานวนหลักไม่ เท่ ากันทุกแถว (15 คะแนน)
                      ี                                      ํ
public class EqualityOf2DArray {




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
138   Computer Programming using Java                                           10 - Two Dimensional Arrays


      public static void main(String[] args) {




    } //End of main
  } //End of class


  โจทย์ ข้อที่ 8 [ระดับปานกลาง - ระดับยาก] อาเรย์ test เป็ นอาเรย์ สองมิตท่ ีจัดเก็บข้ อมลประเภทจํา-
                                                                                  ิ              ู
  นวนจริง 365 ค่ า ซึ่งเป็ นผลการทดลองทางด้ านวิศวกรรมศาสตร์ เป็ นระยะเวลา 1 ปี ซึ่งถกบันทึกไว้ ตังแต่
                                                                                               ู          ้
  วันที่ 1 กันยายน ปี นี ้ จนถึงวันที่ 31 สิงหาคม ปี หน้ า จงเขียนคลาส DataExperiment ให้ สมบูรณ์ เพื่อ
  เก็บบันทึกผลการทดลองดังกล่ าว พร้ อมทังคํานวณหาผลลัพธ์ ต่างๆ ตามเมท็อดดังต่ อไปนี ้ (50 คะแนน)
                                              ้
  1) เมท็อด max(…) คืนค่ าสงสุดของผลการทดลอง (8 คะแนน)
                               ู
  2) เมท็อด min(…) คืนค่ าตํ่าสุดของผลการทดลอง (8 คะแนน)
  3) เมท็อด middleRange(…) คืนค่ ากึ่งกลางพิสัยของผลการทดลอง (สูงสุด+ตํ่าสุด / 2) (8 คะแนน)
  4) เมท็อด meanOfMonth(…) คืนค่ าเฉลี่ยของผลการทดลองในแต่ ละเดือนตามเดือนที่ระบุ (8 คะแนน)
  5) เมท็อด dataOfDay(…) คืนค่ าผลการทดลองในแต่ ละวันตามวันและเดือนที่ระบุ (8 คะแนน)
  6) เมท็อด main(…) ประกาศและสร้ างอาเรย์ test ที่มีขนาด 12 แถวโดยแต่ ละแถวยาวเท่ ากับจํานวน
      วันของเดือนนันๆ โดยให้ แถวแรกเป็ นเดือนกันยายน แล้ วรั บค่ าจากแปนพิมพ์ เก็บลงไปในอาเรย์ ทุก
                      ้                                                       ้
      ช่ อง พร้ อมทังเรียกใช้ งานเมท็อดอื่นๆ ทุกเมท็อดที่น่ ี (กําหนดการเรี ยกใช้ ได้ อย่ างอิสระ) (10 คะแนน)
                    ้
  import java.util.Scanner;
  import jlab.graphics.DWindow;
  public class DataExperiment {
    public static double max(double t[][]) {




      } //End of max(…)

  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                        Computer Programming using Java          139
   public static double min(double t[][]) {




  } //End of min(…)

  public static double middleRange(double t[][]) {




   } //End of avgRange(…)

  public static double meanOfMonth(double t[][], int m) {




   } //End of meanOfMonth(…)

  public static double dataOfDay(double t[][], int d, int m) {




  } //End of dataOfDay(…)


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
140   Computer Programming using Java                                                    10 - Two Dimensional Arrays


      public static void main(String[] args) {




    } //End of main(…)
  } //End of Class


  โจทย์ ข้อที่ 9 [ระดับง่ าย – ระดับยาก] จงเขียนคลาส MatrixOperation เพื่อดําเนินการกับเมตริ กซ์ ซ่ ึงได้
  แก่ การบวกเมตริ กซ์ การคณเมตริ กซ์ และการทรานสโพสเมตริ กซ์ โดยมีรายละเอียดของเมท็อดต่ างๆ
                                ู
  ดังต่ อไปนี ้ (60 คะแนน)
                                                                                          ⎡0 2 4⎤
                                                                   ⎡3 6⎤                  ⎢      ⎥
                           ⎡1 3 5 9⎤                               ⎢   ⎥                   5 3 1⎥
  กําหนดให้ เมตริกซ์ a   = ⎢       ⎥                เมตริกซ์   b = ⎢4 8⎥   เมตริกซ์   c = ⎢
                                                                                          ⎢7 11 2⎥
                           ⎣2 6 4 3⎦                               ⎢1 0⎥
                                                                   ⎣   ⎦                  ⎢      ⎥
                                                                                          ⎣6 6 9⎦
                                                T
  กําหนดให้ เมตริกซ์ m   =   (2a )T × ⎛ 1 b ⎞
                                      ⎜     ⎟       −c
                                      ⎝4 ⎠

  import java.util.Scanner;
  public class MatrixOperation {
       //[ระดับปานกลาง] เขียนเมท็อด addMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งสองตัว
                                                        ู
       ใดๆ ขนาดเท่ ากันเข้ ามา แล้ วคํานวณหาผลบวกของสองเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน)
                                                                  ้        ้
  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                        Computer Programming using Java          141




    //[ระดับปานกลาง] เขียนเมท็อด mulScalarMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ ง
                                                                        ู
    หนึ่ งตัวและค่ าคงที่ท่ ีเป็ นจํานวนจริ งอีกหนึ่ งค่ า แล้ วคํานวณหาผลคณ ของเมตริ กซ์ และค่ าคงที่นัน
                                                                           ู                            ้
    พร้ อมทังคืนค่ ากลับ (10 คะแนน)
             ้




    //[ระดับยาก] เขียนเมท็อด transposeMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งเข้ ามา
                                                       ู
    แล้ วคํานวณหาผลการทรานสโพสของเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน)
                                            ้        ้




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
142   Computer Programming using Java                                           10 - Two Dimensional Arrays


       //[ระดับยาก] เขียนเมท็อด mulMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริงสองตัวใดๆ เข้ า
                                                  ู
       มาแล้ วคํานวณหาผลคณของสองเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน)
                           ู                ้        ้




       //[ระดับง่ าย] เขียนเมท็อด printMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งเข้ ามา แล้ ว
                                                      ู
       แสดงค่ าสมาชิกของเมตริกซ์ นันขึนบนจอภาพให้ สวยงาม (10 คะแนน)
                                   ้ ้




       //[ระดับง่ าย] เขียนเมท็อด main(…)ให้ สมบรณ์ โดยประกาศและสร้ างเมตริ กซ์ a, b และ c ที่
                                                           ู
       กําหนดให้ แบบ Initialized List พร้ อมทังคํานวณหาผลลัพธ์ ของเมตริกซ์ x โดยการเรี ยกใช้ งานเมท็อด
                                                       ้
       ต่ างๆ ที่ได้ สร้ างไว้ ก่อนหน้ านี ้ พร้ อมทังแสดงค่ าของเมตริกซ์ ทุกตัวขึนบนจอภาพ (10 คะแนน)
                                                     ้                            ้
       public static void main(String[] args) {




  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้
Two Dimensional Arrays - 10                                        Computer Programming using Java          143




   } //End of main
} //End of class


โจทย์ ข้อที่ 10 [ระดับยาก] จงเขียนเมท็อด splitRowOfMatrix(…)ที่สมบรณ์ เพื่อดึงสมาชิกทุกตัวของ
                                                                     ู
เมตริ กซ์ ท่ รับเข้ ามา ตามหมายเลขแถวที่ระบุ เช่ น a[][] = {{1,2}, {2,3,4}, {1,3,5,6}} จะได้
             ี
splitRowOfMatrix(a,1) = {1,2} และ splitRowOfMatrix(a,2) = {2,3,4} เป็ นต้ น แต่ ถ้าระบุ
หมายเลขแถวผิดพลาดจะได้ splitRowOfMatrix(a,4) = { } (10 คะแนน)




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
144   Computer Programming using Java                                           10 - Two Dimensional Arrays


  โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนเมท็อด splitColumnOfMatrix(…)ที่สมบรณ์ เพื่อดึงสมาชิกทุกตัว
                                                                           ู
  ของเมตริ กซ์ ท่ รับเข้ ามาตามหมายเลขหลักที่ระบุ เช่ น a[][] = {{1,2,2}, {2,3,4}, {1,3,5}} จะ
                  ี
  ได้ splitColumnOfMatrix(a,1) = {1,2,1} และ splitColumnOfMatrix(a,3) = {2,4,5} เป็ นต้ น
  แต่ ถ้าระบุหมายเลขหลักผิดพลาดจะได้ splitColumnOfMatrix(a,0) = { } โดยกําหนดให้ เมตริกซ์ ทุก
  แถวมีจานวนหลักที่เท่ ากัน (10 คะแนน)
          ํ




           Take Note




  © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                              ้

More Related Content

What's hot

บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงNaphamas
 
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์waradakhantee
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงdefeat overcome
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Wongyos Keardsri
 
Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Wongyos Keardsri
 
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริงKittinan Noimanee
 
Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Wongyos Keardsri
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 RecursionsWongyos Keardsri
 
ภาษาจาวา
ภาษาจาวาภาษาจาวา
ภาษาจาวาSanita Fakbua
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Wongyos Keardsri
 

What's hot (19)

Array 2
Array 2Array 2
Array 2
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
 
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
 
4
44
4
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
 
99
9999
99
 
งาน
งานงาน
งาน
 
Array1
Array1Array1
Array1
 
Chapter2
Chapter2Chapter2
Chapter2
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)
 
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
 
Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
Java-Chapter 08 Methods
Java-Chapter 08 MethodsJava-Chapter 08 Methods
Java-Chapter 08 Methods
 
ภาษาจาวา
ภาษาจาวาภาษาจาวา
ภาษาจาวา
 
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
 

Viewers also liked

How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramWongyos Keardsri
 
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsWongyos Keardsri
 
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsWongyos Keardsri
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File OperationsWongyos Keardsri
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingWongyos Keardsri
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Wongyos Keardsri
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsWongyos Keardsri
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsWongyos Keardsri
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมkorn27122540
 

Viewers also liked (11)

How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
 
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
 
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
 
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and Objects
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
 
IP address anonymization
IP address anonymizationIP address anonymization
IP address anonymization
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 

Similar to Java-Chapter 10 Two Dimensional Arrays

บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระMook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระMook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรMook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระMook Sasivimon
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ Areeya Onnom
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]Mook Sasivimon
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระAreeya Onnom
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริงPiyanouch Suwong
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3  ปีการศึกษา 2557เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3  ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557ครู กรุณา
 

Similar to Java-Chapter 10 Two Dimensional Arrays (17)

งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
Array2D
Array2DArray2D
Array2D
 
จำนวนจริง
จำนวนจริงจำนวนจริง
จำนวนจริง
 
Matrix1
Matrix1Matrix1
Matrix1
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
อาร์เรย์
อาร์เรย์อาร์เรย์
อาร์เรย์
 
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3  ปีการศึกษา 2557เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3  ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
งาน
งานงาน
งาน
 

More from Wongyos Keardsri

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsWongyos Keardsri
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingWongyos Keardsri
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemWongyos Keardsri
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IWongyos Keardsri
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsWongyos Keardsri
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsWongyos Keardsri
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityWongyos Keardsri
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 CountingWongyos Keardsri
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsWongyos Keardsri
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIWongyos Keardsri
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IWongyos Keardsri
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesWongyos Keardsri
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesWongyos Keardsri
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationWongyos Keardsri
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowWongyos Keardsri
 

More from Wongyos Keardsri (20)

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
 
Discrete-Chapter 10 Trees
Discrete-Chapter 10 TreesDiscrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
 
Discrete-Chapter 01 Sets
Discrete-Chapter 01 SetsDiscrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
 

Java-Chapter 10 Two Dimensional Arrays

  • 1. Two Dimensional Arrays - 10 Computer Programming using Java 131 CHAPTER อาเรย์สองมิติ 10 (Two Dimensional Arrays) 1. การประกาศและสร้ างอาเรย์ สองมิติ 1. การประกาศและสร้ างอาเรย์ สองมิตโดยใช้ Initialized List ิ การประกาศและสร้ างอาเรย์สองมิติโดยใช้ Initialized List เป็ นการสร้ างอาเรย์สองมิติแบบง่าย ซึงจะประกาศ ่ ใช้ ได้ ก็ตอเมื่อทราบค่าทุกค่าที่จะเก็บลงไปในอาเรย์แล้ ว โดยมีรูปแบบคําสังดังนี ้ ่ ่ หลังชื่ออาเรย์ต้องมี <ประเภทข้ อมูล> <ชื่ออาเรย์>[][] = {{ สมาชิก ,..., สมาชิก },...}; สัญลักษณ์ [][] เช่น int num[][] = {{1,0},{2,1},{2,4}}; สามารถวาดเป็ นโครงสร้ างตารางได้ ดงนี ้ ั 1 0 อาเรย์ num มีขนาด 3 x 2 ซึงประกอบไปด้ วย ่ ในเซตใหญ่มีเซตย่อย 3 เซต นันคือมี 3 แถว ่ 2 1 แถว (แนวนอน) จํานวน 3 แถว ในแต่ละเซตย่อยมีสมาชิก 2 ค่า นันคือมี 2 หลัก ่ 2 4 หลัก (แนวตัง) จํานวน 2 หลัก ้ โจทย์ ข้อที่ 1 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่อประกาศและสร้ างอาเรย์ สองมิตโดยใช้ Initialized ิ List ตามรายละเอียดที่กาหนดให้ ต่อไปนี ้ (10 คะแนน) ํ 1) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ a ขนาด 2 x 3 โดยให้ สมาชิกทุกตัวมีค่าเป็ น 0 (2 คะแนน) ิ 2) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ b ขนาด 5 x 2 โดยให้ สมาชิกทุกตัวมีค่าเป็ น 1 (2 คะแนน) ิ 3) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ s ขนาด 3 x 1 โดยให้ สมาชิกทุกตัวเป็ นคําว่ า "Java" (2 คะแนน) ิ 4) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ t ขนาด 1 x 3 โดยให้ สมาชิกทุกตัวเป็ นคําว่ า "Java" (2 คะแนน) ิ 5) ประกาศและสร้ างอาเรย์ สองมิตช่ ือ em ประเภทจํานวนจริง ขนาด 0 x 0 (2 คะแนน) ิ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 132 Computer Programming using Java 10 - Two Dimensional Arrays โจทย์ ข้อที่ 2 [ระดับง่ าย] จงวาดรปโครงสร้ างตารางของอาเรย์ สองมิตท่ ีกาหนดให้ ต่อไปนี ้ พร้ อมทังกํา- ู ิ ํ ้ หนดค่ าให้ กับสมาชิกแต่ ละช่ องของตารางให้ ถกต้ อง (6 คะแนน) ู 1) int m[][] = {{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}}; (2 คะแนน) 2) int n[][] = {{1},{2,3},{3,4,5},{4,5,6,7}}; (2 คะแนน) 3) int p[][] = {{1,2,3},{2,3},{3,4,5,6},{4},{5,6}}; (2 คะแนน) ข้ อที่ 1 อาเรย์ m[][] ข้ อที่ 2 อาเรย์ n[][] ข้ อที่ 3 อาเรย์ p[][] 2. การประกาศและสร้ างอาเรย์ สองมิตโดยการ new ิ การประกาศและการสร้ างอาเรย์สองมิตโดยการ new นี ้จะเป็ นวิธีแบบทัวไปที่ใช้ ในภาษาจาวา ซึงมีขนตอนดังนี ้ ิ ่ ่ ั้ 1) การประกาศตัวแปรอาเรย์สองมิติ จํานวนมิติให้ นบที่จํานวนคู่ของเครื่ องหมาย [] เช่น ั <ประเภทข้ อมูล> <ชื่ออาเรย์>[][]; ถ้ าเป็ นอาเรย์สองมิติจะต้ องมี [] จํานวน 2 คู่ a เช่น int a[][]; 2) การสร้ างอาเรย์สองมิติ หลังชื่ออาเรย์ไม่ต้องมีเครื่ องหมาย [][] (1) สร้ างแถวของอาเรย์ <ชื่ออาเรย์> = new <ประเภทข้ อมูล>[<ขนาดแถว>][]; ภายใน [] คูที่สองไม่ต้องระบุค่า ่ ใดๆ (ให้ เว้ นว่างเอาไว้ ) a เช่น a = new int[3][]; [0] [1] สร้ างอาเรย์ a ให้ มีขนาดเป็ น 3 แถว แต่ยงไม่ระบุขนาด ั [2] ของหลัก (เว้ นว่างเอาไว้ ) (2) สร้ างหลักหรื อคอลัมน์ของอาเรย์ (เริ่มสร้ างหลักของทุกแถว โดยเริ่มตังแต่แถวแรกจนถึงแถวสุดท้ าย) ้ <ชื่ออาเรย์>[<ตําแหน่งแถว>] = new <ประเภทข้ อมูล>[<ขนาดหลัก>]; เช่น a[0] = new int[3]; a [0] [1] [2] [3] a[1] = new int[2]; [0] 0 0 0 แถวที่ 1 (ตําแหน่ง 0) มี 3 หลัก a[2] = new int[4]; [1] 0 0 แถวที่ 2 (ตําแหน่ง 1) มี 2 หลัก [2] 0 0 0 0 แถวที่ 3 (ตําแหน่ง 2) มี 4 หลัก © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. Two Dimensional Arrays - 10 Computer Programming using Java 133 3) อาเรย์สองมิตที่ได้ หลังจากการประกาศและการสร้ างในขันตอนที่ 1 และ 2 ิ ้ a[0][0] a[0][1] a[0][2] ถ้ า ประกาศและสร้ างอาเรย์ แ บบแยกส่ ว นจะ a[1][0] a[1][1] สามารถสร้ างอาเรย์ สองมิติที่บิดเบี ยว โดยที่มี ้ จํานวนช่องของแถวแต่ละแถวไม่เท่ากัน a[2][0] a[2][1] a[2][2] a[2][3] 4) การประกาศและการสร้ างอาเรย์สองมิตโดยรวมขันตอนที่ 1 และ 2 เข้ าด้ วยกัน (มี 2 วิธีให้ เลือกใช้ ) ิ ้ <ประเภทข้ อมูล> <ชื่ออาเรย์>[][] = new <ประเภทข้ อมูล>[<ขนาดแถว>][<ขนาดหลัก>]; หรื อ <ประเภทข้ อมูล> [][]<ชื่ออาเรย์> = new <ประเภทข้ อมูล>[<ขนาดแถว>][<ขนาดหลัก>]; เช่น int a[][] = new int[3][4]; เครื่ องหมาย [][] จะอยูหน้ าหรื อหลังชื่ออาเรย์ก็ได้ ่ int[][] a = new int[3][4]; หมายเหตุ ขนาดแถวและขนาดหลักต้ องระบุเป็ นตัวเลขจํานวนเต็มเท่านัน ้ 5) ข้ อสังเกตในการประกาศและสร้ างอาเรย์สองมิติ ข้ อสังเกต 3 คือ ขนาดหรื อความยาวของแถว (ขนาดของมิตที่ 1) แถวคือช่องในแนวนอน ิ 4 คือ ขนาดหรื อความยาวของหลัก (ขนาดของมิตที่ 2) หลักคือช่องในแนวตัง้ ิ อย่าสับสน ตําแหน่งสมาชิกของอาเรย์ (สมาชิกตําแหน่งที่) เริ่มนับที่ 0 ลําดับสมาชิกของอาเรย์ (สมาชิกลําดับที่ / สมาชิกตัวที่) เริ่มนับที่ 1 หมายเหตุ ถ้ าต้ องการอาเรย์แบบที่บดเบี ้ยวจะไม่สามารถประกาศและสร้ างอาเรย์แบบขันตอนที่ 4 นี ้ได้ ิ ้ ซึงจะต้ องใช้ การประกาศและสร้ างอาเรย์แบบแยกส่วนแทน ่ 6) อาเรย์สองมิตที่ได้ หลังจากการประกาศและการสร้ างในขันตอนที่ 4 ิ ้ a[0][0] a[0][1] a[0][2] a[0][3] ถ้ าประกาศและสร้ างอาเรย์แบบรวมจะได้ อาเรย์สอง a[1][0] a[1][1] a[1][2] a[1][3] มิติที่มีจํานวนช่องของแถวแต่ละแถวเท่ากันทุกแถว a[2][0] a[2][1] a[2][2] a[2][3] โดยไม่มีการบิดเบี ้ยว โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่อประกาศและสร้ างอาเรย์ ต่อไปนี ้ (12 คะแนน) 1) ประกาศและสร้ างอาเรย์ ช่ ือ matrix เป็ นเมตริกซ์ เก็บค่ าความจริงขนาด 5 x 8 (2 คะแนน) 2) ประกาศและสร้ างอาเรย์ ช่ ือ chess เพื่อสร้ างตารางหมากรุ ก (2 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 134 Computer Programming using Java 10 - Two Dimensional Arrays 3) ประกาศและสร้ างอาเรย์ ช่ ือ tranMatrix เป็ นเมตริ กซ์ ประเภทจํานวนเต็มที่เกิดจากการทรานสโพส- ของเมตริกซ์ ขนาด 9 x 4 (2 คะแนน) 4) ประกาศและสร้ างอาเรย์ ช่ ือ data เก็บคะแนนรวมของรายวิชา 2110101 ของนิสิต 300 คน โดยในแต่ ละคนประกอบไปด้ วยคะแนนการบ้ าน คะแนนกลางภาค และคะแนนปลายภาค (2 คะแนน) 5) สร้ างจํานวนช่ องของแถวลําดับที่ 8 ของอาเรย์ n ชนิดจํานวนเต็มที่ประกาศไว้ ก่อนหน้ านีแล้ ว ให้ มี ้ ตําแหน่ งสงสุดได้ ถงตําแหน่ งที่ 3 (2 คะแนน) ู ึ 6) สร้ างจํานวนช่ องของแถวตําแหน่ งที่ 4 ของอาเรย์ n ชนิดจํานวนเต็มที่ประกาศไว้ ก่อนหน้ านีแล้ ว ให้ มี ้ จํานวนช่ องทังหมด x2 + 1 ช่ อง (2 คะแนน) ้ โจทย์ ข้อที่ 4 [ระดับปานกลาง] จงเขียนเมท็อด getTable(…) เพื่อคืนค่ าตารางที่ใช้ สาหรั บเก็บปริมาณ ํ นําฝนตังแต่ วันที่ 1 มกราคม ของ พ.ศ. ปั จจุบัน ถึงวันที่ 31 ธันวาคม ของ พ.ศ. ปั จจุบัน โดยแบ่ งการ ้ ้ จัดเก็บออกเป็ น 12 เดือน และในแต่ ละเดือนก็แบ่ งตามจํานวนวันของเดือนนันๆ (12 คะแนน) ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. Two Dimensional Arrays - 10 Computer Programming using Java 135 3. การหาขนาดและความยาวของอาเรย์ สองมิติ การหาขนาดของอาเรย์สองมิติจะใช้ คําสัง .length เหมือนกับการหาขนาดของอาเรย์หนึ่งมิติแต่จะต้ องระบุ ่ ตําแหน่งของแถวหรื อหลักที่ต้องการจะหาขนาดด้ วย 1) การหาขนาดของแถว (ขนาดของมิตที่ 1)ิ [0] [1] [2] [3] <ชื่ออาเรย์>.length [0] 0 0 0 0 2) การหาขนาดของหลัก (ขนาดของมิตท่ี 2) ิ [1] 0 0 0 0 <ชื่ออาเรย์>[<ตําแหน่งแถว>].length [2] 0 0 0 0 ตัวอย่างโปรแกรม ความยาวแถวของอาเรย์ a 1 int[][] a = new int[3][4]; 2 System.out.println(a.length); 3 ความยาวหลักของแถวตําแหน่งที่ 2 3 System.out.println(a[0].length); 4 4 System.out.println(a[1].length); 4 หรื อแถวที่ 3 ของอาเรย์ a 5 System.out.println(a[2].length); 4 6 System.out.println(a[3].length); Error ไม่มีแถวตําแหน่งที่ 3 4. การอ้ างอิงค่ า การกําหนดค่ า และการแสดงผลของอาเรย์ สองมิติ 1) การอ้ างอิงค่าจากอาเรย์ มีรูปแบบคําสังดังนี ้ ่ <ประเภทข้ อมูล> <ชื่อตัวแปร> = <ชื่ออาเรย์>[<ตําแหน่งแถว>][<ตําแหน่งหลัก>]; เช่น int n = num[0][0]; (ให้ ตวแปร n ประเภทจํานวนเต็ม เก็บค่าจากอาเรย์ num แถวตําแหน่งที่ 0 และหลักตําแหน่งที่ 0) ั 2) การกําหนดค่าลงไปในอาเรย์ มีรูปแบบคําสังดังนี ้ ่ <ชื่ออาเรย์>[<ตําแหน่งแถว>][<ตําแหน่งหลัก>] = <ค่าข้ อมูล>; เช่น num[0][0] = 13; (ให้ อาเรย์ num แถวตําแหน่งที่ 0 และหลักตําแหน่งที่ 0 มีคาเท่ากับ 13) ่ 3) การแสดงผลของอาเรย์ (สองมิติ) จะใช้ คําสัง for ซ้ อน for หรื อ while ซ้ อน while ในการเข้ าไปยัง ่ สมาชิกแต่ละตัวในอาเรย์ตงแต่สมาชิกตัวแรก (แถวตําแหน่งที่ 0 หลักตําแหน่งที่ 0) จนถึงสมาชิกตัวสุด- ั้ ท้ าย (แถวตําแหน่งที่ length - 1 หลักตําแหน่งที่ length - 1) ดังตัวอย่างต่อไปนี ้ คําสัง for i วน ่ 1 int a[][] = new int[5][8]; ตังแต่แถวแรกจนถึง ้ 2 for (int i = 0; i < a.length; i++) { 3 for (int j = 0; j < a[i].length; j++) { แถวสุดท้ าย 4 a[i][j] = 13; 5 } คําสัง for j วนตังแต่หลักแรกจนถึง ่ ้ 6 } เริ่ มพิจารณาที่สมาชิกในแถวแต่และแถวของอาเรย์และตาม หลักสุดท้ ายของแถวตําแหน่งที่ i ใดๆ ด้ วยสมาชิกแต่ละตัว (แต่ละหลัก) ของอาเรย์ ณ แถวนันๆ ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 136 Computer Programming using Java 10 - Two Dimensional Arrays โจทย์ ข้อที่ 5 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาเพื่ออ้ างอิงและกําหนดค่ าจากอาเรย์ ต่อไปนี ้ (16 คะแนน) 1) ให้ ตวแปร x เก็บข้ อมลประเภทจํานวนเต็มจากอาเรย์ num ตัวที่ 50 ของแถวตําแหน่ งที่ 51 (2 คะแนน) ั ู 2) ให้ ตวแปร c เก็บข้ อมลประเภทอักขระจากอาเรย์ code ตําแหน่ งที่ 60 ของแถวที่ 10 (2 คะแนน) ั ู 3) ให้ ตวแปร var1 เก็บข้ อมลประเภทจํานวนเต็มจากอาเรย์ bank แถวที่ 1 หลักที่ 2 (2 คะแนน) ั ู 4) ให้ ตวแปร var2 เก็บข้ อมลประเภทจํานวนจริงจากอาเรย์ bank ตัวสุดท้ ายของแถวที่ 2 (2 คะแนน) ั ู 5) ให้ ค่าสมาชิกหลักที่ 5 แถวที่ 7 ของอาเรย์ code เท่ ากับค่ าจากตัวแปร x (2 คะแนน) 6) ให้ ค่าสมาชิกตําแหน่ งที่ 9 ของแถวที่ 1 ของอาเรย์ sName เท่ ากับค่ าจากตัวแปร s1 (2 คะแนน) 7) ให้ ค่าสมาชิกตัวที่ 3 ของแถวที่ 2 ของอาเรย์ sName เท่ ากับค่ าจากตัวแปร s2 (2 คะแนน) 8) ให้ ค่าสมาชิกแถวสุดท้ ายและหลักสุดท้ ายของอาเรย์ a เท่ ากับค่ าจากตัวแปร y (2 คะแนน) โจทย์ ข้อที่ 6 [ระดับง่ าย] จงเขียนและเรี ยกใช้ เมท็อด setArray(…) ที่สมบรณ์ เพื่อรั บอาเรย์ สองมิตชนิด ู ิ จํานวนเต็มเข้ ามาหนึ่งตัว แล้ วกําหนดค่ าสมาชิกแต่ ละตัวของอาเรย์ ให้ มีค่าเท่ ากับผลคณของหมายเลข ู แถวและหลักของช่ องนันๆ เช่ น อาเรย์ แถวที่ 3 หลักที่ 4 เก็บค่ า 12 (เกิดจาก 3 x 4) เป็ นต้ น (12 คะแนน) ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. Two Dimensional Arrays - 10 Computer Programming using Java 137 public class The2DArray { public static void main(String[] args) { } //End of main } //End of class โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนและเรี ยกใช้ เมท็อด isArrayEquals(…) ที่สมบรณ์ เพื่อรั บอาเรย์ ู สองมิติชนิดจํานวนเต็ม 2 อาเรย์ ใดๆ เข้ ามาทางพารามิเตอร์ เพื่อใช้ ตรวจสอบว่ าอาเรย์ ทังสองเท่ ากัน ้ หรื อไม่ โดยอาเรย์ ท่ รับเข้ ามาอาจจะเป็ นอาเรย์ แหว่ งที่มีจานวนหลักไม่ เท่ ากันทุกแถว (15 คะแนน) ี ํ public class EqualityOf2DArray { © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 138 Computer Programming using Java 10 - Two Dimensional Arrays public static void main(String[] args) { } //End of main } //End of class โจทย์ ข้อที่ 8 [ระดับปานกลาง - ระดับยาก] อาเรย์ test เป็ นอาเรย์ สองมิตท่ ีจัดเก็บข้ อมลประเภทจํา- ิ ู นวนจริง 365 ค่ า ซึ่งเป็ นผลการทดลองทางด้ านวิศวกรรมศาสตร์ เป็ นระยะเวลา 1 ปี ซึ่งถกบันทึกไว้ ตังแต่ ู ้ วันที่ 1 กันยายน ปี นี ้ จนถึงวันที่ 31 สิงหาคม ปี หน้ า จงเขียนคลาส DataExperiment ให้ สมบูรณ์ เพื่อ เก็บบันทึกผลการทดลองดังกล่ าว พร้ อมทังคํานวณหาผลลัพธ์ ต่างๆ ตามเมท็อดดังต่ อไปนี ้ (50 คะแนน) ้ 1) เมท็อด max(…) คืนค่ าสงสุดของผลการทดลอง (8 คะแนน) ู 2) เมท็อด min(…) คืนค่ าตํ่าสุดของผลการทดลอง (8 คะแนน) 3) เมท็อด middleRange(…) คืนค่ ากึ่งกลางพิสัยของผลการทดลอง (สูงสุด+ตํ่าสุด / 2) (8 คะแนน) 4) เมท็อด meanOfMonth(…) คืนค่ าเฉลี่ยของผลการทดลองในแต่ ละเดือนตามเดือนที่ระบุ (8 คะแนน) 5) เมท็อด dataOfDay(…) คืนค่ าผลการทดลองในแต่ ละวันตามวันและเดือนที่ระบุ (8 คะแนน) 6) เมท็อด main(…) ประกาศและสร้ างอาเรย์ test ที่มีขนาด 12 แถวโดยแต่ ละแถวยาวเท่ ากับจํานวน วันของเดือนนันๆ โดยให้ แถวแรกเป็ นเดือนกันยายน แล้ วรั บค่ าจากแปนพิมพ์ เก็บลงไปในอาเรย์ ทุก ้ ้ ช่ อง พร้ อมทังเรียกใช้ งานเมท็อดอื่นๆ ทุกเมท็อดที่น่ ี (กําหนดการเรี ยกใช้ ได้ อย่ างอิสระ) (10 คะแนน) ้ import java.util.Scanner; import jlab.graphics.DWindow; public class DataExperiment { public static double max(double t[][]) { } //End of max(…) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. Two Dimensional Arrays - 10 Computer Programming using Java 139 public static double min(double t[][]) { } //End of min(…) public static double middleRange(double t[][]) { } //End of avgRange(…) public static double meanOfMonth(double t[][], int m) { } //End of meanOfMonth(…) public static double dataOfDay(double t[][], int d, int m) { } //End of dataOfDay(…) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 140 Computer Programming using Java 10 - Two Dimensional Arrays public static void main(String[] args) { } //End of main(…) } //End of Class โจทย์ ข้อที่ 9 [ระดับง่ าย – ระดับยาก] จงเขียนคลาส MatrixOperation เพื่อดําเนินการกับเมตริ กซ์ ซ่ ึงได้ แก่ การบวกเมตริ กซ์ การคณเมตริ กซ์ และการทรานสโพสเมตริ กซ์ โดยมีรายละเอียดของเมท็อดต่ างๆ ู ดังต่ อไปนี ้ (60 คะแนน) ⎡0 2 4⎤ ⎡3 6⎤ ⎢ ⎥ ⎡1 3 5 9⎤ ⎢ ⎥ 5 3 1⎥ กําหนดให้ เมตริกซ์ a = ⎢ ⎥ เมตริกซ์ b = ⎢4 8⎥ เมตริกซ์ c = ⎢ ⎢7 11 2⎥ ⎣2 6 4 3⎦ ⎢1 0⎥ ⎣ ⎦ ⎢ ⎥ ⎣6 6 9⎦ T กําหนดให้ เมตริกซ์ m = (2a )T × ⎛ 1 b ⎞ ⎜ ⎟ −c ⎝4 ⎠ import java.util.Scanner; public class MatrixOperation { //[ระดับปานกลาง] เขียนเมท็อด addMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งสองตัว ู ใดๆ ขนาดเท่ ากันเข้ ามา แล้ วคํานวณหาผลบวกของสองเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน) ้ ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. Two Dimensional Arrays - 10 Computer Programming using Java 141 //[ระดับปานกลาง] เขียนเมท็อด mulScalarMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ ง ู หนึ่ งตัวและค่ าคงที่ท่ ีเป็ นจํานวนจริ งอีกหนึ่ งค่ า แล้ วคํานวณหาผลคณ ของเมตริ กซ์ และค่ าคงที่นัน ู ้ พร้ อมทังคืนค่ ากลับ (10 คะแนน) ้ //[ระดับยาก] เขียนเมท็อด transposeMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งเข้ ามา ู แล้ วคํานวณหาผลการทรานสโพสของเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน) ้ ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 142 Computer Programming using Java 10 - Two Dimensional Arrays //[ระดับยาก] เขียนเมท็อด mulMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริงสองตัวใดๆ เข้ า ู มาแล้ วคํานวณหาผลคณของสองเมตริกซ์ นันพร้ อมทังคืนค่ ากลับ (10 คะแนน) ู ้ ้ //[ระดับง่ าย] เขียนเมท็อด printMatrix(…)ที่สมบรณ์ เพื่อรั บเมตริ กซ์ ชนิดจํานวนจริ งเข้ ามา แล้ ว ู แสดงค่ าสมาชิกของเมตริกซ์ นันขึนบนจอภาพให้ สวยงาม (10 คะแนน) ้ ้ //[ระดับง่ าย] เขียนเมท็อด main(…)ให้ สมบรณ์ โดยประกาศและสร้ างเมตริ กซ์ a, b และ c ที่ ู กําหนดให้ แบบ Initialized List พร้ อมทังคํานวณหาผลลัพธ์ ของเมตริกซ์ x โดยการเรี ยกใช้ งานเมท็อด ้ ต่ างๆ ที่ได้ สร้ างไว้ ก่อนหน้ านี ้ พร้ อมทังแสดงค่ าของเมตริกซ์ ทุกตัวขึนบนจอภาพ (10 คะแนน) ้ ้ public static void main(String[] args) { © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 13. Two Dimensional Arrays - 10 Computer Programming using Java 143 } //End of main } //End of class โจทย์ ข้อที่ 10 [ระดับยาก] จงเขียนเมท็อด splitRowOfMatrix(…)ที่สมบรณ์ เพื่อดึงสมาชิกทุกตัวของ ู เมตริ กซ์ ท่ รับเข้ ามา ตามหมายเลขแถวที่ระบุ เช่ น a[][] = {{1,2}, {2,3,4}, {1,3,5,6}} จะได้ ี splitRowOfMatrix(a,1) = {1,2} และ splitRowOfMatrix(a,2) = {2,3,4} เป็ นต้ น แต่ ถ้าระบุ หมายเลขแถวผิดพลาดจะได้ splitRowOfMatrix(a,4) = { } (10 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 14. 144 Computer Programming using Java 10 - Two Dimensional Arrays โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนเมท็อด splitColumnOfMatrix(…)ที่สมบรณ์ เพื่อดึงสมาชิกทุกตัว ู ของเมตริ กซ์ ท่ รับเข้ ามาตามหมายเลขหลักที่ระบุ เช่ น a[][] = {{1,2,2}, {2,3,4}, {1,3,5}} จะ ี ได้ splitColumnOfMatrix(a,1) = {1,2,1} และ splitColumnOfMatrix(a,3) = {2,4,5} เป็ นต้ น แต่ ถ้าระบุหมายเลขหลักผิดพลาดจะได้ splitColumnOfMatrix(a,0) = { } โดยกําหนดให้ เมตริกซ์ ทุก แถวมีจานวนหลักที่เท่ ากัน (10 คะแนน) ํ Take Note © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้