อาเรย์ 2 มิติ (ARRAY 2 DIMENSION)
อาเรย์ 2 มิติ (ARRAY 2 DIMENSION) จาก Lab 10 นักเรียนได้เรียนรู้การใช้อาเรย์ไปแล้วซึ่งสามารถทาให้นักเรียนเก็บข้อมูล หลาย ๆ ตวั ภายในตัวแปรตัวเดียวได้ เช่นต้องการเก็บคะแนนในการสอบของนักเรียน50 คนสามารถเก็บ ไว้ในตัวแปรแบบอาเรย์ดงั น้ี
จากการประกาศตวั แปรขา้ งตน้ จะได้โครงสร้าง ดงั ภาพที่ 1 คราวน้ีนักเรียนลองพิจารณาว่าถ้ามี การสอบ ท้ังหมด 3 คร้ัง เราก็ต้องประกาศตัวแปรแบบอาเรย์ 3 ตัวแปร เพื่อเก็บข้อมูลคะแนนสอบของ นักเรยี นท้งั 3 ครงั้ ของนกั เรียน 50 คนดังนี้ จะไดต้ วั แปรแบบอาเรย์ 3 ตวั แปรขนาด 50 ชอ่ ง ดังภาพท่ี 2
ซึ่งการประกาศตวั แปรแบบอาเรย์ที่มีชื่อตัวแปรคล้ายกันดังภาพที่ 2 นั้นสามารถทาให้ง่ายข้ึนได้ โดยการใช้ตัวแปรแบบอาเรย์ 2 มิติโดยหากต้องการตัวแปรแบบอาเรย์ท่ีมีความยาวขนาด 50 ช่องจานวน 3 ชดุ สามารถใช้อาเรย์ 2 มติ ิโดยการประกาศงา่ ย ๆ ดงั น้ี จะไดต้ ัวแปรแบบอาเรย์ 3 ตัวแปรขนาด 50 ช่อง ดังภาพท่ี 2
การประกาศตัวแปรแบบอาเรย์ 2 มิติ ดังเช่นตัวแปรทั่ว ๆ ไปท่ีก่อนจะนาตัวแปรมาใช้ต้องมีการประกาศตัวแปรเสียก่อน โดยการ ประกาศตวั แปรแบบอาเรย์นัน้ ก็มคี วามคล้ายกบั การประกาศตัวแปรท่ัว ๆ ไปโดยมรี ปู แบบดังนี้ โดย DataType หมายถึงชนดิ ของตวั แปรเช่น int, double, char เป็นต้น ArrayName หมายถึงชอ่ื ของตัวแปรตามแต่นักเรียนจะตั้งข้นึ มา
การสร้างตัวแปรแบบอาเรย์ 2 มิติ เช่นเดยี วกนั กบั การประกาศตวั แปรแบบอาเรย์ 1 มิติ เม่ือนักเรียนประกาศอาเรย์ 2 มิติเสร็จแล้วจะ ยังไม่สามารถนาอาเรย์น้ัน ๆ ไปใช้งานได้เนื่องจากว่าการประกาศตัวแปรเปรียบเสมือนว่านักเรียนได้ทาป้าย บา้ นเลขท่ีเตรียมมาปกั ลงบนที่ดนิ แต่ยงั ไมไ่ ด้ซอื้ ท่ีดินพร้อมลงเสาเข็มสร้างบ้านจริง ๆ เลย ฉะนั้นนักเรียนจึง ตอ้ งทาการสร้างบา้ นด้วย ซึ่งก็คอื การสรา้ งอาเรย์นน่ั เอง การสร้างอาเรย์ 2 มติ มิ ีรปู แบบดงั น้ี
โดย ArrayName คือชอ่ื ของตวั แปรแบบอาเรย์ท่เี ราได้ประกาศไวก้ ่อนหน้านี้ Datatype คือชนิดของ ตวั แปรของตัวแปร ArrayName โดย num_rows คือจานวนแถวของอาเรย์ 2 มิติและ num_columns คือจานวน หลกั ของอาเรย์ 2 มิติ สรุปก็คอื การจะใช้ตวั แปรรปู แบบอาเรย์ 2 มติ ิจะตอ้ งประกอบไปด้วยการประกาศและการสร้างตัว แปรแบบอาเรย์ ดงั นี้ ตวั อยา่ งเช่น ต้องการสร้างตัวแปรชื่อ Matrix ขนาด 4 แถวแต่ละแถวมี 5 หลัก สาหรับเก็บตัวเลข จานวนเตม็ จะต้องใชค้ าสั่งดงั ตอ่ ไปนี้ ซงึ่ การประกาศและสรา้ งตัวแปรแบบอาเรย์ในข้างต้นสามารถเขียนย่อได้ดังนี้
โครงสร้างของตัวแปรแบบอาเรย์ 2 มิติ ตัวอย่างท่ี 3.1 การประกาศและสร้างตัวแปรแบบอาเรย์ 2 มิติ ชนิด int ชื่อตัวแปรว่า score ขนาด 3 แถว 5 หลกั สามารถทาได้โดยใช้คาสง่ั หลังจ า กกา รป ระกา ศตัวแป รแบบอา เรย์ ท่ีช่ือว่ า scoreตามตัวอย่างท่ี 3.1 เสร็จนักเรียนจะได้ตัวแปรท่ีมี โครงสร้างเป็นดงั ภาพท่ี 4
การกาหนดค่าเริ่มต้นให้กับตัวแปรแบบอาเรย์ 2 มิติ ถ้าต้องการกาหนดคา่ เริ่มต้นใหก้ บั ตวั แปรดังกลา่ วสามารถทาไดห้ ลายรปู แบบดงั ต่อไปน้ี
การอ้างถึงข้อมูลในอาเรย์ 2 มิติ ในอาเรย์ 1 มิติเราใช้ช่ือตัวแปรและลาดับท่ีในการอ้างอิงถึงข้อมูลช่องใด ๆ ของอาเรย์ ตัวอย่างเช่น score[4] ของตัวแปรในภาพท่ี 6 จะได้ค่าเท่ากับ 1 เป็นต้น แต่ในตัวแปรแบบอาเรย์ 2 มิตินั้น ลาดับที่มีท้ังลาดับท่ีของแถวและลาดับท่ีของหลักฉะนั้นต้องใช้ลาดับที่ท้ังสองเข้ามาร่วมในการอ้างอิงด้วย ดังน้ี
โดย ArrayName คือช่ือของตัวแปรแบบอาเรย์ 2 มิติใด ๆ id_row คือลาดับของแถวและ id_column คือลาดับของหลัก ตัวอย่างเช่นต้องการเข้าถึงข้อมูลของตัวแปรแบบอาเรย์ชื่อ point ในแถวที่ 0 หลักท่ี 3 ซึง่ มีโครงสร้างและขอ้ มลู ดังภาพท่ี 7 ใหใ้ ช้ point[0,3] ในการอา้ งองิ จะได้ข้อมลู เท่ากบั 11 เป็นตน้
การหาจานวนแถวและจานวนหลักของอาเรย์ 2 มิติ ในตัวแปรแบบอาเรย์ 1 มิติ เราใช้คาสั่ง .Length ในการหาจานวนช่องของอาเรย์ แต่สาหรับ อาเรย์ 2 มติ ถิ ้าต้องการทราบว่าอาเรย์ 2 มิตินี้มีจานวนแถวก่ีแถวหรือจานวนหลักก่ีหลัก สามารถทาได้โดยใช้ คาส่ัง .GetLength(dimension_index) ดังน้ี
ในตัวแปรแบบอาเรย์ 1 มิติ เราใช้คาสั่ง .Length ในการหาจานวนช่องของอาเรย์ แต่สาหรับ อาเรย์ 2 มติ ิถ้าต้องการทราบว่าอาเรย์ 2 มิติน้ีมีจานวนแถวก่ีแถวหรือจานวนหลักก่ีหลัก สามารถทาได้โดยใช้ คาสั่ง .GetLength(dimension_index) ดังนี้
ด ทำ โ ด ย ในตัวแปรแบบอาเรย์ 1 มิติ เราใช้คาสั่ง .Length ในการหาจานวนช่องของอาเรย์ แต่สาหรับ อาเรย์ 2 มติ ถิ ้าต้องการทราบว่าอาเรย์ 2 มิติน้ีมีจานวนแถวก่ีแถวหรือจานวนหลักก่ีหลัก สามารถทาได้โดยใช้ คาสงั่ .GetLength(dimension_index) ดงั น้ี
จัดทาโดย นาย ธนกรณ์ ธรรมขันทา เลขท่ี 9 นาย รณกฤต มลู วงค์ เลขที่ 25 นาย ชยานันต์ มีสขุ เลขท่ี 5 นาย วชิรศักด์ิ คาวัง เลขท่ี 19 นาย ภาณุพงค์ พมิ สาร เลขท่ี 18 นาย นพดล พรมแสน เลขที่ 11
Search
Read the Text Version
- 1 - 15
Pages: