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 ชุดกิจกรรมที่ 4 เรื่อง โครงสร้างการเขียนโปรแกรม

ชุดกิจกรรมที่ 4 เรื่อง โครงสร้างการเขียนโปรแกรม

Published by cp.suwanna, 2018-06-30 21:18:23

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

Keywords: ภาษาซี

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 เชิงซ้อน ง. switch2. ข้อใดต่อไปน้ี คือประโยคเง่ือนไขกาหนด if ซ้อน if ?ก. if ข. if-elseค. if-else เชิงซอ้ น ง. switch3. ข้อใดต่อไปนี้ คอื คาสั่งท่ีต้องใช้หยุดการทาซ้าและออกจากลปู ของโปรแกรมได้ ?ก. continue ข. breakค. while ง. for4. ขอ้ ใดต่อไปนี้คือผลของการไมใ่ สค่ าสง่ั break การตรวจสอบเงื่อนไขด้วย switch ?ก. โปรแกรมคอมไพล์ไม่ผา่ น ข. เง่อื นไขแต่ละ case จะไม่ทางานค. จะตรวจสอบ case ทอี่ ยลู่ าดับถัดไป ง. ไมเ่ กิดอะไรขึน้5. ขอ้ ใดต่อไปน้ี คอื คาสงั่ ลปู การทาซ้าทีท่ ราบจานวนรอบท่ีแน่นอน ?ก. switch ข. whileค. do-while ง. for6. ขอ้ ใดตอ่ ไปน้ีคือ คาสง่ั ลูปการทาซ้าจะมีการตรวจสอบเงื่อนไขก่อนเสมอ ?ก. 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 คาส่ัง ifif เป็นคาสง่ั ทส่ี ัง่ ให้มกี ารทดสอบเง่ือนไขก่อนท่จี ะไปทางานตามคาสง่ั ท่ีกาหนดไว้รปู แบบการใช้คาสั่ง 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 : NThank 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 = 02. ถา้ คะแนน มากกวา่ หรือเทา่ กับ 50 แสดงข้อความ grad = 13. ถา้ คะแนน มากกวา่ หรือเทา่ กบั 60 แสดงขอ้ ความ grad = 24. ถ้าคะแนน มากกวา่ หรือเท่ากบั 70 แสดงข้อความ grad = 35. ถา้ คะแนน มากกวา่ หรือเท่ากบั 80 แสดงขอ้ ความ grad = 46. ถา้ คะแนน มากกวา่ 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; expression3) statement; หรอื for (expression1; expression2; expression3) { statement(s);โดยท่ี } expression1 คือ นิพจนท์ ใี่ ชก้ าหนดค่าเร่มิ ต้นให้กบั ตวั แปรทจี่ ะใชว้ นลูป expression2 คือ นิพจน์ท่ใี ชท้ ดสอบเงื่อนไข ซงึ่ จะมีค่าจรงิ หรือเทจ็ อย่างใดอย่างหนึง่ เทา่ นั้น expression3 คือ นิพจน์ท่ีใช้เพ่ิมหรือลดค่าตัวแปรทจี่ ะใชว้ นลูป statement(s) คือ คาส่ังต่าง ๆ ถา้ มีมากกว่า 1 คาสั่ง จะต้องเขยี นอยภู่ ายในเคร่ืองหมาย {….}ชุดกจิ กรรมการเรยี นรกู้ ารเขียนโปรแกรมภาษาคอมพิวเตอร์ 28รายวิชาภาษาซี ง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 เชงิ ซอ้ น ง. switch3. ข้อใดต่อไปนี้ คือคาสงั่ ทีต่ ้องใชห้ ยุดการทาซ้าและออกจากลูปของโปรแกรมได้ ?ก. continue ข. breakค. while ง. for4. ขอ้ ใดตอ่ ไปนี้ คือ จานวนรอบของการทางานจากชุดคาสง่ั ท่ีกาหนดให้ ?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 ง. for7. ขอ้ ใดต่อไปน้ี เป็นคาส่งั ในการเลือกทาแบบทางเดยี ว ?ก. if ข. if-elseค. if-else เชิงซอ้ น ง. switch8. ข้อใดต่อไปน้ี คือ ลักษณะการทางานของคาสั่งวนซา้ 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