15

งานทำ Blog บทที่ 8

  • Upload
    -

  • View
    142

  • Download
    7

Embed Size (px)

Citation preview

Page 1: งานทำ Blog บทที่ 8
Page 2: งานทำ Blog บทที่ 8

ตัวแปรอาร์เรย์ (Array Variable)

1 ตัวแปรอาร์เรย์ 1 มิติ

2

ตัวแปรอาร์เรย์ (Array Variable) เปรียบเสมือนการน าตัวแปร

มาเรียงต่อกันหลาย ๆ ตัว โดยที่ทุกตัวมีชนิดข้อมูลเดียวกัน มีชื่อตัว

แปรเดียวกัน แต่สามารถอ้างถึงต าแหน่งข้อมูลแต่ละตัวที่เรียงต่อกัน

ด้วยล าดับการจัดเรียง ซึ่งเรียกต าแหน่งข้อมูลแต่ละตัวว่า อินเด็กซ์

(Index)

ตัวแปรอาร์เรย์ในภาษา C นั้น สามารถแยกได้ 2 แบบคือ

ตัวแปรอาร์เรย์หลายมิติ

Page 3: งานทำ Blog บทที่ 8

ตัวแปรอาร์เรย์ 1 มิติ (One Dimension Array)

ตัวแปรอาร์เรย์ 1 มิติ (One Dimension Array) เปรียบได้

กับการน าตัวแปรมาเรียงต่อกันหลาย ๆ ตัว ในลักษณะของแถว

ข้อมูล ซึ่งเราจะจ าลองตัวอย่างตัวแปรอาร์เรย์ 1 มิติ ชื่อตัวแปร

intEx1 เป็นตัวแปรชนิดจ านวนเต็มที่สามารถเก็บข้อมูลจ านวน

เต็มได้ 6 ตัว เช่น

[0] [1] [2] [3] [4] [5] 7 1 5 2 0 0

Page 4: งานทำ Blog บทที่ 8

จากตัวอย่างจะเห็นว่า ตัวแปรอาร์เรย์สามารถเก็บข้อมูลได้ 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

Page 5: งานทำ Blog บทที่ 8

ตัวแปรอาร์เรย์หลายมติ ิ(multi – Dimension Array)

ตัวแปรอาร์เรย์หลายมิติ คือ ตัวแปรที่มีมุมมองการ

เข้าถึงข้อมูลของตัวแปรได้มากกว่า 1 ด้าน เช่น

• ตัวแปรอาร์เรย์ 2 มิติ (2 – Dimension Array)

• ตัวแปรอาร์เรย์ 3 มิติ (3 – Dimension Array)

Page 6: งานทำ Blog บทที่ 8

ตัวแปรอาร์เรย์ 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

Page 7: งานทำ Blog บทที่ 8

จะเห็นว่า ตัวแปรอาร์เรย์ที่มีขนาด 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

Page 8: งานทำ Blog บทที่ 8

ตัวแปรอาร์เรย์ 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

Page 9: งานทำ Blog บทที่ 8

จะเห็นว่า ตัวแปรอาร์เรย์ที่มีขนาด 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

Page 10: งานทำ Blog บทที่ 8

การเขียนโปรแกรมกับตัวแปรอาร์เรย์

การใช้งานตัวแปรอาร์เรย์ในการเขียนโปรแกรม

เช่น

• การประกาศตัวแปรอาร์เรย์

• การก าหนดค่าข้อมูลให้ตัวแปรอาร์เรย์

• การอ้างถึงข้อมูลในตัวแปรอาร์เรย์

Page 11: งานทำ Blog บทที่ 8

การประกาศตัวแปรอาร์เรย์

การประกาศตัวแปรอาร์เรย์มีกฎการต้ังชื่อและรูปแบบค าสั่งเหมือนกับ

การประกาศตัวแปรท่ัวไป ต่างกันเพียงแค่การประกาศตัวแปรอาร์เรย์

นั้นต้องมีการก าหนดขนาดของตัวแปรไว้เท่านั้นเอง

type varName[k] [m] [n] [={Value}];

โดยที ่ type เป็นชนิดของข้อมูล

varName เป็นชื่อของตัวแปรอาร์เรย์

n เป็นขนาดคอลัมน์ของตัวแปรอาร์เรย์

m เป็นขนาดแถวของตัวแปรอาร์เรย์

k เป็นขนาดบล็อกของตัวแปรอาร์เรย์

Value เป็นเซตข้อมูลของตัวแปรอาร์เรย์

Page 12: งานทำ Blog บทที่ 8

การก าหนดค่าขอ้มูลให้ตัวแปรอาร์เรย์

การก าหนดค่าให้กับตัวแปรอาร์เรย์นั้น มีรูปแบบเหมือนกับ

การก าหนดค่าให้กับตัวแปรทั่วไป ต่างกันเพียงแต่การก าหนดค่าให้กับ

ตัวแปรอาร์เรย์นั้น เราต้องก าหนดต าแหน่งอินเด็กซ์เพื่อระบุต าแหน่ง

ของตัวแปรที่จะก าหนดค่า เช่น

จะเห็นว่ามีการก าหนดขนาดตัวแปรไว้ด้วยเครื่องหมาย [] เช่น

ตัวแปรชนิดจ านวนเต็มชื่อ intNo ขนาด 4 แถว 5 คอลัมน์ เป็นต้น

int intNum[5];

char chPassword[4]

float fPrice[4][2];

int intNo[4][5];

int intCount[4][5];

Page 13: งานทำ Blog บทที่ 8

การอ้างถึงข้อมูลในตัวแปรอาร์เรย์

วิธีการอ่านข้อมูลจากตัวแปรโดยการระบุต าแหน่งข้อมูลที่

ต้องการลงไป หรือท่ีเรียกกันว่า อินเด็กซ์ (Index) ซึ่งมีตัวอย่าง

การใช้งานดังนี ้

เหนื่อย

นัก

ก็

พักก่อน

Ans = intScore[2] * 3;

fsum = fPrice[3][2] + fPrice[3][2];

intNum = intNume[1] + intNum[2];

Page 14: งานทำ Blog บทที่ 8

จากตัวอย่างจะเห็นว่า เราเรียกใช้งานตัวแปรอาร์เรย์โดยระบุ

ต าแหน่งข้อมูลภายในเครื่องหมาย []

เช่น Ans = intScore[2] * 3;

เป็นการก าหนดค่าให้กับตัวแปร Ans โดยมีค่ามาจากผลคูณ

ระหว่างค่าในตัวแปรอาร์เรย์ต าแหน่งที่ 3 กับ 3 เป็นต้น

www,378700000.com

Page 15: งานทำ Blog บทที่ 8

ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย

หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย

คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER