หลักการแก้ปัญหา

627 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
627
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

หลักการแก้ปัญหา

  1. 1. หลักการแกปญหา กับภาษาคอมพิวเตอร รายวิชา ง40102 หลักการแกปญหาและการโปรแกรม1.หลักการแกปญหา ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงานการเงิน หรือแมแตการเลนเกม เมื่อพบกับปญหา แตละคนมีวิธีที่จะจัดการหรือแกปญหาเหลานั้นแตกตางกันไป ซึ่งแตละวิธีการอาจใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ขึ้นอยูกับความรู ความสามารถ และประสบการณของบุคคลผูนั้น อยางไรก็ตาม หากเรานําวิธีการแกปญหาตางวิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎีซึ่งมีรูปแบบที่แนนอนได และบางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่เราจะศึกษาตอไป ลองพิจารณาปญหาตอไปนี้ตัวอยางที่ 1 เกมทายใจ คือเกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่งคือ ผูกําหนดเปนคนกําหนดเลข 3 ตัวที่ไมซ้ํากัน โดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือผูทาย เปนผูทายตัวเลข 3 ตัวที่ไมซ้ํากันที่ผูกําหนดไดกําหนดไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตองใหรายละเอียดวาตัวเลขทีทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตอง ่
  2. 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. 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. 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. 5. ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่ใชในการแกปญหา โดยพิจารณาความเหมาะสมระหวางเครื่องมือกับเงื่อนไขตางๆ ของปญหาซึ่งหมายรวมถึงความสามารถของเครื่องมือในการแกปญหาดังกลาว และสิ่งที่สําคัญคือความคุนเคยในการใชงานเครื่องมือนั้นๆ ของผูแกปญหา อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวาขั้นตอนวิธี (algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหาตองวางแผนวาจะใชเครื่องมือดังกลาวเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด การออกแบบขั้นตอนวิธีในการแกปญหา ผูแกปญหาควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอความเขาใน เชน ผังงาน (flowchart) ที่จําลองขั้นตอนวิธีการแกปญหาในรูปของสัญลักษณ รหัสลําลอง(pseudo code) ซึ่งเปนการจําลองขั้นตอนวิธีการแกปญหาในรูปของคําบรรยาย การใชเครื่องมือชวยออกแบบดังกลาวนอกจากแสดงกระบวนการทีชัดเจนแลว ยังชวยใหผูแกปญหาสามารถหาขอผิดพลาด ่ของวิธีการที่ใชไดงายและแกไขไดอยางรวดเร็ว การดําเนินการแกปญหา การดําเนินการแกปญหา (Implementation) หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอยแลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใชเครื่องมือที่ไดเลือกไว หากการแกปญหาดังกลาวใชคอมพิวเตอรเขามาชวยงาน ขั้นตอนนี้ก็เปนการใชโปรแกรมสําเร็จหรือใชภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับเครื่องมือที่เลือกใชซึ่งผูแกปญหาตองศึกษาใหเขาใจและเชี่ยวชาญ ในขณะที่ดําเนินการหากพบแนวทางที่ดีกวาที่ออกแบบไวก็สามารถปรับเปลี่ยนได การตรวจสอบและปรับปรุง การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตองตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจวาสามารถรองรับขอมุเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการแกปญหานี้ไดผลลัพธที่ดีที่สุด ขั้นตอนทั้ง 4 ขั้นตอนดังกลาวขางตน เปนเสมือนขั้นบันได (stair) ที่ทําใหมนุษยสามารถประสบความสําเร็จในการแกปญหาตางๆ ได รวมทั้งการเขียนหรือพัฒนาโปรแกรมคอมพิวเตอรเพื่อแกปญหาก็ตองใชกระบวนการตามขั้นตอนทั้ง 4 นี้เชนกัน
  6. 6. 2. การจําลองความคิด ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณความรู และความมีเหตุผลแลว ยังควรรูจักวางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การจําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดี โดยเฉพาะปญหาที่ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบเพื่อใหผูที่เกียวของไดเขาใจและสามารถปฏิบัติตามในแนวทางเดียวกัน ่ ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการกอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวางผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบ ทบทวนและพิจารณาจากผูเที่ยวของหลายฝาย เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่พอใจ ก็จะพิจารณาแกไขแบบแปลนสวนนั้นๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบแปลนจึงเปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเ กี่ยวของอื่นๆ เปนอยางมาก เพราะประหยัดเวลา คาใชจายและเขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คือขอตกลงใหสรางอาคารของผูจางกับผูรับจางที่อยูในรูปแบบกะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยางยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสรางอีกดวย  เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลายอยาง แตพอสรุปไดเปน 2 ลักษณะ คือ ขอความหรือคําบรรยาย เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอนการทํางานของการแกปญหาแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ไดตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
  7. 7. (1) จอดรถหลบขางทาง (2) คลายสกรูยึดลอ (3) นําแมแรงออกยกรถ (4) ถอดลอออก นํายางอะไหลมาเปลี่ยน (5) ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม (6) คลายแมแรง เก็บแมแรง สัญลักษณ เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐานแหงชาติอเมริกา (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปนมาตรฐานแลว สามารถนําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียด รูปแบบและความหมายที่ควรทราบตามตารางตอไปนี้
  8. 8. ตารางที่ 2 ความหมายของสัญลักษณ สัญลักษณ ชื่อเรียก ความหมาย การทํางานดวยมือ แทนจุดที่มีการทํางานดวยแรงคน (manual operation) การนําขอมูลเขา – ออกโดยทั่วไป แทนจุดที่จํานําขอมูลเขาหรือออกจากระบบ คอมพิวเตอรโดยไมระบุชนิดของอุปกรณ (general input/output) แถบบันทึกขอมูล แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม ดวยแถบบันทึกขอมูล (magnetic tape) จานบันทึกขอมูล แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม ดวยจานบันทึกขอมูล (magnetic disk) การนําขอมูลเขาดวยมือ แทนจุดที่จะนําขอมูลเขาดวยมือ (manual input) การแสดงขอมูล แทนจุดที่แสดงขอมูลดวยจอภาพ (display) การทําเอกสาร แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูล ดวยเครื่องพิมพ (document) การตัดสินใจ แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง (decision) การปฏิบัติงาน แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง (process) การเตรียมการ แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ (preparation) การเรียกโปรแกรมภายนอก แทนจุดเรียกใชโปรแกรมยอยที่ไมไดอยูใน โปรแกรมนั้น (external subroutine) การเรียกโปรแกรมภายใน แทนจุดเรียกใชโปรแกรมยอยที่อยูในโปรแกรม นั้น (internal subroutine)
  9. 9. การเรียงขอมูล แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด(sort)ทิศทาง แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติ ตอเนื่องกันตามหัวลูกศรชี้(flow line)หมายเหตุ แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมาย เหตุของจุดตางๆ ที่แสดงในผังงานดวย(annotation) สัญลักษณไมชัดเจนการติดตอทางไกล แทนชวงที่มีการติดตอหรือยายขอมูลดวยระบบ การติดตอทางไกล(communication link)จุดเชื่อมตอ แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณ เพื่อใหดูงาย(connector)จุดเชื่อมตอหนากระดาษ แทนจุดเชื่อมตอของผังงานที่อยูคนละ หนากระดาษ(off page connector)เริ่มตนและลงทาย แทนจุดเริ่มตนและลงทายของผังงานของ โปรแกรมหลักและโปรแกรมยอย(terminal)
  10. 10. ตัวอยางที่ 5 การวางแผนการไปโรงเรียน การจําลองความคิดเปนขอความ เริ่มตน ตื่นนอน อาบน้ํา ไปโรงเรียน จบ การจําลองความคิดเปนสัญลักษณ เริ่มตน ตื่นนอน อาบน้ําแตงตัว ไปโรงเรียน จบ
  11. 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. 12. N = N+Kจริงเท็จ3. การเขียนโปรแกรม จากการศึกษาหลักการขั้นตอนการแกปญหาในหัวขอที่ 1 และ 2 ที่ ผานมา หลังจากที่เราสามารถวิเคราะหปญหา และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอนตอไปคือการลงมือแกปญหาตามขั้นตอนที่ออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หากเครื่องมือที่นักเรียนเลือกคือภาษาคอมพิวเตอร ขั้นตอนในการลงมือแกปญหาก็คือขั้นตอนของการเขียนโปรแกรมคอมพิวเตอรซึ่ง ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร
  13. 13. การเขียนโปรแกรม (Programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของขอมูล และกําหนดขั้นตอนวิธีเพื่อใชแกปญหาตามที่ไดออกแบบไว โดยอาศัยหลักเกณฑการเขียนโปรแกรมคอมพิวเตอรของแตละภาษา กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาคอมพิวเตอรที่จะนํามาใชชวยงานโดยพิจารณาจากปจจัยตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบคอมพิวเตอร เปนตน เนื่องจากในปจจุบันมีภาษาคอมพิวเตอรใหเลือกใชไดหลายภาษา เชน ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟายเปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงานที่แตกตางกัน แตทุกภาษาจะตองมีโครงสรางควบคุมหลักทั้ง 3 แบบ ไดแก โครงสรางแบบลําดับ (sequential structure) โครงสรางแบบมีทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition structure) โครงสรางแบบลําดับ (Sequential structure) คือ โครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวทานั้น สามารถแสดงการทํางานของโครงสรางนี้ โดยใชผังงานไดดังรูปที่ 1 คําสั่งที่ 1 คําสั่งที่ 2 คําสั่งที่ n
  14. 14. รูปที่ 1 การทํางานของโครงสรางแบบลําดับ โครงสรางแบบมีทางเลือก (Selection structure) คือ โครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจเพื่อเลือกวิธีการประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมีทางเลือก 2 ทางหรือมากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทาง เราเรียกชื่อวาโครงสรางแบบ if…then…else และโครงสรางที่มีทางเลือกมากกวา 2 ทาง เราเรียกชื่อวา โครงสรางแบบ case ซึ่งสามารถแสดงการทํางานของโครงสรางนี้โดยใชผังงานไดดังรูปที่ 2 และ 3 เงือนไข ่ คําสั่ง คําสั่งจริง
  15. 15. เท็จ รูปที่ 2 การทํางานของโครงสรางแบบมีทางเลือก if…then…else กรณีที่ 4 เงื่อนไข คําสั่ง คําสั่ง คําสั่ง คําสั่ง...
  16. 16. กรณีที่ 1กรณีที่ 2กรณีที่ 3 รูปที่ 3 การทํางานของโครงสรางแบบมีทางเลือก case
  17. 17.  โครงสรางแบบทําซ้ํา (Repetition structure) คือ โครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1 ครั้ง ทั้งนี้ขึ้นอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก  แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไข เปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานลักษณะนี้วา การทําซ้ําแบบ do while  แบบที่ทํากิจกรรมซ้ําเรื่อยๆ จนกระทั่งเงื่อนไขที่กําหนดเปนจริงแลวจึงหยุดการทํางาน โดย แตละครั้งที่เสร็จสิ้นการดําเนินการแตละรอบจะตองมีการตรวจสอบเงื่อนไข เรียกการทําซ้ํา ลักษณะนี้วา การทําซ้ําแบบ do untilผังงานแสดงขั้นตอนการทํางานของโครงสรางแบบทําซ้ําทั้งสองแบบ แสดงดังรูปที่ 4 และ 5 เงื่อนไข คําสั่งจริงเท็จ คําสั่ง รูปที่ 4 การทํางานของการทําซ้ําแบบ do while
  18. 18. เงื่อนไข คําสั่งเท็จ คําสั่งจริง รูปที่ 5 การทํางานของการทําซ้ําแบบ do untilตัวอยางที่ 7 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ สัญลักษณ เริ่มตน กําหนดคาเริ่มตน ผลบวก (sum) = 0 กําหนดคาเริ่มตน ตัวนับจํานวนขอมูลเขา (N) =1
  19. 19. คํานวณคาเฉลี่ยเก็บในตัวแปร A A = sum / 5 จบ N≤5จริงเท็จ รับตัวเลขเปนขอมูลเขาทีละตัว เก็บในตัวแปรชื่อ data เพิ่มคาผลบวก sum = sum + data เพิ่มคาตัวนับจํานวน N=N+1

×