Upload
-
View
142
Download
7
Tags:
Embed Size (px)
Citation preview
ตัวแปรอาร์เรย์ (Array Variable)
1 ตัวแปรอาร์เรย์ 1 มิติ
2
ตัวแปรอาร์เรย์ (Array Variable) เปรียบเสมือนการน าตัวแปร
มาเรียงต่อกันหลาย ๆ ตัว โดยที่ทุกตัวมีชนิดข้อมูลเดียวกัน มีชื่อตัว
แปรเดียวกัน แต่สามารถอ้างถึงต าแหน่งข้อมูลแต่ละตัวที่เรียงต่อกัน
ด้วยล าดับการจัดเรียง ซึ่งเรียกต าแหน่งข้อมูลแต่ละตัวว่า อินเด็กซ์
(Index)
ตัวแปรอาร์เรย์ในภาษา C นั้น สามารถแยกได้ 2 แบบคือ
ตัวแปรอาร์เรย์หลายมิติ
ตัวแปรอาร์เรย์ 1 มิติ (One Dimension Array)
ตัวแปรอาร์เรย์ 1 มิติ (One Dimension Array) เปรียบได้
กับการน าตัวแปรมาเรียงต่อกันหลาย ๆ ตัว ในลักษณะของแถว
ข้อมูล ซึ่งเราจะจ าลองตัวอย่างตัวแปรอาร์เรย์ 1 มิติ ชื่อตัวแปร
intEx1 เป็นตัวแปรชนิดจ านวนเต็มที่สามารถเก็บข้อมูลจ านวน
เต็มได้ 6 ตัว เช่น
[0] [1] [2] [3] [4] [5] 7 1 5 2 0 0
จากตัวอย่างจะเห็นว่า ตัวแปรอาร์เรย์สามารถเก็บข้อมูลได้ 6 ตัว โดยที่
ตัวแปรตัวแรก คือ ต าแหน่งอินเด็กซ์ที่ 0 มีค่าเท่ากับ 7 ซึ่งสามารถ
เขียนได้เป็น intEx1[0] = 7
ตัวแปรตัวที่ 2 คือ ต าแหน่งอินเด็กซ์ที่ 1 มีค่าเท่ากับ 1 ซึ่งสามารถ
เขยีนได้เป็น intEx1[1] = 1
ตัวแปรตัวที่ 3 คือ ต าแหน่งอินเด็กซ์ที่ 2 มีค่าเท่ากับ 5 ซึ่งสามารถ
เขียนได้เป็น intEx1[2] = 5
ตัวแปรตัวที่ 4 คือ ต าแหน่งอินเด็กซ์ที่ 3 มีค่าเท่ากับ 2 ซึ่งสามารถ
เขียนได้เป็น intEx1[3] = 2
ตัวแปรตัวที่ 5 คือ ต าแหน่งอินเด็กซ์ที่ 4 มีค่าเท่ากับ 0 ซึ่งสามารถ
เขียนได้เป็น intEx1[4] = 0
ตัวแปรตัวสุดท้าย คือ ต าแหน่งอินเด็กซ์ที่ 5 มีค่าเท่ากับ 0 ซึ่ง
สามารถเขียนได้เป็น intEx1[5] = 0
ตัวแปรอาร์เรย์หลายมติ ิ(multi – Dimension Array)
ตัวแปรอาร์เรย์หลายมิติ คือ ตัวแปรที่มีมุมมองการ
เข้าถึงข้อมูลของตัวแปรได้มากกว่า 1 ด้าน เช่น
• ตัวแปรอาร์เรย์ 2 มิติ (2 – Dimension Array)
• ตัวแปรอาร์เรย์ 3 มิติ (3 – Dimension Array)
ตัวแปรอาร์เรย์ 2 มิติ (2 – Dimension Array)
ตัวแปรอาร์เรย์ 2 มิติ เปรียบได้กับการน าตัวแปรมาเรียงต่อกัน
หลาย ๆ ตัวในลักษณะของตารางข้อมูล จะเป็นการเก็บข้อมูลในแนว
แถวและหลัก การอ้างถึงเซลล์ในอาร์เรย์จะต้องใช้อินเด็กซ์ที่อ้างไปยัง
แถวและหลัก การเก็บข้อมูลบางประเภทนั้นตัวแปรอาร์เรย์แบบมิติ
เดยีวจะท างานไม่สะดวก ซึ่งอาจต้องใช้ตัวแปรอาร์เรย์แบบ 2 มิติ
[0][0] [0][1] [0][2] [0][3] [0][4]
[1][0] [1][1] [1][2] [1][3] [1][4]
[2][0] [2][1] [2][2] [2][3] [2][4] 5 7 7 1 5
2 0 0 9 1
9 8 6 3 2
จะเห็นว่า ตัวแปรอาร์เรย์ที่มีขนาด 3 แถว 5 คอลัมน์ สามารถเก็บ
ข้อมูลได้ 15 ตัว โดยที ่
• ตัวแปรแถวที่ 1 คอลัมน์ที่ 1 มีค่าเท่ากับ 2 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 2
• ตัวแปรแถวที่ 1 คอลัมน์ที่ 2 มีค่าเท่ากับ 0 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 0
• ตัวแปรแถวที่ 1 คอลัมน์ที่ 5 มีค่าเท่ากับ 1 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 1
• ตัวแปรแถวที่ 3 คอลัมน์ที่ 1 มีค่าเท่ากับ 5 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 5
• ตัวแปรแถวที่ 3 คอลัมน์ที่ 2 มีค่าเท่ากับ 7 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 7
• ตัวแปรแถวที่ 3 คอลัมน์ที่ 5 มีค่าเท่ากับ 5 ซึ่งสามารถเขียนได้เป็น intEx2[0][0] = 5
ตัวแปรอาร์เรย์ 3 มิติ (3 – Dimension Array)
ตัวแปรอาร์เรย์ 3 มิติ เปรียบได้กับการน าตัวแปรมาเรียงต่อกัน
หลาย ๆ ตัว ในลักษณะของกล่องข้อมูลหรือเรียกอีกอย่างว่า
อาร์เรย์ของอาร์เรย์ 2 มิติ
[0][0][0] [0][0][1] [0][0][2] [0][0][3]
[0][1][0] [0][1][1] [0][1][2] [0][1][3]
[0][2][0] [0][2][1] [0][2][2] [0][2][3] 9 2 1 7
8 5 9 8
4 6 3 7
9 2 1 7
8 5 9 8
4 6 3 7
[1][0][0] [1][0][1] [1][0][2] [1][0][3]
[1][1][0] [1][1][1] [1][1][2] [1][1][3]
[1][2][0] [1][2][1] [1][2][2] [1][2][3]
7 1 4 5
3 7 1 6
2 8 9 2
จะเห็นว่า ตัวแปรอาร์เรย์ที่มีขนาด 2 บล็อก 3 แถว 4 คอลัมน์ สามารถ
เก็บข้อมูลได้ 24 ตัว
• ตัวแปรบล็อกที่ 1 แถวที่ 1 คอลัมน์ที่ 1 มีค่าเท่ากับ 9 เขียนได้เป็น intEx3[0][0][0] = 9
• ตัวแปรบล็อกที่ 1 แถวที่ 1 คอลัมน์ที่ 2 มีค่าเท่ากับ 2 เขียนได้เป็น intEx3[0][0][1] = 2
• ตัวแปรบล็อกที่ 1 แถวที่ 1 คอลัมน์ที่ 3 มีค่าเท่ากับ 1 เขียนได้เป็น intEx3[0][0][2] = 1
• ตัวแปรบล็อกที่ 1 แถวที่ 2 คอลัมน์ที่ 1 มีค่าเท่ากับ 8 เขียนได้เป็น intEx3[0][1][0] = 8
• ตัวแปรบล็อกที่ 1 แถวที่ 2 คอลัมน์ที่ 2 มีค่าเท่ากับ 5 เขียนได้เป็น intEx3[0][1][1] = 5
• ตัวแปรบล็อกที่ 1 แถวที่ 3 คอลัมน์ที่ 4 มีค่าเท่ากับ 7 เขียนได้เป็น intEx3[0][2][3] = 7
• ตัวแปรบล็อกที่ 2 แถวที่ 1 คอลัมน์ที่ 1 มีค่าเท่ากับ 7 เขียนได้เป็น intEx3[1][0][0] = 7
• ตัวแปรบล็อกที่ 2 แถวที่ 1 คอลัมน์ที่ 2 มีค่าเท่ากับ 1 เขียนได้เป็น intEx3[1][0][1] = 1
• ตัวแปรบล็อกที่ 2 แถวที่ 1 คอลัมน์ที่ 3 มีค่าเท่ากับ 4 เขียนได้เป็น intEx3[1][0][2] = 4
• ตัวแปรบล็อกที่ 2 แถวที่ 2 คอลัมน์ที่ 1 มีค่าเท่ากับ 3 เขียนได้เป็น intEx3[1][1][0] = 3
• ตัวแปรบล็อกที่ 2 แถวที่ 2 คอลัมน์ที่ 2 มีค่าเท่ากับ 7 เขียนได้เป็น intEx3[1][1][1] = 7
• ตัวแปรบล็อกที่ 2 แถวที่ 3 คอลัมน์ที่ 4 มีค่าเท่ากับ 2 เขียนได้เป็น intEx3[1][2][3] = 2
การเขียนโปรแกรมกับตัวแปรอาร์เรย์
การใช้งานตัวแปรอาร์เรย์ในการเขียนโปรแกรม
เช่น
• การประกาศตัวแปรอาร์เรย์
• การก าหนดค่าข้อมูลให้ตัวแปรอาร์เรย์
• การอ้างถึงข้อมูลในตัวแปรอาร์เรย์
การประกาศตัวแปรอาร์เรย์
การประกาศตัวแปรอาร์เรย์มีกฎการต้ังชื่อและรูปแบบค าสั่งเหมือนกับ
การประกาศตัวแปรท่ัวไป ต่างกันเพียงแค่การประกาศตัวแปรอาร์เรย์
นั้นต้องมีการก าหนดขนาดของตัวแปรไว้เท่านั้นเอง
type varName[k] [m] [n] [={Value}];
โดยที ่ type เป็นชนิดของข้อมูล
varName เป็นชื่อของตัวแปรอาร์เรย์
n เป็นขนาดคอลัมน์ของตัวแปรอาร์เรย์
m เป็นขนาดแถวของตัวแปรอาร์เรย์
k เป็นขนาดบล็อกของตัวแปรอาร์เรย์
Value เป็นเซตข้อมูลของตัวแปรอาร์เรย์
การก าหนดค่าขอ้มูลให้ตัวแปรอาร์เรย์
การก าหนดค่าให้กับตัวแปรอาร์เรย์นั้น มีรูปแบบเหมือนกับ
การก าหนดค่าให้กับตัวแปรทั่วไป ต่างกันเพียงแต่การก าหนดค่าให้กับ
ตัวแปรอาร์เรย์นั้น เราต้องก าหนดต าแหน่งอินเด็กซ์เพื่อระบุต าแหน่ง
ของตัวแปรที่จะก าหนดค่า เช่น
จะเห็นว่ามีการก าหนดขนาดตัวแปรไว้ด้วยเครื่องหมาย [] เช่น
ตัวแปรชนิดจ านวนเต็มชื่อ intNo ขนาด 4 แถว 5 คอลัมน์ เป็นต้น
int intNum[5];
char chPassword[4]
float fPrice[4][2];
int intNo[4][5];
int intCount[4][5];
การอ้างถึงข้อมูลในตัวแปรอาร์เรย์
วิธีการอ่านข้อมูลจากตัวแปรโดยการระบุต าแหน่งข้อมูลที่
ต้องการลงไป หรือท่ีเรียกกันว่า อินเด็กซ์ (Index) ซึ่งมีตัวอย่าง
การใช้งานดังนี ้
เหนื่อย
นัก
ก็
พักก่อน
Ans = intScore[2] * 3;
fsum = fPrice[3][2] + fPrice[3][2];
intNum = intNume[1] + intNum[2];
จากตัวอย่างจะเห็นว่า เราเรียกใช้งานตัวแปรอาร์เรย์โดยระบุ
ต าแหน่งข้อมูลภายในเครื่องหมาย []
เช่น Ans = intScore[2] * 3;
เป็นการก าหนดค่าให้กับตัวแปร Ans โดยมีค่ามาจากผลคูณ
ระหว่างค่าในตัวแปรอาร์เรย์ต าแหน่งที่ 3 กับ 3 เป็นต้น
www,378700000.com
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER