Submit Search
Upload
Java-Chapter 10 Two Dimensional Arrays
•
4 likes
•
2,333 views
Wongyos Keardsri
Follow
Chapter 10 Two Dimensional Arrays
Read less
Read more
Report
Share
Report
Share
1 of 14
Download now
Download to read offline
Recommended
09 multi arrays
09 multi arrays
a-num Sara
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
Wongyos Keardsri
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
Java-Chapter 05 String Operations
Java-Chapter 05 String Operations
Wongyos Keardsri
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
Little Tukta Lita
อาเรย์ (Array)
อาเรย์ (Array)
tumetr
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
Areeya Onnom
Recommended
09 multi arrays
09 multi arrays
a-num Sara
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
Wongyos Keardsri
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
Java-Chapter 05 String Operations
Java-Chapter 05 String Operations
Wongyos Keardsri
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
Little Tukta Lita
อาเรย์ (Array)
อาเรย์ (Array)
tumetr
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
Areeya Onnom
Array 2
Array 2
นายพิศณุ ท่าสอน
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
Naphamas
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
waradakhantee
4
4
Kkae Rujira
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
defeat overcome
99
99
Khanpetz'Kao Boreds
งาน
งาน
Noom Sataporn
Array1
Array1
นายพิศณุ ท่าสอน
Chapter2
Chapter2
เกล็ดนที ไชยชนะ
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)
Wongyos Keardsri
(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)
Wongyos Keardsri
Java-Chapter 11 Recursions
Java-Chapter 11 Recursions
Wongyos Keardsri
Java-Chapter 08 Methods
Java-Chapter 08 Methods
Wongyos Keardsri
ภาษาจาวา
ภาษาจาวา
Sanita Fakbua
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
Wongyos Keardsri
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
Wongyos Keardsri
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
Wongyos Keardsri
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
Wongyos Keardsri
More Related Content
What's hot
Array 2
Array 2
นายพิศณุ ท่าสอน
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
Naphamas
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
waradakhantee
4
4
Kkae Rujira
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
defeat overcome
99
99
Khanpetz'Kao Boreds
งาน
งาน
Noom Sataporn
Array1
Array1
นายพิศณุ ท่าสอน
Chapter2
Chapter2
เกล็ดนที ไชยชนะ
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)
Wongyos Keardsri
(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)
Wongyos Keardsri
Java-Chapter 11 Recursions
Java-Chapter 11 Recursions
Wongyos Keardsri
Java-Chapter 08 Methods
Java-Chapter 08 Methods
Wongyos Keardsri
ภาษาจาวา
ภาษาจาวา
Sanita Fakbua
Java-Answer Chapter 01-04 (For Print)
Java-Answer Chapter 01-04 (For Print)
Wongyos Keardsri
What's hot
(19)
Array 2
Array 2
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
4
4
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
99
99
งาน
งาน
Array1
Array1
Chapter2
Chapter2
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)
(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-Chapter 11 Recursions
Java-Chapter 11 Recursions
Java-Chapter 08 Methods
Java-Chapter 08 Methods
ภาษาจาวา
ภาษาจาวา
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 Program
Wongyos Keardsri
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
Wongyos Keardsri
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
Wongyos Keardsri
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
Wongyos Keardsri
Java-Chapter 06 File Operations
Java-Chapter 06 File Operations
Wongyos Keardsri
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
Wongyos Keardsri
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 Objects
Wongyos Keardsri
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
Wongyos Keardsri
IP address anonymization
IP address anonymization
Wongyos 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 Program
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 06 File Operations
Java-Chapter 06 File Operations
Java-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-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
IP address anonymization
IP address anonymization
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
Similar to Java-Chapter 10 Two Dimensional Arrays
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
รัสนา สิงหปรีชา
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
Mook Sasivimon
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
Mook Sasivimon
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
Mook Sasivimon
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
Array2D
Array2D
Nitigan Nakjuatong
จำนวนจริง
จำนวนจริง
Piyanouch Suwong
Matrix1
Matrix1
Krupom Ppk
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
IMC Institute
อาร์เรย์
อาร์เรย์
S-Samd D-Devotion
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
ครู กรุณา
บทที่ 5
บทที่ 5
Khim Piamprom
งาน
งาน
Noom Sataporn
Similar to Java-Chapter 10 Two Dimensional Arrays
(17)
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Array2D
Array2D
จำนวนจริง
จำนวนจริง
Matrix1
Matrix1
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
อาร์เรย์
อาร์เรย์
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.3 ปีการศึกษา 2557
บทที่ 5
บทที่ 5
งาน
งาน
More from Wongyos Keardsri
The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
Wongyos Keardsri
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
Wongyos Keardsri
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
Wongyos Keardsri
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
Wongyos Keardsri
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Wongyos Keardsri
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Wongyos Keardsri
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Wongyos Keardsri
Discrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
Wongyos Keardsri
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Wongyos Keardsri
Discrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Wongyos Keardsri
Discrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Wongyos Keardsri
Discrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Wongyos Keardsri
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Wongyos Keardsri
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Wongyos Keardsri
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Wongyos Keardsri
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Wongyos Keardsri
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Wongyos Keardsri
Discrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
Wongyos Keardsri
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Wongyos Keardsri
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
Wongyos Keardsri
More from Wongyos Keardsri
(20)
The 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 Programming
SysProg-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 Language
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Discrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Discrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Discrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Java-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) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
Download now