วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2552

DTS03-30-06-2552

อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะ
คล้ายเซ็ตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวน
คงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บ
ที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก



การกำหนด Array
การกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อม
subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้
มากกว่า 1 ตัวจำนวน subscript จะเป็น ตัวบอกมิติ
ของอะเรย์นั้น อะเรย์ที่มี subscript มากกว่า 1 ตัวขึ้นไป จะ
เรียกว่า อะเรย์หลายมิติ
ค่าของ subscript แต่ละค่าประกอบด้วยค่า มาก สุก และ ค่า ต่ำ สุด
ของ แต่ ละ subscript นี้น การ ประ กาศ ค่า array
สามารถใช่ ภาษาคอมพิวเตอรได้ สองแบบ เช่น ภาษาปาสคาล และ ภาษาซี

ข้อกำหนดของการกำหนดค่าต่ำสุดและ
ค่าสูงสุดของ subscript คือ
1. ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
2. ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
3. ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)

ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมี
ค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่า
หรือเท่ากับขอบเขตบน
lower bound ≤ subscript ≤ upper bound
ขนาดของ index แต่ละตัว ของ Array หา
ได้จาก
ขนาดของ subscript = upper bound – lower bound + 1

จำนวนสมาชิกหรือขนาดของอะเรย์ n มิติ หาได้จาก
ขนาดของอะเรย์ = ผลคูณของขนาดของsubscript แต่ละตัว เช่น
ขนาดของอะเรย์
A = Upper bound – lowerbound+1= 10-1+1 = 10

การจัดเก็บอะเรย์ในหน่วยความจำหลักจะใช้
เนื้อที่ขนาด เท่ากันเพื่อเก็บสมาชิกแต่ละตัว โดยเนื้อ
ที่จะเรียงต่อเนื่องกัน การจัดเก็บอะเรย์ใน
หน่วยความจำหลัก จะพิจารณาตาม ประเภท
ของอะเรย์ในมิติต่าง ๆ ดังนี้
- อะเรย์ 1 มิติ
- อะเรย์ หลายมิติ
อะเรย์ 1 มิติ รูปแบบ
data-type array-name[expression]
data-type คือ ประเภทของข้อมูลอะเรย์ เช่น int char float
array-name คือ ชื่อของอะเรย์
expression คือ นิพจน์จำนวนเต็มซึ่งระบุจำนวนสมาชิกของอะเรย์

- Initialization คือ การกำหนดค่าเริ่มต้นให้อะเรย์ เช่นEx1. int sum[5] = {1,2,3,4,5}; หรือ int sum[] = 1,2,3,4,5}; (เป็นการประกาศตัวแปร sum ที่มีชนิดของข้อมูลเป็นจำนวนเต็มที่เป็นอะเรย์ 1มิติเก็บข้อมูลได้ 5 ตัว)Ex2. char ch[7] = “string”; หรือ char ch[7] = {‘S’,‘T’,‘R’,‘I’,‘N’,‘G’,‘\0’}; (เป็นการประกาศตัวแปร ch ที่มีชนิดของข้อมูลเป็นตัวอักษร เรียกว่า"สตริง" ที่เป็นอะเรย์ 1มิติเก็บข้อมูลได้ 7 ตัวและ ch[7] จะเก็บค่า \0โดยอัตโนมัติ เพื่อแสดงการสิ้นสุดของข้อความ)
- อะเรย์ 2มิติ มีรูปแบบ ดังนี้
type array-name[n] [m];
type หมายถึง ชนิดของตัวแปรที่ต้องการประกาศเป็นอะเรย์array-name หมายถึง ชื่อของตัวแปรที่ต้องการประกาศเป็นอะเรย์
n หมายถึง ตัวเลขที่แสดงตำแหน่งของแถวm หมายถึง ตัวเลขที่แสดงตำแหน่งของคอลัมน์
char a[2][3]; (เป็นการจองเนื้อที่ในหน่วยความจำจำนวน 6 ที่ให้กับตัวแปร)
col1 col2 col3
row1 a[0][0] a[0][1] a[0][2]
row 2 a[1][0] a[1][1] a[1][2]

Initialization คือ การกำหนดค่าเริ่มต้นให้อะเรย์ เช่น
int amount[2][3] }; (เป็นการประกาศตัวแปร amount ที่มีชนิดของข้อมูลเป็นจำนวนเต็มที่เป็นอะเรย์ 2มิติเก็บข้อมูลได้ 6 ตัว)
int amount[2][3] }; int a[2][3] = {1,2,3,4,5,6}; หรือ
int a[2][3] = {{1,2,3},{4,5,6}};