ชุดท5่ี เรือ่ ง ตัวแปรชุด (Array)เฉลยบตั รกจิ กรรมกำรเรยี นรูท้ ี่ 1 10 เรื่อง ตวั แปรชุด1. ถา้ มีการประกาศตัวแปร n เปน็ แถวลาดบั ดังนี้ int n[5]; 1.1 เราสามารถอา้ งถึงสมาชกิ แต่ละตวั ของ n ได้โดยวิธีใด สามารถอ้างถึงสมาชกิ แต่ละตัวของ n ไดโ้ ดย n[0], n[1], n[2], n[3], n[4] 1.2 เราสามารถอ้างถึงสมาชิก n[5] ได้หรอื ไม่ เพราะเหตุใด และมีข้อควรระวงั หรือข้อจากัดอยา่ งไร เราสามารถอา้ งอิงสมาชิก n[5] ได้ เนอ่ื งจากภาษาซีไม่มีการตรวจสอบขอบเขตของการอ้างองิดัชนใี นตัวแปรแถวลาดบั แต่อาจก่อให้เกิดความผิดพลาดในขณะรนั โปรแกรม 1.3 ถ้าตอ้ งการกาหนดค่าเริ่มตน้ ใหก้ บั สมาชิกทุกตวั ในแถวลาดับ n มคี า่ เป็น 0 (ศนู ย์) ตอ้ งใชค้ าสั่งใด Int n[5] = {0};2. แถวลาดบั ตอ่ ไปนี้ มขี นาดเป็นเท่าใด ถ้ากาหนด #define SIZE 5 ขนาด แถวลาดับ 5 5 2.1 int n[ ] = {1, 2, 3, 4, 5}; 5 2.2 int s[SIZE]; 6 2.3 Int n[SIZE] = {0, 2, 4} 15 2.4 char str1[ ] = ‘H’ , ’E’ , ‘l’ , ‘l’ , ‘o’ , ‘\0’}; 2.5 char str2[ ] = “Hello everyone”;ชดุ กจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 50รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5
ชดุ ท5ี่ เรอื่ ง ตัวแปรชุด (Array) เฉลยบตั รกจิ กรรมกำรเรยี นรทู้ ี่ 1 เรอื่ ง ตัวแปรชุด 3. ใหพ้ ิจารณาวา่ คาสงั่ หรือชุดคาสงั่ ต่อไปนีผ้ ิดหรอื ไม่ เพราะเหตุใด 3.1 char str[6] = {‘w’ , ‘I’ , ‘n’ , ‘d’ , ‘o’ , ‘w’ , ‘s’}; ไม่ผดิ พราะ str จะมีสมาชกิ เป็น ‘w’, ‘I’ , ‘n’ , ‘d’ , ‘o’ , ‘w’ , ‘s’ เท่าน้นั และไม่มี ‘\0’ ปิดท้ายแต่ไม่ควรใชง้ านในลักษณะแบบนีเ้ พราะเม่ือมีการอ้างถึง str ในแบบสายอักขระจะถือวา่ สาย อกั ขระจบเมื่อพบอักขระ ‘\0’ ซ่ึงในทน่ี ไี้ ม่สามารถบอกไดว้ ่าสายอักขระนีม้ ีความยาวที่แน่นอนเป็น เท่าใด และอาจจะทาใหเ้ กิดความผิดพลาดในขณะรนั โปรแกรมได้ด้วย 3.2 float weight[4] = {35, 45, 42, 60, 46, 62}; ไม่ผิด แต่ weight จะมีสมาชิกเพยี ง 4 ตวั คือ 35, 45, 42 และ 60 3.3 char str[6] = “windows”; ไม่ผดิ แต่ str จะมีสมาชิกเพยี ง 6 ตวั คือ w, i, n, d, o และ w 3.4 char str[9] = “windows”; ไมผ่ ดิ 3.5 int b[10] = {0}, I; for (i=0; I <=10; i++) b[i] = I; โปรแกรมสามสรถรนั ได้ แตผ่ ดิ เพราะมกี ารอา้ งองิ ตวั แปร b[10] ซึ่งไม่ไดป้ ระกาศไว้ชดุ กจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 51รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปที ่ี 5
ชดุ ท5่ี เรอื่ ง ตัวแปรชุด (Array)เฉลยบตั รกิจกรรมกำรเรยี นรทู้ ี่ 1 เร่ือง ตวั แปรชดุ4. ผลลพั ธ์ท่ไี ด้จากการรนั สว่ นของโปรแกรมต่อไปนี้คืออะไรint I; ”, a[i]; int a[10]; for (i=0; i<10; i++) a[i] = 2*I; for (i=0; i<10; i++) printf(“%d printf(“\n”); 0 2 4 6 8 10 12 14 16 185. ใหเ้ ขยี นคาส่ังหรือชุดของคาส่งั เพื่อดาเนินการในแตล่ ะข้อต่อไปน้ี 5.1 ประกาศตัวแปรแถวลาดบั height ทม่ี ขี นาด 10 โดยใชค้ ่าคงที่ SIZE #define SIZE 10 Int height [SIZE]; 5.2 บวก 1 เข้ากับสมาชิกทกุ ตัวของ height for (i = 1; I < SIZE; i++); height [i]++; 5.3 แสดงคา่ ของสมาชิกตัวสดุ ทา้ ยของ height printf (“%d\n”, height [SIZE-1]); 5.4 แสดงค่าของสมาชกิ ตวั ท่ี 7 ของ height printf (“%d\n”, height [6]);ชดุ กิจกรรมการเรียนรกู้ ารเขียนโปรแกรมภาษาคอมพิวเตอร์ 52รายวิชาภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีที่ 5
ชุดท5ี่ เรือ่ ง ตัวแปรชดุ (Array) 53 เฉลยบตั รกจิ กรรมกำรเรยี นรู้ที่ 2 เรือ่ ง ค่ำคงทส่ี ตรงิ ตวั แปรสตริง และฟงั กช์ ัน กาหนดให้ table เปน็ แถวลาดบั สองมติ ิชนดิ int ท่มี ี 3 แถว 3 คอลมั น์ใหน้ ักเรยี นตอบคาถามต่อไปนี้ 1. ให้เขียนคาส่ังประกาศตวั แปรแถวลาดบั table ถ้าสมมตวิ า่ มกี ารกาหนดค่าคงท่ี SIZE เป็น 3 ไว้ เรยี บรอ้ ยแลว้ int table [SIZE, SIZE] 2. แถวลาดบั table มสี มาชกิ ท้งั หมด 9 ตวั ไดแ้ ก่ table[0,0], table[0,1], table[0,2], table[1,0], table[1,1], table[0,2], table[2,0], table[2,1], table[2,2] 3. เขยี นคาสัง่ โดยใชค้ าส่งั วนซ้า for กาหนดค่าเริม่ ตน้ ให้กับสมาชกิ ของแถวลาดบั table ในข้อ 1 ใหม้ ี ค่าเท่ากบั ผลบวกของดัชนีของแถว และดชั นีของคอลัมน์ int I, j; for (j=0; i<SIZE; j++); for (i-0; j<SIZE; i++); table[I,j] = i+j; 4. เขยี นคาส่ังเพื่อหาผลบวกของสมาชิกบนแนวเสน้ ทะแยงมมุ หลักทุกตวั ของ table int I,j,sum=0; for (j=0; i<SIZE; j++) for (i=0; j<SIZE; i++) if (i == j) sum += table[I,j]; printf (“diagonal sum = %d\n”, sum) 5. เขียนคาสงั่ พิมพค์ ่าสมาชกิ ทกุ ตัวของแถวลาดบั table ถ้ากาหนดคา่ เริ่มตน้ ใหด้ งั น้ี int table [SIZE] [SIZE] = { {1,8}, {2,4,6}, {5} }; int I,j; for (j=0; i<SIZE; j++) for (i=0; j<SIZE; i++) printf (“table [%d, %d] = %d\n”, i, j, table[i,j]);ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์รายวิชาภาษาซี ง30243 ช้ันมัธยมศึกษาปที ี่ 5
ชดุ ท5่ี เรือ่ ง ตัวแปรชดุ (Array)เฉลยแบบทดสอบหลงั เรยี นเรอื่ ง ตัวแปรชดุ (Array) ช่อื .................................................................................... ชน้ั ................ เลขที่ ...... ........ ข้อที่ ก ข ค ง 1. × 2. × 3. × 4. × 5. × 6. × 7. × 8. × 9. × 10. ×ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 54รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5
Search