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 บัตรเนื้อหาที่ 2 คำสั่งวนลูปหรือทำงานซ้ำๆ เป็นลูป

บัตรเนื้อหาที่ 2 คำสั่งวนลูปหรือทำงานซ้ำๆ เป็นลูป

Description: ชุดที่4

Search

Read the Text Version

ชุดท่ี4 โครงสรา้ งการเขยี นโปรแกรม บัตรเน้อื หาที่ 2 คาส่งั วนลูปหรือ ทางานซา้ ๆ เป็นลูป คำสั่งวนลูปเป็นคำสั่งที่สำมำรถควบคุมโปรแกรมให้ทำงำนเป็นจำนวนรอบตำมที่เรำกำหนดไว้ หรือ ทำงำนจนกว่ำเง่อื นไขทีก่ ำหนดไวเ้ ป็นเทจ็ จึงจะออกจำกคำส่งั วนลูปได้ คาสั่ง for for เป็นคำส่งั ที่ส่งั ใหโ้ ปแกรมมีกำรทำงำนซ้ำ ๆ วนลูปจนกวำ่ เงื่อนไขทีก่ ำหนดไวเ้ ป็นเทจ็ จึงออกจำก 1 คำสง่ั for ไปทำคำสั่งถดั ไป ควรใช้คำสั่ง for ในกรณีทีท่ รำบจำนวนรอบของกำรทำงำน รปู แบบการใช้คาสัง่ for for (expression1; expression2; 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 */ ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 2 รายวชิ าภาษาซี ง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 กจ็ ะกลบั สูโ่ ปรแกรม ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 3 รายวชิ าภาษาซี ง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 */ ผลลพั ธท์ ่ไี ดจ้ ากโปรแกรม 4 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 เป็นคำสั่งที่มีกำรทำงำนซ้ำ ๆ เป็นลูป และมีลักษณะกำรทำงำนของคำสั่งคล้ำยกับ 5 คำสั่ง for แตกต่ำงกันตรงที่ กำรใช้ while ไม่ต้องทรำบจำนวนรอบของกำรทำงำนที่แน่นอน แต่ต้องมี เงื่อนไขทเ่ี ปน็ เท็จจึงจะออกจำกคำสง่ั while ได้ รปู แบบการใช้คาสงั่ while while (expression) statement; หรอื while (expression) { statement(s); } ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปที ่ี 5

ชดุ ที่4 โครงสร้างการเขียนโปรแกรม โดยที่ expression คือ นพิ จนท์ ใี่ ชท้ ดสอบเงื่อนไข ถำ้ นพิ จน์น้ีใหผ้ ลลัพธเ์ ป็นจรงิ จะทำตำมคำส่งั ที่อยู่ ภำยในคำส่งั while จนกว่ำเงอื่ นไขเป็นเท็จจงึ ออกจำกคำส่งั while ได้ ลักษณะการทางานของคาส่ัง while สำมำรถเขียนเปน็ แผนผังได้ดังนี้ รปู ที่ 4.2 ผงั งำนแสดงลกั ษณะกำรทำงำนของคำส่งั while ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 6 รายวชิ าภาษาซี ง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 */ ผลลัพธท์ ีไ่ ดจ้ ากโปรแกรม 7 N = 10 , Sum = 55.00 Average = 5.50 Press any key back to program... ชุดกจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง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 ก็จะกลบั ส่โู ปรแกรม ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 8 รายวชิ าภาษาซี ง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... ชดุ กจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 9 รายวชิ าภาษาซี ง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); ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 10 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปที ่ี 5

ชุดท่ี4 โครงสรา้ งการเขียนโปรแกรม ลกั ษณะการทางานของคาส่ัง do while สำมำรถเขยี นเป็นแผนผงั ไดด้ ังนี้ รูปที่ 4.3 ผังงำนแสดงลักษณะกำรทำงำนของคำส่ัง do while ข้อควรระวงั ในการใชค้ าสง่ั do while ควรระวงั เงือ่ นไขของคำส่ัง do while ตอ้ งพจิ ำรณำให้ดีว่ำมีท้งั กรณที ี่เปน็ จรงิ และเทจ็ อยหู่ รือไม่ ถ้ำ มีอยู่ทั้ง 2 กรณี แสดงว่ำใช้คำสั่งนี้ได้ถูกต้องตำมไวยำกรณ์ของคำสั่งนี้ ถ้ำมีเฉพำะกรณีที่เงื่อนไขเป็นจริง เท่ำนั้นแสดงว่ำเกิดลักษณะกำรทำงำนวนลูป (looping) ไม่มีทำงออกจำกคำสั่งนี้ ในทำนองกลับกันถ้ำ เงอ่ื นไขเปน็ เทจ็ อย่ำงเดยี ว จะทำคำส่งั do while เพียงคร้งั เดยี ว ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 11 รายวชิ าภาษาซี ง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 12 3. Edit data record in File 4. Append data record in File 5. Exit Program Enter your choice(1,2,3,4,5) ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง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 และจบกำรทำงำน สรุปทา้ ยบท 13 สำหรบั คำสั่งควบคมุ กำรทำงำนของโปรแกรม สำมำรถแบ่งกลุม่ ตำมลกั ษณะกำรทำงำนตำม ขอ้ กำหนดมำตรฐำนของสถำบนั 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 ทนั ที ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง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 เพรำะมรี ูปแบบกำรใชค้ ำส่งั ทง่ี ำ่ ยและสะดวกในกำรแกไ้ ขคำส่งั เม่อื มีขอ้ ผิดพลำดเกดิ ข้นึ ชุดกิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 14 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปที ่ี 5