Weitere ähnliche Inhalte Ähnlich wie หลักการแก้ปัญหา (20) หลักการแก้ปัญหา1. หลักการแกปญหา
กับภาษาคอมพิวเตอร
รายวิชา ง40102 หลักการแกปญหาและการโปรแกรม
1.หลักการแกปญหา
ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน
การเงิน หรือแมแตการเลนเกม เมื่อพบกับปญหา แตละคนมีวิธีที่จะจัดการหรือแกปญหาเหลานั้น
แตกตางกันไป ซึ่งแตละวิธีการอาจใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ขึ้นอยูกับ
ความรู ความสามารถ และประสบการณของบุคคลผูนั้น อยางไรก็ตาม หากเรานําวิธีการแกปญหาตาง
วิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎีซึ่งมีรูปแบบที่แนนอนได และ
บางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่เราจะศึกษา
ตอไป ลองพิจารณาปญหาตอไปนี้
ตัวอยางที่ 1 เกมทายใจ
คือเกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่งคือ ผูกําหนด
เปนคนกําหนดเลข 3 ตัวที่ไมซ้ํากัน โดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือผูทาย เปนผูทาย
ตัวเลข 3 ตัวที่ไมซ้ํากันที่ผูกําหนดไดกําหนดไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตอง
ใหรายละเอียดวาตัวเลขทีทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตอง
่
2. บอกวาถูกตําแหนงกี่ตัว เชน ถาตัวเลขที่กําหนดไวเปน 815 และผูทายทายวา 123 ผูกําหนดตองแจง
วาตัวเลขที่ทายนั้นถูก 1 ตัว และไมมีตัวใดถูกตําแหนง ตารางที่ 1 เปนตารางแสดงขอมูลการเลนเกม
ตารางที่ 1 ขอมูลการเลนเกมทายใจ
เลขที่ทาย จํานวนตัวเลขที่ถูก จํานวนตําแหนงที่ถูก
123 1 -
415 2 2
425 1 1
416 1 1
715 2 2
815 3 3
จะเห็นวาการแกปญหาดังกลาวขางตน นอกจากจะใชวิธีลองผิดลองถูกในการทายครั้งแรกๆ แลวยังมี
การใชเหตุผลประกอบการแกปญหาซึ่งเราเรียกวิธีการดังกลาววา “วิธีขจัด” (method of elimination) คือ
จะแยกขอมูลออกเปนกรณีที่เปนไปไมไดทิ้ง จนเหลือกรณีที่เปนไปได รูปแบบของการใชเหตุผล
ประกอบการแกปญหาอาจแตกตางกันขึ้นอยูกับเงื่อนไข ในบางปญหาอาจจะขจัดใหเหลือกรณีเดียว
ไมได แตอาจจะทําใหเหลือกรณีนอยที่สุด
นอกจากวิธีการแกปญหาที่ยกตัวอยางมาซึ่งไดแก วิธีการลองผิดลองถูก การใชเหตุผล การ
ใชวิธีขจัด ยังมีวิธีการแกปญหาอีกมากมายที่ผูแกปญหาสามารถเลือกใชใหเขากับตัวปญหาและ
ประสบการณของผูแกปญหาเอง แตอยางไรก็ตาม วิธีการเหลานั้นลวนมีขั้นตอนที่คลายคลึงกัน และ
จากการศึกษาพฤติกรรมในการเรียนรูและแกปญหาของมนุษยพบวา โดยปกติมนุษยมีกระบวนการใน
การแกปญหา ซึ่งประกอบดวย 4 ขั้นตอน ดังนี้
การวิเคราะหและกําหนดรายละเอียดของปญหา
3. การวิเคราะหและกําหนดรายละเอียดของปญหา (State the problem) ขั้นตอนนี้เปนขั้นตอน
แรกสุดกอนที่จะลงมือแกปญหา แตผูแกปญหามักจะมองขามความสําคัญของขั้นตอนนี้อยูเสมอ
จุดประสงคของขั้นตอนนี้ คือการทําความเขาใจกับปญหาเพื่อแยกใหออกวาขอมูลที่กําหนดมาในปญหา
หรือเงื่อนไขของปญหาคืออะไร และสิ่งที่ตองการคืออะไร อีกทั้งวิธีการที่ใชประมวลผล ในการวิเคราะห
ปญหาใด กลาวโดยสรุปมีองคประกอบในการวิเคราะห ดังนี้
1.1 การระบุขอมูลเขา ไดแก การพิจารณาขอมูลและเงื่อนไขที่กําหนดมาในปญหา
1.2 การระบุขอมูลออก ไดแก การพิจารณาเปาหมายหรือสิ่งที่ตองหาคําตอบ
1.3 การกําหนดวิธีประมวลผล ไดแก การพิจารณาขั้นตอนวิธีหาคําตอบหรือขอมูลออก
ตัวอยางที่ 2 แสดงการวิเคราะหและกําหนดรายละเอียดของการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน
ไดแก 0 3 4 8 และ 12
จากองคประกอบในการวิเคราะหและกําหนดรายละเอียดของปญหา
(1) การระบุขอมูลเขา
ในที่นี้โจทยกําหนดใหหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ดังนั้น ขอมูลเขาไดแก จํานวน
0 3 4 8 และ 12
(2) การระบุขอมูลออก
จากโจทยสิ่งที่เปนคําตอบของปญหาคือ คาเฉลี่ย (X) ของจํานวนทั้งหา
(3) การกําหนดวิธีประมวลผล
จากสิ่งที่โจทยตองการ “คาเฉลี่ย” หมายถึง ผลรวมของจํานวนทั้ง 5 หารดวย 5 ดังนั้น
ขั้นตอนของการประมวลผลประกอบดวย
3.1) รับคาจํานวนทั้ง 5 จํานวน
3.2) นําจํานวนเต็มทั้ง 5 มาบวกเขาดวยกัน
3.3) นําผลลัพธจากขอ 3.2) มาหารดวย 5
4. ตัวอยางที่ 3 แสดงการวิเคราะหและกําหนดรายละเอียดของการหาคา X เมื่อ X คือจํานวนเต็มจํานวน
หนึ่งในกลุมจํานวนเต็ม 5 จํานวน ที่มีคาเฉลี่ยเปน 10 และจํานวนอีก 4 จํานวนไดแก 3 4 8 และ 12
จากองคประกอบในการวิเคราะหและกําหนดรายละเอียดของปญหา
(1) การระบุขอมูลเขา
จากโจทยขอมูลเขา ไดแก
1.1) จํานวนอีก 4 จํานวน คือ 3 4 8 12
1.2) คาเฉลี่ยของจํานวนทั้ง 5 จํานวน คือ 10
(2) การระบุขอมูลออก
จากโจทยสิ่งที่เปนผลลัพธ คือ คา X
(3) การกําหนดวิธีประมวลผล
จากโจทยและความหมายของ “คาเฉลี่ย” เราสามารถสรุปขั้นตอนของการประมวลผลไดดังนี้
3.1) หาคาผลรวมของจํานวนเต็มทั้ง 5 โดยนําคาเฉลี่ยคูณดวยจํานวนของเลขจํานวนเต็ม
นั่นคือ 10 x 5 = 50
3.2) จากความหมายของ “ผลรวม” จะได 3+4+8+12+X = 50
3.3) แกสมการ 27+X = 50 (จะได X = 23 ซึ่งคือผลลัพธ)
การเลือกเครื่องมือและออกแบบขั้นตอนวิธี
การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) ขั้นตอน
นี้เปนขั้นตอนของการวางแผนในการแกปญหาอยางละเอียดถี่ถวน หลังจากที่เราทําความเขาใจกับ
ปญหา พิจารณาขอมูลและเงื่อนไขที่มีอยู และสิ่งที่ตองการหาในขั้นตอนที่ 1 แลว เราสามารถคาดคะเน
วิธการที่จะใชในการแกปญหา ขั้นตอนนี้จําเปนตองอาศัยประสบการณของผูแกปญหาเปนหลัก หากผู
ี
แกปญหาเคยพบกับปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัติมา
5. ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่ใชในการแกปญหา โดยพิจารณาความเหมาะสม
ระหวางเครื่องมือกับเงื่อนไขตางๆ ของปญหาซึ่งหมายรวมถึงความสามารถของเครื่องมือในการ
แกปญหาดังกลาว และสิ่งที่สําคัญคือความคุนเคยในการใชงานเครื่องมือนั้นๆ ของผูแกปญหา
อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวา
ขั้นตอนวิธี (algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหา
ตองวางแผนวาจะใชเครื่องมือดังกลาวเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด การออกแบบขั้นตอนวิธีใน
การแกปญหา ผูแกปญหาควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอ
ความเขาใน เชน ผังงาน (flowchart) ที่จําลองขั้นตอนวิธีการแกปญหาในรูปของสัญลักษณ รหัสลําลอง
(pseudo code) ซึ่งเปนการจําลองขั้นตอนวิธีการแกปญหาในรูปของคําบรรยาย การใชเครื่องมือชวย
ออกแบบดังกลาวนอกจากแสดงกระบวนการทีชัดเจนแลว ยังชวยใหผูแกปญหาสามารถหาขอผิดพลาด
่
ของวิธีการที่ใชไดงายและแกไขไดอยางรวดเร็ว
การดําเนินการแกปญหา
การดําเนินการแกปญหา (Implementation) หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอย
แลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใชเครื่องมือที่ไดเลือกไว หากการแกปญหาดังกลาว
ใชคอมพิวเตอรเขามาชวยงาน ขั้นตอนนี้ก็เปนการใชโปรแกรมสําเร็จหรือใชภาษาคอมพิวเตอรเขียน
โปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับเครื่องมือที่เลือกใชซึ่งผูแกปญหาตองศึกษาให
เขาใจและเชี่ยวชาญ ในขณะที่ดําเนินการหากพบแนวทางที่ดีกวาที่ออกแบบไวก็สามารถปรับเปลี่ยนได
การตรวจสอบและปรับปรุง
การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบให
แนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตองตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับ
รายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจวาสามารถรองรับขอมุเขาไดใน
ทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการแกปญหานี้ไดผลลัพธ
ที่ดีที่สุด
ขั้นตอนทั้ง 4 ขั้นตอนดังกลาวขางตน เปนเสมือนขั้นบันได (stair) ที่ทําใหมนุษยสามารถ
ประสบความสําเร็จในการแกปญหาตางๆ ได รวมทั้งการเขียนหรือพัฒนาโปรแกรมคอมพิวเตอรเพื่อ
แกปญหาก็ตองใชกระบวนการตามขั้นตอนทั้ง 4 นี้เชนกัน
6. 2. การจําลองความคิด
ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหา
เปนไปไดโดยงาย ผูที่สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณความรู และ
ความมีเหตุผลแลว ยังควรรูจักวางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย
การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การจําลองความคิด
ออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดี โดยเฉพาะปญหาที่
ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบ
เพื่อใหผูที่เกียวของไดเขาใจและสามารถปฏิบัติตามในแนวทางเดียวกัน
่
ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการกอสราง ซึ่งจําเปนตองมีแบบแปลนเปน
เครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการ
วาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวางผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จ
กอนที่จะลงมือกอสราง โดยผานการตรวจสอบ ทบทวนและพิจารณาจากผูเที่ยวของหลายฝาย เมื่อเห็น
วาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่พอใจ ก็จะพิจารณา
แกไขแบบแปลนสวนนั้นๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการซอมแซม
หรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบ
แปลนจึงเปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเ กี่ยวของอื่นๆ เปนอยางมาก เพราะ
ประหยัดเวลา คาใชจายและเขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คือขอตกลงใหสรางอาคาร
ของผูจางกับผูรับจางที่อยูในรูปแบบกะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยาง
ยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสรางอีกดวย
เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลาย
อยาง แตพอสรุปไดเปน 2 ลักษณะ คือ
ขอความหรือคําบรรยาย
เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอน
การทํางานของการแกปญหาแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได
ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
7. (1) จอดรถหลบขางทาง
(2) คลายสกรูยึดลอ
(3) นําแมแรงออกยกรถ
(4) ถอดลอออก นํายางอะไหลมาเปลี่ยน
(5) ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม
(6) คลายแมแรง เก็บแมแรง
สัญลักษณ
เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐาน
แหงชาติอเมริกา (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปน
มาตรฐานแลว สามารถนําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียด รูปแบบและความหมายที่
ควรทราบตามตารางตอไปนี้
8. ตารางที่ 2 ความหมายของสัญลักษณ
สัญลักษณ ชื่อเรียก ความหมาย
การทํางานดวยมือ แทนจุดที่มีการทํางานดวยแรงคน
(manual operation)
การนําขอมูลเขา – ออกโดยทั่วไป แทนจุดที่จํานําขอมูลเขาหรือออกจากระบบ
คอมพิวเตอรโดยไมระบุชนิดของอุปกรณ
(general input/output)
แถบบันทึกขอมูล แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม
ดวยแถบบันทึกขอมูล
(magnetic tape)
จานบันทึกขอมูล แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม
ดวยจานบันทึกขอมูล
(magnetic disk)
การนําขอมูลเขาดวยมือ แทนจุดที่จะนําขอมูลเขาดวยมือ
(manual input)
การแสดงขอมูล แทนจุดที่แสดงขอมูลดวยจอภาพ
(display)
การทําเอกสาร แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูล
ดวยเครื่องพิมพ
(document)
การตัดสินใจ แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง
(decision)
การปฏิบัติงาน แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง
(process)
การเตรียมการ แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ
(preparation)
การเรียกโปรแกรมภายนอก แทนจุดเรียกใชโปรแกรมยอยที่ไมไดอยูใน
โปรแกรมนั้น
(external subroutine)
การเรียกโปรแกรมภายใน แทนจุดเรียกใชโปรแกรมยอยที่อยูในโปรแกรม
นั้น
(internal subroutine)
9. การเรียงขอมูล แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด
(sort)
ทิศทาง แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติ
ตอเนื่องกันตามหัวลูกศรชี้
(flow line)
หมายเหตุ แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมาย
เหตุของจุดตางๆ ที่แสดงในผังงานดวย
(annotation) สัญลักษณไมชัดเจน
การติดตอทางไกล แทนชวงที่มีการติดตอหรือยายขอมูลดวยระบบ
การติดตอทางไกล
(communication link)
จุดเชื่อมตอ แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณ
เพื่อใหดูงาย
(connector)
จุดเชื่อมตอหนากระดาษ แทนจุดเชื่อมตอของผังงานที่อยูคนละ
หนากระดาษ
(off page connector)
เริ่มตนและลงทาย แทนจุดเริ่มตนและลงทายของผังงานของ
โปรแกรมหลักและโปรแกรมยอย
(terminal)
10. ตัวอยางที่ 5 การวางแผนการไปโรงเรียน
การจําลองความคิดเปนขอความ
เริ่มตน
ตื่นนอน
อาบน้ํา
ไปโรงเรียน
จบ
การจําลองความคิดเปนสัญลักษณ
เริ่มตน
ตื่นนอน
อาบน้ําแตงตัว
ไปโรงเรียน
จบ
11. ตัวอยางที่ 6 การจําลองความคิดในการหาผลบวกของ 1, 2, 3, …, 20 (นั่นคือ จะหาคา 1+2+3+…+20)
การจําลองความคิดเปนขอความ
เริ่มตน
1. กําหนดให N มีคาเริ่มตนเปน 0
2. กําหนดให K มีคาเริ่มตนเปน 1
3. นําคา K มารวมกับคา N เดิม ไดผลลัพธเทาไรไปเก็บไวที่ N
4. นําคา 1 มารวมกับคา K เดิม ไดผลลัพธเทาไรไปเก็บไวที่ K
5. เปรียบเทียบคา K กับ 20 ถา K นอยกวาหรือเทากับ 20 ใหวนกลับไปทําใน
ขั้นที่ 3 และทําคําสั่งถัดลงมาตามลําดับ แตถา K มากกวา 20 ใหแสดง
คําตอบ
จบ
การจําลองความคิดเปนสัญลักษณ
เริ่มตน
N=0
K=1
พิมพผลลัพธ
จบ
K > 20
K = K+1
12. N = N+K
จริง
เท็จ
3. การเขียนโปรแกรม
จากการศึกษาหลักการขั้นตอนการแกปญหาในหัวขอที่ 1 และ 2 ที่ ผานมา หลังจากที่เรา
สามารถวิเคราะหปญหา และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอน
ตอไปคือการลงมือแกปญหาตามขั้นตอนที่ออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หาก
เครื่องมือที่นักเรียนเลือกคือภาษาคอมพิวเตอร ขั้นตอนในการลงมือแกปญหาก็คือขั้นตอนของการเขียน
โปรแกรมคอมพิวเตอรซึ่ง ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร
13. การเขียนโปรแกรม (Programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนด
โครงสรางของขอมูล และกําหนดขั้นตอนวิธีเพื่อใชแกปญหาตามที่ไดออกแบบไว โดยอาศัยหลักเกณฑ
การเขียนโปรแกรมคอมพิวเตอรของแตละภาษา
กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาคอมพิวเตอรที่จะนํามาใช
ชวยงานโดยพิจารณาจากปจจัยตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียน
โปรแกรม สภาพแวดลอมในการทํางานของระบบคอมพิวเตอร เปนตน เนื่องจากในปจจุบันมี
ภาษาคอมพิวเตอรใหเลือกใชไดหลายภาษา เชน ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย
เปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงานที่แตกตางกัน แตทุกภาษาจะตองมี
โครงสรางควบคุมหลักทั้ง 3 แบบ ไดแก โครงสรางแบบลําดับ (sequential structure) โครงสรางแบบมี
ทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition structure)
โครงสรางแบบลําดับ (Sequential structure)
คือ โครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละขั้นตอนจะถูก
ประมวลผลเพียงครั้งเดียวทานั้น สามารถแสดงการทํางานของโครงสรางนี้ โดยใชผังงานไดดังรูปที่ 1
คําสั่งที่ 1
คําสั่งที่ 2
คําสั่งที่ n
14. รูปที่ 1 การทํางานของโครงสรางแบบลําดับ
โครงสรางแบบมีทางเลือก (Selection structure)
คือ โครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจเพื่อเลือกวิธีการ
ประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมีทางเลือก 2 ทาง
หรือมากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทาง เราเรียกชื่อวาโครงสรางแบบ if…then…else และ
โครงสรางที่มีทางเลือกมากกวา 2 ทาง เราเรียกชื่อวา โครงสรางแบบ case ซึ่งสามารถแสดงการทํางาน
ของโครงสรางนี้โดยใชผังงานไดดังรูปที่ 2 และ 3
เงือนไข
่
คําสั่ง
คําสั่ง
จริง
15. เท็จ
รูปที่ 2 การทํางานของโครงสรางแบบมีทางเลือก if…then…else
กรณีที่ 4
เงื่อนไข
คําสั่ง
คําสั่ง
คําสั่ง
คําสั่ง
...
17. โครงสรางแบบทําซ้ํา (Repetition structure)
คือ โครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1 ครั้ง ทั้งนี้
ขึ้นอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะ
การทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก
แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไข
เปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานลักษณะนี้วา
การทําซ้ําแบบ do while
แบบที่ทํากิจกรรมซ้ําเรื่อยๆ จนกระทั่งเงื่อนไขที่กําหนดเปนจริงแลวจึงหยุดการทํางาน โดย
แตละครั้งที่เสร็จสิ้นการดําเนินการแตละรอบจะตองมีการตรวจสอบเงื่อนไข เรียกการทําซ้ํา
ลักษณะนี้วา การทําซ้ําแบบ do until
ผังงานแสดงขั้นตอนการทํางานของโครงสรางแบบทําซ้ําทั้งสองแบบ แสดงดังรูปที่ 4 และ 5
เงื่อนไข
คําสั่ง
จริง
เท็จ
คําสั่ง
รูปที่ 4 การทํางานของการทําซ้ําแบบ do while
18. เงื่อนไข
คําสั่ง
เท็จ
คําสั่ง
จริง
รูปที่ 5 การทํางานของการทําซ้ําแบบ do until
ตัวอยางที่ 7 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ
สัญลักษณ
เริ่มตน
กําหนดคาเริ่มตน
ผลบวก (sum) = 0
กําหนดคาเริ่มตน
ตัวนับจํานวนขอมูลเขา (N) =1
19. คํานวณคาเฉลี่ยเก็บในตัวแปร A
A = sum / 5
จบ
N≤5
จริง
เท็จ
รับตัวเลขเปนขอมูลเขาทีละตัว
เก็บในตัวแปรชื่อ data
เพิ่มคาผลบวก
sum = sum + data
เพิ่มคาตัวนับจํานวน
N=N+1