ข้อมูลชนิดอาร์เรย์
ความหมาย
- อาร์เรย์ คือ ข้อมูลที่ประกอบไปด้วยรายการชนิดข้อมูลเดียวกันจำนวนหนึ่ง
- แต่ละรายการเรียกว่า เซลล์ (Cell)
- และแต่ละเซลล์จะมี อินเด็กซ์ (Index) สำหรับใช้เพื่ออ้างถึงข้อมูล
ชนิดของอาร์เรย์
แบ่งได้เป็น 3 ชนิด
- อาร์เรย์ชนิด 1 มิติ (One-Dimensional)
- อาร์เรย์ชนิด 2 มิติ (Two-Dimensional)
- อาร์เรย์ชนิด 3 มิติ (Three-Dimensional
อาร์เรย์ (Array)
อาร์เรย์ (Array) เป็นตัวแปรชุดให้สำหรับเก็บข้อมูลที่มีความสัมพันธ์กัน โดยจะเก็บไว้ในชื่อเดียวกัน
สมาชิกแต่ละตัวของ Array จะเรียกว่า Element หรือ Cell ตัวเลขที่ใช้ระบุตำแหน่งสมาชิกของ Array เรียกว่า Index หรือ Subscript
ตัวอย่าง Array X ที่มี 5 Element
ซึ่งจะเริ่มต้นตั้งแต่ Index 0 ถึง 4
ตัวแปรอาร์เรย์แบบ 1 มิติ
อาร์เรย์หนึ่งมิติ มีโครงสร้างเทียบเท่าเมตริกซ์ขนาด nx1 การประกาศตัวแปรอาร์เรย์ จะใช้เครื่องหมาย [ ] ล้อมค่าตัวเลขจำนวนเต็ม เพื่อบอกจำนวนหน่วยข้อมูลที่ต้องการได้ในรูป
ชนิดของตัวแปร ชื่อตัวแปร[จำนวนสมาชิกที่ต้องการ]
data_type variable_name [ number-of-elements ]
เช่น int a[5];
double x, y[10], z[3];
ตัวแปรอาร์เรย์หลายตัว
อาร์เรย์หลายมิติ (Multi-dimensional array) คือ อาร์เรย์ที่มีสมาชิกเป็นข้อมูลอาร์เรย์ นั่นคือ ในหน่วยข้อมูลแต่ละหน่วยของอาร์เรย์ จะเป็นอาร์เรย์ย่อยๆ ซึ่งอาจจะกำหนดซ้อนลงไปได้หลายชั้น
การกำหนดอาร์เรย์หลายมิติ จะกระทำในรูป
ชนิดตัวแปร ชื่อตัวแปร[จำนวนสมาชิก][จำนวนสมาชิก]….;
การประกาศอาร์เรย์หลายตัวทำได้ดังนี้
int [] abc , xyz;
abc = new int[500];
xyz = new int[10];
หรือเขียนรวมกันได้ดังนี้
int[] abc = new int[500], xyz = new int[10];
การกำหนดค่าเริ่มต้นให้อาร์เรย์ 1 มิติ
สามารถประกาศตัวแปร Array พร้อมกับกำหนดค่าเริ่มต้นให้กับสมาชิก Array ได้โดยมีรูปแบบดังนี้
ชนิดของตัวแปรอาร์เรย์ ชื่ออาร์เรย์[จำนวนข้อมูล] = {ค่าคงที่,ค่าคงที่,…};
อาร์เรย์ 2 มิติ
ในตอนต้นที่กล่าวมาทั้งหมดนั้นจะเป็นอาร์เรย์เพียง 1 มิติเท่านั้น แต่ในงานบางอย่างต้องการข้อมูลที่อยู่ในลักษณ์ที่มากกว่า 1 มิติ อาร์เรย์ 2 มิตินั้นก็เปรียบเสมือนตารางนั้นที่ประกอบไปด้วยแถวและคอลัมน์ ในรูปที่ 8-13 แสดงตารางซึ่งสามารถเรียกได้เป็น อาร์เรย์ 2 มิติ
ถึงแม้ว่าอาร์เรย์ 2 มิติที่แท้จริงนั้นแสดงในรูปที่ 8-13 แต่ในภาษา C จะมองเป็นในอาร์เรย์ 1 มิติอยู่ แต่จะใช้เลขลำดับของ Element เป็น 2 ตัว ตัวแรกเป็นแถวตัวที่ 2 เป็นคอลัมน์ ซึ่งลักษณะทางแนวความคิดของภาษา C ดังแสดงในรูปที่ 8-14
การประกาศและการกำหนดลักษณะของอาร์เรย์ 2 มิติ
อาร์เรย์ 2 มิติ จะเหมือนกับอาร์เรย์ 1 มิติ ในการประกาศและกำหนดลักษณะก่อนการใช้ จะเป็นตัวบอกให้คอมไพเลอร์รู้ว่า อาร์เรย์ที่สร้างมีชื่ออะไร มีชนิดข้อมูลของแต่ละ Element เป็นชนิดอะไร และมีขนาดของแต่ละมิติเป็นเท่าไร ดังตัวอย่างที่แสดงในรูปที่ 8-14 สามารถทำการประกาศและกำหนดลักษณะได้ดังนี้
int talbe [5] [4];
โดยตัวเลขตัวแรกจะบอกจำนวนของแถว และตัวเลขตัวที่ 2 จะบอกจำนวนของคอลัมน์ในแต่ละแถว
การกำหนดค่าเริ่มต้น หลังจากที่ได้ทำการประกาศและกำหนดลักษณะของอาร์เรย์แล้วในแต่ละ Element ของอาร์เรย์จะยังไม่มีค่าบรรจุอยู่ ในการกำหนดค่าเริ่มต้นของ Element แต่ละตัวสามารถทำได้หลังจากการประกาศ ตัวอย่างสมมุติว่าต้องการใช้ 20 ค่า การกำหนดค่าเริ่มต้นแบบทางเดียวจะเป็นดังนี้
int table [5] [4]; =
{ 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23, 30, 31, 32, 33, 40, 41, 42, 43 };
หรือการกำหนดค่าเริ่มต้นให้กับอาร์เรย์ วิธีที่ดีที่สุดจะเป็นดังนี้
int table [5] [4];
{
{ 0, 1, 2, 3 },
{10, 11, 12, 13 },
{20, 21, 22, 23 },
{30, 31, 32, 33 },
{40, 41, 42, 43 }
}; /* table */
การส่งค่าของอาร์เรย์ 2 มิติไปให้กับฟังก์ชัน
การส่งค่าของอาร์เรย์ 2 มิติไปให้กับฟังก์ชันนั้น สามารถทำได้ 3 แบบ ดังนี้
1. การส่งค่าแบบ Element เดียว (Passing Individual Elements) ซึ่งมีการกระทำเหมือนกับอาร์เรย์ 1 มิติ คือ ให้ลูปวนส่งค่าไปทีละ Element
2. การส่งค่าที่แถว (Passing a Row) เป็นการส่งค่าทั้งแถว โดยการใช้ลำดับของแถวเป็นตัวส่งไป ซึ่งแสดงในรูปที่ 8-15 ซึ่งพารามิเตอร์ที่รับจะเป็นอาร์เรย์ 1 มิติ ในฟังก์ชันที่ถูกเรียงก็จะใช้ลูป for เพียง 1ลูปในการทำงานเหมือนกับการส่งอาร์เรย์ 1 มิติมาให้
3. การส่งค่าแบบทั้งอาร์เรย์ (Passing The Whole Array) เมื่อผู้ใช้ต้องการส่งค่าอาร์เรย์ 2 มิติไปให้กับฟังก์ชันอื่น จะใช้ชื่อของอาร์เรย์เป็นพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ โดยมีตัวอย่างการประกาศฟังก์ชันดังนี้
Double average (int table[] [MAX_COLS]);
ซึ่งจะสังเกตได้ว่าการประกาศพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ ที่กำหนดแต่ขนาดของคอลัมน์ไว้เพียงเท่านั้น ซึ่งจะมีข้อกำหนดในการส่งค่าดังนี้
1. เวลาจะส่งค่าไปให้กับฟังก์ชันที่ถูกเรียก ก็เพียงใช้ชื่อของอาร์เรย์เท่านั้น
2. ส่วนพารามิเตอร์ในฟังก์ชันที่ถูกเรียก จะต้องกำหนดให้มีชนิดข้อมูลเดียวกัน และเป็นอาร์เรย์ 2 มิติ โดยกำหนดแต่ขนาดของคอลัมน์เท่านั้น
อาร์เรย์หลายมิติ
อาร์เรย์หลายมิติสามารถมีได้ตั้งแต่ 3 มิติ 4 มิติ หรือหลายมิติ ซึ่งในรูปทื่ 8-18 แสดงอาร์เรย์ที่มีมิติ 3 มิติ
ถึงแม้ว่าอาร์เรย์ 3 มิติ ที่แท้จริงจะเป็นดังในรูปที่ 8-18 แต่ในภาษา Cจะมองเป็นแบบอื่น คือ การสร้างอาร์เรย์ 3 มิติ จะสร้างจากอาร์เรย์ 2 มิติหลายอัน และอาร์เรย์ 2 มิติ ก็จะสร้างมาจากอาร์เรย์ 1 มิติ ฉะนั้นจะเรียกอาร์เรย์ 3 มิติ ว่าเป็นอาร์เรย์ของอาร์เรย์นั้นเอง ลักษณะที่ภาษา C มองกับอาร์เรย์ 3 มิติ
การประกาศและการกำหนดลักษณะของอาร์เรย์ 3 มิติ
อาร์เรย์หลายมิติจะเหมือนกับอาร์เรย์ 1 มิติ ในการประกาศและกำหนดลักษณะก่อนการใช้ ซึ่งการประกาศและกำหนดลักษณะนั้นจะเป็นตัวบอกให้คอมไพเลอร์รู้ว่า อาร์เรย์ที่สร้างมีชื่ออะไร มีชนิดข้อมูลของแต่ละ Element เป็นอะไร และมีขนาดของแต่ละมิติเป็นเท่าไร ซึ่งตัวอย่างที่แสดงในรูปที่ 8-19 สามารถทำการประกาศและกำหนดลักษณะได้ดังนี้
int table [3] [5][4];
- อาร์เรย์ คือ ข้อมูลที่ประกอบไปด้วยรายการชนิดข้อมูลเดียวกันจำนวนหนึ่ง
- แต่ละรายการเรียกว่า เซลล์ (Cell)
- และแต่ละเซลล์จะมี อินเด็กซ์ (Index) สำหรับใช้เพื่ออ้างถึงข้อมูล
ชนิดของอาร์เรย์
แบ่งได้เป็น 3 ชนิด
- อาร์เรย์ชนิด 1 มิติ (One-Dimensional)
- อาร์เรย์ชนิด 2 มิติ (Two-Dimensional)
- อาร์เรย์ชนิด 3 มิติ (Three-Dimensional
อาร์เรย์ (Array)
อาร์เรย์ (Array) เป็นตัวแปรชุดให้สำหรับเก็บข้อมูลที่มีความสัมพันธ์กัน โดยจะเก็บไว้ในชื่อเดียวกัน
สมาชิกแต่ละตัวของ Array จะเรียกว่า Element หรือ Cell ตัวเลขที่ใช้ระบุตำแหน่งสมาชิกของ Array เรียกว่า Index หรือ Subscript
ตัวอย่าง Array X ที่มี 5 Element
ซึ่งจะเริ่มต้นตั้งแต่ Index 0 ถึง 4
ตัวแปรอาร์เรย์แบบ 1 มิติ
อาร์เรย์หนึ่งมิติ มีโครงสร้างเทียบเท่าเมตริกซ์ขนาด nx1 การประกาศตัวแปรอาร์เรย์ จะใช้เครื่องหมาย [ ] ล้อมค่าตัวเลขจำนวนเต็ม เพื่อบอกจำนวนหน่วยข้อมูลที่ต้องการได้ในรูป
ชนิดของตัวแปร ชื่อตัวแปร[จำนวนสมาชิกที่ต้องการ]
data_type variable_name [ number-of-elements ]
เช่น int a[5];
double x, y[10], z[3];
ตัวแปรอาร์เรย์หลายตัว
อาร์เรย์หลายมิติ (Multi-dimensional array) คือ อาร์เรย์ที่มีสมาชิกเป็นข้อมูลอาร์เรย์ นั่นคือ ในหน่วยข้อมูลแต่ละหน่วยของอาร์เรย์ จะเป็นอาร์เรย์ย่อยๆ ซึ่งอาจจะกำหนดซ้อนลงไปได้หลายชั้น
การกำหนดอาร์เรย์หลายมิติ จะกระทำในรูป
ชนิดตัวแปร ชื่อตัวแปร[จำนวนสมาชิก][จำนวนสมาชิก]….;
การประกาศอาร์เรย์หลายตัวทำได้ดังนี้
int [] abc , xyz;
abc = new int[500];
xyz = new int[10];
หรือเขียนรวมกันได้ดังนี้
int[] abc = new int[500], xyz = new int[10];
การกำหนดค่าเริ่มต้นให้อาร์เรย์ 1 มิติ
สามารถประกาศตัวแปร Array พร้อมกับกำหนดค่าเริ่มต้นให้กับสมาชิก Array ได้โดยมีรูปแบบดังนี้
ชนิดของตัวแปรอาร์เรย์ ชื่ออาร์เรย์[จำนวนข้อมูล] = {ค่าคงที่,ค่าคงที่,…};
อาร์เรย์ 2 มิติ
ในตอนต้นที่กล่าวมาทั้งหมดนั้นจะเป็นอาร์เรย์เพียง 1 มิติเท่านั้น แต่ในงานบางอย่างต้องการข้อมูลที่อยู่ในลักษณ์ที่มากกว่า 1 มิติ อาร์เรย์ 2 มิตินั้นก็เปรียบเสมือนตารางนั้นที่ประกอบไปด้วยแถวและคอลัมน์ ในรูปที่ 8-13 แสดงตารางซึ่งสามารถเรียกได้เป็น อาร์เรย์ 2 มิติ
ถึงแม้ว่าอาร์เรย์ 2 มิติที่แท้จริงนั้นแสดงในรูปที่ 8-13 แต่ในภาษา C จะมองเป็นในอาร์เรย์ 1 มิติอยู่ แต่จะใช้เลขลำดับของ Element เป็น 2 ตัว ตัวแรกเป็นแถวตัวที่ 2 เป็นคอลัมน์ ซึ่งลักษณะทางแนวความคิดของภาษา C ดังแสดงในรูปที่ 8-14
การประกาศและการกำหนดลักษณะของอาร์เรย์ 2 มิติ
อาร์เรย์ 2 มิติ จะเหมือนกับอาร์เรย์ 1 มิติ ในการประกาศและกำหนดลักษณะก่อนการใช้ จะเป็นตัวบอกให้คอมไพเลอร์รู้ว่า อาร์เรย์ที่สร้างมีชื่ออะไร มีชนิดข้อมูลของแต่ละ Element เป็นชนิดอะไร และมีขนาดของแต่ละมิติเป็นเท่าไร ดังตัวอย่างที่แสดงในรูปที่ 8-14 สามารถทำการประกาศและกำหนดลักษณะได้ดังนี้
int talbe [5] [4];
โดยตัวเลขตัวแรกจะบอกจำนวนของแถว และตัวเลขตัวที่ 2 จะบอกจำนวนของคอลัมน์ในแต่ละแถว
การกำหนดค่าเริ่มต้น หลังจากที่ได้ทำการประกาศและกำหนดลักษณะของอาร์เรย์แล้วในแต่ละ Element ของอาร์เรย์จะยังไม่มีค่าบรรจุอยู่ ในการกำหนดค่าเริ่มต้นของ Element แต่ละตัวสามารถทำได้หลังจากการประกาศ ตัวอย่างสมมุติว่าต้องการใช้ 20 ค่า การกำหนดค่าเริ่มต้นแบบทางเดียวจะเป็นดังนี้
int table [5] [4]; =
{ 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23, 30, 31, 32, 33, 40, 41, 42, 43 };
หรือการกำหนดค่าเริ่มต้นให้กับอาร์เรย์ วิธีที่ดีที่สุดจะเป็นดังนี้
int table [5] [4];
{
{ 0, 1, 2, 3 },
{10, 11, 12, 13 },
{20, 21, 22, 23 },
{30, 31, 32, 33 },
{40, 41, 42, 43 }
}; /* table */
การส่งค่าของอาร์เรย์ 2 มิติไปให้กับฟังก์ชัน
การส่งค่าของอาร์เรย์ 2 มิติไปให้กับฟังก์ชันนั้น สามารถทำได้ 3 แบบ ดังนี้
1. การส่งค่าแบบ Element เดียว (Passing Individual Elements) ซึ่งมีการกระทำเหมือนกับอาร์เรย์ 1 มิติ คือ ให้ลูปวนส่งค่าไปทีละ Element
2. การส่งค่าที่แถว (Passing a Row) เป็นการส่งค่าทั้งแถว โดยการใช้ลำดับของแถวเป็นตัวส่งไป ซึ่งแสดงในรูปที่ 8-15 ซึ่งพารามิเตอร์ที่รับจะเป็นอาร์เรย์ 1 มิติ ในฟังก์ชันที่ถูกเรียงก็จะใช้ลูป for เพียง 1ลูปในการทำงานเหมือนกับการส่งอาร์เรย์ 1 มิติมาให้
3. การส่งค่าแบบทั้งอาร์เรย์ (Passing The Whole Array) เมื่อผู้ใช้ต้องการส่งค่าอาร์เรย์ 2 มิติไปให้กับฟังก์ชันอื่น จะใช้ชื่อของอาร์เรย์เป็นพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ โดยมีตัวอย่างการประกาศฟังก์ชันดังนี้
Double average (int table[] [MAX_COLS]);
ซึ่งจะสังเกตได้ว่าการประกาศพารามิเตอร์ที่เป็นอาร์เรย์ 2 มิติ ที่กำหนดแต่ขนาดของคอลัมน์ไว้เพียงเท่านั้น ซึ่งจะมีข้อกำหนดในการส่งค่าดังนี้
1. เวลาจะส่งค่าไปให้กับฟังก์ชันที่ถูกเรียก ก็เพียงใช้ชื่อของอาร์เรย์เท่านั้น
2. ส่วนพารามิเตอร์ในฟังก์ชันที่ถูกเรียก จะต้องกำหนดให้มีชนิดข้อมูลเดียวกัน และเป็นอาร์เรย์ 2 มิติ โดยกำหนดแต่ขนาดของคอลัมน์เท่านั้น
อาร์เรย์หลายมิติ
อาร์เรย์หลายมิติสามารถมีได้ตั้งแต่ 3 มิติ 4 มิติ หรือหลายมิติ ซึ่งในรูปทื่ 8-18 แสดงอาร์เรย์ที่มีมิติ 3 มิติ
ถึงแม้ว่าอาร์เรย์ 3 มิติ ที่แท้จริงจะเป็นดังในรูปที่ 8-18 แต่ในภาษา Cจะมองเป็นแบบอื่น คือ การสร้างอาร์เรย์ 3 มิติ จะสร้างจากอาร์เรย์ 2 มิติหลายอัน และอาร์เรย์ 2 มิติ ก็จะสร้างมาจากอาร์เรย์ 1 มิติ ฉะนั้นจะเรียกอาร์เรย์ 3 มิติ ว่าเป็นอาร์เรย์ของอาร์เรย์นั้นเอง ลักษณะที่ภาษา C มองกับอาร์เรย์ 3 มิติ
การประกาศและการกำหนดลักษณะของอาร์เรย์ 3 มิติ
อาร์เรย์หลายมิติจะเหมือนกับอาร์เรย์ 1 มิติ ในการประกาศและกำหนดลักษณะก่อนการใช้ ซึ่งการประกาศและกำหนดลักษณะนั้นจะเป็นตัวบอกให้คอมไพเลอร์รู้ว่า อาร์เรย์ที่สร้างมีชื่ออะไร มีชนิดข้อมูลของแต่ละ Element เป็นอะไร และมีขนาดของแต่ละมิติเป็นเท่าไร ซึ่งตัวอย่างที่แสดงในรูปที่ 8-19 สามารถทำการประกาศและกำหนดลักษณะได้ดังนี้
int table [3] [5][4];
|
|
อ