ชุดท5่ี ตวั แปรชุด (Array) คำนำ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษา ปีท่ี 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดนี้จัดทาขึ้นเพื่อพัฒนาการจัดกิจกรรมการเรียนการสอน โดยเน้นผู้เรียนเป็นสาคัญ และส่งเสริมการเรียนรู้ของผู้เรียนด้วยตนเอง คิดเป็น ทาเป็นและแก้ปัญหาเป็น โดยได้ ขยายผลในด้านเนื้อหาให้กว้างและชัดเจนยิ่งข้ึน ซ่ึงถือว่าเป็นไปตามแนวทางการจัดการศึกษาของชาติท่ีเน้นผู้เรียน เป็นสาคัญ และสนองต่อพระราชบัญญัติการศึกษาแห่งชาติ พุทธศักราช 2542 และสอดคล้องกับหลักสูตร แกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 ที่มุ่งเน้นให้ผู้เรียนได้รับการพัฒนาทั้งความรู้ กระบวนการคิด กระบวนการสืบเสาะหาความรู้ การแก้ปัญหา ความสามารถในการสื่อสาร การตัดสินใจ การนาความรู้ไปใช้ใน ชวี ติ ประจาวัน มคี ณุ ธรรมค่านิยมอนั พงึ ประสงค์และผู้เรยี นมีเจตคติท่ีดีตอ่ วิชาคอมพวิ เตอร์ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ครอบคลุมตัวชี้วัดและสาระการเรียนรู้ตามหลักสูตร แกนกลางการศึกษาข้นั พ้ืนฐาน พทุ ธศักราช 2551 ซ่งึ ประกอบดว้ ยชุดกิจกรรมการเรียนรทู้ ั้งหมด 5 ชุด ดังน้ี ชดุ ที่ 1 เรื่อง การพฒั นาโปรแกรมและการจาลองความคิด ชุดที่ 2 เรอ่ื ง โครงสรา้ งของโปรแกรมภาษาซี ชดุ ท่ี 3 เรื่อง คาสง่ั รับค่าและแสดงผล ชุดท่ี 4 เรื่อง โครงสร้างการเขียนโปรแกรม ชุดท่ี 5 เรอ่ื ง ตัวแปรชุด (Array) ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 นี้เป็นชุดที่ 5 เรื่อง ตัวแปรชุด (Array) ผู้จัดทาหวังเป็นอย่างย่ิงว่าชุดกิจกรรมการเรียนรู้ชุดที่ 5 เร่ือง ตัวแปรชุด (Array) ชุดนี้จะช่วยให้ ผู้เรียนมีความเข้าใจเก่ียวกับตัวแปรชุด (Array) ในการเขียนโปรแกรมได้มากย่ิงขึ้น ซ่ึงเป็นประโยชน์อย่างยิ่งต่อการ พฒั นาการเรยี นรู้และสร้างองค์ความรู้ที่ยัง่ ยนื ของผู้เรียนตอ่ ไป สุวรรณา จิตตป์ ล้ืม 1 โรงเรียนบางแพปฐมพิทยา ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีท่ี 5
ชุดท5ี่ ตวั แปรชุด (Array) หน้า สำรบัญ 1 2 เรือ่ ง 3 คานา สารบญั 5 คาแนะนาในการใช้ชุดกิจกรรมการเรียนร้สู าหรบั ครู 6 คาแนะนาในการใช้ชดุ กิจกรรมการเรยี นรสู้ าหรับนกั เรียน 6 มาตรฐานการเรยี นรแู้ ละตวั ชีว้ ดั จดุ ประสงค์การเรยี นรู้ 7 แบบทดสอบกอ่ นเรียน 10 บัตรเนื้อหาท่ี 1 ตัวแปรชดุ 26 บัตรกจิ กรรมที่ 1 ตัวแปรชุด บตั รเนื้อหาที่ 2 ค่าคงทสี่ ตรงิ ตวั แปรสตรงิ และฟังกช์ ัน 1 29 บตั รกิจกรรมท่ี 2 ค่าคงที่สตริง ตวั แปรสตริงและฟังกช์ นั 42 แบบทดสอบหลงั เรยี น 43 บรรณานุกรม 46 ภาคผนวก 47 แบบบนั ทึกคะแนนระหว่างเรียน 48 เฉลยแบบทดสอบก่อนเรียน เฉลยบัตรกจิ กรรมการเรียนรู้ที่ 1 เร่ือง ตัวแปรชุด 49 เฉลยบตั รกิจกรรมการเรยี นรทู้ ี่ 2 เร่ือง คา่ คงทส่ี ตรงิ ตัวแปรสตริงและฟงั ก์ชัน 50 เฉลยแบบทดสอบหลังเรยี น 53 54 ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 2 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปที ่ี 5
ชุดท5่ี ตวั แปรชุด (Array) คำแนะนำกำรใช้ชดุ กิจกรรมกำรเรยี นรู้สำหรับครู 3 เมื่อครูผู้สอนได้นาชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีท่ี 5 กล่มุ สาระการเรยี นรู้การงานอาชีพและเทคโนโลยี ไปใชค้ วรปฏิบตั ดิ งั นี้ 1. ดาเนินการจัดกิจกรรมการเรียนการสอนโดยใช้ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรม ภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและ เทคโนโลยี ควบคู่ไปกับแผนการจดั การเรยี นรู้รายวชิ าภาษาซี ง30243 ระดบั ชั้นมัธยมศึกษาปีที่ 5 2. หลงั จากไดศ้ กึ ษาเนอ้ื หาแลว้ ให้นักเรยี นตอบคาถามเพอ่ื ประเมนิ ความรแู้ ต่ละเรือ่ ง 3. ควรให้นกั เรียนปฏิบัติชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี เพื่อความเข้าใจโดยครูให้ คาแนะนาอย่างใกล้ชดิ 4. ให้นักเรียนตรวจสอบเฉลยท้ายเล่มเมื่อนักเรียนทากิจกรรมตามชุดการเรียนรู้แต่ละชุดการเรียนรู้ แล้วเพอื่ ทราบผลการเรยี นรู้ของตนเอง 5. ทดสอบความรู้หลังเรียนจากที่นักเรียนทากิจกรรมการเรียนรู้จบชุดแล้วด้วยการทาแบบทดสอบ หลังเรียนในการเรียนรู้ด้วยชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ช้นั มัธยมศึกษาปีท่ี 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี เร่ืองการพฒั นาโปรแกรมและ การจาลองความคิด นกั เรยี นควรปฏิบตั ดิ งั น้ี 1. นกั เรียนจะได้รบั ชุดกจิ กรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 5 เรื่อง ตัวแปรชุด (Array) 1 เลม่ และซีดปี ระกอบชุดการเรียนรู้ 1 แผน่ 2. วิธีการสอนในชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 5 เรื่อง ตัวแปรชุด (Array) นกั เรยี นเรียนรู้และทากิจกรรมการเรยี นรู้ ดงั ขัน้ ตอนต่อไปน้ี 2.1 ศึกษาจุดประสงคก์ ารเรยี นรู้ ภาระงานประจาหนว่ ย และการประเมินผล 2.2 เรียนรู้ด้วยวิธีการสอนโดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การ สารวจตรวจสอบ การสบื ค้นข้อมูลและอภปิ ราย ขน้ั ตอนการสอนมี 6 ข้ันตอนคอื 2.2.1 ขน้ั นาเขา้ สบู่ ทเรยี น - กระตนุ้ เรา้ ความสนใจ หรอื ทบทวนความรู้เกา่ 2.2.2 ขนั้ นาเสนอ - นาเสนอความรู้ใหม่ 2.2.3 ขั้นฝึก ชดุ กจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5
ชุดท5่ี ตวั แปรชุด (Array) - เน้นการเรียนรู้โดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การ สารวจตรวจสอบ การสืบคน้ ขอ้ มูลและอภิปราย 2.2.4 ข้นั การทาบตั รกิจกรรม - ในแต่ละแผนการจดั การเรียนรู้ มภี าระงานหรอื ชิ้นงานให้นักเรียนได้ทดสอบย่อย ซึง่ ทกุ คนต้องผา่ นขน้ั ตอนการทาบตั รกิจกรรมนจี้ ึงจะสามารถเรยี นกิจกรรมต่อไปได้ 2.2.5 ขั้นสรุป - นกั เรียนชว่ ยกันสรปุ ความรทู้ ีไ่ ดจ้ ากบทเรยี นโดยมีครคู อยเพ่มิ เติม 2.2.6 ข้ันประยกุ ต์ใช้และสะทอ้ นคิด - นาความรู้ที่ได้จากแผนการจัดการเรียนรู้ต่าง ๆ ในหน่วยนั้นทาภาระงานและ สะท้อนคิดประจาหน่วยฝึกขั้นตอนน้ี นักเรยี นต้องดาเนินการเป็นกลุ่มด้วยการนาเสนอผลงานที่มีกระบวนการ สะท้อนคดิ ภายในกลุ่มเกี่ยวกับงานของตนเองท้ังส่งิ ที่ทาได้และสิ่งที่ต้องปรับปรุง ดังนั้นในขั้นตอนนี้นักเรียนจึง มีท้ังกระบวนการนาความรู้ที่ได้ไปประยุกต์ใช้ และการสะทอ้ นคิดในผลงานของกันและกนั เพื่อคัดเลอื กผลงาน ที่ดีที่สุดประจาหน่วยเป็นกาลังใจให้นกั เรียนในการทาผลงานในหน่วยต่อไป อกี ทั้งยังสามารถนาข้อสะท้อนคิด ของเพื่อนมาปรบั ปรงุ ผลงานของตนเองให้ดยี ง่ิ ข้ึน 3. การประเมินผล 3.1 เนอ้ื หา - ใชแ้ บบทดสอบ 3.2 สมรรถนะ - ประเมินตามภาระงาน 3.3 คณุ ลักษณะอันพึงประสงค์ - ประเมินโดยใชแ้ บบสงั เกตพฤตกิ รรม ชุดกิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 4 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปีที่ 5
ชดุ ท5่ี ตวั แปรชุด (Array) คำแนะนำกำรใช้ชดุ กิจกรรมกำรเรียนรู้สำหรบั นักเรยี น ชดุ กิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมธั ยมศกึ ษา ปีท่ี 5 กลุ่มสาระการเรียนรกู้ ารงานอาชีพและเทคโนโลยี ชุดที่ 5 เรือ่ ง ตวั แปรชดุ (Array) ชดุ น้ีใช้ประกอบการ จัดการเรยี นการสอนของนกั เรยี น ชั้นมัธยมศึกษาปที ี่ 5 โดยมขี น้ั ตอนการจดั กจิ กรรมการเรยี นการสอนดังนี้ 1. นกั เรยี นฟังคาชี้แจงการใชช้ ุดกจิ กรรมการเรียนรู้ให้เข้าใจ 2. ให้นักเรียนรับชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 5 เรื่อง ตัวแปรชุด (Array) 3. นักเรียนเริ่มทาแบบทดสอบก่อนเรียนเพื่อประเมินว่านักเรียนมีพื้นฐานความรู้ ความเข้าใจมาก นอ้ ยเพียงใด 4. ให้นักเรียนศึกษาเนื้อหาทาความเข้าใจให้ดีตั้งแต่หน้าแรกถึงหน้าสุดท้ายตามลาดับอย่าข้าม ขน้ั ตอนและทาบัตรกิจกรรมทา้ ยเลม่ ชดุ ที่ 5 เรอื่ ง ตัวแปรชุด (Array) 5. เม่ือพบคาชแ้ี จงหรือคาถามในแต่ละบัตรกจิ กรรมใหน้ ักเรียนอ่านและทากิจกรรมท่ีกาหนดให้อย่าง รอบคอบ 6. ส่งผลงานการทาบัตรกิจกรรมการเรยี นรู้ทา้ ยเลม่ เพ่อื ให้ครูตรวจและบนั ทึกผล 7. เม่อื ทาบตั รกิจกรรมเสร็จแล้วจดั เกบ็ อุปกรณ์ใหเ้ รียบร้อย 8. เมื่อนักเรียนทุกคนทากิจกรรมการเรียนรู้ครบแล้วให้นักเรียนทาแบบทดสอบหลังเรียนด้วยความ ตง้ั ใจและซอ่ื สัตย์ 9. รับฟงั การบอกคะแนน คาชมเชย และคาแนะนาเพม่ิ เตมิ จากครู ชุดกิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 5 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีที่ 5
ชดุ ท5่ี ตวั แปรชุด (Array) มำตรฐำนกำรเรยี นร้แู ละตัวช้ีวัด มาตรฐาน ง 3.1 เขา้ ใจ เห็นคุณค่า และใช้กระบวนการเทคโนโลยสี ารสนเทศในการสืบคน้ ขอ้ มลู การเรยี นรู้ การส่ือสาร การแกป้ ญั หา การทางาน และอาชีพอยา่ งมีประสิทธิภาพ ประสทิ ธิผลและมีคณุ ธรรม ตวั ชี้วดั ง 3.1 ม.4-6/5 แก้ปัญหาดว้ ยกระบวนการเทคโนโลยสี ารสนเทศอยา่ งมีประสทิ ธภิ าพ จุดประสงค์กำรเรียนรู้ 1. มีความร้คู วามเข้าใจเกย่ี วกับตัวแปรชุด 2. เขยี นโปรแกรมภาษาซโี ดยการประยุกต์ใช้ตวั แปรชุดได้ 3. อธิบายความสมั พนั ธข์ องเทคโนโลยีสารสนเทศ ข้อมลู คอมพิวเตอร์ และการเขยี นโปรแกรมได้ 4. ใชค้ อมพิวเตอร์สรา้ งงานอย่างมจี ิตสานึกและมีความรับผดิ ชอบ ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 6 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีท่ี 5
ชดุ ท5่ี ตวั แปรชุด (Array) แบบทดสอบก่อนเรยี น เรื่อง ตวั แปรชดุ คาชแี้ จง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ข้อ 2. ให้นักเรยี นเลอื กคาตอบท่ีถูกต้องท่ีสดุ เพียงคาตอบเดยี ว แล้วใสเ่ ครื่องหมายกากบาท (x) ลงในกระดาษคาตอบ 1. กาหนด int a[5] = {10, 11, 12, 13, 14}; a[1] มีคา่ เท่าใด ก. 10 ข. 11 ค. 12 ง. 13 2. กาหนด float b[2][3]; ตวั แปร b มจี านวนสมาชกิ เท่าใด ก. 2 ข. 3 ค. 5 ง. 6 3. ขอ้ ใดเปน็ การประกาศตวั แปรอารเ์ รย์ 1 มติ ิท่ถี ูกต้อง ก. int c{7}; ข. int c[7]; ค. int c{7} ง. int c[7] 4. ขอ้ ใดเป็นการประกาศตวั แปรอารเ์ รย์ 2 มติ ิท่ีถูกต้อง ก. int a{8}{9}; ข. int a[8][9] ค. int a{8}{9} ง. int a[8][9]; 5. คาส่ังในข้อใดทไ่ี มไ่ ดใ้ ช้ในการนาข้อมูลเขา้ ไปเก็บในตวั แปรอารเ์ รย์ ก. for ข. goto ค. while ง. do-while 6. กาหนด float a[9] = 5; ดังน้ัน a เป็นตัวแปรประเภทใด ก. ขอ้ ความ ข. ตัวอกั ขระ ค. จานวนจริง ง. จานวนเตม็ ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 7 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีท่ี 5
ชดุ ท5่ี ตวั แปรชุด (Array) 7. กาหนด char b[4] = {‘1’, ‘2’, ‘3’, ‘4’}; ดงั นัน้ b เปน็ ตวั แปรประเภทใด ก. ขอ้ ความ ข. ตวั อกั ขระ ค. จานวนจริง ง. จานวนเตม็ 8. กาหนด char c[5] = {‘A’, ‘1’, ‘B’, ‘2’, ‘0’}; ดงั น้นั c เป็นตัวแปรประเภทใด ก. ข้อความ ข. ตวั อกั ขระ ค. จานวนจรงิ ง. จานวนเต็ม 9. ข้อใดกล่าวถงึ ตวั แปรอารเ์ รย์ได้ถูกต้อง ก. ตัวแปรเดยี วเกบ็ ขอ้ มูลไดช้ ุดเดยี ว ข. ตวั แปรเดยี วเกบ็ ขอ้ มลู ไดห้ ลายประเภท ค. ตวั แปรเดียวเก็บข้อมลู ประเภทเดียวได้หลายชดุ ง. ถูกขอ้ ข และ ค 10. ข้อใดกล่าวถงึ ตวั แปรไดถ้ ูกตอ้ ง ก. ตวั ดาเนนิ การเป็นตวั แปรประเภทหนึง่ ข. ประกาศตัวแปรเพ่ือจองพื้นท่ีในการเกบ็ ข้อมูล ค. การสรา้ งตัวแปรขอ้ ความเพือ่ เก็บขอ้ มูลประเภทขอ้ ความ ง. ตัวแปรตวั อักขระทีม่ ขี นาดตวั อกั ขระเท่ากับจานวนอักขระท้ังหมดในขอ้ ความ ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 8 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีท่ี 5
ชดุ ท5ี่ ตวั แปรชุด (Array) กระดำษคำตอบ เรอ่ื ง ตัวแปรชุด (Array) กอ่ นเรยี น หลงั เรียน ชอื่ .................................................................................... ชั้น ................ เลขที่ .............. ขอ้ ท่ี ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 9 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปีที่ 5
ชดุ ท5่ี ตวั แปรชุด (Array) บตั รเนอื้ หำที่ 1 ตัวแปรชุด สาหรับเนอื้ หาในบทน้ี จะไดเ้ รยี นรู้เกย่ี วกับตัวแปรอีกชนิดหน่ึงนน่ั คือตัวแปรชุด (arrays) และเนือ้ หา เกยี่ วกับสตรงิ (string) ซึง่ เปน็ พนื้ ฐานทีส่ าคัญในการจดั เกบ็ ขอ้ มูลและโครงสรา้ งของขอ้ มลู โดยเฉพาะอย่างย่งิ ตัวแปรชดุ มปี ระโยชน์หลายประการดังนี้ 1) ชว่ ยลดการตง้ั ช่ือซ้า ๆ กนั เชน่ ตอ้ งการเกบ็ ค่าตัวเลขจานวนเต็ม 100 ตัว ถา้ ไม่มกี ารใช้ตวั แปรชดุ เราจะต้องประกาศตัวแปรถึง 100 ตัว ดังน้ี int k1, k2, k3, …, k100; /* ประกาศตวั แปร k1, k2, k3, …, k100 จานวน 100 ตัว */ แตถ่ า้ เราใช้ตัวแปร ชุดมาชว่ ยในการเก็บขอ้ มูลตวั เลขชดุ น้ี เราสามารถเกบ็ ตัวเลข 100 ตัวนี้ไว้ในช่ือเดยี วกนั แต่มี ตวั เลข subscript คอยกากับเพ่อื บ่งบอกถึงลาดับท่ีของข้อมลู ในตัวแปรได้ int k[100]; /* ประกาศตวั แปรชุด 1 ตวั คือชื่อตัวแปร k */ 2) ชว่ ยในการจัดเก็บขอ้ มูลแบบตาราง (table) โดยสามารถใชต้ วั แปรชดุ 2 มติ ิ มาเกบ็ ข้อมูลได้ 3) ชว่ ยในการเขยี นโปรแกรมมีประสิทธภิ าพมากข้ึน เน่ืองจากในโปรแกรมท่ีมกี ารใช้ตวั แปรชดุ จะมตี ัว แปรนอ้ ยลง ช่วยในการจดั เรียงขอ้ มลู และค้นหาขอ้ มลู ไดส้ ะดวกและรวดเรว็ ตวั แปรชดุ (arrays variables) ตวั แปรชุด คอื ตวั แปรชนดิ หน่ึงที่ใช้ชื่อเพยี งชื่อเดยี วแตม่ ตี ัวเลขแสดงตาแหน่งกากับไว้ (subscript) 10 เพื่อเป็นการบอกวา่ เปน็ สมาชิกของตวั แปรชดุ ตวั ท่ีเท่าไหร่ ประเภทของตัวแปรชดุ มดี ังน้ี 1. ตัวแปรชุด 1 มิติ (one dimension arrays หรือ single dimension arrays) ตัวแปร ชุด 1 มิติ คือ ตัวแปรชุดที่มีตัวเลข กากับ (subscript) เพียง 1 ตัวเช่น a[20], b[100], name[30] และ salary[20] เป็นต้น 2. ตัวแปรชุดหลายมิติ (multi-dimension arrays) ตัวแปรชุดหลายมิติ คือ ตัวแปรชุดที่มี ตัวเลขก ากับ (subscript) ตั้งแต่ 2 ตัวขึ้นไป โดยมากจะสนใจศึกษาตัวแปรชุดที่มีตัวเลขก ากับ 2 ตวั และ 3 ตวั ดังนี้ ชดุ กิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศกึ ษาปีท่ี 5
ชุดท5ี่ ตวั แปรชุด (Array) ตัวแปรชุด 2 มิติ (two dimension arrays) คือ ตัวแปรชุดที่มีตัวเลข ก ากับ (subscript) เพยี ง 2 ตวั เช่น a[2][4], b[3][4], name[5][30] เป็นตน้ ตัวแปรชุด 3 มิติ (three dimension arrays) คือ ตัวแปรชุดที่มีตัวเลขก ากับ (subscript) เพยี ง 3 ตัว เชน่ a[2][3][4], b[3][4][5] เปน็ ต้น การประกาศตัวแปรชดุ (declaration of arrays) การประกาศตัวแปรชุด (declaration of arrays) สามารถทาไดด้ งั นี้ 1. การประกาศตัวแปรชุด 1 มิติ (declaration of one dimension arrays) type arrayname [size]; โดยที่ type คือ ชนดิ ของตวั แปรชุด เชน่ int, float, char, double เปน็ ตน้ arrayname คอื ชอื่ ตวั แปรชุด ตั้งข้ึนตามหลักการต้ังชอื่ ตวั แปร size คอื ขนาดของตัวแปรชดุ เปน็ ตัวเลขจานวนเต็ม ตัวอย่างการประกาศตวั แปรชดุ 1 มิติ ตวั อย่างท่ี 5.1 int s[20]; ภายในหน่วยความจาจะมีการจองเนอ้ื ทไ่ี วด้ งั นี้ การจองเนื้อท่ีใชช้ อ่ งละ 2 bytes 20 ชอ่ ง รวมกันท้งั หมดใช้เน้อื ท่ี 40 bytes ชดุ กิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 11 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศึกษาปีท่ี 5
ชุดท5่ี ตวั แปรชดุ (Array) ตัวอย่างท่ี 5.2 char p[20]; ภายในหน่วยความจาจะมกี ารจองเนอ้ื ท่ีไว้ดงั นี้ การจองเน้อื ที่ใชช้ อ่ งละ 1 bytes 20 ช่อง รวมกนั ทั้งหมดใช้เนอ้ื ท่ี 20 bytes ตวั อย่างที่ 5.3 float t[20]; ภายในหน่วยความจาจะมกี ารจองเน้ือที่ไวด้ งั นี้ การจองเนือ้ ทีใ่ ช้ช่องละ 4 bytes 20 ชอ่ ง รวมกนั ท้ังหมดใชเ้ นื้อท่ี 80 bytes 12 ขอ้ ควรจา การจองเนอ้ื ทใี่ นหนว่ ยความจาของตัวแปรชดุ จะใชเ้ น้ือทเ่ี ท่าไร ขึ้นอยกู่ บั ชนิดของตวั แปรชดุ และสมาชิกของตัวแปรชดุ 2. การประกาศตัวแปรชุด 2 มติ ิ (declaration of two dimension arrays) type arrayname [n][m]; โดยท่ี type คอื ชนิดของตัวแปรชุด เชน่ int, float, char, double เป็นตน้ arrayname คอื ช่อื ตวั แปรชุด ตั้งขึ้นตามหลักการตงั้ ช่ือตวั แปร n คือ ตวั เลขท่ใี ช้แสดงตาแหน่งแถว (row) มีค่าตั้งแต่ 0, 1, 2, …, n-1 m คอื ตวั เลขท่ีใช้แสดงตาแหน่งคอลมั น์ (column) มีคา่ ต้ังแต่ 0, 1, 2, …, m-1 ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปีท่ี 5
ชดุ ท5่ี ตวั แปรชุด (Array) ตวั อยา่ งการประกาศตัวแปรชดุ 2 มติ ิ ตวั อย่างที่ 5.4 int r[3][2]; ภายในหน่วยความจาจะมีการจองเนือ้ ทไ่ี ว้ดังนี้ การจองเนื้อที่ของตัวแปรชุด 2 มิติ จะมีลักษณะเป็นตาราง (table) มีจานวนแถว n = 0, 1, 2 และมจี านวนคอลมั น์ m = 0, 1 โดยที่ในตารางจะมีลักษณะเปน็ ช่อง ๆ ซง่ึ แตล่ ะช่องก็คอื พนื้ ท่ีของสมาชิก แตล่ ะตัว โดยใช้เน้อื ที่ช่องละ 2 bytes มีสมาชกิ ทั้งหมด 6 ตัว ดังนนั้ ใชเ้ นอื้ ทท่ี ง้ั หมด 12 bytes วธิ ีการหาจานวนสมาชกิ ทงั้ หมดของตัวแปรชุด 1 มติ ิ และ 2 มติ ิ การหาจานวนสมาชิกทัง้ หมดของตวั แปรชดุ สามารถคานวณได้จากสูตรดงั นี้ กรณีตวั แปรชุด 1 มติ ิ จานวนสมาชกิ ทง้ั หมดของตัวแปรชุด = ขนาดของตวั แปรชุด (size) กรณีตวั แปรชุด 2 มติ ิ จานวนสมาชิกทั้งหมดของตวั แปรชุด = n*m จากตวั อยา่ ง int r[3] [2]; จะไดว้ ่า n = 3, m = 2 ดังน้ัน จานวนสมาชกิ ของตัวแปร ชดุ = 3*2 = 6 แสดงว่าตวั แปรชดุ น้ีมีสมาชิกดงั น้ี r[0][0], r[0][1], r[n-1][m-1] รวมท้ังหมด 6 สมาชกิ ตวั อย่างที่ 5.5 float X[5] [4]; ภายในหนว่ ยความจาจะมีการจองเนอ้ื ที่ไวด้ งั นี้ ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 13 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ี่ 5
ชดุ ท5ี่ ตัวแปรชดุ (Array) การจองเนอ้ื ที่จะมีลกั ษณะเป็นตาราง (table) มจี านวนแถว n = 0, 1, 2, 3, 4 และมีจานวนคอลัมน์ m = 0, 1, 2, 3 โดยที่ในตารางใช้เนื้อที่ช่องละ 4 bytes มีจานวนทั้งหมด 20 ตัว ดังนั้นใช้เนื้อ ทง้ั หมด 80 bytes ขอ้ ควรจา การจองเนอ้ื ทใี่ นหน่วยความจาของตวั แปร 2 มติ ิ จะมลี ักษณะเป็นตาราง ขนาด n*m โดยที่ n = จานวนแถว และ m = จานวนคอลมั น์ 3. การประกาศตัวแปรชดุ 3 มติ ิ (declaration of three dimension arrays) type arrayname [n][m][p]; โดยท่ี type คือ ชนดิ ของตัวแปรชดุ เชน่ int, float, char, double เปน็ ต้น arrayname คอื ช่ือตวั แปรชุดตงั้ ขึน้ ตามหลักการตง้ั ชื่อตวั แปร n คือ ตวั เลขกากับตัวที่ 1 มีคา่ ตั้งแต่ 0, 1, 2, …., n-1 m คอื ตัวเลขกากับตวั ท่ี 2 มีคา่ ต้งั แต่ 0, 1, 2, …., m-1 p คือ ตัวเลขกากับตวั ที่ 3 มีค่าตัง้ แต่ 0, 1, 2, …., p-1 วิธีการหาจานวนสมาชกิ ทง้ั หมดในตัวแปรชุด 3 มติ ิ วิธีการหาจานวนสมาชกิ ทัง้ หมดในตัวแปรชุด 3 มิติ หาไดจ้ ากสตู รดงั นี้ จานวนสมาชิกท้ังหมดของตัวแปรชุด = n*m*p ตวั อยา่ งการประกาศตัวแปรชุด 3 มิติ float a[2][2][3]; ดังนน้ั n = 2 , m = 2, p = 3 จะได้ว่าจานวน สมาชกิ ท้ังหมดของตวั แปรชดุ = 2*2*3 = 12 ตัว ดงั นั้นเราสามารถเขยี นสมาชิกทั้งหมดของตวั แปรชุดนไี้ ด้ดังตาราง ชดุ กิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 14 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ี่ 5
ชดุ ท5่ี ตัวแปรชุด (Array) Column 0 Column 1 ตัวท่ี 1 ตวั ที่ 2 ตัวที่ 3 ตวั ท่ี 1 ตวั ท่ี 2 ตัวท่ี 3 Row 0 a[0][0][0] a[0][0][1] a[0][0][2] a[0][1][0] a[0][1][1] a[0][1][2] Row 1 a[1][0][0] a[1][0][1] a[1][0][2] a[1][1][0] a[1][1][1] a[1][1][2] โดยทสี่ มาชิกแต่ละตัวใช้เน้ือทต่ี ัวละ 4 bytes จานวนสมาชกิ ทั้งหมดมี 12 ตัว ดังน้นั ใชเ้ น้ือที่ ทงั้ หมดคอื 4*12 = 48 bytes การกาหนดค่าเรม่ิ ต้นใหก้ บั ตัวแปรชดุ (initializing arrays) 1. การกาหนดคา่ ตัวเลขใหก้ ับตัวแปรชดุ รปู แบบที่ 1 (กรณตี วั แปรชดุ 1 มิต)ิ type arrayname[size] = { value list }; รปู แบบท่ี 2 (กรณีตัวแปรชุด 2 มิต)ิ type arrayname[n][m] = { value list }; โดยท่ี value list คือ ค่าคงที่ชนิดตัวเลขที่ต้องการก าหนดให้ตัวแปรชุด ถ้ามีหลายค่าให้ใช้ เคร่อื งหมาย , (comma) คัน่ ระหวา่ งค่าคงท่แี ตล่ ะค่าโดยค่าคงที่ท้งั หมดจะต้องอยู่ภายใต้เครอื่ งหมาย { } ตวั อย่าง 5.6 int a[10] = {10, 20, 30, 40,50, 60, 70, 80, 90, 100}; ภายในหนว่ ยความจาจะเกบ็ ตัวแปรชดุ ดังน้ี ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 15 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศกึ ษาปที ี่ 5
ชดุ ท5ี่ ตวั แปรชุด (Array) ตวั อยา่ งที่ 5.7 float p[5][3] = { 3.0, 4.5, 5.5, 4.6, 5.5, 6.5, 5.0, 6.2, 7.0, 6.3, 6.8, 7.4, 7.5, 8.0, 9.0 }; ภายในหน่วยความจาจะเก็บตัวแปรชุดเป็นลักษณะตาราง (table) ดังนี้ โดยท่สี มาชกิ แต่ละตัวใช้เนอื้ ที่ 4 bytes ดังนัน้ ใช้เนื้อที่ทั้งหมด = 4*15 = 60 bytes การกาหนดคา่ คงท่ีชนิดสตริงให้กับตัวแปรสตริง รูปแบบที่ 1 (กรณตี ัวแปรชุด 1 มิติ) char arrayname[size] = “string constant” รูปแบบที่ 2 (กรณีตัวแปรชุด 2 มติ )ิ char arrayname[n][m] = {“string constant”}; โดยที่ string constants คือ ค่าคงที่ชนิดสตริงที่ต้องการกาหนดให้ตัวแปรชุด ถ้ามีหลายค่าจะต้องใช้ เครอื่ งหมาย , (comma) คั่นระหว่างคา่ คงที่แต่ละค่า ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 16 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปที ่ี 5
ชดุ ท5่ี ตัวแปรชุด (Array) ตัวอยา่ งท่ี 5.8 char s[12] = “ASIAN GAME” ; ภายในหนว่ ยความจาจะเกบ็ ข้อมูลตวั แปรชุดมลี กั ษณะดังน้ี null character ตัวอย่างท่ี 5.9 char province[3][13] = { “NAKHONPANOM” , “SAKON NAKHON” , “MOOKDAHAN” } ; ภายในหน่วยความจาจะเกบ็ ขอ้ มูลมลี ักษณะดงั นที้ งั้ หมดใชเ้ นอ้ื ที่ 3 x 13 = 39 bytes การอา้ งถึงสมาชิกในตวั แปรชุด 2 มติ ิ เช่น province [0] คอื สมาชกิ แถวท่ี 1 ทั้งแถว นั่นคือข้อมลู NAKHONPANOM province [1] คอื สมาชิกแถวที่ 2 ท้ังแถว นั่นคอื ข้อมูล SAKON NAKHON province [2] คอื สมาชิกแถวท่ี 3 ท้ังแถว น่นั คอื ขอ้ มลู MOOKDAHAN province [0][0] คือ สมาชิกของ province [0] ตัวท่ี 1 คอื ตัวอักษร N province [1][2] คอื สมาชิกของ province [1] ตัวท่ี 3 คอื ตวั อักษร K การนาข้อมูลเข้าไปเกบ็ และการแสดงผลลัพธ์ของขอ้ มูลในตวั แปร ชดุ โดยปกติเราจะใช้คาสั่ง for หรือ while หรือ do while คาสั่งใดคาสั่งหนึ่งมาช่วยในการนา ขอ้ มูลเข้าเก็บและแสดงผลลัพธ์ข้อมูลในตวั แปรชุด สว่ นมากนิยมใชค้ าส่ัง for มากกว่าคาสั่งอ่ืนทงั้ น้ีเนื่องจาก ตวั แปรชดุ น้นั เราสามารถทราบขนาดท่ีแนน่ อนได้ ทาให้กาหนดจานวนรอบการทางานได้ ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 17 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศึกษาปที ี่ 5
ชดุ ท5่ี ตัวแปรชุด (Array) เพื่อความเข้าใจเกี่ยวกับการนาข้อมูลเข้าไปเก็บและการแสดงผลลัพธ์ของตัวแปรชุดมากยิ่งขึ้น ให้ ศกึ ษาโปรแกรมตัวอยา่ งที่ 5.1, 5.2, 5.3 และ 5.4 ดังต่อไปน้ี โปรแกรมตัวอย่างท่ี 5.1 แสดงการใชต้ ัวแปรชดุ 1 มติ ิ ชอื่ scores เกบ็ คะแนนนักเรยี น /* array1.C */ #include<stdio.h> /* บรรทดั ที่ 1 */ #include<conio.h> /* บรรทัดท่ี 2 */ /* Record student's scores. */ /* บรรทัดท่ี 3 */ main() /* บรรทัดที่ 4 */ { /* บรรทัดท่ี 5 */ int index, scores[5]; /* บรรทัดที่ 6 */ scores[0] = 59; /* บรรทดั ท่ี 7 */ scores[1] = 67; /* บรรทดั ท่ี 8 */ scores[2] = 85; /* บรรทดั ที่ 9 */ scores[3] = 92; /* บรรทดั ท่ี 10 */ scores[4] = 74; /* บรรทดั ที่ 11 */ clrscr(); /* บรรทดั ท่ี 12 */ for (index = 0; index < 5; index++) /* บรรทัดที่ 13 */ printf(\"Student's score: %d\\n\", scores[index]); /* end for */ /* บรรทดั ท่ี 14 */ getch(); /* บรรทัดที่ 15 */ return(0); /* บรรทัดท่ี 16 */ } /* บรรทัดที่ 17 */ ผลลพั ธท์ ี่ไดจ้ ากโปรแกรม Student's score: 59 Student's score: 67 Student's score: 85 Student's score: 92 Student's score: 74 ชดุ กิจกรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 18 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปที ่ี 5
ชุดท5่ี ตัวแปรชดุ (Array) คาอธิบายโปรแกรม จากโปรแกรมตัวอย่างท่ี 5.1 สามารถอธบิ ายการทางานของโปรแกรมท่สี าคัญ ๆ ไดด้ งั น้ี บรรทัดที่ 6 ประกาศตวั แปร index เป็นชนิดจานวนเตม็ และ scores เป็นตวั แปร ชดุ 1 มติ ิ ชนิดจานวนเต็มมสี มาชิก 5 ตัว บรรทดั ที่ 7 ถึง 11 กาหนคา่ จานวนเตม็ ใหก้ ับตัวแปรชดุ scores[0] ถงึ scores[4] บรรทดั ท่ี 13 คาส่ัง for ทาหนา้ ท่วี นรอบทางานซา้ 5 คร้งั เพือ่ ชว่ ยพิมพค์ ะแนนนักเรียนทเ่ี กบ็ ไว้ในตัวแปรชดุ scores[0] ถงึ scores[4] บรรทดั ท่ี 14 และ 15 ฟังกช์ นั printf( ) เพือ่ แสดงคะแนนของนักเรียนแต่ละคนออกทจ่ี อภาพซึง่ เก็บไว้ในตัวแปรชุด scores[0] ถึง scores[4] หลังจากนน้ั จะหยุดรอรบั คา่ ใดๆ จาก คยี บ์ อร์ด ซ่ึงถา้ กด enter ก็จะกลับสู่โปรแกรม บรรทัดที่ 16 ส่งคา่ 0 (ศูนย)์ กลบั ใหก้ บั ฟังกช์ นั main( ) ขอ้ ควรจา ข้อสังเกต ฟังก์ชนั main( ) ของโปรแกรมตวั อยา่ งท่ี 5.1 เปน็ ฟังกช์ นั ที่ ตอ้ งการให้ส่งคา่ กลับ ในการเขยี นโปรแกรมจะตอ้ งมกี ารใช้ฟงั กช์ ัน return( ) ซึง่ ถ้า ไมใ่ ช้เวลาที่เรา compile โปรแกรม จะมีคาเตือนให้เราทราบทุกครั้ง แต่โปรแกรมก็ สามารถ run ได้ ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 19 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปีท่ี 5
ชุดท5่ี ตัวแปรชดุ (Array) โปรแกรมตัวอยา่ งที่ 5.2 แสดงการใชต้ ัวแปรชุด 1 มติ ิ สาหรบั เก็บขอ้ มูลและนาขอ้ มลู ในตัวแปรชดุ มาคานวณค่า พรอ้ มทัง้ แสดงผลลพั ธท์ ่ีได้ออกจอภาพ /* array2.c */ #include<stdio.h> /* บรรทดั ท่ี 1 */ #include<conio.h> /* บรรทดั ที่ 2 */ #include<stdlib.h> /* บรรทดั ท่ี 3 */ void main(void) /* บรรทัดท่ี 4 */ { float num[100] ; /* บรรทัดที่ 5 */ float sum= 0 , average ; /* บรรทัดที่ 6 */ int i, n ; char numstr[20]; /* บรรทัดที่ 7 */ clrscr(); /* บรรทดั ท่ี 8 */ printf(\"Enter Total of number(n<100) : \"); /* บรรทัดที่ 9 */ n = atoi(gets(numstr)); /* บรรทัดท่ี 10 */ /* ===== Input Data ===== */ /* บรรทดั ท่ี 11*/ for( i=0; i<n; i++) { /* บรรทดั ที่ 12 */ printf(\"\\nEnter NUMBER #%d : \",i+1); /* บรรทดั ที่ 13 */ num[i] = atof(gets(numstr)); /* บรรทดั ที่ 14 */ sum=sum+num[i]; /* บรรทดั ท่ี 15 */ printf(\"\\n\"); /* บรรทัดที่ 16 */ } /* end for */ /* บรรทัดท่ี 17 */ /* ===== Calulate MEAN ===== */ /* บรรทดั ที่ 18 */ average = sum/n ; /* บรรทัดท่ี 19 */ printf(\"N =%d\\t Sum =%10.2f\\n\",n,sum); /* บรรทดั ที่ 20 */ printf(\"Average = %10.2f\\n\",average); /* บรรทดั ที่ 21 */ getch(); /* บรรทัดที่ 22 */ } /* end main */ /* บรรทดั ท่ี 23 */ ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 20 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปที ี่ 5
ชุดท5ี่ ตวั แปรชดุ (Array) 21 ผลลพั ธ์ที่ไดจ้ ากโปรแกรม Enter Total of number(n<100) : 5 Enter NUMBER #1 : 4 Enter NUMBER #2 : 5 Enter NUMBER #3 : 8 Enter NUMBER #4 : 90 Enter NUMBER #5 : 75 N = 5 Sum = 182 Average = 36.40 คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งท่ี 5.2 สามารถอธบิ ายการทางานของโปรแกรมทส่ี าคญั ๆ ไดด้ งั น้ี บรรทัดที่ 3 คาสงั่ #include <stdlib.h> ใหก้ ารสนับสนนุ ฟังก์ชัน atoi( ) และฟงั ก์ชนั atof( ) สาหรบั โปรแกรมนี้ ในบรรทัดท่ี 10 และ 14 ตามลาดับ บรรทดั ที่ 5 ประกาศตวั แปร num เป็นตัวแปรชุด 1 มติ ิ ชนิด float มีสมาชิก 100 ตวั บรรทัดท่ี 7 ประกาศตัวแปร numstr เป็นตัวแปรชดุ 1 ติ ชนดิ char มสี มาชกิ 20 ตวั บรรทัดท่ี 10 ฟังกช์ นั atoi( ) ใช้เปลยี่ น string เป็นตวั เลขจานวนเต็ม จากฟังก์ชัน gets( ) รับ ตัวอักขระมาเกบ็ ไวใ้ นตัวแปร numstr แลว้ เปล่ียนค่า string ของตวั แปร numstr ไปเก็บไว้ในตัวแปร n โดยใชฟ้ งั ก์ชัน atoi( ) บรรทดั ที่ 12 คาส่งั for ช่วยในการเกบ็ ขอ้ มลู ไว้ในตัวแปรชุด num ซ่ึงมจี านวนรอบของการ ทางานเทา่ กบั จานวนสมาชกิ ของตัวแปรชดุ คอื n รอบ บรรทดั ที่ 14 ฟงั ก์ชัน atof( ) ใช้เปล่ียน string เปน็ ตวั เลขทศนยิ ม ซง่ึ มกี ารทางานคลา้ ยกบั ฟงั ก์ชัน atoi( ) ในบรรทัดที่ 10 บรรทัดท่ี 15 คาสั่ง sum = sum + num[i]; เป็นการบวกสะสมค่าตัวแปรชุด บรรทัดที่ 18 ถึง 21 คาสง่ั average = sum/n; เปน็ การคานวณค่าเฉล่ยี ของตัวแปรชดุ แลว้ แสดงผลค่าตวั แปร n ตัวแปร sum และตัวแปร average ออกจอภาพ บรรทัดท่ี 22 หยุดรอรบั คา่ ใด ๆ จากคยี ์บอร์ด ซ่ึงถ้าเรากด enter กจ็ ะกลับสโู่ ปรแกรม ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ่ี 5
ชุดท5่ี ตัวแปรชุด (Array) โปรแกรมตัวอย่างท่ี 5.3 แสดงการใชต้ วั แปรชุด 2 มติ ิ สาหรบั เก็บคะแนนและคานวณคา่ เฉลยี่ ของ คะแนนในแต่ละชดุ แสดงผลออกจอภาพ /* array3.C */ /* บรรทัดท่ี 1 */ #include<stdio.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทดั ที่ 3 */ /* Record student's score */ /* บรรทดั ท่ี 4 */ main() /* บรรทัดที่ 5 */ { /* บรรทัดท่ี 6 */ int i, j, sum, scores[3][5] = { /* บรรทดั ท่ี 7 */ { 84 , 71 , 96 , 65 , 79 }, /* บรรทดั ที่ 8 */ { 90 , 55 , 83 , 68 , 96 }, /* บรรทดั ที่ 9 */ { 61 , 77 , 82 , 94 , 59 } /* บรรทดั ที่ 10 */ }; /* บรรทัดที่ 11 */ clrscr(); /* บรรทัดที่ 12 */ for (i = 0; i < 3; i++){ /* loop over tests. */ /* บรรทดั ท่ี 13 */ for (j = 0, sum = 0; j < 5; j++) /* บรรทดั ท่ี 14 */ /* บรรทดั ที่ 15 */ sum = sum + scores[i][j]; /* บรรทดั ที่ 16 */ printf(\"Average for test %d is %f.\\n\", i, (float) sum / 5); /* บรรทัดท่ี 17 */ } /* end for */ /* บรรทัดที่ 18 */ getch(); return(0); } ชุดกิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 22 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปที ี่ 5
ชุดท5่ี ตวั แปรชดุ (Array) ผลลัพธท์ ไ่ี ด้จากโปรแกรม Average for test 0 is 79.000000 Average for test 1 is 78.400000 Average for test 2 is 74.600000 คาอธิบายโปรแกรม จากโปรแกรมตัวอย่างท่ี 5.3 สามารถอธิบายการทางานของโปรแกรมทส่ี าคญั ๆ ได้ดงั นี้ บรรทัดท่ี 5 ถงึ 9 ประกาศตัวแปรชุด 2 มิติ ชนดิ จานวนเต็มของตัวแปรชือ่ scores มจี านวน สมาชิกทั้งหมด 15 ตวั บรรทดั ท่ี 11 คาสง่ั for เพอื่ ตรวจสอบว่า loop เกินจานวนรอบ คือ แถวของตวั แปรชุดหรอื ไม่ บรรทดั ท่ี 12 คาสั่ง for เพือ่ นาคะแนนท่เี ก็บในตัวแปรชุดทง้ั 15 ตัวมารวมกนั ในคาสัง่ บรรทดั ท่ี 13 บรรทดั ท่ี 14 พมิ พ์คะแนนเฉลี่ยของนักเรยี นทัง้ 5 คน ในการสอบแต่ละคร้ัง โดยท่ี (float) sum/5 เป็นการทาใหต้ วั แปร sum เปน็ จานวนทศนิยมช่วั คราวเพราะปกติเราประกาศ ตวั แปร sum เป็นชนดิ จานวนเตม็ บรรทัดที่ 15 หยดุ รอรับคา่ ใด ๆ จากคยี บ์ อรด์ ซึง่ ถา้ เรากด enter ก็จะกลับส่โู ปรแกรม ชุดกิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 23 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปีที่ 5
ชดุ ท5ี่ ตวั แปรชุด (Array) โปรแกรมตวั อยา่ งที่ 5.4 แสดงการใชต้ วั แปรชุด 2 มติ ิ สาหรบั เกบ็ ชอ่ื จงั หวดั แล้วนาข้อมลู มา แสดงออกที่จอภาพ /* array4.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทดั ท่ี 2 */ #include<stdlib.h> /* บรรทดั ที่ 3 */ void main(void) /* บรรทดั ท่ี 4 */ { /* บรรทดั ท่ี 5 */ char province[100][40]; /* บรรทัดที่ 6 */ int i, n; char numstr[20]; /* บรรทัดท่ี 7 */ clrscr( ); /* บรรทดั ท่ี 8 */ printf(\"Enter Total of Province (n<100) : \" ); /* บรรทดั ที่ 9 */ n = atoi(gets(numstr)); /* บรรทัดท่ี 10 */ for( i=0; i<n; i++) { /* บรรทัดที่ 11 */ /* บรรทดั ที่ 12 */ printf(\"\\nEnter your Province : \"); /* บรรทดั ที่ 13 */ gets( province[i] ) ; /* บรรทัดท่ี 14 */ } /* บรรทัดที่ 15 */ for( i=0; i<n; i++) /* บรรทดั ที่ 16 */ printf(\"\\nYour Province is %s\", province[i]); /* บรรทัดท่ี 17 */ getch(); /* บรรทัดที่ 18 */ } /* end main */ ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 24 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปที ี่ 5
ชดุ ท5ี่ ตวั แปรชุด (Array) ผลลพั ธท์ ไี่ ดจ้ ากโปรแกรม Enter Total of Province (n<100) : 3 Enter your Province : Suphanburi Enter your Province : Ratchaburi Enter your Province : Kanchanaburi Your Province is Suphanburi Your Province is Ratchaburi Your Province is Kanchanaburi คาอธบิ ายโปรแกรม จากโปรแกรมตวั อยา่ งที่ 5.4 สามารถอธบิ ายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดงั นี้ บรรทัดท่ี 3 คาสง่ั #include <stdlib.h> ให้การสนบั สนุนฟังก์ชัน atoi( ) เพ่ือเปล่ยี นขอ้ มูล สตรงิ เป็นชนิดจานวนเตม็ ซ่ึงเรียกใชฟ้ งั กช์ ันน้ี ในบรรทัดที่ 10 บรรทัดที่ 11 คาสง่ั for เพอื่ นาคา่ สตรงิ ท่รี ับเขา้ มาไปเก็บไวใ้ นตวั แปรชดุ province[i] ในคาส่ัง บรรทัดท่ี 13 บรรทัดที่ 15 คาส่งั for เพ่อื นาค่าสตริงท่เี กบ็ ไวใ้ นตัวแปร province[i] ออกแสดงทจ่ี อภาพ ตาม คาสัง่ บรรทดั ท่ี 16 บรรทดั ที่ 17 หยุดรอรับค่าใด ๆ จากคยี บ์ อรด์ ซึง่ ถ้าเรากด enter ก็จะกลับส่โู ปรแกรม ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 25 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปที ่ี 5
ชดุ ท5ี่ ตวั แปรชุด (Array) บัตรกิจกรรมกำรเรยี นรูท้ ่ี 1 10 เร่อื ง ตัวแปรชุด 1. ถ้ามีการประกาศตวั แปร n เป็นแถวลาดับดงั น้ี int n[5]; 1.1 เราสามารถอ้างถงึ สมาชกิ แต่ละตัวของ n ได้โดยวิธีใด .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 1.2 เราสามารถอ้างถงึ สมาชิก n[5] ไดห้ รอื ไม่ เพราะเหตุใด และมีขอ้ ควรระวังหรือข้อจากดั อยา่ งไร .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 1.3 ถา้ ตอ้ งการกาหนดค่าเรมิ่ ต้นให้กับสมาชกิ ทุกตวั ในแถวลาดบั n มคี า่ เป็น 0 (ศูนย)์ ต้อง ใชค้ าสัง่ ใด .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 2. แถวลาดับต่อไปนี้ มีขนาดเป็นเทา่ ใด ถา้ กาหนด #define SIZE 5 แถวลาดบั ขนาด 2.1 int n[ ] = {1, 2, 3, 4, 5}; 2.2 int s[SIZE]; 2.3 Int n[SIZE] = {0, 2, 4} 2.4 char str1[ ] = ‘H’ , ’E’ , ‘l’ , ‘l’ , ‘o’ , ‘\\0’}; 2.5 char str2[ ] = “Hello everyone”; ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 26 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีท่ี 5
ชุดท5ี่ ตวั แปรชดุ (Array) บตั รกจิ กรรมกำรเรยี นรู้ที่ 1 เรอื่ ง ตวั แปรชดุ 3. ให้พจิ ารณาว่าคาสง่ั หรอื ชดุ คาสัง่ ต่อไปนผ้ี ิดหรือไม่ เพราะเหตใุ ด 3.1 char str[6] = {‘w’ , ‘I’ , ‘n’ , ‘d’ , ‘o’ , ‘w’ , ‘s’}; .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ 3.2 float weight[4] = {35, 45, 42, 60, 46, 62}; .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ 3.3 char str[6] = “windows”; .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ 3.4 char str[9] = “windows”; .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ 3.5 int b[10] = {0}, I; for (i=0; I <=10; i++) b[i] = I; .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 27 รายวชิ าภาษาซี ง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”); .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................ 5. ใหเ้ ขยี นคาสง่ั หรอื ชุดของคาสงั่ เพ่ือดาเนินการในแต่ละข้อตอ่ ไปน้ี 5.1 ประกาศตวั แปรแถวลาดบั height ทีม่ ขี นาด 10 โดยใช้ค่าคงที่ SIZE .................................................................................................................................................................. .................................................................................................................................................................. 5.2 บวก 1 เข้ากับสมาชิกทกุ ตวั ของ height .................................................................................................................................................................. .................................................................................................................................................................. 5.3 แสดงคา่ ของสมาชิกตวั สุดทา้ ยของ height .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 28 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปีที่ 5
ชดุ ท5่ี ตวั แปรชุด (Array) บตั รเนอ้ื หำที่ 2 ค่ำคงท่ีสตรงิ ตัวแปรสตริง และฟงั ก์ชนั ค่าคงที่สตริง คือ ตัวอักขระ (characters) ใด ๆ ที่เขียนอยู่เครื่องหมายภายใต้ “” (double quotation) เช่น “Greeting!” , “Hello”, “SA-WAS-DEE” , “4567” , “123.45” เป็นตน้ ตัวแปรสตริง คือ ตัวแปรชุดที่เก็บค่าคงที่ชนิดสตริง โดยมีชนิดของตัวแปรชุดเป็น char เช่น char name[30]=”KANNIKAR”; หรือ char strnum[10]=”12345”; เป็นต้น สาหรับการเกบ็ ค่าคงที่ชนิดสตริงไว้ในตัวแปรสตริงภายในหน่วยความจาน้ัน จะเก็บเรียงกันไปทีละตัวอักขระ โดยใช้เนื้อที่ 1 byte ต่อการเก็บตัวอักษร 1 ตัว และใน byte สุดท้ายสตริงจะมีการเก็บ \\0 (null character) ไวเ้ พ่อื เปน็ การบอกให้ compiler รู้ว่าหมดข้อมลู ที่เกบ็ ไวแ้ ลว้ การประกาศตัวแปรสตริง 1 มิติ เนื่องจากตัวแปรสตริง คือตัวแปรชุดที่มีชนิดเป็น char ดังนั้นจึงสามารถประกาศตัวแปรสตริงได้ ดังนี้ char stringname[size]; หรือ char stringname[size] = “string constant”; โดยท่ี 29 stringname คือ ชื่อตวั แปรสตรงิ ต้ังข้ึนตามหลักการตงั้ ชือ่ ตวั แปร string constant คือ ค่าคงที่ชนิดสตริง โดยต้องเขียนอยู่ภายใต้เครื่องหมาย “ ” เสมอ size คอื ขนาดของตัวแปรสตรงิ ควรกาหนดใหเ้ นอ้ื ทที่ ้ังหมดท่ใี ชเ้ กบ็ ข้อมลู มขี นาดเกนิ ค่าคงท่สี ตริงที่ ยาวที่สุดไปอย่างน้อย 1 byte ในทางปฏิบัตินิยมกาหนดขนาดให้มาก ๆ ไว้ก่อนส่วนจะใช้เนื้อที่ครบทั้งหมด หรอื ไม่ ไมม่ ีผลอะไรในโปรแกรม ชุดกจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีที่ 5
ชดุ ท5่ี ตัวแปรชุด (Array) ตัวอยา่ งการประกาศตัวแปรสตริง 1 มติ ิ 1) char name[26]; /* ประกาศตัวแปรสตรงิ name มีขนาด 26 bytes */ 2) char name[26], address[41]; /* ประกาศตวั แปรสตริง name มีขนาด 26 bytes และตวั แปรสตริง address มี ขนาด 41 bytes ตามลาดับ */ 3) char str[9] = “COMPUTER”; /* ประกาศตัวแปรสตรงิ str มีขนาด 9 bytes และกาหนดขอ้ ความใหส้ ตริง */ แตถ่ า้ เราเขียนคาสั่งเป็น char str[8] = “COMPUTER”; จะเกิด error ขึ้นเพราะ ความกว้างของตัว แปรสตรงิ นอ้ ยกว่าคงทส่ี ตริงอยู่ 1 byte ดงั นั้นจะตอ้ งกาหนดขนาด ให้เกินค่าคงท่ีสตรงิ ไว้อยา่ งนอ้ ย 1 byte เสมอ 4. char city[80] = “Bangkok, Thailand”; /* ประกาศตัวแปรสตริง city มีขนาด 80 bytes และกาหนดขอ้ ความใหส้ ตริง */ การประกาศตัวแปรสตรงิ 2 มิติ char stringname[n][m]; หรอื char stringname[n][m] = {“string constant1”, “string constant2 “,...,”string constanN }; โดยท่ี stringname คอื ช่ือตวั แปรสตรงิ ตั้งขึ้นตามหลกั การตง้ั ชือ่ ตวั แปร n, m คือ จานวนแถวและจานวนคอลมั น์ตามลาดบั string constant1, string constant2,…., string constantN คอื คา่ คงที่ชนดิ สตรงิ ตวั ท่ี 1, 2, …., N ตามลาดับ ซงึ่ จะตอ้ งเขียนอยภู่ ายใต้เครอ่ื งหมาย “….” เสมอ ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 30 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปที ี่ 5
ชดุ ท5ี่ ตัวแปรชุด (Array) ตวั อย่างการประกาศตัวแปรสตริง 2 มิติ 1) char name[3] [20]; /* ตวั แปรสตรงิ name 2 มติ ิ มีขนาด 3*20 = 60 bytes*/ 2) char name[3] [20] = {“KANNIKAR”,”SURAPORN”,”THAITANA”}; /* ประกาศตวั แปรสตริง name 2 มติ ิ มีขนาด 3*20 = 60 bytes และกาหนดคา่ สตริง KANNIKAR, SURAPORN และ THAITANA ใหก้ ับตัวแปร สตริง name[0], name[1] และ name[2] ตามลาดบั */ ฟังก์ชนั ทใ่ี ช้งานเกย่ี วกับสตริง (string functions) ในภาษาซี มีฟังกช์ นั ท่ีใชจ้ ดั การเกยี่ วกบั ค่าคงทส่ี ตรงิ และตัวแปรสตริงอยู่หลายฟังก์ชนั ดงั นี้ 1. ฟังก์ชนั strlen( ) 2. ฟงั ก์ชนั strcmp( ) 3. ฟังกช์ ัน strcpy( ) 4. ฟังก์ชัน strcat( ) โดยก่อนท่ีจะใช้ฟังก์ชันเหล่านี้จะต้องมีการใชค้ าสง่ั # include<string.h> เข้ามาในโปรแกรมดว้ ย จึงจะสามารถทางานได้ ฟังกช์ ัน strlen( ) strlen( ) เป็นฟงั ก์ชนั ท่ีใชน้ บั ความยาวของค่าคงทส่ี ตรงิ หรือตวั แปรสตริง รปู แบบการใช้ strlen(string variable); หรือ strlen(“string constant”); ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 31 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปที ี่ 5
ชุดท5ี่ ตัวแปรชดุ (Array) โดยท่ี string variable และ string constant คอื ตวั แปรสตริง และค่าคงทส่ี ตรงิ ตามลาดบั ใช้ อยา่ งใดอย่างหน่งึ เช่น strlen(“computer”)เช่น strlen(“computer”) หรอื char name[20]= “KANNIKAR” ; strlen(name); เปน็ ต้น ลักษณะของฟงั กช์ นั strlen( ) นเี้ ป็นฟงั กช์ ันทมี่ กี ารสง่ ค่ากลบั เป็นตวั เลขจานวน เต็ม (integer) มายงั ชื่อฟังกช์ ัน ดงั นัน้ จึงนิยมกาหนดตัวแปร ชนิด int ขน้ึ มา 1 ตัว เพ่อื เกบ็ ค่าความยาวของสตรงิ เอาไว้ เช่น int n; char s[80]= “BANGKOK, THAILAND” ; n=strlen(s); /* กาหนดค่าความยาวของสตริงสง่ กลับใหต้ วั แปร n */ เพื่อความเข้าใจเกี่ยวกับการทางานของฟังก์ชัน strlen( ) ได้ดีย่ิงขึ้นควร ศึกษาโปรแกรมตัวอย่าง ท่ี 5.5 ดังต่อไปนี้ โปรแกรมตวั อยา่ งท่ี 5.5 แสดงการใชต้ ัวแปรชุด 2 มติ ิ สาหรบั เก็บช่อื จังหวัด แลว้ นาข้อมลู มา โปรแกรมตวั อย่างที่ 5.5 /* strlen.c */ #include<stdio.h> /* บรรทดั ท่ี 1 */ #include<conio.h> /* บรรทัดท่ี 2 */ #include<string.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทดั ท่ี 4 */ { /* บรรทัดที่ 5 */ int n; /* บรรทดั ที่ 6 */ char s[81]; /* บรรทดั ท่ี 7 */ clrscr( ); /* บรรทดั ท่ี 8 */ printf(\"Enter your string : \"); /* บรรทดั ท่ี 9 */ gets(s); /* บรรทดั ท่ี 10 */ n = strlen(s); /* บรรทัดท่ี 11 */ printf(\"\\nYour string is %s\\n\", s); /* บรรทัดที่ 12 */ printf(\"Length of string is %d\", n); /* บรรทดั ที่ 13 */ getch(); /* บรรทัดท่ี 14 */ } /* บรรทดั ที่ 15 */ ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 32 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ี่ 5
ชดุ ท5่ี ตัวแปรชุด (Array) ผลลพั ธ์ทไี่ ด้จากโปรแกรม Enter your string : Ratchaburi Your string is Ratchaburi Length of string is 10 คาอธิบายโปรแกรม จากโปรแกรมตัวอย่างท่ี 5.5 สามารถอธิบายการทางานของโปรแกรมทส่ี าคญั ๆ ได้ดงั น้ี บรรทัดท่ี 3 คาส่งั #incluce <string.h> ในโปรแกรมตวั อยา่ งนใ้ี หก้ ารสนบั สนนุ ฟงั กช์ นั strlen( ) สาหรบั หาความยาวของตัวแปรสตริง ในบรรทัดที่ 11 บรรทดั ที่ 10 คาสั่ง gets(s); เปน็ การรับขอ้ มูลสตริงไปเกบ็ ไวใ้ นตัวแปรสตรงิ s ซ่งึ ตวั แปร สตริง s ได้ประกาศไว้ในบรรทดั ท่ี 7 บรรทดั ท่ี 11 คาสัง่ n = strlen(s); เป็นการกาหนดค่าความยาวของสตริง s ให้เก็บความยาวไว้ที่ ตัวแปร n บรรทดั ท่ี 12 ถงึ 13 แสดงสตริงและความยาวของสตริงที่หาได้ ออกแสดงท่ีจอภาพ บรรทัดที่ 14 หยดุ รอรับคา่ ใด ๆ จากคีย์บอร์ด ซงึ่ ถา้ เรากด enter กจ็ ะกลบั ส่โู ปรแกรม ฟงั กช์ นั strcmp( ) strcmp( ) เปน็ ฟังก์ชนั ที่ใช้เปรยี บเทียบข้อมูลชนดิ สตริง 2 ค่า วา่ มคี ่าเท่ากัน หรือมากกว่า หรือ น้อยกวา่ อย่างใดอยา่ งหนงึ่ ซึง่ การเปรยี บเทียบสตริงจะใชค้ า่ รหสั ASCII เปรียบเทยี บทลี ะตวั อกั ขระ ชดุ กจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 33 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีที่ 5
ชุดท5ี่ ตัวแปรชุด (Array) รูปแบบการใช้ strcmp(str1var, str2var); หรือ strcmp(str1constant, str2constant); โดยท่ี str1var, str2var คอื ตวั แปรสตริงตัวท่ี 1 และ 2 ตามลาดับ Str1constant, str2constant คือ ค่าคงท่สี ตริงคา่ ที่ 1 และ 2 ตามลาดบั ผลการเปรียบเทยี บระหว่าง str1constant, และ str2constant มดี งั นี้ ถ้า str1constant > star2constant จะไดค้ ่ามากกว่าศนู ย์ ถา้ str1constant < star2constant จะไดค้ า่ น้อยกวา่ ศูนย์ ถา้ str1constant = star2constant จะไดค้ า่ เท่ากบั ศูนย์ โดยค่าทไ่ี ด้จากการเปรียบเทียบนเี้ ป็นตัวเลขจานวนเต็มจะถกู ส่งกลบั มาเกบ็ ไวท้ ี่ชอ่ื ฟงั กช์ ัน strcmp( ) เพื่อความเข้าใจเกี่ยวกับการทางานของฟังก์ชัน strcmp( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่าง ท่ี 5.6 ดงั ต่อไปน้ี ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 34 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปที ่ี 5
ชดุ ท5่ี ตัวแปรชุด (Array) โปรแกรมตัวอย่างท่ี 5.6 แสดงการใชฟ้ ังกช์ นั strcmp( ) เพ่ือเปรียบเทียบขอ้ มลู ชนิด สตรงิ 2 ค่า ซึ่งมคี า่ มากกว่าหรือน้อยกว่าอย่างใดอย่างหนึ่ง /* strcmp.c */ /* บรรทัดท่ี 1 */ #include<stdio.h> /* บรรทัดท่ี 2 */ #include<conio.h> /* บรรทัดที่ 3 */ #include<string.h> /* บรรทัดท่ี 4 */ void main(void) /* บรรทัดท่ี 5 */ { /* บรรทดั ท่ี 6 */ char str1[80], str2[80]; /* บรรทดั ท่ี 7 */ /* บรรทัดที่ 8 */ clrscr(); /* บรรทดั ที่ 9 */ printf(\"Enter string1: \"); /* บรรทดั ท่ี 10 */ gets(str1); /* บรรทัดท่ี 11 */ printf(\"\\nEnter string2: \"); gets(str2); if( strcmp(str1, str2) > 0 ) /* บรรทดั ท่ี 12 */ printf(\"\\n%s is greater than %s (ASCII code)\", str1, str2); /* บรรทัดท่ี 13 */ else if( strcmp(str1,str2) == 0 ) /* บรรทดั ท่ี 14 */ printf(\"\\n%s is equal to %s (ASCII code)\", str1, str2); /* บรรทัดที่ 15 */ else /* บรรทัดที่ 16 */ printf(\"\\n%s is less than %s (ASCII code)\", str1, str2); /* บรรทัดที่ 17 */ getch(); /* บรรทัดที่ 18 */ } /* บรรทดั ท่ี 19 */ ชดุ กิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 35 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5
ชดุ ท5ี่ ตัวแปรชุด (Array) ผลลพั ธท์ ่ีไดจ้ ากโปรแกรม Enter string1: Computer Enter string2: Science Computer is less than Science (ASCII code) Enter string1: Science Enter string2: Computer Science is greater than Computer (ASCII code) Enter string1: yes Enter string2: yes yes is equal to yes (ASCII code) คาอธิบายโปรแกรม จากโปรแกรมตัวอย่างท่ี 5.6 สามารถอธิบายการทางานของโปรแกรมท่สี าคัญ ๆ ได้ดงั น้ี บรรทัดที่ 3 คาส่ัง #include <string.h> ในโปรแกรมตัวอย่างน้ี ใหก้ ารสนบั สนุน ฟังกช์ นั strcmp( ) สาหรบั เปรียบเทียบขอ้ มูลชนิดสตรงิ 2 คา่ บรรทัดท่ี 12 เป็นการตรวจสอบค่า str1> str2 หรอื ไม่ โดยใชฟ้ ังก์ชัน strcmp( ) ในบรรทัด ท่ี 12 และ 14 (หรอื ค่าท่ไี ด้จากฟังก์ชนั strcmp( ) > 0 หรอื ไม่) ซงึ่ ถา้ ใช่ก็ให้พมิ พ์ ข้อความบอก บรรทดั ที่ 14 เป็นการตรวจสอบค่า str1 == str2 หรือไม่ โดยใชฟ้ ังกช์ ัน strcmp( ) (หรือค่าท่ไี ดจ้ าก ฟังกช์ ัน strcmp( ) == 0 หรือไม)่ ซ่ึงถา้ ใช่กใ็ ห้พิมพข์ อ้ ความบอก บรรทัดท่ี 15 และ 17 ถ้าไมใ่ ชท่ งั้ 2 กรณีท่ีกล่าวมาแสดงวา่ ค่าสตรงิ ท่ีตรวจสอบนั้น สตริงตัวแรกมี ค่าน้อยกวา่ สตรงิ ตัวท่ีสอง ก็ให้พมิ พข์ อ้ ความบอก บรรทดั ท่ี 15 หยดุ รอรบั ค่าใด ๆ จากคยี ์บอร์ด ซงึ่ ถ้าเรากด enter ก็จะกลับสโู่ ปรแกรม ข้อสงั เกต ฟงั ก์ชนั strcmp( ) จะเปรยี บเทยี บสตริงดว้ ยค่ารหัส ASCII โดยเปรยี บเทียบทีละตวั อักขระ ชุดกจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 36 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปีท่ี 5
ชดุ ท5่ี ตวั แปรชดุ (Array) ฟงั กช์ นั strcpy( ) strcpy( ) เปน็ ฟงั ก์ชนั ทใ่ี ชค้ ัดลอกขอ้ มลู จาก string ค่าหนง่ึ ไปยัง string อกี คา่ หนึ่ง รปู แบบการใช้ strcpy(str2, str1); โดยท่ี str1 คือ คา่ คงทสี่ ตริง หรือค่าตัวแปรสตริงที่ตอ้ งการคัดลอก str2 คอื ตวั แปรสตรงิ ที่ใชเ้ ก็บค่าท่ีคดั ลอกมาจาก str1 เช่น char s1[80], s2[80]; strcpy(s1,”Computer”); strcpy(s2,s1); เพอื่ ความเข้าใจเกย่ี วกบั การทางานของฟังก์ชนั strcpy( ) ไดด้ ียิ่งข้นึ ควรศึกษาโปรแกรมตวั อยา่ ง ที่ 5.7 ดังตอ่ ไปน้ี ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 37 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปที ี่ 5
ชดุ ท5ี่ ตวั แปรชดุ (Array) โปรแกรมตวั อยา่ งที่ 5.7 แสดงการใช้ฟังกช์ นั strcpy( ) เพ่อื คดั ลอกข้อมูลจาก string คา่ หน่ึงไป ยงั string อกี ค่าหนึง่ /* strcpy.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<string.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดท่ี 4 */ { /* บรรทัดท่ี 5 */ char str1[80], str2[80]; /* บรรทัดท่ี 6 */ clrscr(); /* บรรทัดที่ 7 */ strcpy(str1,\"Hello, Thailand\"); /* บรรทัดท่ี 8 */ strcpy(str2,str1); /* บรรทดั ที่ 9 */ printf(\"String1 = String2 = %s\",str2); /* บรรทดั ที่ 10 */ getch(); /* บรรทัดท่ี 11 */ } /* บรรทัดท่ี 12 */ ผลลพั ธท์ ีไ่ ดจ้ ากโปรแกรม String1 = String2 = Hello, Thailand คาอธบิ ายโปรแกรม 38 จากโปรแกรมตัวอยา่ งที่ 5.7 สามารถอธิบายการทางานของโปรแกรมทีส่ าคญั ๆ ไดด้ งั น้ี บรรทดั ท่ี 3 คาสงั่ #include <string.h> ในโปรแกรมตัวอย่างน้ี ใหก้ ารสนบั สนุน ฟังก์ชนั strcpy( ) สาหรบั คัดลอกข้อมูลจาก string คา่ หนงึ่ ไป string อกี คา่ หนึ่ง ในบรรทดั ที่ 8 และ 9 บรรทัดที่ 8 ฟังก์ชัน strcpy( ) คัดลอกขอ้ ความคาวา่ Hello, Thailand ไปเกบ็ ไวใ้ นตัว แปร str1 บรรทัดที่ 9 ฟงั ก์ชัน strcpy( ) คดั ลอกขอ้ ความในตวั แปร str1 ไปเก็บไวใ้ นตวั แปร str2 บรรทัดท่ี 10 แสดงข้อความท่ีเก็บในตวั แปร str2 แสดงท่ีจอภาพ บรรทัดท่ี 11 หยุดรอรับคา่ ใด ๆ จากคยี บ์ อรด์ ซึ่งถา้ กด enter ก็จะกลับสโู่ ปรแกรม ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ี่ 5
ชดุ ท5ี่ ตวั แปรชุด (Array) ฟังก์ชัน strcat( ) strcat( ) เป็นฟังก์ชันที่ใช้เช่ือมค่าคงท่ีชนดิ สตริง 2 ค่า เข้าด้วยกัน โดยผลลัพธ์จะเก็บเอาไว้ในตัว แปรสตรงิ ตัวแรกเสมอ รูปแบบการใช้ strcat(str1,str2); โดยที่ str1 คือ ตัวแปรสตรงิ ตัวท่ี 1 ใชเ้ กบ็ ผลลัพธ์ของการเชื่อมสตรงิ ทง้ั 2 ตวั str2 คือ ตัวแปรสตริงตัวที่ 2 หรือคา่ คงท่ีสตริงก็ได้ เพื่อความเข้าใจเกี่ยวกบั การทางานของฟงั กช์ นั strcat( ) ได้ดยี ่ิงข้ึนควรศกึ ษาโปรแกรมตวั อย่าง ที่ 5.8 ดังต่อไปนี้ ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 39 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปที ่ี 5
ชุดท5ี่ ตวั แปรชดุ (Array) โปรแกรมตัวอยา่ งท่ี 5.8 แสดงการใชฟ้ ังกช์ ัน strcat( ) เพือ่ เช่อื มคา่ คงที่สตริง 2 คา่ เข้าดว้ ยกนั /* strcat.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<string.h> /* บรรทดั ท่ี 3 */ void main(void) /* บรรทดั ที่ 4 */ { /* บรรทดั ที่ 5 */ char str1[80], str2[80]; /* บรรทัดที่ 6 */ clrscr(); /* บรรทดั ท่ี 7 */ strcpy(str1, \"Computer Programming Language 1\"); /* บรรทดั ท่ี 8 */ strcpy(str2, \" is your course... \"); /* บรรทดั ที่ 9 */ printf(\"%s\", strcat(str1, str2) ); /* บรรทัดท่ี 10 */ getch(); /* บรรทดั ท่ี 11 */ } /* บรรทัดท่ี 12 */ ผลลัพธ์ทไ่ี ดจ้ ากโปรแกรม Computer Programming Language 1 is your course... คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งท่ี 5.8 สามารถอธบิ ายการทางานของโปรแกรมท่สี าคญั ๆ ไดด้ ังนี้ บรรทัดท่ี 3 คาส่งั #include <string.h> ในโปรแกรมตัวอยา่ งน้ี ให้การสนับสนนุ ฟังกช์ นั strcpy() และฟงั ก์ชนั strcat( ) สาหรบั เช่อื มคา่ สตรงิ 2 คา่ เข้าด้วยกัน ในบ รรทดั ท่ี 8, 9 และ 10 บรรทดั ท่ี 8 ฟงั ก์ชัน strcpy( ) คัดลอกข้อความคาว่า Computer Programming Language 1 ไปเก็บไวใ้ น ตัวแปร str1 บรรทดั ที่ 9 ฟงั ก์ชนั strcpy( ) คัดลอกข้อความคาวา่ is your course... ไปเก็บไวใ้ นตัวแปร str2 บรรทดั ท่ี 10 ใชฟ้ ังกช์ นั strcat( ) เพื่อเช่ือมตอ่ ค่าคงทชี่ นิดสตริง ในตัวแปร str1 และ str2 เข้า ดว้ ยกันแล้วแสดงผลออกจอภาพดว้ ยฟังกช์ นั printf( ) บรรทดั ที่ 11 หยุดรอรบั ค่าใด ๆ จากคยี บ์ อร์ด ซ่ึงถ้าเรากด enter กจ็ ะกลับสโู่ ปรแกรม ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 40 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ่ี 5
ชุดท5่ี ตัวแปรชุด (Array) สรุปท้ายบท -- strlen( ) เปน็ ฟังก์ชนั ที่ใช้นบั ความยาวของค่าคงทสี่ ตรงิ หรอื ตัวแปรสตริง - strcmp( ) เปน็ ฟังก์ชนั ที่ใชเ้ ปรยี บเทยี บข้อมูลชนิดสตรงิ 2 ค่า วา่ มีคา่ เท่ากัน หรอื มากกวา่ หรือนอ้ ยกวา่ อย่างใดอย่างหนึง่ ซ่งึ การเปรยี บเทียบสตริงจะใชค้ ่ารหสั ASCII เปรียบเทียบทีละตัวอกั ขระ - strcpy( ) เปน็ ฟงั ก์ชนั ทีใ่ ชค้ ดั ลอกขอ้ มลู จาก string คา่ หนง่ึ ไปยัง string อกี คา่ หนึ่ง - strcat( ) เปน็ ฟงั กช์ ันทีใ่ ช้เช่อื มคา่ คงท่ชี นดิ สตริง 2 ค่า เข้าด้วยกัน โดยผลลพั ธจ์ ะเกบ็ เอาไว้ ในตัวแปรสตรงิ ตัวแรกเสมอ ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 41 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีที่ 5
ชดุ ท5่ี ตัวแปรชดุ (Array) บตั รกิจกรรมกำรเรยี นรู้ท่ี 2 20 เรื่อง คำ่ คงที่สตรงิ ตวั แปรสตรงิ และฟงั ก์ชนั กาหนดให้ table เปน็ แถวลาดบั สองมิตชิ นดิ int ที่มี 3 แถว 3 คอลมั น์ให้นกั เรยี นตอบคาถามตอ่ ไปน้ี 1. ใหเ้ ขยี นคาสง่ั ประกาศตัวแปรแถวลาดับ table ถา้ สมมตวิ ่ามีการกาหนดค่าคงท่ี SIZE เปน็ 3 ไว้ เรียบรอ้ ยแลว้ ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… 2. แถวลาดบั table มสี มาชิกทง้ั หมด ……………………………………………………………………………………….. ได้แก่ …………………………………………………………………………………………………………………………………. 3. เขยี นคาสั่งโดยใช้คาสั่งวนซ้า for กาหนดคา่ เริ่มตน้ ให้กบั สมาชกิ ของแถวลาดับ table ในข้อ 1 ให้มี คา่ เท่ากบั ผลบวกของดชั นขี องแถว และดัชนขี องคอลมั น์ ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… 4. เขียนคาสง่ั เพ่ือหาผลบวกของสมาชกิ บนแนวเสน้ ทะแยงมุมหลกั ทกุ ตัวของ table ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… 5. เขียนคาสัง่ พิมพค์ า่ สมาชกิ ทุกตวั ของแถวลาดบั table ถ้ากาหนดค่าเรม่ิ ต้นให้ดังนี้ int table [SIZE] [SIZE] = { {1,8}, {2,4,6}, {5} }; ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………… ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 42 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปีท่ี 5
ชดุ ท5่ี ตวั แปรชดุ (Array) แบบทดสอบหลังเรยี น เร่ือง กำรพัฒนำโปรแกรมและกำรจำลองควำมคดิ คาชี้แจง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ขอ้ 2. ใหน้ กั เรยี นเลือกคาตอบทถ่ี กู ตอ้ งที่สดุ เพียงคาตอบเดียว แลว้ ใส่เครอ่ื งหมายกากบาท (x) ลงในกระดาษคาตอบ 1. กาหนด char b[4] = {‘1’, ‘2’, ‘3’, ‘4’}; ดงั น้ัน b เป็นตวั แปรประเภทใด ก. ขอ้ ความ ข. ตวั อักขระ ค. จานวนจริง ง. จานวนเตม็ 2. กาหนด float b[2][3]; ตวั แปร b มจี านวนสมาชกิ เทา่ ใด ก. 2 ข. 3 ค. 5 ง. 6 3. ข้อใดเป็นการประกาศตวั แปรอารเ์ รย์ 1 มติ ทิ ถ่ี ูกต้อง ก. int c{7}; ข. int c[7]; ค. int c{7} ง. int c[7] 4. ขอ้ ใดกล่าวถงึ ตวั แปรอาร์เรยไ์ ด้ถกู ต้อง ก. ตัวแปรเดยี วเกบ็ ขอ้ มูลได้ชุดเดยี ว ข. ตัวแปรเดียวเก็บขอ้ มูลไดห้ ลายประเภท ค. ตัวแปรเดียวเก็บข้อมลู ประเภทเดยี วได้หลายชุด ง. ถูกขอ้ ข และ ค 5. ข้อใดกล่าวถงึ ตวั แปรไดถ้ กู ต้อง ก. ตัวดาเนินการเปน็ ตวั แปรประเภทหน่งึ ข. ประกาศตวั แปรเพื่อจองพื้นท่ใี นการเก็บข้อมูล ค. การสร้างตวั แปรข้อความเพ่อื เกบ็ ขอ้ มลู ประเภทขอ้ ความ ง. ตวั แปรตัวอกั ขระท่มี ีขนาดตัวอักขระเทา่ กับจานวนอักขระท้ังหมดในข้อความ 6. กาหนด float a[9] = 5; ดงั นนั้ a เปน็ ตัวแปรประเภทใด ก. ข้อความ ข. ตัวอกั ขระ ค. จานวนจริง ง. จานวนเต็ม ชุดกจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 43 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปีที่ 5
ชุดท5่ี ตัวแปรชุด (Array) 7. กาหนด int a[5] = {10, 11, 12, 13, 14}; a[1] มีค่าเท่าใด ก. 10 ข. 11 ค. 12 ง. 13 8. กาหนด char c[5] = {‘A’, ‘1’, ‘B’, ‘2’, ‘0’}; ดังนัน้ c เป็นตัวแปรประเภทใด ก. ข้อความ ข. ตัวอกั ขระ ค. จานวนจริง ง. จานวนเตม็ 9. ข้อใดเป็นการประกาศตัวแปรอารเ์ รย์ 2 มิตทิ ี่ถกู ตอ้ ง ก. int a{8}{9}; ข. int a[8][9] ค. int a{8}{9} ง. int a[8][9]; 10. คาสงั่ ในขอ้ ใดทไ่ี มไ่ ดใ้ ช้ในการนาข้อมูลเขา้ ไปเก็บในตัวแปรอารเ์ รย์ ก. for ข. goto ค. while ง. do-while ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 44 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีที่ 5
ชุดท5่ี ตัวแปรชุด (Array) กระดำษคำตอบ เร่ือง ตัวแปรชุด (Array) กอ่ นเรยี น หลังเรียน ชื่อ .................................................................................... ช้ัน ................ เลขท่ี .............. ขอ้ ที่ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 45 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปีท่ี 5
ชุดท5่ี ตวั แปรชดุ (Array) บรรณำนุกรม กิตติชยั ชวี าสุขถาวร. (2550). ภาษาซที ีละก้าว. กรุงเทพฯ : เคทีพี คอมพ์ แอนด์ คอนซัลท์. กลุ รพี ศวิ าพรรกั ษ์. (2557). เทคโนโลยสี ารสนเทศและคอมพิวเตอร์ 4-6. กรงุ เทพฯ : สานักพิมพเ์ อมพันธ.์ ธีรวฒั น์ ประกอบผล. (2550). การเขียนโปรแกรมระบบปฏบิ ตั กิ ารเท็กโหมด(ดว้ ยภาษาซี). กรงุ เทพฯ : ซัคเซสมีเดยี . นิรุธ อานวยศลิ ป.์ (ม.ป.ป.). C Programming เขียนโปรแกรมภาษาซีฉบับสมบูรณ.์ ม.ป.ท. : ดา่ นสทุ ธาการพิมพ์ พฒั พงษ์ อมรวงศ.์ (2554). การเขียนโปรแกรมภาษาซี. ปทุมธานี : มีเดียอินเทลลิเจนซ์ เทคโนโลยี. มณั ฑนา ปราการสมุทร. (2534). การเขยี นชุดคาสงั่ ภาษาซี. กรงุ เทพมหานคร : ดวงกมลสมยั . สถาบนั สง่ เสริมการสอนวิทยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธกิ าร. (2551). ภาษาซี ชว่ งช้ันที่ 4 ชน้ั มธั ยมศกึ ษาปที ่ี 4 - 6. กรงุ เทพฯ : โรงพิมพค์ ุรสุ ภาลาดพร้าว. สมชาย รัตนเลิศนุสรณ์. (2545). การเขยี นโปรแกรมคอมพิวเตอร์ด้วยภาษาซี. กรุงเทพฯ : สมาคมสง่ เสรมิ เทคโนโลยี (ไทย-ญี่ปุ่น) โอภาส เอยี่ มสริ ิวงศ.์ (2552). การเขยี นโปรแกรมด้วยภาษาซี (Programming with C). กรุงเทพมหานคร : ซีเอด็ . ชดุ กจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 46 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปีที่ 5
ชุดท5่ี ตัวแปรชดุ (Array) ภาคผนวก ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 47 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปที ี่ 5
ชดุ ท5่ี ตวั แปรชุด (Array) แบบบนั ทกึ คะแนนระหวำ่ งเรยี น เรอื่ ง ตวั แปรชดุ (Array) ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 48 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศึกษาปีที่ 5
ชดุ ท5่ี ตวั แปรชดุ (Array) เฉลยแบบทดสอบกอ่ นเรียน เร่อื ง ตวั แปรชดุ (Array) ก่อนเรยี น หลังเรียน ชือ่ .................................................................................... ชน้ั ................ เลขท่ี .............. ข้อท่ี ก ข ค ง 1. × 2. × 3. × 4. × 5. × 6. × 7. × 8. × 9. × 10. × ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 49 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปที ี่ 5
Search