02739211 Principles of Programming อาร์เรย์ (Arrays) 02739211 Principles of Programming
02739211 Principles of Programming หัวข้อ ตัวแปรอาร์เรย์ อาร์เรย์หนึ่งมิติ (One Dimension Arrays) อาร์เรย์สองมิติ (Two Dimension Arrays) 02739211 Principles of Programming
02739211 Principles of Programming อาร์เรย์ 2 มิติ มีลักษณะเหมือนเมตริกซ์ ประกอบด้วยแถวและคอลัมน์ การอ้างอิงชื่ออาร์เรย์ จะรู้ตำแหน่งที่อยู่ที่ใช้จัดเก็บอิลิเมนท์ตัวแรก การอ้างอิงค่าตัวแปรภายในอาร์เรย์จะใช้ Subscript หรืออาจเรียกว่า Index เช่น data[2][3] เป็นการอ้างถึงตัวแปร data ในตู้หน่วยความจำแถวที่ 2 คอลัมน์ที่ 3 (ตู้แรกแถวที่ 0 คอลัมน์ที่ 0) 02739211 Principles of Programming
การประกาศตัวแปรอาร์เรย์สองมิติ รูปแบบ ชนิดข้อมูล ชื่อตัวแปร[จำนวนแถว] [จำนวนคอลัมน์]; จำนวนแถวและคอลัมน์ เป็นจำนวนเต็มบวก อาจเป็นค่าคงที่หรือ นิพจน์ทางคณิตศาสตร์ เช่น int data[4] [5]; ประกาศตัวแปรอาร์เรย์2มิติชนิดจำนวนเต็มชื่อ data ให้มี แถว คอลัมน์ มี subscript จาก [ ][ ] ถึง [ ][ ] ได้แก่ data[ ][ ] data[ ][ ] … data[ ][ ] 02739211 Principles of Programming
ตู้หน่วยความจำของอาร์เรย์ data[4][5] … data[3][0] data[3][1] data[3][2] data[3][3] data[3][4] Row 0 Row 3 02739211 Principles of Programming
ตัวอย่างการประกาศตัวแปรอาร์เรย์สองมิติ main() { int size = 3; int number[2][3]; float score[size+2][size-1]; … } 02739211 Principles of Programming
ตัวอย่างการใช้ตัวแปรอาร์เรย์สองมิติ เขียนโปรแกรมเพื่อรับค่าคะแนน 3 วิชาของนักศึกษา 5 คนมาเก็บไว้ในอาร์เรย์สองมิติ 5 แถว 3 คอลัมน์ หาผลรวมคะแนน พิมพ์รายงานออกหน้าจอ 02739211 Principles of Programming
ตัวอย่างการใช้ตัวแปรอาร์เรย์สองมิติ main() { int i,j,total=0; int sc[5][3]; printf(“\nInput score of Math, Science and Physics\n\n”); for(i=0;i <5 ;i++) { printf(“Student # %2d :: ”,i+1); scanf(“%d %d %d”,&sc[i][0],&sc[i][1],&sc[i][2]); } printf(“\n\nSeq.\tMath \tSCI \tPhy \tTotal\n”); Printf(“**************************************\n”); for(j=0;j<5;j++) { total = sc[j][0]+sc[j][1]+sc[j][2]; printf(“%2d\t %2d \t %2d \t %2d \t%2d\n”,j+1,sc[j][0], sc[j][1], sc[j][2],total); } printf(“\n”); getch();} 02739211 Principles of Programming
การกำหนดค่าเริ่มต้นให้กับตัวแปรอาร์เรย์สองมิติ ชนิดข้อมูล ชื่อตัวแปร[ ][ ] = { {r0c0,r0c1,r0c2,…,r0cn}, {r1c0,r1c1,r1c2,…,r1cn}, {…}, {rmc0,rmc1,rmc2,…,rmcn}}; 02739211 Principles of Programming
การกำหนดค่าเริ่มต้นให้กับตัวแปรอาร์เรย์สองมิติ เช่น char vowel [2][5] = {{ ‘a’, ‘e’, ‘i’, ‘o’, ‘u’}, { ‘A’, ‘E’, ‘I’, ‘O’, ‘U’}}; เป็นการกำหนดตัวแปร array ของอักขระ (char) ชื่อ vowel ให้มี 2 แถว 5 คอลัมน์ พร้อมกับกำหนดค่าเริ่มต้นให้เป็น a, e, i, o, u ,A,E,I,O,U ตามลำดับ 02739211 Principles of Programming
การกำหนดค่าเริ่มต้นให้กับตัวแปรอาร์เรย์สองมิติ vowel[0][0] vowel[0][1] vowel[0][2] vowel[0][3] vowel[0][4] vowel[1][0] vowel[1][1] vowel[1][2] vowel[1][3] vowel[1][4] 02739211 Principles of Programming
ตัวอย่างการกำหนดค่าเริ่มต้นตัวแปรอาร์เรย์ เขียนโปรแกรมเพื่อกำหนดค่าเริ่มต้นให้กับอาร์เรย์จำนวนเต็มบวกสองมิติ 4 แถว 5 คอลัมน์ พิมพ์ค่าทั้งหมดออกหน้าจอตามลำดับ 02739211 Principles of Programming
ตัวอย่างการกำหนดค่าเริ่มต้นตัวแปรอาร์เรย์ main() { int i,j; int c[4][5] = { {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20} }; printf(“ Col-0 Col-1 Col-2 Col-3 Col-4\n"); printf(“ +-------------------------------------------------------+\n"); for(i=0;i <4 ;i++) { printf(“\nRow-%d : ”,i); for(j=0;j<5;j++) printf(“\t%2d”,c[i][j]); } printf(“\n”); getch();} ผลลัพธ์ 02739211 Principles of Programming