Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore โครงสร้างการเขียนโปรแกรม

โครงสร้างการเขียนโปรแกรม

Description: ชุดที่4

Search

Read the Text Version

ชุดที่4 โครงสรา้ งการเขยี นโปรแกรม คำนำ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดนี้จัดทาขึ้นเพื่อพัฒนาการจัดกิจกรรมการเรียนการสอน โดยเน้นผู้เรียนเป็นสาคัญ และส่งเสริมการเรียนรู้ของผู้เรียนด้วยตนเอง คิดเป็น ทาเป็นและแก้ปัญหาเป็น โดยได้ ขยายผลในด้านเน้ือหาให้กว้างและชัดเจนยิ่งขึ้น ซ่ึงถือว่าเป็นไปตามแนวทางการจัดการศึกษาของชาติท่ีเน้นผู้เรียน เป็นสาคัญ และสนองต่อพระราชบัญญัติการศึกษาแห่งชาติ พุทธศักราช 2542 และสอดคล้องกับหลักสูตร แกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 ที่มุ่งเน้นให้ผู้เรียนได้รับการพัฒนาทั้งความรู้ กระบวนการคิด กระบวนการสืบเสาะหาความรู้ การแก้ปัญหา ความสามารถในการสื่อสาร การตัดสินใจ การนาความรู้ไปใช้ใน ชวี ติ ประจาวัน มคี ณุ ธรรมคา่ นิยมอนั พงึ ประสงค์และผู้เรียนมีเจตคติท่ีดีต่อวิชาคอมพิวเตอร์ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปี ที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ครอบคลุมตัวชี้วัดและสาระการเรียนรู้ตามหลักสูตร แกนกลางการศึกษาขนั้ พ้นื ฐาน พทุ ธศกั ราช 2551 ซงึ่ ประกอบดว้ ยชุดกจิ กรรมการเรียนรู้ท้งั หมด 5 ชุด ดงั น้ี ชุดที่ 1 เร่ือง การพัฒนาโปรแกรมและการจาลองความคิด ชดุ ที่ 2 เรอ่ื ง โครงสรา้ งของโปรแกรมภาษาซี ชดุ ที่ 3 เร่อื ง คาสั่งรบั คา่ และแสดงผล ชุดท่ี 4 เรอื่ ง โครงสรา้ งการเขียนโปรแกรม ชุดที่ 5 เรอ่ื ง ตัวแปรชดุ (Array) ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 นี้เป็นชุดที่ 4 เรื่อง โครงสร้างการเขียนโปรแกรม ผู้จัดทาหวังเป็นอย่างยิ่งว่าชุดกิจกรรมการเรียนรู้ชุดที่ 4 เรื่อง โครงสร้างการเขียน โปรแกรม ชุดนี้จะช่วยให้ผู้เรียนมีความเข้าใจเกี่ยวกับโครงสร้างการเขียนโปรแกรมได้มากย่ิงขึ้น ซึ่งเป็นประโยชน์ อยา่ งยงิ่ ต่อการพฒั นาการเรียนรู้และสร้างองค์ความรู้ทย่ี ั่งยืนของผู้เรยี นต่อไป สุวรรณา จิตต์ปล้ืม 1 โรงเรยี นบางแพปฐมพิทยา ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปที ่ี 5

ชุดท่ี4 โครงสร้างการเขียนโปรแกรม หนา้ สำรบญั 1 2 เร่อื ง 3 คานา สารบัญ 5 คาแนะนาในการใชช้ ุดกิจกรรมการเรียนร้สู าหรบั ครู 6 คาแนะนาในการใชช้ ดุ กิจกรรมการเรียนรู้สาหรับนักเรียน 6 มาตรฐานการเรยี นรู้และตัวช้วี ดั จดุ ประสงคก์ ารเรยี นรู้ 7 แบบทดสอบก่อนเรียน 10 บตั รเนื้อหาที่ 1 คาสั่งทดสอบเง่ือนไขในการตดั สนิ ใจ 25 บตั รกจิ กรรมที่ 1 คาสัง่ ทดสอบเง่อื นไขในการตดั สินใจ บตั รเนื้อหาที่ 2 คาสั่งวนลปู หรือทางานซา้ ๆ เปน็ ลูป 1 28 บตั รกิจกรรมที่ 2 คาสัง่ วนลูปหรอื ทางานซา้ ๆ เป็นลูป 42 แบบทดสอบหลังเรยี น 45 บรรณานุกรม 48 ภาคผนวก 49 แบบบันทกึ คะแนนระหว่างเรียน 50 เฉลยแบบทดสอบก่อนเรยี น เฉลยบตั รกิจกรรมการเรียนรทู้ ี่ 1 เรือ่ ง คาส่งั ทดสอบเง่อื นไขในการตดั สนิ ใจ 51 เฉลยบตั รกจิ กรรมการเรียนรูท้ ่ี 2 เรือ่ ง คาสั่งวนลปู หรอื ทางานซา้ ๆ เป็นลูป 52 เฉลยแบบทดสอบหลงั เรียน 55 58 ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 2 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ี่ 5

ชุดท่ี4 โครงสรา้ งการเขยี นโปรแกรม คำแนะนำกำรใชช้ ุดกิจกรรมกำรเรียนรู้สำหรับครู เมื่อครูผู้สอนได้นาชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี 3 ง30243 ช้นั มัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนร้กู ารงานอาชพี และเทคโนโลยี ไปใชค้ วรปฏิบตั ิดงั น้ี 1. ดาเนินการจัดกิจกรรมการเรียนการสอนโดยใช้ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรม ภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและ เทคโนโลยี ควบคูไ่ ปกบั แผนการจดั การเรียนร้รู ายวิชาภาษาซี ง30243 ระดบั ชัน้ มัธยมศกึ ษาปีท่ี 5 2. หลังจากได้ศึกษาเน้อื หาแล้วใหน้ กั เรยี นตอบคาถามเพ่ือประเมนิ ความรแู้ ตล่ ะเรอื่ ง 3. ควรให้นักเรียนปฏิบัติชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี เพื่อความเข้าใจโดยครูให้ คาแนะนาอย่างใกล้ชิด 4. ให้นักเรียนตรวจสอบเฉลยท้ายเล่มเมื่อนักเรียนทากิจกรรมตามชุดการเรียนรู้แต่ละชุดการเรียนรู้ แลว้ เพือ่ ทราบผลการเรียนรขู้ องตนเอง 5. ทดสอบความรู้หลังเรียนจากที่นักเรียนทากิจกรรมการเรียนรู้จบชุดแล้วด้วยการทาแบบทดสอบ หลังเรียนในการเรียนรู้ด้วยชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 4 เร่ือง โครงสร้างการ เขยี นโปรแกรม นกั เรียนควรปฏบิ ัตดิ ังนี้ 1. นกั เรียนจะได้รับชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 4 เร่ือง โครงสร้างการ เขียนโปรแกรม 1 เล่มและซดี ีประกอบชดุ การเรียนรู้ 1 แผน่ 2. วิธีการสอนในชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 4 เร่ือง โครงสร้างการ เขยี นโปรแกรม นกั เรยี นเรยี นรู้และทากิจกรรมการเรยี นรู้ ดงั ขน้ั ตอนตอ่ ไปนี้ 2.1 ศกึ ษาจุดประสงค์การเรียนรู้ ภาระงานประจาหนว่ ย และการประเมนิ ผล 2.2 เรียนรู้ด้วยวิธีการสอนโดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การ สารวจตรวจสอบ การสืบคน้ ข้อมูลและอภปิ ราย ขนั้ ตอนการสอนมี 6 ขนั้ ตอนคือ 2.2.1 ข้นั นาเข้าส่บู ทเรียน - กระต้นุ เร้าความสนใจ หรอื ทบทวนความรเู้ กา่ 2.2.2 ข้ันนาเสนอ - นาเสนอความรู้ใหม่ 2.2.3 ขน้ั ฝึก ชุดกจิ กรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปที ่ี 5

ชดุ ท่ี4 โครงสร้างการเขยี นโปรแกรม - เน้นการเรียนรู้โดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การ สารวจตรวจสอบ การสืบคน้ ข้อมลู และอภปิ ราย 2.2.4 ข้ันการทาบตั รกจิ กรรม - ในแต่ละแผนการจัดการเรียนรู้ มีภาระงานหรอื ชิ้นงานให้นักเรียนได้ทดสอบยอ่ ย ซ่ึงทกุ คนตอ้ งผ่านขัน้ ตอนการทาบตั รกิจกรรมน้จี ึงจะสามารถเรยี นกจิ กรรมต่อไปได้ 2.2.5 ข้นั สรปุ - นกั เรียนช่วยกนั สรุปความรทู้ ่ีไดจ้ ากบทเรยี นโดยมคี รูคอยเพิ่มเติม 2.2.6 ข้ันประยุกตใ์ ชแ้ ละสะทอ้ นคิด - นาความรู้ที่ได้จากแผนการจัดการเรียนรู้ต่าง ๆ ในหน่วยนั้นทาภาระงานและ สะท้อนคิดประจาหน่วยฝึกข้ันตอนนี้ นักเรียนต้องดาเนินการเปน็ กลุ่มด้วยการนาเสนอผลงานท่ีมีกระบวนการ สะท้อนคดิ ภายในกลุ่มเก่ียวกับงานของตนเองท้ังส่งิ ทท่ี าไดแ้ ละสิ่งทตี่ ้องปรับปรุง ดังนั้นในขนั้ ตอนนี้นกั เรียนจึง มที ้ังกระบวนการนาความรู้ท่ีได้ไปประยุกต์ใช้ และการสะท้อนคิดในผลงานของกนั และกนั เพื่อคัดเลอื กผลงาน ทด่ี ีท่ีสุดประจาหน่วยเป็นกาลังใจให้นักเรียนในการทาผลงานในหน่วยต่อไป อกี ทั้งยังสามารถนาข้อสะท้อนคิด ของเพ่ือนมาปรับปรุงผลงานของตนเองใหด้ ยี งิ่ ขน้ึ 3. การประเมินผล 3.1 เนอ้ื หา - ใชแ้ บบทดสอบ 3.2 สมรรถนะ - ประเมินตามภาระงาน 3.3 คณุ ลกั ษณะอันพึงประสงค์ - ประเมินโดยใช้แบบสังเกตพฤตกิ รรม ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 4 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปีที่ 5

ชุดที่4 โครงสร้างการเขยี นโปรแกรม คำแนะนำกำรใชช้ ดุ กิจกรรมกำรเรียนรู้สำหรบั นักเรียน ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมธั ยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 4 เรื่อง โครงสร้างการเขียนโปรแกรม ชุดนี้ใช้ ประกอบการจัดการเรียนการสอนของนักเรียน ชั้นมัธยมศึกษาปีที่ 5 โดยมีขั้นตอนการจัดกิจกรรมการเรียน การสอนดังนี้ 1. นกั เรยี นฟังคาชี้แจงการใช้ชุดกจิ กรรมการเรียนรู้ให้เขา้ ใจ 2. ให้นักเรียนรับชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 4 เร่ือง โครงสร้างการ เขียนโปรแกรม 3. นักเรียนเริ่มทาแบบทดสอบก่อนเรียนเพื่อประเมินว่านักเรียนมีพื้นฐานความรู้ ความเข้าใจมาก นอ้ ยเพียงใด 4. ให้นักเรียนศึกษาเนื้อหาทาความเข้าใจให้ดีตั้งแต่หน้าแรกถึงหน้าสุดท้ายตามลาดับอย่าข้าม ข้นั ตอนและทาบัตรกจิ กรรมท้ายเลม่ ชดุ ที่ 4 เรอื่ ง โครงสร้างการเขียนโปรแกรม 5. เมื่อพบคาช้แี จงหรือคาถามในแตล่ ะบตั รกิจกรรมให้นักเรยี นอา่ นและทากิจกรรมที่กาหนดให้อยา่ ง รอบคอบ 6. ส่งผลงานการทาบัตรกจิ กรรมการเรียนรทู้ า้ ยเล่มเพอื่ ใหค้ รตู รวจและบันทกึ ผล 7. เมื่อทาบัตรกิจกรรมเสรจ็ แลว้ จดั เก็บอุปกรณใ์ หเ้ รยี บร้อย 8. เมื่อนักเรียนทุกคนทากิจกรรมการเรียนรู้ครบแล้วให้นักเรียนทาแบบทดสอบหลังเรียนด้วยความ ตัง้ ใจและซอ่ื สัตย์ 9. รบั ฟงั การบอกคะแนน คาชมเชย และคาแนะนาเพมิ่ เตมิ จากครู ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 5 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปีที่ 5

ชุดท่ี4 โครงสร้างการเขยี นโปรแกรม มำตรฐำนกำรเรยี นร้แู ละตัวช้ีวดั มาตรฐาน ง 3.1 เข้าใจ เหน็ คุณคา่ และใชก้ ระบวนการเทคโนโลยีสารสนเทศในการสืบค้นข้อมลู การเรียนรู้ การส่ือสาร การแกป้ ญั หา การทางาน และอาชีพอยา่ งมีประสิทธิภาพ ประสิทธผิ ลและมคี ณุ ธรรม ตวั ชวี้ ดั ง 3.1 ม.4-6/5 แก้ปญั หาด้วยกระบวนการเทคโนโลยสี ารสนเทศอยา่ งมปี ระสิทธิภาพ จดุ ประสงค์กำรเรียนรู้ 1. เขียนโปรแกรมมีโครงสร้างการทางานแบบมที างเลือกได้ 2. เขียนโปรแกรมมีโครงสร้างการทางานแบบวนซา้ ได้ 3. เขียนโปรแกรมโดยเลอื กใชค้ าสงั่ ได้อยา่ งเหมาะสมได้ ชดุ กจิ กรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 6 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศึกษาปที ่ี 5

ชดุ ท่ี4 โครงสร้างการเขยี นโปรแกรม แบบทดสอบก่อนเรยี น เร่ือง กำรพัฒนำโปรแกรมและกำรจำลองควำมคดิ คาชี้แจง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ข้อ 2. ใหน้ กั เรยี นเลอื กคาตอบที่ถูกต้องที่สุดเพียงคาตอบเดียว แล้วใส่เคร่ืองหมายกากบาท (x) ลงในกระดาษคาตอบ 1. ข้อใดต่อไปน้ี เปน็ คาสงั่ ในการเลอื กทาแบบทางเดยี ว ? ก. if ข. if-else ค. if-else เชงิ ซอ้ น ง. switch 2. ข้อใดต่อไปนี้ คือประโยคเงอ่ื นไขกาหนด if ซอ้ น if ? ก. if ข. if-else ค. if-else เชงิ ซ้อน ง. switch 3. ขอ้ ใดตอ่ ไปน้ี คือคาส่งั ทีต่ อ้ งใช้หยุดการทาซา้ และออกจากลปู ของโปรแกรมได้ ? ก. continue ข. break ค. while ง. for 4. ขอ้ ใดตอ่ ไปนค้ี ือผลของการไมใ่ สค่ าส่ัง break การตรวจสอบเงอ่ื นไขด้วย switch ? ก. โปรแกรมคอมไพลไ์ มผ่ า่ น ข. เงอ่ื นไขแต่ละ case จะไมท่ างาน ค. จะตรวจสอบ case ทอี่ ยลู่ าดบั ถัดไป ง. ไมเ่ กิดอะไรขึน้ 5. ข้อใดตอ่ ไปน้ี คอื คาสั่งลปู การทาซ้าท่ีทราบจานวนรอบทแี่ น่นอน ? ก. switch ข. while ค. do-while ง. for 6. ข้อใดตอ่ ไปนคี้ อื คาส่งั ลูปการทาซา้ จะมีการตรวจสอบเงื่อนไขก่อนเสมอ ? ก. switch ข. while ค. do-while ง. for ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 7 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ี่ 5

ชดุ ท่ี4 โครงสรา้ งการเขยี นโปรแกรม 7. ข้อใดต่อไปนี้ คือ การใชค้ าสั่งวนซ้า while ที่ถกู ต้อง ? ก. while(a > 10) ข. while(a = 10) ค. while(a => 10) ง. while(a > 10); 8. ขอ้ ใดต่อไปนี้ คอื ลกั ษณะการทางานของคาสง่ั วนซา้ do-while ? ก. ตรวจสอบเงอื่ นกอ่ นกไ็ ด้ หรือทางานก่อนกไ็ ด้ ข. ทางานและตรวจสอบเง่อื นไขพรอ้ มกนั ค. ตรวจสอบเง่อื นไขกอ่ นแลว้ จงึ ทางานต่อไป ง. ทางานตามคาสั่งกอ่ นจึงตรวจสอบเงื่อนไข 9.ขอ้ ใดต่อไปน้ี คอื จานวนรอบของการทางานจากชุดคาส่งั ที่กาหนดให้ ? for(x=1; x<=10; x+2) printf(“%d”,x); ก. 5 รอบ ข. 10 รอบ ค. 0 รอบ ง. ไม่มขี ้อใดถูก 10. ข้อใดต่อไปน้ี คอื จานวนรอบของการทางานจากชุดคาสง่ั ที่กาหนดให้ ? int x=5; while(x > 5) printf(“%d”,x); ก. 5 รอบ ข. 10 รอบ ค. 0 รอบ ง. ไมม่ ขี ้อใดถกู ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 8 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีท่ี 5

ชุดท่ี4 โครงสร้างการเขียนโปรแกรม กระดำษคำตอบ เร่อื ง กำรพัฒนำโปรแกรมและกำรจำลอง ควำมคดิ  ก่อนเรยี น  หลังเรยี น ชือ่ .................................................................................... ชั้น ................ เลขที่ .............. ข้อท่ี ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 9 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปที ี่ 5

ชุดท่ี4 โครงสร้างการเขียนโปรแกรม บตั รเนื้อหำท่ี 1 คำสง่ั ทดสอบเงือ่ นไข ในกำรตัดสนิ ใจ คาส่ังทดสอบเง่ือนไขเพ่ือการตัดสินใจ เป็นคาส่ังที่มีการทดสอบเงื่อนไขก่อนท่ีจะทางานตามคาสั่งท่ี กาหนดไว้ ซ่ึงได้แก่คาสงั่ if, if else, โครงสรา้ ง else if (หรือ nested if) และคาสง่ั switch คาส่งั if if เป็นคาสง่ั ทส่ี ัง่ ให้มีการทดสอบเงอ่ื นไขกอ่ นทจ่ี ะไปทางานตามคาสง่ั ทก่ี าหนดไว้ รูปแบบการใช้คาสั่ง if if (expression) statement; หรอื if (expression) { statement(s); } โดยที่ expression คอื นพิ จน์เงื่อนไข ซึ่งจะมคี า่ จรงิ หรอื เท็จอย่างใดอย่างหนึ่งเท่านนั้ ถา้ เง่ือนไขเปน็ จรงิ จะทางานตามคาส่งั ท่อี ย่ใู น if จากนน้ั ก็ออกจากคาสง่ั if ไปทาคาสง่ั ถัดไป ถ้าเงอื่ นไขเป็นเทจ็ จะออก จากคาสั่ง if ทนั ที ชุดกิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 10 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปที ี่ 5

ชดุ ท่ี4 โครงสรา้ งการเขียนโปรแกรม ลกั ษณะการทางานของคาสงั่ if สามารถเขยี นเปน็ แผนผงั ไดด้ ังน้ี รูปที่ 4.4 ผงั งานแสดงลกั ษณะการทางานของคาสัง่ if โปรแกรมตัวอย่างที่ 4.12 แสดงการใช้คาสัง่ if เพ่อื ตรวจสอบค่าท่ีรับจากคยี ์บอรด์ /* if1.C. */ #include <stdio.h> /* บรรทดั ที่ 1 */ #include <conio.h> /* บรรทดั ที่ 2 */ #include <ctype.h> /* บรรทัดท่ี 3 */ /*Capitalize Keys read from The Keyboard */ /* บรรทดั ที่ 4 */ main() /* บรรทัดท่ี 5 */ { /* บรรทัดที่ 6 */ char any_char; /* บรรทดั ท่ี 7 */ clrscr(); /* บรรทัดท่ี 8 */ printf(\"Please type a lowercase letter : \"); /* บรรทัดที่ 9 */ scanf(\"%c\", &any_char); /* บรรทดั ที่ 10 */ if(any_char >= 'a') /* บรรทัดที่ 11 */ printf(\"In uppercase: %c \\n\", toupper(any_char)); /* บรรทัดท่ี 12 */ getch(); /* บรรทัดที่ 13 */ return(0); /* บรรทดั ท่ี 14 */ } /* บรรทดั ที่ 15 */ ชดุ กิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 11 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีที่ 5

ชดุ ท่ี4 โครงสรา้ งการเขียนโปรแกรม ผลลัพธท์ ่ีไดจ้ ากโปรแกรม Please type a lowercase letter : P In uppercase: P คาอธบิ ายโปรแกรม จากโปรแกรมตวั อย่างที่ 4.12 สามารถอธิบายการทางานของโปรแกรมทีส่ าคญั ๆ ไดด้ งั น้ี บรรทัดที่ 3 #include <ctype.h> ใหก้ ารสนับสนุนฟงั ก์ชนั toupper( ) ในบรรทดั ที่ 12 บรรทัดท่ี 4 เปน็ คาอธิบายโปรแกรมเพื่อบอกให้ทราบว่าเป็นโปรแกรมที่แปลงตวั อกั ขระทร่ี บั เข้ามาใหเ้ ปน็ ตัวพมิ พ์ใหญ่ บรรทัดท่ี 9 และ 10 พมิ พข์ อ้ ความแนะนาให้ผใู้ ช้ พิมพ์ตัวพมิ พ์เลก็ แล้วรับเขา้ มาเก็บไว้ในตวั แปร any_char ตามลาดับ บรรทดั ที่ 11 คาส่งั if (any_char >= ‘a’) ตรวจสอบอกั ขระท่ีเก็บในตัวแปร any_char ทีร่ ับเข้ามาจาก คยี ์บอร์ด ว่ามีคา่ มากกวา่ หรือเท่ากบั ‘a‘ นั่นคือตรวจสอบว่าเป็นตวั พิมพ์เล็กหรอื ไม่ ถา้ ใช่ให้ ไปทางานคาสั่งบรรทดั ท่ี 12 บรรทัดท่ี 12 คาสัง่ ท่ใี หท้ าภายหลงั จากตรวจสอบเงือ่ นไข if แล้วไดค้ า่ เปน็ จริง คือ เรียกใช้ ฟงั ก์ชัน toupper( ) เพื่อแปลงตวั พมิ พ์เลก็ ท่ีเกบ็ ไวใ้ นตวั แปร any_char เป็นตวั พิมพ์ ใหญ่ คือ toupper (any_char); แสดงออกที่จอภาพ แลว้ หยุดรอรบั คา่ ใด ๆ จาก คียบ์ อรด์ เช่น ถ้ากด enter กจ็ ะกลับส่โู ปรแกรม ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 12 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปที ี่ 5

ชดุ ที่4 โครงสรา้ งการเขียนโปรแกรม โปรแกรมตัวอยา่ งท่ี 4.13 แสดงการใช้คาสง่ั if เพอื่ ช่วยในการนบั ตวั อกั ขระและนบั คาในประโยค ที่ผใู้ ชพ้ ิมพ์ /* if2.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทดั ที่ 2 */ void main(void) /* บรรทัดท่ี 3 */ { /* บรรทดั ท่ี 4 */ int charcnt = 0, wordcnt = 0; /* บรรทดั ที่ 5 */ char ch; /* บรรทดั ที่ 6 */ clrscr(); /* บรรทัดที่ 7 */ printf(\"Type your sentense or a phrase : \"); /* บรรทัดที่ 8 */ while( (ch=getche( ) ) != '\\r' ) /* บรรทัดที่ 9 */ { /* บรรทดั ท่ี 10 */ charcnt++; /* บรรทัดท่ี 11 */ if( ch==' ' ) wordcnt++; /* บรรทดั ที่ 12 */ } /* end while */ /* บรรทัดท่ี 13 */ printf(\"\\n\\nCharacter count is %d\", charcnt); /* บรรทัดท่ี 14 */ printf(\"\\nWord count is %d\", wordcnt+1); /* บรรทัดที่ 15 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั ท่ี 16 */ getch(); /* บรรทดั ที่ 17 */ } /* บรรทัดท่ี 18 */ ผลลัพธ์ทไี่ ดจ้ ากโปรแกรม Type your sentense or a phrase : I’am a teacher Character count is 13 Word count is 3 Press any key back to program... ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 13 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศึกษาปีท่ี 5

ชุดท่ี4 โครงสรา้ งการเขยี นโปรแกรม คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งที่ 4.13 สามารถอธิบายการทางานของโปรแกรมท่สี าคัญ ๆ ไดด้ งั น้ี บรรทดั ท่ี 5 ประกาศตวั แปรชนดิ จานวนเตม็ โดยที่ charcnt ใช้เกบ็ จานวนตัวอักขระทน่ี ับ ได้ และ wordcnt ใชเ้ ก็บจานวนคาทน่ี บั ได้ในประโยค บรรทัดท่ี 9 คาสงั่ while ((ch = getche()) ! = ‘ \\r ‘) เพ่อื ควบคมุ การทางานของโปรแกรมให้วนทางาน ซ้า ๆ จนกว่าเงือ่ นไขเป็นเท็จจึงหยุด น่ันคอื ถ้าผู้ใชก้ ด enter แทนการเติมประโยค จะทาให้ เปน็ เท็จ แลว้ จะออกจาก loop while ไปทาคาสั่งบรรทัดท่ี 14 ถึง 17 แต่ถ้าเป็น จุดปจรระงิ สงคคือ์ขอผงใู้ กชา้เตรมิวเิปครระาโะยหคง์ ากนจ็ ะทางานใน loop while บรรทดั ท่ี 11 และ 12 บรในรทกาดั รทวี่เิ ค1ร1าะคหา์งสานง่ั แcตh่ลaะrอcยn่าtง+ม+จี ;ดุ ปใหระบ้ สวงกคสข์ ะอสงมกตาารมวเิจคารนาวะนหต์งัวาอนักทขี่สราะคทัญ่ผี ดู้ใงัชน้พ้ี ิมพ์รวมทัง้ ชอ่ งวา่ งก็นับดว้ ย บรรทัดที่ 11.2เพคือ่ าหสาั่งวตั iถf ปุ(cรhะส=ง=คข์‘อ‘ง)กwารoเขrdียcนnโtป+รแ+กรเมพอ่ื ตรวจสอบวา่ ตัวแปร ch เท่ากบั ชอ่ งว่างหรือไม่ น่นั 2. เพคอ่ื ือหาผรูปู้ใชแ้เบคบาะผแลปล้นพั พธท์ิมพีต่ ้อท์ งี่ กsาpรace bar เพือ่ เวน้ ช่องวา่ งกคี่ รง้ั จะบวกสะสมไว้ทต่ี ัว แปร wordcnt บรรทดั ท่ี 14 พมิ พ์แสดงจานวนตวั อกั ขระทีน่ บั สะสมไว้ในตวั แปร charcnt ออกจอภาพ บรรทดั ท่ี 15 พิมพ์แสดงจานวนคาท่นี บั สะสมไวใ้ นตัวแปร wordcnt ออกจอภาพ แตต่ ัว แปร wordcnt ต้องเพม่ิ อกี 1 เพราะถงึ จะเปน็ จานวนคาทีถ่ ูกตอ้ ง บรรทดั ที่ 16 และ 19 พิมพข์ อ้ ความใหก้ ดคีย์ใด ๆ เพ่ือกลบั สูโ่ ปรแกรม และ หยดุ รอรบั คา่ ใด ๆ จาก คยี ์บอร์ด เช่น ถ้ากด enter กจ็ ะกลบั สโู่ ปรแกรม ตามลาดับ คาสัง่ if else if else เป็นคาสงั่ ท่ีสงั่ ใหม้ กี ารทดสอบเง่อื นไข โดยมกี ารตดั สนิ ใจแบบ 2 ทางเลอื ก รปู แบบการใชค้ าสั่ง if ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 14 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศกึ ษาปีท่ี 5

ชุดท่ี4 โครงสร้างการเขยี นโปรแกรม if (expression) { statementA(s); } else { statementB(s); } จากรูปแบบการใชค้ าสง่ั if else หมายความว่า ถ้านพิ จน์เงอื่ นไข (expression) มคี า่ เป็นจรงิ จะ ทาตามคาสั่งชุด A (statementA(s);) ถ้ามคี า่ เปน็ เทจ็ จะทาตามคาสง่ั ชุด B (statementB(s);) เมอ่ื ทา เสร็จกอ็ อกจากคาส่งั นี้ ลักษณะการทางานของคาสง่ั if else สามารถเขียนเป็นแผนผงั ไดด้ งั นี้ รปู ท่ี 4.5 ผังงานแสดงลักษณะการทางานของคาสัง่ if else ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 15 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปที ่ี 5

ชดุ ที่4 โครงสร้างการเขียนโปรแกรม โปรแกรมตัวอยา่ งที่ 4.14 แสดงการใช้คาสง่ั if else เพ่อื ตรวจสอบค่าท่รี ับจากคยี บ์ อรด์ /* if_else1.c */ #include <stdio.h> /* บรรทดั ที่ 1 */ #include <conio.h> /* บรรทัดที่ 2 */ #include <ctype.h> /* บรรทัดที่ 3 */ /*Capitalize Keys read from The Keyboard */ /* บรรทัดที่ 4 */ main() /* บรรทัดท่ี 5 */ { /* บรรทดั ท่ี 6 */ char any_char; /* บรรทดั ท่ี 7 */ clrscr(); /* บรรทดั ท่ี 8 */ printf(\"Please type a lowercase letter : \"); /* บรรทดั ท่ี 9 */ scanf(\"%c\",&any_char); /* บรรทดั ที่ 10 */ if(any_char < 'a') /* บรรทัดที่ 11 */ printf(\"Sorry, I can not capitalize that.\\n\"); /* บรรทัดท่ี 12 */ else /* บรรทัดที่ 13 */ printf(\"Thank you. In uppercase : %c.\",toupper (any_char)); /* บรรทัดท่ี 14 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั ที่ 15 */ getch(); /* บรรทัดที่ 16 */ return(0); /* บรรทดั ท่ี 17 */ } /* บรรทัดที่ 18 */ ผลลพั ธท์ ี่ไดจ้ ากโปรแกรม ผลลัพธ์ท่ีไดจ้ ากโปรแกรม กรณที ีเ่ ตมิ ตัวอักษรพิมพ์เล็ก กรณีที่เติมตัวอกั ษรพิมพ์ใหญ่ Please type a lowercase letter : n Please type a lowercase letter : N Thank you. In uppercase : N Sorry, I can not capitalize that. ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 16 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปที ่ี 5

ชดุ ท่ี4 โครงสร้างการเขียนโปรแกรม คาอธิบายโปรแกรม จากโปรแกรมตวั อย่างท่ี 4.14 สามารถอธิบายการทางานของโปรแกรมทีส่ าคัญ ๆ ไดด้ ังน้ี บรรทัดท่ี 11 และ 12 คาสัง่ if (any_char < ‘a’) ตรวจสอบอกั ขระท่รี บั เข้ามาวา่ มีค่าน้อย กว่า ‘a’ หรอื ไม่ ถ้าใช่ให้พมิ พข์ อ้ ความ Sorry, I can not capitalize that. นัน่ คอื ตรวจสอบ ตวั อักขระทรี่ ับเข้ามาวา่ ใช่ตัวอักขระพิมพ์ใหญ่หรอื ไม่ แต่ถ้าไม่ใช่ ใหไ้ ปทาคาส่งั บรรทดั ที่ 13 บรรทดั ที่ 13 else คอื เงอ่ื นไขบรรทัดท่ี 11 เป็นเท็จ (กรณที ต่ี วั อักขระเป็นตัวพมิ พเ์ ล็ก) ใหท้ าคาสง่ั บรรทัด ที่ 14 คือ เปลีย่ นตัวพมิ พ์เล็กให้เป็นตัวพมิ พ์ใหญ่ ด้วยฟังก์ชัน toupper( ) และ แสดงออก จอภาพ บรรทดั ท่ี 15 และ 16 พิมพ์ข้อความใหก้ ดคยี ใ์ ด ๆ เพื่อกลบั สโู่ ปรแกรม และหยดุ รอรบั ค่าใด ๆ จาก คยี บ์ อร์ด เชน่ ถา้ กด enter กจ็ ะกลบั ส่โู ปรแกรม ตามลาดบั คาสงั่ โครงสรา้ ง else if (คาสง่ั nested if) else if เปน็ โครงสรา้ งที่ทาให้เราสามารถใชค้ าสั่ง if else ซ้อนกนั ไดเ้ รอ่ื ย ๆ ส่วนมากจะใช้ในการ ตดั สนิ ใจทีม่ ากกว่า 2 ทางเลอื กขึน้ ไป บางครงั้ อาจเรยี กโครงสรา้ งนว้ี ่า nested if else if (expression) { statementA(s); } else if (expression){ statementB(s); } ชดุ กจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 17 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปที ี่ 5

ชดุ ที่4 โครงสร้างการเขียนโปรแกรม ข้อควรระวังในการใช้ nested if การเขียนคาสงั่ nested if ค่อนข้างยุง่ ยาก อาจเกดิ ความสบั สนได้ ควรเขยี นคาสงั่ nested if ใหเ้ ยอ้ื งกนั เพื่อความสะดวกในการแก้ไขคาส่ังในภายหลงั โปรแกรมตัวอย่างที่ 4.16 แสดงการใชค้ าส่งั nested if เพอื่ ตรวจสอบคะแนนทผ่ี ูใ้ ช้เติม แลว้ ให้ เกรดตามเงอ่ื นไขทก่ี าหนดในโปรแกรม /* nestif1.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<stdlib.h> /* บรรทัดท่ี 3 */ void main(void) /* บรรทดั ท่ี 4 */ { /* บรรทัดที่ 5 */ int score, n, i; /* บรรทดั ท่ี 6 */ char grade; /* บรรทดั ท่ี 7 */ char numstr[20]; /* บรรทัดที่ 8 */ clrscr( ); /* บรรทดั ท่ี 9 */ printf(\"Enter Number of Students : \"); /* บรรทดั ท่ี 10 */ n = atoi(gets(numstr)); /* บรรทัดที่ 11 */ for ( i=1; i<=n; i++ ){ /* บรรทัดที่ 12 */ printf(\"\\nEnter score of student #%d : \", i); /* บรรทัดที่ 13 */ score = atoi(gets(numstr)); /* บรรทดั ที่ 14 */ if ( score >= 80 ) /* บรรทัดที่ 15 */ grade = 'A'; /* บรรทดั ท่ี 16 */ else if ( score >= 70 ) /* บรรทัดท่ี 17 */ grade = 'B'; /* บรรทัดที่ 18 */ else if ( score >= 60 ) /* บรรทัดท่ี 19 */ grade = 'C'; /* บรรทดั ที่ 20 */ else if ( score >= 50 ) /* บรรทดั ที่ 21 */ grade = 'D'; /* บรรทดั ท่ี 22 */ else grade = 'F'; /* บรรทัดท่ี 23 */ ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 18 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปที ่ี 5

ชุดที่4 โครงสรา้ งการเขยี นโปรแกรม โปรแกรมตวั อย่างที่ 4.16 แสดงการใชค้ าส่ัง nested if เพอื่ ตรวจสอบคะแนนทีผ่ ู้ใชเ้ ติม แลว้ ให้ เกรดตามเงอ่ื นไขทกี่ าหนดในโปรแกรม printf(\"Score = %d, Grade of std #%d is %c\\n\",score,i,grade); /* บรรทัดที่ 24 */ } /* end for */ /* บรรทัดท่ี 25 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั ที่ 26 */ getch(); /* บรรทดั ที่ 27 */ } /* บรรทัดที่ 28 */ ผลลพั ธท์ ่ีได้จากโปรแกรม Enter Number of Students : 3 Enter score of student #1 : 85 Score = 85, Grade of std #1 is A Enter score of student #2 : 70 Score = 70, Grade of std #2 is b Enter score of student #3 : 61 Score =61, Grade of std #3 is C nPress any key back to program... คาอธิบายโปรแกรม จากโปรแกรมตวั อยา่ งท่ี 4.16 สามารถอธบิ ายการทางานของโปรแกรมทีส่ าคัญ ๆ ไดด้ ังน้ี บรรทัดที่ 3 #include <stdlib.h> สนบั สนุนการใช้ฟังกช์ นั atoi( ) ของคาสง่ั บรรทดั ที่ 11 บรรทัดท่ี 10 และ 11 รบั คา่ ตวั เลขทเ่ี ป็นจานวนนกั เรยี น แล้วทาคาสัง่ n = atoi(gets(numstr)); คอื นาคา่ ท่ี รบั เข้ามาแปลงใหเ้ ปน็ จานวนเต็มแลว้ เก็บไว้ที่ตวั แปร n บรรทดั ที่ 12 คาสั่ง for (i=1; i<=n; i++) เพ่อื ควบคุมการทางานของโปรแกรมให้วนรอบทางาน ตามจานวน ของตัวเลขท่เี ติมคือ n ครง้ั ซง่ึ ถา้ ตรวจสอบเงอ่ื นไข for แล้วเป็นจริงจะทาคาสง่ั ภายใน loop for คือคาสั่งบรรทัดท่ี 13 ถึง 24 แต่ถ้าตรวจสอบเงอื่ นไข for แล้วเป็นเท็จ จะไปทาคาสง่ั บรรทดั ตรวจสอบเง่ือนไขต่ออีกว่าตวั แปร score ว่ามากกวา่ หรือเท่ากบั 50 หรอื ไม่ ถา้ ใชใ่ หก้ าหนดตัว แปร grade เก็บ D แต่ถา้ ไมใ่ ช่ให้ไปทางานคาสั่งบรรทดั ท่ี 23 ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 19 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปที ่ี 5

ชุดท่ี4 โครงสร้างการเขียนโปรแกรม บรรทดั ท่ี 13 และ 14 รบั ค่าคะแนนทผ่ี ู้ใช้เตมิ แลว้ แปลงใหเ้ ปน็ จานวนเตม็ เก็บไวท้ ตี่ ัวแปร score ตามลาดับ บรรทดั ที่ 15 คาส่ัง if ( score >= 80 ) ตรวจสอบเงอ่ื นไขของตัวแปร score วา่ มากกว่าหรอื เท่ากบั 80 หรอื ไม่ ถา้ ใชใ่ หก้ าหนดตัวแปร grade เก็บ A แต่ถา้ ไมใ่ ชใ่ ห้ไปทางานคาสง่ั บรรทดั ท่ี 17 บรรทัดที่ 17 คาส่งั else if ( score >= 70 ) ตรวจสอบเงื่อนไขต่ออกี ว่าตัวแปร score วา่ มากกว่าหรอื เท่ากบั 70 หรือไม่ ถา้ ใชใ่ ห้กาหนดตัวแปร grade เก็บ B แต่ถ้าไม่ใช่ใหไ้ ปทางานคาสัง่ บรรทดั ที่ 19 บรรทดั ที่ 19 คาสง่ั else if ( score >= 60 ) ตรวจสอบเงอ่ื นไขต่ออีกว่าตวั แปร score ว่ามากกวา่ หรือ เท่ากบั 60 หรอื ไม่ ถา้ ใชใ่ ห้กาหนดตัวแปร grade เกบ็ C แตถ่ ้าไมใ่ ชใ่ ห้ไปทางานคาสงั่ บรรทัด ที่ 21 บรรทัดท่ี 21 คาสง่ั else if ( score >= 50 ) ตรวจสอบเงอ่ื นไขต่ออกี ว่าตัวแปร score วา่ มากกวา่ หรือ เท่ากบั 50 หรอื ไม่ ถา้ ใช่ให้กาหนดตัวแปร grade เก็บ D แตถ่ ้าไม่ใช่ใหไ้ ปทางานคาสง่ั บรรทดั ที่ 23 บรรทดั ที่ 23 คาสัง่ else grade = ‘F’; กาหนดตัวแปร grade เก็บ F บรรทัดท่ี 24 ภายหลงั จากทางานทกุ เงื่อนไขแลว้ จะมาทาคาสงั่ บรรทัดท่ี 24 คอื แสดงค่าตัวแปร score ตัว แปร i และตัวแปร grade ทีไ่ ด้แสดงออกจอภาพ บรรทดั ที่ 26 และ 27 พมิ พ์ขอ้ ความให้กดคยี ์ใด ๆ เพือ่ กลับสูโ่ ปรแกรม สดุ ท้ายจะหยดุ รอรบั ค่าใด ๆ จาก คยี ์บอร์ด เชน่ ถา้ กด enter กจ็ ะกลับสโู่ ปรแกรม ตามลาดับ ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 20 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปีท่ี 5

ชดุ ท่ี4 โครงสร้างการเขียนโปรแกรม คาสง่ั switch switch เปน็ คาสงั่ ที่ใช้ทดสอบเงื่อนไขในกรณีทม่ี ที างเลือกสาหรับตัดสินใจมากกว่า 2 ทางขึ้นไป เชน่ เดียวกันกบั nested if โดยมากนยิ มใชค้ าสั่ง switch แทนคาสง่ั nested if เพราะมรี ูปแบบการใช้ คาสงั่ ที่ง่ายและสะดวกในการแก้ไขคาสง่ั เม่อื มีขอ้ ผิดพลาดเกิดขึน้ รปู แบบการใช้คาสั่ง switch switch (expression) { case expression1: statement(s); break; case expression2: statement(s); break; ….. case expressionN: statement(s); break; default: statement(s); } โดยที่ expression คือ นิพจน์ หรือตัวแปรทีจ่ ะใช้เปรียบเทยี บกับนิพจน์ expression1, expression2, …, expressionN วา่ มคี ่าตรงกับนพิ จนใ์ ด expression1, expression2, …, expressionN คือ นิพจน์ หรอื ค่าคงท่ีในเงือ่ นไขที่ 1, 2, 3, …, N ตามลาดับ ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 21 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชดุ ท่ี4 โครงสร้างการเขียนโปรแกรม break คอื คาสั่งทีจ่ ะตอ้ งใส่ไว้ในแต่ละ case เพ่อื เป็นการบอกให้ออกจากสั่ง switch หลงั จาก ทาคาส่งั ท่ีอยู่ใน case น้ัน ๆ แลว้ ถา้ หากไม่มีคาส่ัง break ใน case ใด เม่ือทางานจบ case นัน้ แล้ว จะทางานใน case ถัดไปจนกว่าจะเจอคาสง่ั break ซ่ึงทาใหเ้ กิดการทางานผิดพลาดได้ default คอื กรณีที่ expression ไมต่ รงกบั เง่ือนไขใด ๆ เลย ให้ทางานตามคาสั่งท่ีเขียนไว้ ใน default โดย default นีไ้ ม่จาเป็นต้องใสค่ าสงั่ break เอาไว้ เพราะ default เป็นกรณีสุดท้ายของ คาส่งั switch ขอ้ ควรระวังในการใชค้ าสัง่ switch 1. ถ้าใช้คาสง่ั switch ในแต่ละกรณี (case) จะต้องใสค่ าสง่ั break เอาไวด้ ว้ ยมิฉะนั้นจะเกดิ การทางานซา้ ใน case ต่อมาจนกว่าจะเจอคาสัง่ break ยกเว้นกรณี default ไม่ต้องใส่คาส่งั break 2. expression ท่อี ยู่หลงั คาสั่ง switch ควรใช้เปน็ ตัวแปร เพ่อื จะไดส้ ะดวกในการนาไป เปรยี บเทยี บกับกรณตี ่าง ๆ สว่ น expression1, expression2, …, expressionN ทอ่ี ยู่หลงั case ตา่ ง ๆ ควรใชเ้ ป็นค่าคงท่ี โปรแกรมตวั อย่างท่ี 4.18 แสดงการใช้คาส่ัง switch เพื่อตรวจสอบเกรดทีผ่ ู้ใช้เติม ว่าตรงกบั กรณี ใด แลว้ แสดงเกรดที่เปน็ ตวั เลขออกจอภาพ /* switch.c */ #include<stdio.h> /* บรรทดั ที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<stdlib.h> /* บรรทัดท่ี 3 */ #include<ctype.h> /* บรรทัดที่ 4 */ void main(void) /* บรรทัดท่ี 5 */ { /* บรรทัดที่ 6 */ int n, i; /* บรรทดั ที่ 7 */ float gradepoint; /* บรรทัดที่ 8 */ char grade; /* บรรทัดท่ี 9 */ char numstr[20]; /* บรรทดั ที่ 10 */ clrscr( ); /* บรรทัดที่ 11 */ printf(\"Enter Number of Students : \"); /* บรรทดั ที่ 12 */ n = atoi(gets(numstr)) ; /* บรรทดั ท่ี 13 */ for ( i=1; i<=n; i++ ) { /* บรรทัดที่ 14 */ ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 22 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปที ่ี 5

ชุดท่ี4 โครงสรา้ งการเขียนโปรแกรม printf(\"\\nEnter grade of student #%d: \", i); /* บรรทัดท่ี 15 */ grade = getche( ); /* บรรทัดที่ 16 */ switch(toupper(grade)) { /* บรรทัดที่ 17 */ case 'A': /* บรรทัดที่ 18 */ gradepoint = 4.0; break; /* บรรทัดที่ 19 */ case 'B': /* บรรทัดที่ 20 */ gradepoint = 3.0; break; /* บรรทัดท่ี 21 */ case 'C': /* บรรทดั ที่ 22 */ gradepoint = 2.0; break; /* บรรทัดที่ 23 */ case 'D': /* บรรทดั ท่ี 24 */ gradepoint = 1.0; break; /* บรรทดั ที่ 25 */ default: gradepoint = 0.0; /* บรรทดั ที่ 26 */ } /* end switch */ /* บรรทัดที่ 27 */ printf(\"\\nGrade Point of Student#%d is %.2f\\n\",i,gradepoint); /* บรรทดั 28 */ } /* end for */ /* บรรทดั 29 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั 30 */ getch(); /* บรรทดั 31 */ } /* end main */ /* บรรทัด 32 */ ผลลพั ธ์ทไี่ ด้จากโปรแกรม Enter Number of Students : 2 Enter grade of student #1 : a Grade Point of Student #1 : 4.00 Enter grade of student #2 : b Grade Point of Student #2 : 3.00 Press any key back to program... ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 23 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีท่ี 5

ชดุ ท่ี4 โครงสรา้ งการเขยี นโปรแกรม คาอธิบายโปรแกรม จากโปรแกรมตวั อยา่ งท่ี 4.18 สามารถอธิบายการทางานของโปรแกรมทสี่ าคญั ๆ ไดด้ ังนี้ บรรทดั ที่ 12 และ 13 ให้ผใู้ ชเ้ ตมิ จานวนนักเรยี น แลว้ นาค่าท่ีผ้ใู ชเ้ ติมมาแปลงใหเ้ ปน็ จานวนเต็ม แลว้ เกบ็ ไว้ ทตี่ วั แปร n บรรทัดที่ 14 for (i = 1; i < n; i++) คาสัง่ ควบคุมการทางานของโปรแกรมใหว้ นทางานจานวนรอบเท่ากบั ตัว แปร n หรอื ค่าตัวเลขที่ผู้ใช้เติม เม่อื ทดสอบเง่อื นไข for แลว้ เป็นจรงิ จะทางานตามคาส่งั ใน loop for คือ คาสง่ั บรรทัดท่ี 15 ถึง 29 แตถ่ า้ เป็นเท็จ จะไปทางานตามคาสัง่ บรรทัด ท่ี 30 และ 31 บรรทดั ท่ี 15 และ 16 ใหผ้ ้ใู ช้เติมเกรดแลว้ เก็บไวท้ ี่ตัวแปร grade บรรทัดท่ี 17 ถึง 27 เปน็ loop ของ คาส่ัง switch ซึ่งทางานซ้อนภายใน loop for ดงั น้ี จากตวั แปร เกรดที่รบั เข้าจะแปลงใหเ้ ป็นตวั พิมพใ์ หญท่ ุกคร้ัง เพือ่ นาไปทดสอบทกุ กรณขี องคาสง่ั switch เริม่ ตรวจสอบกรณีแรก คอื ทดสอบว่าเป็นตัว A หรือไม่ ถ้าใช่ กาหนดตวั แปร gradepoint มีค่า เท่ากบั 4.0 แล้วหยดุ การทางานในกรณนี ้ี (break) แตถ่ า้ ไมใ่ ช่ตัว A กไ็ ปตรวจสอบกรณี ถดั ไป คอื ใช่ตัว B หรอื ไม่ ถา้ ใช่ กาหนดตัวแปร gradepoint มคี ่าเท่ากับ 3.0 แลว้ หยดุ การ ทางานในกรณีนี้ (break) แต่ถ้าไมใ่ ช่ตัว B กไ็ ปตรวจสอบกรณีถัดไป คอื ใชต่ วั C หรือไม่ ถ้า ใช่ กาหนดตวั แปร gradepoint มีคา่ เท่ากบั 2.0 แล้วหยดุ การทางานในกรณีน้ี (break) แตถ่ า้ ไมใ่ ชต่ ัว C ก็ไปตรวจสอบกรณถี ดั ไป คือ ใช่ตัว D หรอื ไม่ ถ้าใช่ กาหนดตัวแปร gradepoint มี คา่ เทา่ กบั 1.0 แล้วหยดุ การทางานในกรณีน้ี (break) กรณีสดุ ทา้ ย คือ กรณที ี่เตมิ ตวั อ่ืนท่ีไมใ่ ช่ ทงั้ 4 กรณขี ้างต้น จะทาคาสัง่ บรรทัดที่ 26 คอื default; gradepoint = 0.0; คือ กรณี อน่ื ๆ ใหก้ าหนดตัวแปร gradepoint มคี ่าเทา่ กบั 0.0 บรรทัดท่ี 28 ภายหลังจากการทางานทกุ กรณีของคาสงั่ switch แล้ว จะทาคาสงั่ บรรทดั ท่ี 28 คอื แสดง ค่าตวั แปร gradepoint ทีไ่ ด้ของแต่ละคน แสดงทีจ่ อภาพ บรรทดั ที่ 30 และ 31 พมิ พ์ข้อความให้กดคยี ์ใด ๆ เพื่อกลบั สโู่ ปรแกรม สุดท้ายจะหยดุ รอรบั คา่ ใด ๆ จาก คียบ์ อรด์ เช่น ถ้ากด enter กจ็ ะกลบั สูโ่ ปรแกรม ตามลาดับ ชดุ กิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 24 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปที ี่ 5

ชดุ ท่ี4 โครงสรา้ งการเขียนโปรแกรม บัตรกิจกรรมกำรเรยี นร้ทู ี่ 1 30 เรื่อง คำสง่ั ทดสอบเงื่อนไขในกำรตดั สนิ ใจ 1. การเขียนโปรแกรมโดยใชค้ าสงั่ if…else ให้นกั เรียนเขยี นโปรแกรมตรวจสอบตวั เลขท่รี ับเข้ามาจากผู้ใชง้ านวา่ เปน็ เลขจานวนคหู่ รือเลขคี่ โดยใหแ้ สดงข้อความดังน้ี เลขคู่แสดงข้อความ 22 is Even และ เลขคแ่ี สดงข้อความ 19 is Odd .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................... .................................................................................................................................................................. ................................................................................................................................................................... .................................................................................................................................................................. ................................................................................................................................................................... .................................................................................................................................................................. ................................................................................................................................................................... .................................................................................................................................................................. ................................................................................................................................................................... .................................................................................................................................................................. ................................................................................................................................................................... ……….......................................................................................................................................................... .................................................................................................................................................................. .................................................................................................................................................................. ………......................................................................................................................................................... .……….......................................................................................................................................................... .……….......................................................................................................................................................... .……….......................................................................................................................................................... …................................................................................................................................................................. ชุดกิจกรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 25 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชุดที่4 โครงสร้างการเขยี นโปรแกรม บตั รกิจกรรมกำรเรยี นร้ทู ่ี 1 เรอ่ื ง คำสง่ั ทดสอบเงื่อนไขในกำรตดั สนิ ใจ 2. การเขียนโปรแกรมโดยใช้คาสั่ง nested if ให้นกั เรยี นเขียนโปรแกรมการประเมินผลการเรยี น โดยมขี อ้ กาหนดดงั น้ี 1. ถ้าคะแนน น้อยกวา่ 50 แสดงขอ้ ความ grad = 0 2. ถ้าคะแนน มากกว่าหรือเทา่ กับ 50 แสดงขอ้ ความ grad = 1 3. ถ้าคะแนน มากกว่าหรือเท่ากับ 60 แสดงขอ้ ความ grad = 2 4. ถ้าคะแนน มากกว่าหรอื เท่ากับ 70 แสดงข้อความ grad = 3 5. ถา้ คะแนน มากกว่าหรอื เท่ากับ 80 แสดงขอ้ ความ grad = 4 6. ถา้ คะแนน มากกว่า 100 แสดงขอ้ ความ grad Over .................................................................................................................................................................. 26 ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ช.ุด...ก...จิ...ก...ร..ร...ม...ก...า...ร..เ..ร..ยี....น...ร..ูก้...า...ร..เ..ข...ยี...น....โ.ป....ร..แ....ก..ร...ม...ภ....า..ษ....า..ค...อ...ม....พ...วิ...เ..ต...อ...ร...์ ......................................... ร..า....ย......ว......ชิ......า......ภ......า......ษ......า......ซ......ี....ง....3......0......2......4......3..........ช......้ัน......ม......ัธ......ย......ม......ศ......กึ......ษ........า......ป......ีท......ี่....5................................................................................................................................................

ชดุ ที่4 โครงสรา้ งการเขยี นโปรแกรม บัตรกจิ กรรมกำรเรยี นรู้ท่ี 1 27 เร่ือง คำสงั่ ทดสอบเงือ่ นไขในกำรตดั สนิ ใจ 3. การเขยี นโปรแกรมโดยใช้คาส่งั switch…case ให้นกั เรียนเขียนโปรแกรมรับค่าตัวเลขจากผู้ใช้งานแลว้ ตรวจสอบตวั เลขโดยมีขอ้ กาหนดดังนี้ 1. ถา้ ตวั เลขเท่ากบั 1 แสดงขอ้ ความ Number One 2. ถา้ ตัวเลขเท่ากบั 2 แสดงขอ้ ความ Number Two 3. ถ้าตัวเลขเท่ากับ 3 แสดงข้อความ Number Three 4. ถา้ ตวั เลขเท่ากับ 4 แสดงข้อความ Number Four 5. ถ้าตัวเลขเท่ากบั 5 แสดงข้อความ Number Five 6. ถา้ ไมใ่ ช่ตวั เลข 1 – 5 แสดงขอ้ ความ Error Number .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ช.ดุ ...ก...จิ...ก...ร..ร...ม...ก...า...ร..เ..ร..ยี....น...ร..ู้ก...า...ร..เ..ข...ยี...น....โ.ป....ร..แ....ก..ร...ม...ภ....า..ษ....า..ค...อ...ม....พ...วิ...เ..ต...อ...ร...์ ......................................... ร..า....ย......ว......ชิ......า......ภ......า......ษ......า......ซ......ี....ง....3......0......2......4......3..........ช......้นั ......ม......ธั......ย......ม......ศ......ึก......ษ........า......ป......ที......่ี....5................................................................................................................................................

ชดุ ที่4 โครงสร้างการเขียนโปรแกรม บตั รเนื้อหำที่ 2 คำสั่งวนลปู หรือ ทำงำนซำ้ ๆ เปน็ ลูป คาสั่งวนลูปเป็นคาสั่งที่สามารถควบคุมโปรแกรมให้ทางานเป็นจานวนรอบตามที่เรากาหนดไว้ หรือ ทางานจนกว่าเงื่อนไขทีก่ าหนดไวเ้ ป็นเท็จ จึงจะออกจากคาสง่ั วนลปู ได้ คาส่งั for for เปน็ คาสัง่ ท่สี ั่งให้โปแกรมมกี ารทางานซา้ ๆ วนลปู จนกว่าเงอื่ นไขทก่ี าหนดไวเ้ ป็นเทจ็ จึงออกจาก คาส่ัง for ไปทาคาสงั่ ถัดไป ควรใชค้ าสง่ั for ในกรณที ี่ทราบจานวนรอบของการทางาน รปู แบบการใช้คาสั่ง for for (expression1; expression2; 28 expression3) statement; หรือ for (expression1; expression2; expression3) { statement(s); } โดยท่ี expression1 คอื นิพจน์ทีใ่ ชก้ าหนดค่าเริม่ ต้นใหก้ บั ตัวแปรทจี่ ะใชว้ นลูป expression2 คอื นพิ จน์ท่ใี ชท้ ดสอบเงอ่ื นไข ซงึ่ จะมีคา่ จรงิ หรือเท็จอย่างใดอย่างหนึง่ เทา่ นนั้ expression3 คือ นิพจน์ท่ใี ชเ้ พิ่มหรอื ลดค่าตวั แปรทจ่ี ะใช้วนลปู statement(s) คือ คาสงั่ ต่าง ๆ ถ้ามีมากกวา่ 1 คาส่ัง จะตอ้ งเขยี นอยภู่ ายในเครือ่ งหมาย {….} ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศึกษาปีที่ 5

ชดุ ท่ี4 โครงสร้างการเขยี นโปรแกรม ลกั ษณะการทางานของคาสัง่ for สามารถเขยี นเปน็ แผนผงั ได้ดงั น้ี รูปท่ี 4.1 ผงั งานแสดงลกั ษณะการทางานของคาส่งั for โปรแกรมตัวอยา่ งที่ 4.1 แสดงการใช้คาสง่ั for เพ่ือวนแสดงตวั เลข 1 ถึง 10 ออกแสดงท่จี อภาพ /* for1.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทดั ที่ 2 */ void main(void) /* บรรทดั ท่ี 3 */ { /* บรรทัดท่ี 4 */ int num; /* บรรทัดท่ี 5 */ clrscr( ); /* บรรทัดที่ 6 */ for (num=1; num<=10; num++) /* บรรทัดท่ี 7 */ printf( \"%3d\\n\", num); /* end for */ /* บรรทัดท่ี 8 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั ท่ี 9 */ getch(); /* บรรทัดที่ 10 */ } /* บรรทัดที่ 11 */ ชุดกิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 29 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศึกษาปีท่ี 5

ชุดที่4 โครงสรา้ งการเขยี นโปรแกรม ผลลัพธท์ ไ่ี ดจ้ ากโปรแกรม 1 2 3 4 5 6 7 8 9 10 Press any key back to program... คาอธบิ ายโปรแกรม จากโปรแกรมตวั อยา่ งที่ 4.1 สามารถอธิบายการทางานของโปรแกรมทีส่ าคญั ๆ ได้ดงั นี้ บรรทดั ที่ 7 คาสัง่ for (num = 1; num <=10; num++) จะเรมิ่ ทางานโดยการกาหนดค่า เร่ิมต้นตวั แปร num เปน็ 1 จากน้ันทดสอบเงือ่ นไข num <= 10 จริงหรอื เท็จ ถา้ เปน็ จรงิ จะทางานตามคาสั่งบรรทดั ที่ 8 ถ้าเป็นเทจ็ ออกจาก for ไปทาคาส่งั บรรทดั ที่ 9 บรรทดั ท่ี 8 ฟังก์ชัน printf( ) เพ่อื พิมพ์ค่าของตวั แปร num ในแต่ละรอบของการทางาน และ ข้ึนบรรทดั ใหม่ดว้ ย ออกแสดงทีจ่ อภาพ บรรทัดท่ี 9 ฟงั ก์ชัน printf( ) แสดงข้อความให้กดคยี ์ใด ๆ เพื่อกลบั สโู่ ปรแกรม บรรทัดท่ี 10 หยดุ รอรบั คา่ ใด ๆ จากคียบ์ อร์ด เชน่ ถา้ กด enter กจ็ ะกลบั สู่โปรแกรม ชดุ กิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 30 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีที่ 5

ชดุ ที่4 โครงสร้างการเขียนโปรแกรม โปรแกรมตวั อยา่ งที่ 4.2 แสดงการใช้คาส่งั for เพอ่ื วนคานวณแม่สูตรคูณ แม่ต่าง ๆ ตามผใู้ ช้เตมิ และแสดงผลที่จอภาพ /* for2.c */ #include<stdio.h> /* บรรทดั ท่ี 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดท่ี 3 */ { /* บรรทดั ท่ี 4 */ int k,i; /* บรรทัดท่ี 5 */ clrscr(); /* บรรทดั ที่ 6 */ printf(\"input number >>> \"); /* บรรทดั ท่ี 7 */ scanf(\"%d\",&k); /* บรรทดั ที่ 8 */ for (i=1; i<=10; i++) /* บรรทดั ที่ 9 */ printf(\"%d x %d = %d\\n\",k,i,i*k); /* บรรทัดที่ 10 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทัดท่ี 11 */ getch(); /* บรรทดั ที่ 12 */ } /* บรรทัดท่ี 13 */ ผลลพั ธ์ทีไ่ ด้จากโปรแกรม 31 input number >>> 5 5x1=5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปที ่ี 5

ชุดที่4 โครงสรา้ งการเขยี นโปรแกรม คาอธบิ ายโปรแกรม จากโปรแกรมตวั อยา่ งที่ 4.2 สามารถอธบิ ายการทางานของโปรแกรมทสี่ าคญั ๆ ได้ดงั น้ี บรรทดั ท่ี 7 ฟงั กช์ นั printf( ) พิมพข์ อ้ ความ input number >>> ออกที่จอภาพ น่ันคอื ให้ ผูใ้ ช้เตมิ ตวั เลขจานวนเตม็ เพ่ือท่ีจะนาไปคานวณแมส่ ูตรคูณ บรรทดั ท่ี 8 ฟังกช์ นั scanf( ) รบั คา่ ตวั เลขจากคียบ์ อรด์ แล้วเก็บไวท้ ต่ี ัวแปร k บรรทดั ท่ี 9 คาสงั่ for (i = 1; i <= 12; i++) เป็นการกาหนดคา่ เร่ิมต้นตัว แปร i เปน็ 1 จากนัน้ ทดสอบเงอื่ นไข i <= 12 จรงิ หรอื เทจ็ ถ้าเป็นจรงิ จะทา คาสง่ั บรรทัดที่ 10 ถ้าเป็นเทจ็ จะออกจาก for ไปทาคาสง่ั บรรทดั ท่ี 11 บรรทัดที่ 10 ฟังกช์ ัน printf( ) แสดงค่าตัวแปร k, i และ i * k นั่นคอื คา่ แม่สตู รคูณตวั เลข นั้น ๆ คณู กบั ค่า i ในแตล่ ะรอบ และค่าผลลัพธ์ทไ่ี ด้จากการเอาตัวเลขแม่สตู ร คูณ คูณกบั ตวั เลขในแตล่ ะรอบออกมาเป็นสูตรคูณ บรรทดั ท่ี 11 ฟังกช์ ัน printf( ) พมิ พข์ อ้ ความให้กดคยี ใ์ ด ๆ เพื่อกลับสู่โปรแกรม บรรทดั ท่ี 12 หยดุ รอรบั ค่าใด ๆ จากคยี บ์ อร์ด เช่น ถ้ากด enter กจ็ ะกลบั สู่โปรแกรม คาส่งั while while เป็นคาสั่งที่มีการทางานซ้า ๆ เป็นลูป และมีลักษณะการทางานของคาสั่งคล้ายกับ คาสั่ง for แตกต่างกันตรงที่ การใช้ while ไม่ต้องทราบจานวนรอบของการทางานที่แน่นอน แต่ต้องมี เงอื่ นไขท่ีเป็นเท็จจึงจะออกจากคาส่งั while ได้ รปู แบบการใช้คาสงั่ while while (expression) statement; หรือ while (expression) { statement(s); } ชดุ กจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 32 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชดุ ที่4 โครงสร้างการเขยี นโปรแกรม โดยท่ี expression คอื นพิ จนท์ ีใ่ ชท้ ดสอบเงอื่ นไข ถ้านิพจน์นใ้ี หผ้ ลลัพธ์เป็นจรงิ จะทาตามคาส่ังท่อี ยู่ ภายในคาส่ัง while จนกวา่ เง่ือนไขเปน็ เท็จจึงออกจากคาสัง่ while ได้ ลักษณะการทางานของคาสง่ั while สามารถเขียนเปน็ แผนผังได้ดังนี้ รูปท่ี 4.2 ผังงานแสดงลกั ษณะการทางานของคาสง่ั while ชดุ กจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 33 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศึกษาปที ี่ 5

ชุดที่4 โครงสร้างการเขยี นโปรแกรม โปรแกรมตวั อย่างท่ี 4.5 แสดงการใชค้ าสัง่ while เพอ่ื วนคานวณคา่ สะสมตวั เลข 1 ถึง 10 และ หาค่าเฉลย่ี แล้วแสดงผลออกจอภาพ /* while1.c */ #include<stdio.h> /* บรรทดั ท่ี 1 */ #include<conio.h> /* บรรทดั ท่ี 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทดั ที่ 4 */ int n=1; /* บรรทัดที่ 5 */ float sum =0 , avg; /* บรรทดั ที่ 6 */ clrscr( ); /* บรรทดั ท่ี 7 */ while ( n < 11 ) /* บรรทดั ที่ 8 */ { /* บรรทดั ที่ 9 */ sum+=n; /* บรรทัดที่ 10 */ n++; /* บรรทดั ที่ 11 */ } /* end while */ /* บรรทัดที่ 12 */ n--; /* บรรทัดท่ี 13 */ avg = sum/n; /* บรรทัดท่ี 14 */ printf(\"N = %d, Sum = %.2f\\n\",n, sum); /* บรรทดั ท่ี 15 */ printf(\"Average = %.2f\", avg); /* บรรทัดที่ 16 */ printf(\"\\n\\nPress any key back to program...\"); /* บรรทดั ท่ี 17 */ getch(); /* บรรทดั ที่ 18 */ } /* บรรทัดท่ี 19 */ ผลลัพธท์ ไ่ี ด้จากโปรแกรม N = 10 , Sum = 55.00 Average = 5.50 Press any key back to program... ชดุ กจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 34 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศึกษาปที ่ี 5

ชุดท่ี4 โครงสรา้ งการเขยี นโปรแกรม คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งที่ 4.5 สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดงั นี้ บรรทัดท่ี 8 คาสัง่ while (n < 11) เพอื่ ควบคุมการทางานของโปรแกรมใหท้ างานซ้า ๆ กนั โดย การทางานของคาสง่ั while จะตรวจสอบเง่ือนไข n < 11 เป็นจรงิ หรือเท็จ ถ้าเป็น จรงิ จะทางานตามคาสง่ั ที่อยู่ภายใน loop while คอื บรรทัด ที่ 10 และ 11 จากน้ันจะกลับมาตรวจสอบเง่ือนไขใหม่ ทาอยา่ งนี้ซ้า ๆ จนกว่า ตรวจสอบเงอ่ื นไข n < 11 เป็นเท็จ จงึ จะออกจาก loop while แลว้ ไปทาคาสัง่ บรรทดั ที่ 13 ถงึ คาส่ังบรรทัดที่ 18 บรรทดั ท่ี 10 และ 11 เปน็ คาสง่ั ที่โปรแกรมจะทางานภายหลังจากตรวจสอบ เงอื่ นไข while แลว้ เปน็ จริง นั่นคอื คานวณคา่ สะสมของตวั แปร sum และ เพิม่ คา่ n ทลี ะ 1 ตามลาดับ บรรทัดที่ 13 ถึง 18 เปน็ คาสัง่ ทีโ่ ปรแกรมจะทางานภายหลงั จากตรวจสอบเง่ือนไข while แลว้ เป็นเท็จ คือ ลดค่าตัวแปร n ลง 1 แล้วคานวณค่าเฉลีย่ เกบ็ ไวท้ ่ีตัวแปร avg และ พิมพค์ ่าตัวแปร n, sum และ avg แสดงท่ีจอภาพ พร้อมกบั พมิ พข์ อ้ ความให้กดคีย์ ใด ๆ เพอื่ กลับสโู่ ปรแกรม สดุ ท้ายจะหยุดรอรบั ค่าใด ๆ จากคยี ์บอรด์ เชน่ ถา้ กด enter กจ็ ะกลบั สู่โปรแกรม ชดุ กจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 35 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีที่ 5

ชุดที่4 โครงสร้างการเขียนโปรแกรม โปรแกรมตวั อยา่ งที่ 4.6 แสดงการใชค้ าส่ัง while เพ่ือวนทางานใหผ้ ู้ใช้เติมตัวอักษร และ แสดงผล ออกจอภาพไปเร่อื ย ๆ จนกวา่ จะกด enter ถึงหยดุ การทางาน /* while2.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดท่ี 2 */ void main(void) /* บรรทดั ท่ี 3 */ { /* บรรทดั ที่ 4 */ char ch='A'; /* บรรทัดที่ 5 */ while (ch != '\\r') /* บรรทดั ท่ี 6 */ { /* บรรทดั ที่ 7 */ clrscr(); /* บรรทดั ท่ี 8 */ printf(\"Enter a character : \"); /* บรรทัดที่ 9 */ ch=getche(); /* บรรทดั ท่ี 10 */ printf(\"\\nYour type a character is...%c\", ch); /* บรรทัดท่ี 11 */ getch(); /* บรรทดั ที่ 12 */ } /* end while */ /* บรรทัดท่ี 13 */ } /* บรรทดั ท่ี 14 */ ผลลัพธ์ทีไ่ ดจ้ ากโปรแกรม โปรแกรมจะให้ปอ้ นตวั อักขระไปเรอ่ื ยๆ จนกวา่ Enter a character : b ผู้ใช้จะกดแปน้ พมิ พ์ Enter Your type a character is...b จึงจะออกจากโปรแกรม Enter a character : Your type a character is... ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 36 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปีท่ี 5

ชดุ ท่ี4 โครงสร้างการเขียนโปรแกรม คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งท่ี 4.6 สามารถอธิบายการทางานของโปรแกรมท่สี าคัญ ๆ ได้ดงั น้ี บรรทัดท่ี 5 ประกาศตวั แปรชนิดตวั อกั ขระ ช่อื ch และให้เก็บค่า ‘A’ เพอ่ื ไวต้ รวจสอบเงอื่ นไข เริ่มแรก บรรทัดที่ 6 คาส่ัง while (ch != ‘ \\r ’) คอื การตรวจสอบเงอ่ื นไข ค่าของตัวแปร ch ไม่ เท่ากับ ‘ \\r ‘ หรือไม่ (‘ \\r ‘ คือรหัสของการกดแป้น enter) ซง่ึ ถ้าเงอื่ นไขเป็น จรงิ จะทาคาส่ังภายใน loop while คอื บรรทัดที่ 8 ถึง 12 แตถ่ า้ เง่ือนไขเป็น เท็จก็จะออกจาก loop while ซึ่งในกรณนี ้เี ง่ือนไขจะเป็นเทจ็ ไดค้ อื ผูใ้ ชจ้ ะต้องกด แป้น enter เพราะ ‘ \\r ‘ ไม่เท่ากบั ‘ \\r ‘ จะเป็นเท็จ บรรทัดที่ 8 ถงึ 12 เปน็ คาสั่งทีโ่ ปรแกรมจะทางานภายหลังจากตรวจสอบเง่ือนไข while แลว้ เป็นจริง คอื ลบจอภาพ แล้วให้เติมตวั อกั ขระตวั ใด ๆ ไปเกบ็ ไวใ้ นตัวแปร ch เพ่ือ เอาไวต้ รวจสอบเงือ่ นไข และนาคา่ ตัวอักขระท่ผี ใู้ ชเ้ ตมิ แสดงออกจอภาพ สดุ ท้ายหยุด รอรับค่าใด ๆ จากคยี บ์ อร์ด เชน่ ถ้ากด enter กจ็ ะกลบั สโู่ ปรแกรม คาสง่ั do while do while เป็นคาสั่งที่มีการทางานซ้า ๆ วนลูป คล้ายกับคาสั่ง while มาก แตกต่างกันตรงท่ี คาส่ัง do while จะทดสอบเง่ือนไขหลังจากทีไ่ ด้ทางานตามคาสั่งภายในลูปไปแล้ว 1 รอบ จากนนั้ จึงคอ่ ย ยอ้ นกลับมาทดสอบเงื่อนไขอีกครั้งหน่ึง ถ้าเงื่อนไขเป็นจรงิ ก็จะทางานตามคาสั่งภายในลปู แต่ถ้าเงอ่ื นไขเป็น เท็จจะออกจากคาสงั่ do while ทนั ที รูปแบบการใช้คาสัง่ do while do{ statement(s); } while (expression); ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 37 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปที ี่ 5

ชุดท่ี4 โครงสรา้ งการเขียนโปรแกรม ลกั ษณะการทางานของคาส่ัง do while สามารถเขยี นเป็นแผนผงั ไดด้ ังนี้ รูปที่ 4.3 ผังงานแสดงลักษณะการทางานของคาส่ัง do while ข้อควรระวงั ในการใชค้ าสง่ั do while ควรระวงั เงือ่ นไขของคาส่ัง do while ตอ้ งพจิ ารณาให้ดีว่ามีท้งั กรณที ี่เปน็ จรงิ และเทจ็ อยหู่ รือไม่ ถ้า มีอยู่ทั้ง 2 กรณี แสดงว่าใช้คาสั่งนี้ได้ถูกต้องตามไวยากรณ์ของคาสั่งนี้ ถ้ามีเฉพาะกรณีที่เงื่อนไขเป็นจริง เท่านั้นแสดงว่าเกิดลักษณะการทางานวนลูป (looping) ไม่มีทางออกจากคาสั่งนี้ ในทานองกลับกันถ้า เงอ่ื นไขเปน็ เทจ็ อย่างเดยี ว จะทาคาส่งั do while เพียงคร้งั เดยี ว ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 38 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปีที่ 5

ชดุ ที่4 โครงสร้างการเขยี นโปรแกรม โปรแกรมตวั อย่างท่ี 4.8 แสดงการใชค้ าสั่ง do while เพื่อวนลปู แสดง main memu ให้ผ้ใู ช้ เลือกเมนู ไปเรื่อย ๆ จนกว่าเลือกเมนูท่ี 5 ถึงจะออกจากโปรแกรม /* dowhile1.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทดั ที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดท่ี 4 */ char choice; /* บรรทัดท่ี 5 */ clrscr(); /* บรรทัดท่ี 6 */ do { /* บรรทดั ที่ 7 */ printf(\"\\n\\n******* MAIN MENU *******\\n\"); /* บรรทดั ท่ี 8 */ printf(\"*************************\\n\\n\"); /* บรรทดั ท่ี 9 */ printf(\"1. Create New File\\n\"); /* บรรทัดท่ี 10 */ printf(\"2. Use an Old File\\n\"); /* บรรทดั ท่ี 11 */ printf(\"3. Edit data record in File \\n\"); /* บรรทัดท่ี 12 */ printf(\"4. Append data record in File\\n\"); /* บรรทัดที่ 13 */ printf(\"5. Exit Program\\n\"); /* บรรทัดท่ี 14 */ printf(\"Enter your choice(1,2,3,4,5): \"); /* บรรทดั ท่ี 15 */ choice=getche(); /* บรรทัดที่ 16 */ }while(choice != '5'); /* บรรทดั ท่ี 17 */ } /* บรรทัดท่ี 18 */ ผลลพั ธท์ ่ไี ดจ้ ากโปรแกรม โปรแกรมจะวนให้เลอื กเมนู ไปเร่ือยๆ จนกว่าผใู้ ชจ้ ะกด ******* MAIN MENU ******* เลข 5 จึงจะออกจาก \"************************* โปรแกรม 1. Create New File 2. Use an Old File 3. Edit data record in File 4. Append data record in File 5. Exit Program Enter your choice(1,2,3,4,5) ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 39 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปีที่ 5

ชดุ ท่ี4 โครงสรา้ งการเขียนโปรแกรม คาอธบิ ายโปรแกรม จากโปรแกรมตัวอย่างที่ 4.8 สามารถอธบิ ายการทางานของโปรแกรมทส่ี าคัญ ๆ ไดด้ ังนี้ บรรทดั ท่ี 7 คาส่งั do จะควบคุมการทางานของโปรแกรม ให้ทาตามคาส่งั ท่อี ยู่ ภายใน loop do คอื คาส่ังภายในเคร่อื งหมาย { } บรรทัดที่ 8 ถงึ 16 ซ่งึ จะทา อยา่ งน้อย 1 รอบ หลังจากนัน้ ค่อยไปตรวจสอบเง่ือนไข while ในบรรทดั ท่ี 17 ถา้ เป็นจรงิ จะกลบั มาทาคาสง่ั ใน loop อกี คร้งั แตถ่ ้าเปน็ เท็จกจ็ ะออกจาก โปรแกรม และสนิ้ สดุ การทางาน บรรทัดท่ี 17 คาสงั่ while (choice!=‘5‘); จะตรวจสอบค่าท่ีรบั เข้ามาจากคียบ์ อรด์ ซ่งึ จะเก็บไว้ ในตวั แปร choice และค่าทรี่ บั เข้ามาจะเปน็ ชนิดอกั ขระ ตรวจสอบวา่ ไมเ่ ท่ากบั ตวั อกั ขระ 5 จริงหรอื เทจ็ (‘5‘ ความหมายเป็นตวั อกั ขระไมใ่ ชต่ ัวเลข ซงึ่ เวลา ตรวจสอบเง่ือนไข ตัวดาเนินการทางคณติ ศาสตร์ ขอ้ มูลท่จี ะตรวจสอบต้องเปน็ ชนิด เดยี วกัน) มีเง่ือนไขทจ่ี ะเป็นเท็จอยู่กรณีเดียว คือ เตมิ 5 จะทาให้ ‘5‘ != 5 เป็น เท็จ ก็จะออกจาก loop และจบการทางาน สรุปทา้ ยบท สาหรบั คาสั่งควบคมุ การทางานของโปรแกรม สามารถแบ่งกลมุ่ ตามลกั ษณะการทางานตาม ขอ้ กาหนดมาตรฐานของสถาบนั ANSI (American National Standards Institute) กาหนดให้ ภาษา C มคี าสั่งที่ใช้ควบคุมการทางานของโปรแกรมดังน้ี 1. คาสั่งวนลูปหรือทางานซา้ ๆ เป็นลูป (loop statements) ไดแ้ กค่ าสงั่ ต่อไปนี้ 1.1 คาสง่ั for เป็นคาสั่งที่ส่ังใหโ้ ปแกรมมีการทางานซ้า ๆ วนลูปจนกว่าเงื่อนไขที่กาหนดไวเ้ ปน็ เทจ็ จึงออกจากคาส่ัง for ไปทาคาสงั่ ถัดไป ควรใช้คาส่งั for ในกรณที ี่ทราบจานวนรอบของการ ทางาน 1.2 คาสงั่ while เป็นคาสั่งท่ีมกี ารทางานซ้า ๆ เป็นลูป และมลี ักษณะการทางานของคาส่ัง คลา้ ยกับคาส่ัง for แตกตา่ งกนั ตรงที่ การใช้ while ไมต่ อ้ งทราบจานวนรอบของการทางานที่ แนน่ อน แตต่ ้องมีเง่ือนไขทเ่ี ป็นเท็จจงึ จะออกจากคาสงั่ while ได้ 1.3 คาสั่ง do while เป็นคาส่ังทม่ี ีการทางานซ้า ๆ วนลูป คล้ายกบั คาสัง่ while มาก แตก ตางกนั ตรงท่ีคาสัง่ do while จะทดสอบเง่ือนไขหลังจากที่ได้ทางานตามคาส่งั ภายในลูปไป แลว้ 1 รอบ จากนัน้ จงึ ค่อยย้อนกลบั มาทดสอบเงอื่ นไขอีกคร้งั หนึ่ง ถา้ เงือ่ นไขเปน็ จรงิ กจ็ ะทางานตาม คาส่งั ภายในลูป แตถ่ า้ เงื่อนไขเป็นเท็จจะออกจากคาสัง่ do while ทนั ที ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 40 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปีที่ 5

ชุดท่ี4 โครงสร้างการเขียนโปรแกรม 1.4 คาสั่ง break เป็นคาสั่งที่สั่งให้ออกจากคาสั่ง for หรือ while หรือ do while หรือ คาสงั่ switch 1.5 คาส่ัง continue เป็นคาส่งั ทสี่ ั่งให้กลับไปทางานทคี่ าสั่งแรกของลูปคาสัง่ for หรือ while หรือ do while ทาใหม้ ีการทางานในรอบตอ่ ไป 2. คาสงั่ ทดสอบเงื่อนไขในการตดั สนิ ใจ (decision statements) ไดแ้ กค่ าสง่ั ต่อไปน้ี 2.1 คาสั่ง if เปน็ คาส่ังที่สั่งให้มกี ารทดสอบเงื่อนไขก่อนทจ่ี ะไปทางานตามคาสัง่ ทก่ี าหนดไว้ 2.2 คาส่ัง if else เป็นคาสั่งท่ีสง่ั ให้มกี ารทดสอบเง่ือนไข โดยมกี ารตดั สนิ ใจแบบ 2 ทางเลือก 2.3 คาสั่งโครงสร้าง else if (หรือ nested if) เป็นโครงสร้างที่ทาให้เราสามารถใช้ คาสั่ง if else ซ้อนกันได้เรื่อย ๆ ส่วนมากจะใช้ในการตัดสินใจท่ีมากกว่า 2 ทางเลือกขึ้นไป บางครั้ง อาจเรยี กโครงสร้างนี้วา่ nested if 2.4 คาสั่ง switch เป็นคาสั่งที่ใช้ทดสอบเงื่อนไขในกรณีที่มีทางเลือกสาหรับตัดสินใจ มากกว่า 2 ทางขึ้นไปเช่นเดียวกันกับ nested if โดยมากนิยมใช้ค าสั่ง switch แทน คาสง่ั nested if เพราะมรี ูปแบบการใชค้ าส่งั ทง่ี า่ ยและสะดวกในการแกไ้ ขคาส่งั เม่อื มีขอ้ ผิดพลาดเกดิ ข้นึ ชุดกิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 41 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปีท่ี 5

ชดุ ท่ี4 โครงสรา้ งการเขยี นโปรแกรม บตั รกิจกรรมกำรเรยี นรู้ท่ี 2 30 เรือ่ ง คำส่ังวนลปู หรอื ทำงำนซำ้ ๆ เปน็ ลปู 1. การเขียนโปรแกรมโดยใชค้ าส่งั for… ให้นกั เรียนเขยี นโปรแกรมแสดงสูตรคูณแม่ต่างๆตามทผี่ ู้ใชก้ าหนด ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 42 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศึกษาปที ่ี 5

ชดุ ที่4 โครงสรา้ งการเขยี นโปรแกรม บตั รกิจกรรมกำรเรยี นรู้ที่ 2 เร่อื ง คำสงั่ วนลูปหรือทำงำนซ้ำ ๆ เปน็ ลูป 2. การเขียนโปรแกรมโดยใชค้ าสั่ง while… ให้นกั เรยี นเขยี นโปรแกรมเพ่ือหาผลบวกของจานวนเตม็ ท่ีอยรู่ ะหว่าง 1 ถงึ 1000 ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 43 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปที ่ี 5

ชดุ ที่4 โครงสรา้ งการเขยี นโปรแกรม บตั รกจิ กรรมกำรเรยี นรูท้ ่ี 2 เรื่อง คำส่ังวนลูปหรอื ทำงำนซ้ำ ๆ เปน็ ลปู 3. การเขยี นโปรแกรมโดยใชค้ าส่ัง do…while ใหน้ ักเรยี นเขียนโปรแกรมเพ่ือหาผลบวกของจานวนเตม็ ทีอ่ ย่รู ะหวา่ ง 1 ถงึ 1000 ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 44 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศึกษาปที ี่ 5

ชดุ ท่ี4 โครงสร้างการเขียนโปรแกรม แบบทดสอบหลังเรยี น เรื่อง โครงสรำ้ งกำรเขียนโปรแกรม คาชีแ้ จง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ข้อ 2. ใหน้ ักเรยี นเลอื กคาตอบทถี่ ูกตอ้ งที่สดุ เพียงคาตอบเดยี ว แล้วใสเ่ ครื่องหมายกากบาท (x) ลงในกระดาษคาตอบ 1. ข้อใดต่อไปน้ี คือ การใช้คาสั่งวนซา้ while ท่ถี ูกต้อง ? ก. while(a > 10) ข. while(a = 10) ค. while(a => 10) ง. while(a > 10); 2. ข้อใดตอ่ ไปนี้ คอื ประโยคเง่ือนไขกาหนด if ซอ้ น if ? ก. if ข. if-else ค. if-else เชงิ ซ้อน ง. switch 3. ขอ้ ใดตอ่ ไปนี้ คอื คาสงั่ ท่ตี ้องใชห้ ยุดการทาซ้าและออกจากลปู ของโปรแกรมได้ ? ก. continue ข. break ค. while ง. for 4. ข้อใดตอ่ ไปน้ี คือ จานวนรอบของการทางานจากชุดคาส่ังที่กาหนดให้ ? for(x=1; x<=10; x+2) printf(“%d”,x); ก. 5 รอบ ข. 10 รอบ ค. 0 รอบ ง. ไมม่ ขี ้อใดถกู 5. ขอ้ ใดต่อไปนี้ คือ จานวนรอบของการทางานจากชุดคาสงั่ ที่กาหนดให้ ? int x=5; while(x > 5) printf(“%d”,x); ก. 5 รอบ ข. 10 รอบ ค. 0 รอบ ง. ไม่มขี ้อใดถกู ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 45 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีที่ 5

ชุดท่ี4 โครงสรา้ งการเขียนโปรแกรม 6. ข้อใดตอ่ ไปนี้คือ คาสง่ั ลูปการทาซ้าจะมกี ารตรวจสอบเงอื่ นไขก่อนเสมอ ? ก. switch ข. while ค. do-while ง. for 7. ขอ้ ใดตอ่ ไปน้ี เปน็ คาส่งั ในการเลือกทาแบบทางเดยี ว ? ก. if ข. if-else ค. if-else เชิงซอ้ น ง. switch 8. ข้อใดต่อไปน้ี คือ ลักษณะการทางานของคาสง่ั วนซา้ do-while ? ก. ตรวจสอบเง่อื นก่อนกไ็ ด้ หรือทางานก่อนกไ็ ด้ ข. ทางานและตรวจสอบเงอ่ื นไขพร้อมกนั ค. ตรวจสอบเงื่อนไขก่อนแล้วจงึ ทางานตอ่ ไป ง. ทางานตามคาส่งั ก่อนจึงตรวจสอบเง่ือนไข 9. ขอ้ ใดต่อไปนี้คือผลของการไมใ่ ส่คาสงั่ break การตรวจสอบเงื่อนไขด้วย switch ? ก. โปรแกรมคอมไพลไ์ มผ่ า่ น ข. เง่ือนไขแตล่ ะ case จะไมท่ างาน ค. จะตรวจสอบ case ทอี่ ยลู่ าดบั ถัดไป ง. ไมเ่ กิดอะไรข้นึ 10. ข้อใดต่อไปน้ี คอื คาส่ังลูปการทาซ้าท่ีทราบจานวนรอบที่แน่นอน ? ก. switch ข. while ค. do-while ง. for ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 46 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปีที่ 5

ชดุ ท่ี4 โครงสร้างการเขยี นโปรแกรม กระดำษคำตอบ เร่อื ง โครงสรำ้ งกำรเขยี นโปรแกรม  ก่อนเรยี น  หลังเรียน ชื่อ .................................................................................... ชั้น ................ เลขที่ .............. ขอ้ ที่ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชุดกิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 47 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปีท่ี 5

ชดุ ที่4 โครงสรา้ งการเขียนโปรแกรม บรรณำนกุ รม กิตตชิ ัย ชวี าสุขถาวร. (2550). ภาษาซที ลี ะกา้ ว. กรุงเทพฯ : เคทีพี คอมพ์ แอนด์ คอนซลั ท.์ กลุ รพี ศิวาพรรักษ.์ (2557). เทคโนโลยสี ารสนเทศและคอมพวิ เตอร์ 4-6. กรงุ เทพฯ : สานกั พมิ พเ์ อมพนั ธ.์ ธีรวัฒน์ ประกอบผล. (2550). การเขียนโปรแกรมระบบปฏบิ ัตกิ ารเท็กโหมด(ดว้ ยภาษาซี). กรงุ เทพฯ : ซัคเซสมีเดีย. นริ ุธ อานวยศลิ ป์. (ม.ป.ป.). C Programming เขยี นโปรแกรมภาษาซฉี บบั สมบรู ณ์. ม.ป.ท. : ด่านสทุ ธาการพิมพ์ พฒั พงษ์ อมรวงศ์. (2554). การเขียนโปรแกรมภาษาซ.ี ปทุมธานี : มีเดยี อินเทลลเิ จนซ์ เทคโนโลยี. มณั ฑนา ปราการสมุทร. (2534). การเขียนชดุ คาสัง่ ภาษาซี. กรงุ เทพมหานคร : ดวงกมลสมัย. สถาบนั สง่ เสริมการสอนวทิ ยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธิการ. (2551). ภาษาซี ช่วงชัน้ ที่ 4 ชน้ั มัธยมศกึ ษาปีท่ี 4 - 6. กรงุ เทพฯ : โรงพมิ พค์ ุรุสภาลาดพร้าว. สมชาย รัตนเลิศนสุ รณ์. (2545). การเขยี นโปรแกรมคอมพวิ เตอรด์ ้วยภาษาซี. กรุงเทพฯ : สมาคมสง่ เสริมเทคโนโลยี (ไทย-ญปี่ ่นุ ) โอภาส เอยี่ มสริ ิวงศ์. (2552). การเขยี นโปรแกรมด้วยภาษาซี (Programming with C). กรงุ เทพมหานคร : ซเี อด็ . ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 48 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปที ่ี 5

ชดุ ที่4 โครงสร้างการเขยี นโปรแกรม ภาคผนวก ชดุ กิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 49 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปที ่ี 5


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook