Array 2 มิติ

Download Report

Transcript Array 2 มิติ

886201
หลักการโปรแกรม 1
Lecture 13: อารเรย
ติ
์ แบบหลายมิ
์
Array 2 มิต ิ
• Array 2 มิต ิ สามารถมองเป็ นตารางหรือเมตริกซ ์ ที่
ประกอบไปดวย
แถว และ คอลัมน์
้
• การประกาศตัวแปรทีเ่ ป็ น array 2 มิต ิ จะมีการระบุ
ขนาดของ array ภายในเครือ
่ งหมายวงเล็บสี่ เหลีย
่ ม
ซึง่ วงเล็บแรกเป็ นจานวนแถว และวงเล็บหลังเป็ น
จานวนคอลัมน์
• รูปแบบของการประกาศตัวแปรแบบ array 2 มิต ิ คือ
ชนิดขอมู
่ ตัวแปร[จานวน
้ ล ชือ
แถว][จานวนคอลัมน];
์
เช่น
int matrix1[3][5];
Array 2 มิต ิ
• Array 2 มิต ิ มีลก
ั ษณะเป็ นตาราง
• การอางอิ
งหมายเลขแถวและหมายเลขคอลัมนของ
้
์
array 2 มิต ิ จะเริม
่ ที่ 0
เช่น
int matrix[3][4];
(คือ การจองเนื้อทีใ่ นหน่วยความจาเพือ
่ เก็บคาจ
านวน
่
Col Col Col Col
เต็ม 3 แถว
แถวละ 4 คอลัมน)์
0
1
2
3
Row
0
8
16
9
52
Row
1
Row
3
15
27
6
14
25
2
10
Array 2 มิต ิ
int a[3][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]
แถว (row)
• a[0][0]
a[0][1]
a[0][2]
a[0][3]
row 0
• a[1][0]
a[1][1]
a[1][2]
a[1][3]
row 1
• a[2][0]
a[2][1]
a[2][2]
a[2][3]
row 2
คอลัมน์ (column)
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]
column 0
column 1 column 2 column 3
การอางอิ
array 2 มิต ิ
้ งคาใน
่
• แถวและคอลัมนใน
array 2 มิตเิ ริม
่ นับจาก
์
0
• การอางอิ
งคาของสมาชิ
กใน array จะตองระบุ
ตาแหน่ง
้
่
้
ของแถวและคอลัมนที
่ องการ
้
์ ต
เช่น Col
int a[3][4];
array 2 มิตท
ิ ม
ี่ ี 3 แถว
Col Col //Col
4 คอลัมน์
0
1
2
3
a[0][0]
Row 0
Row 1
Row 2
a[1][2]
a[2][3]
การกาหนดคาเริ
่ ตนใน
array 2 มิต ิ
่ ม
้
• สมมุตว
ิ าต
วแปร array 2 มิตเิ พือ
่ เก็บ
่ องการประกาศตั
้
คาจ
าง
เราสามารถประกาศ
่ านวนเต็มดังตารางดานล
้
่
ตัวแปร array พรอมก
าหนดคาเริ
่ ตนได
ดั
ี าร
้
่ ม
้
้ งวิธก
ตอไปนี
(ทาแบบใดก็
ได)้
= { {8,16,9,52},
่ int ้val[3][4]
{3,15,27,6}, Col Col Col Col
{14,25,2,10}
0
1
2
3
};
Row 8 16 9 52
หรือ
0
int val[3][4] = {8,16,9,52,
3,15,27,6, Row 3 15 27 6
14,25,2,10};1
14้ได25
หรือ (สามารถกาหนดคาเริ
่ ตRow
นแบบนี
่ ม
้
้ แตจะดู
่ 2 10
แลวงงกว
าสองแบบแรก)
2
้
่
int val[3][4] =
การกาหนดคาใน
array 2 มิต ิ
่
• เราสามารถกาหนดคาให
วใน
่
้กับสมาชิกแตละตั
่
array 2 มิต ิ ไดโดยการระบุ
ตาแหน่งแถวและ
้
คอลัมนภายในเครื
อ
่ งหมายวงเล็บสี่ เหลีย
่ ม [][]
์
int A[2][3]; // ประกาศตัวแปร array 2 มิตท
ิ ี่
มี 3 แถว 4 คอลัค
มน
าที
่ ูกเก็บใน array A:
่ ์ ถ
A[0][0] = 1;
1
2
3
A[0][1] = 2;
4
5
6
A[0][2] = 3;
A[1][0] = 4;
A[1][1] = 5;
ตัวอยางการก
าหนดคาใน
array 2 มิต ิ และพิมพ ์
่
่
สมาชิกทุกตัวออกทางหน้าจอ
ตัวอยางการรั
บคาจาก
keyboard มาเก็บใน array
่
่
2 มิต ิ
และพิมพสมาชิ
กทุกตัวออกทางหน้าจอ
์
แบบฝึ กหัด
• จงเขียนโปรแกรมสาหรับรับ เมตริกซ ์ ของเลขจานวน
เต็มขนาด 2x2 จานวน 2 เมตริกซ ์ จากนั้นแสดงผล
บวกของเมตริกซทั
นเป็ นดังนี้
่
์ ง้ สอง ตัวอยางผลการรั
(ขอความสี
แดงคือคาที
ร่ บ
ั จากผู้ใช)้
้
่
Enter matrix A(2x2):
2 -1
15 9
Enter matrix B(2x2):
10 8
3 -7
Matrix A+B:
12 7
18 2
แบบฝึ กหัด
• จงเขียนโปรแกรมสาหรับรับเมตริกซจากผู
้ใช้ 1
์
เมตริกซ ์ (ให้ชือ
่ วาเมตริ
กซ ์ A) โดยผู้ใช้สามารถ
่
กาหนดจานวนหลักและแถวของเมตริกซได
์A ้ จากนั้นให้
แสดงผลลั
พธเป็
นเมตริ
กซทรานสโพสของ
A
์ of
์ A:
Enter size
matrix
1 5 3
The number of rows: 2
The number of columns: 3
Enter matrix A:
1 5 3
4 2 6
Transpose of matrix A:
1 4
5 2
3 6
4 2 6
B
1
5
3
4
2
6
แบบฝึ กหัด
• จงเขียนโปรแกรมสาหรับรับขอมู
้ ลรูปภาพซึง่ ประกอบดวย
้
สั ญลักษณ์ o และ x ขนาด m แถว n คอลัมน์
แลวให
้
้
สราง
array อีกอันหนึ่งเพือ
่ เก็บผลลัพธที
้
์ เ่ ป็ นการกลับภาพนั้น
โดยตาแหน่งใดทีเ่ ป็ น o ให้เปลีย
่ นเป็ น x และตาแหน่งทีเ่ ป็ น x
ตั้เปลี
วอยย
ให
่ างข
นลเขo้าแลวแสดงผลลั
พธลออกทางหน
่ นเป็้อมู
่
้อมู
้ ตัวอยางข
้ าจอ
์ ออก
5 4
xoox
oxxo
xxxx
oxxo
xoox
oxxo
xoox
oooo
xoox
oxxo
ตัวอยาง
array หลายมิต ิ
่
Example:
int A, B1[6], B2[6], C[3][4], D[3][4][5], E[3][4][5][3];
A
B2
E
B1
C
D