SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
หลักการแกปญหา
                                                 กับภาษาคอมพิวเตอร
                                             รายวิชา ง40102 หลักการแกปญหาและการโปรแกรม




1.หลักการแกปญหา
             ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน
การเงิน หรือแมแตการเลนเกม เมื่อพบกับปญหา แตละคนมีวิธีที่จะจัดการหรือแกปญหาเหลานั้น
แตกตางกันไป          ซึ่งแตละวิธีการอาจใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย   ทั้งนี้ขึ้นอยูกับ
ความรู ความสามารถ และประสบการณของบุคคลผูนั้น อยางไรก็ตาม หากเรานําวิธีการแกปญหาตาง
วิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎีซึ่งมีรูปแบบที่แนนอนได และ
บางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่เราจะศึกษา
ตอไป ลองพิจารณาปญหาตอไปนี้

ตัวอยางที่ 1 เกมทายใจ

       คือเกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่งคือ ผูกําหนด
เปนคนกําหนดเลข 3 ตัวที่ไมซ้ํากัน โดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือผูทาย เปนผูทาย
ตัวเลข 3 ตัวที่ไมซ้ํากันที่ผูกําหนดไดกําหนดไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตอง
ใหรายละเอียดวาตัวเลขทีทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตอง
                          ่
บอกวาถูกตําแหนงกี่ตัว เชน ถาตัวเลขที่กําหนดไวเปน 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 ขั้นตอน ดังนี้



 การวิเคราะหและกําหนดรายละเอียดของปญหา
การวิเคราะหและกําหนดรายละเอียดของปญหา (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
ตัวอยางที่ 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 แลว เราสามารถคาดคะเน
วิธการที่จะใชในการแกปญหา ขั้นตอนนี้จําเปนตองอาศัยประสบการณของผูแกปญหาเปนหลัก หากผู
    ี
แกปญหาเคยพบกับปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัติมา
ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่ใชในการแกปญหา โดยพิจารณาความเหมาะสม
ระหวางเครื่องมือกับเงื่อนไขตางๆ          ของปญหาซึ่งหมายรวมถึงความสามารถของเครื่องมือในการ
แกปญหาดังกลาว และสิ่งที่สําคัญคือความคุนเคยในการใชงานเครื่องมือนั้นๆ ของผูแกปญหา

                  อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวา
ขั้นตอนวิธี (algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหา
ตองวางแผนวาจะใชเครื่องมือดังกลาวเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด การออกแบบขั้นตอนวิธีใน
การแกปญหา ผูแกปญหาควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอ
ความเขาใน เชน ผังงาน (flowchart) ที่จําลองขั้นตอนวิธีการแกปญหาในรูปของสัญลักษณ รหัสลําลอง
(pseudo code) ซึ่งเปนการจําลองขั้นตอนวิธีการแกปญหาในรูปของคําบรรยาย การใชเครื่องมือชวย
ออกแบบดังกลาวนอกจากแสดงกระบวนการทีชัดเจนแลว ยังชวยใหผูแกปญหาสามารถหาขอผิดพลาด
                                               ่
ของวิธีการที่ใชไดงายและแกไขไดอยางรวดเร็ว



 การดําเนินการแกปญหา

               การดําเนินการแกปญหา (Implementation) หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอย
แลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใชเครื่องมือที่ไดเลือกไว หากการแกปญหาดังกลาว
ใชคอมพิวเตอรเขามาชวยงาน ขั้นตอนนี้ก็เปนการใชโปรแกรมสําเร็จหรือใชภาษาคอมพิวเตอรเขียน
โปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับเครื่องมือที่เลือกใชซึ่งผูแกปญหาตองศึกษาให
เขาใจและเชี่ยวชาญ ในขณะที่ดําเนินการหากพบแนวทางที่ดีกวาที่ออกแบบไวก็สามารถปรับเปลี่ยนได



 การตรวจสอบและปรับปรุง

               การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบให
แนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตองตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับ
รายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจวาสามารถรองรับขอมุเขาไดใน
ทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการแกปญหานี้ไดผลลัพธ
ที่ดีที่สุด

             ขั้นตอนทั้ง 4 ขั้นตอนดังกลาวขางตน เปนเสมือนขั้นบันได (stair) ที่ทําใหมนุษยสามารถ
ประสบความสําเร็จในการแกปญหาตางๆ ได รวมทั้งการเขียนหรือพัฒนาโปรแกรมคอมพิวเตอรเพื่อ
แกปญหาก็ตองใชกระบวนการตามขั้นตอนทั้ง 4 นี้เชนกัน
2. การจําลองความคิด
            ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหา
เปนไปไดโดยงาย ผูที่สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณความรู และ
ความมีเหตุผลแลว ยังควรรูจักวางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย

                   การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การจําลองความคิด
ออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดี โดยเฉพาะปญหาที่
ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบ
เพื่อใหผูที่เกียวของไดเขาใจและสามารถปฏิบัติตามในแนวทางเดียวกัน
                 ่

              ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการกอสราง ซึ่งจําเปนตองมีแบบแปลนเปน
เครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการ
วาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวางผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จ
กอนที่จะลงมือกอสราง โดยผานการตรวจสอบ ทบทวนและพิจารณาจากผูเที่ยวของหลายฝาย เมื่อเห็น
วาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่พอใจ ก็จะพิจารณา
แกไขแบบแปลนสวนนั้นๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการซอมแซม
หรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบ
แปลนจึงเปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเ กี่ยวของอื่นๆ เปนอยางมาก เพราะ
ประหยัดเวลา คาใชจายและเขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คือขอตกลงใหสรางอาคาร
ของผูจางกับผูรับจางที่อยูในรูปแบบกะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยาง
ยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสรางอีกดวย
                                    

             เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลาย
อยาง แตพอสรุปไดเปน 2 ลักษณะ คือ


 ขอความหรือคําบรรยาย

        เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอน
การทํางานของการแกปญหาแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได

ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
(1) จอดรถหลบขางทาง

       (2) คลายสกรูยึดลอ

       (3) นําแมแรงออกยกรถ

       (4) ถอดลอออก นํายางอะไหลมาเปลี่ยน

       (5) ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม

       (6) คลายแมแรง เก็บแมแรง


 สัญลักษณ

          เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐาน
แหงชาติอเมริกา (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปน
มาตรฐานแลว สามารถนําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียด รูปแบบและความหมายที่
ควรทราบตามตารางตอไปนี้
ตารางที่ 2 ความหมายของสัญลักษณ


      สัญลักษณ                   ชื่อเรียก                               ความหมาย
                       การทํางานดวยมือ                  แทนจุดที่มีการทํางานดวยแรงคน

                       (manual operation)
                       การนําขอมูลเขา – ออกโดยทั่วไป   แทนจุดที่จํานําขอมูลเขาหรือออกจากระบบ
                                                         คอมพิวเตอรโดยไมระบุชนิดของอุปกรณ
                       (general input/output)
                       แถบบันทึกขอมูล                   แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม
                                                         ดวยแถบบันทึกขอมูล
                       (magnetic tape)
                       จานบันทึกขอมูล                   แทนจุดที่นําขอมูลเขาหรือออกจากโปรแกรม
                                                         ดวยจานบันทึกขอมูล
                       (magnetic disk)
                       การนําขอมูลเขาดวยมือ           แทนจุดที่จะนําขอมูลเขาดวยมือ

                       (manual input)
                       การแสดงขอมูล                     แทนจุดที่แสดงขอมูลดวยจอภาพ

                       (display)
                       การทําเอกสาร                      แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูล
                                                         ดวยเครื่องพิมพ
                       (document)
                       การตัดสินใจ                       แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง

                       (decision)
                       การปฏิบัติงาน                     แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง

                       (process)
                       การเตรียมการ                      แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ

                       (preparation)
                       การเรียกโปรแกรมภายนอก             แทนจุดเรียกใชโปรแกรมยอยที่ไมไดอยูใน
                                                         โปรแกรมนั้น
                       (external subroutine)
                       การเรียกโปรแกรมภายใน              แทนจุดเรียกใชโปรแกรมยอยที่อยูในโปรแกรม
                                                         นั้น
                       (internal subroutine)
การเรียงขอมูล           แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด

(sort)
ทิศทาง                   แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติ
                         ตอเนื่องกันตามหัวลูกศรชี้
(flow line)
หมายเหตุ                 แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมาย
                         เหตุของจุดตางๆ ที่แสดงในผังงานดวย
(annotation)             สัญลักษณไมชัดเจน
การติดตอทางไกล          แทนชวงที่มีการติดตอหรือยายขอมูลดวยระบบ
                         การติดตอทางไกล
(communication link)
จุดเชื่อมตอ             แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณ
                         เพื่อใหดูงาย
(connector)
จุดเชื่อมตอหนากระดาษ   แทนจุดเชื่อมตอของผังงานที่อยูคนละ
                         หนากระดาษ
(off page connector)
เริ่มตนและลงทาย        แทนจุดเริ่มตนและลงทายของผังงานของ
                         โปรแกรมหลักและโปรแกรมยอย
(terminal)
ตัวอยางที่ 5 การวางแผนการไปโรงเรียน


        การจําลองความคิดเปนขอความ

                เริ่มตน

                           ตื่นนอน

                           อาบน้ํา

                           ไปโรงเรียน

                จบ


        การจําลองความคิดเปนสัญลักษณ

                                           เริ่มตน

                                           ตื่นนอน

                                        อาบน้ําแตงตัว

                                         ไปโรงเรียน

                                             จบ
ตัวอยางที่ 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
N = N+K

จริง

เท็จ




3. การเขียนโปรแกรม
           จากการศึกษาหลักการขั้นตอนการแกปญหาในหัวขอที่ 1 และ 2 ที่ ผานมา หลังจากที่เรา
สามารถวิเคราะหปญหา และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอน
ตอไปคือการลงมือแกปญหาตามขั้นตอนที่ออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หาก
เครื่องมือที่นักเรียนเลือกคือภาษาคอมพิวเตอร ขั้นตอนในการลงมือแกปญหาก็คือขั้นตอนของการเขียน
โปรแกรมคอมพิวเตอรซึ่ง ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร
การเขียนโปรแกรม (Programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนด
โครงสรางของขอมูล และกําหนดขั้นตอนวิธีเพื่อใชแกปญหาตามที่ไดออกแบบไว โดยอาศัยหลักเกณฑ
การเขียนโปรแกรมคอมพิวเตอรของแตละภาษา

             กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาคอมพิวเตอรที่จะนํามาใช
ชวยงานโดยพิจารณาจากปจจัยตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียน
โปรแกรม สภาพแวดลอมในการทํางานของระบบคอมพิวเตอร เปนตน เนื่องจากในปจจุบันมี
ภาษาคอมพิวเตอรใหเลือกใชไดหลายภาษา เชน ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย
เปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงานที่แตกตางกัน แตทุกภาษาจะตองมี
โครงสรางควบคุมหลักทั้ง 3 แบบ ไดแก โครงสรางแบบลําดับ (sequential structure) โครงสรางแบบมี
ทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition structure)



 โครงสรางแบบลําดับ (Sequential structure)

        คือ โครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละขั้นตอนจะถูก
ประมวลผลเพียงครั้งเดียวทานั้น สามารถแสดงการทํางานของโครงสรางนี้ โดยใชผังงานไดดังรูปที่ 1


                                           คําสั่งที่ 1

                                           คําสั่งที่ 2



                                           คําสั่งที่ n
รูปที่ 1 การทํางานของโครงสรางแบบลําดับ




 โครงสรางแบบมีทางเลือก (Selection structure)

          คือ โครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจเพื่อเลือกวิธีการ
ประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมีทางเลือก 2 ทาง
หรือมากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทาง เราเรียกชื่อวาโครงสรางแบบ if…then…else และ
โครงสรางที่มีทางเลือกมากกวา 2 ทาง เราเรียกชื่อวา โครงสรางแบบ case ซึ่งสามารถแสดงการทํางาน
ของโครงสรางนี้โดยใชผังงานไดดังรูปที่ 2 และ 3




                                              เงือนไข
                                                 ่

                                               คําสั่ง



                                               คําสั่ง

จริง
เท็จ




       รูปที่ 2 การทํางานของโครงสรางแบบมีทางเลือก if…then…else




                             กรณีที่ 4


                                เงื่อนไข

                                 คําสั่ง



                                 คําสั่ง



                                 คําสั่ง



                                 คําสั่ง




...
กรณีที่ 1

กรณีที่ 2

กรณีที่ 3




            รูปที่ 3 การทํางานของโครงสรางแบบมีทางเลือก case
 โครงสรางแบบทําซ้ํา (Repetition structure)

             คือ โครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1 ครั้ง ทั้งนี้
ขึ้นอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะ
การทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก

        แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไข
         เปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานลักษณะนี้วา
         การทําซ้ําแบบ do while

        แบบที่ทํากิจกรรมซ้ําเรื่อยๆ จนกระทั่งเงื่อนไขที่กําหนดเปนจริงแลวจึงหยุดการทํางาน โดย
         แตละครั้งที่เสร็จสิ้นการดําเนินการแตละรอบจะตองมีการตรวจสอบเงื่อนไข เรียกการทําซ้ํา
         ลักษณะนี้วา การทําซ้ําแบบ do until

ผังงานแสดงขั้นตอนการทํางานของโครงสรางแบบทําซ้ําทั้งสองแบบ แสดงดังรูปที่ 4 และ 5
                                              เงื่อนไข

                                               คําสั่ง

จริง

เท็จ

                                               คําสั่ง




                            รูปที่ 4 การทํางานของการทําซ้ําแบบ do while
เงื่อนไข

                                                คําสั่ง

เท็จ

                                                คําสั่ง

จริง




                             รูปที่ 5 การทํางานของการทําซ้ําแบบ do until



ตัวอยางที่ 7 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ
              สัญลักษณ


                                                เริ่มตน

                                           กําหนดคาเริ่มตน

                                          ผลบวก (sum) = 0

                                           กําหนดคาเริ่มตน

                                     ตัวนับจํานวนขอมูลเขา (N) =1
คํานวณคาเฉลี่ยเก็บในตัวแปร A

               A = sum / 5

                    จบ

                  N≤5

จริง

เท็จ

       รับตัวเลขเปนขอมูลเขาทีละตัว

           เก็บในตัวแปรชื่อ data

              เพิ่มคาผลบวก

            sum = sum + data

            เพิ่มคาตัวนับจํานวน

                N=N+1
หลักการแก้ปัญหา

Weitere ähnliche Inhalte

Was ist angesagt?

บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
jack4212
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
Fair Kung Nattaput
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlop
Por Kung
 
การแจกแจงปกติ
การแจกแจงปกติการแจกแจงปกติ
การแจกแจงปกติ
pattya0207
 
เฉลย O net 53
เฉลย O net 53เฉลย O net 53
เฉลย O net 53
GiveAGift
 
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
ทับทิม เจริญตา
 

Was ist angesagt? (14)

บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
 
การแจกแจงปกติม.6
การแจกแจงปกติม.6การแจกแจงปกติม.6
การแจกแจงปกติม.6
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
 
การแยกตัวประกอบพหุนาม
การแยกตัวประกอบพหุนามการแยกตัวประกอบพหุนาม
การแยกตัวประกอบพหุนาม
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlop
 
การแจกแจงปกติ
การแจกแจงปกติการแจกแจงปกติ
การแจกแจงปกติ
 
พื้นที่ใต้โค้ง
พื้นที่ใต้โค้งพื้นที่ใต้โค้ง
พื้นที่ใต้โค้ง
 
1
11
1
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
เฉลย O net 53
เฉลย O net 53เฉลย O net 53
เฉลย O net 53
 
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
ตัวอย่างข้อสอบตามตัวชี้วัดณิตศาสตร์ ม6
 
Statistics 04
Statistics 04Statistics 04
Statistics 04
 

Andere mochten auch

What the F**k is Social Recruiting?
What the F**k is Social Recruiting?What the F**k is Social Recruiting?
What the F**k is Social Recruiting?
Steffi Feldmann
 
Comparison of American and European Start-Up scenes
Comparison of American and European Start-Up scenesComparison of American and European Start-Up scenes
Comparison of American and European Start-Up scenes
Steffi Feldmann
 
Introduction to Network Security
Introduction to Network SecurityIntroduction to Network Security
Introduction to Network Security
John Ely Masculino
 
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
John Ely Masculino
 
Facebook Strategy
Facebook StrategyFacebook Strategy
Facebook Strategy
Puttasak
 

Andere mochten auch (20)

Operation Management @คมชัดลึก
Operation Management @คมชัดลึก Operation Management @คมชัดลึก
Operation Management @คมชัดลึก
 
What the F**k is Social Recruiting?
What the F**k is Social Recruiting?What the F**k is Social Recruiting?
What the F**k is Social Recruiting?
 
Zest !
Zest !Zest !
Zest !
 
Motivate people getting beyond money
Motivate people getting beyond moneyMotivate people getting beyond money
Motivate people getting beyond money
 
Orientaciones didácticas para la enseñanza
Orientaciones didácticas para la enseñanzaOrientaciones didácticas para la enseñanza
Orientaciones didácticas para la enseñanza
 
Orientaciones didácticas para la enseñanza
Orientaciones didácticas para la enseñanzaOrientaciones didácticas para la enseñanza
Orientaciones didácticas para la enseñanza
 
Comparison of American and European Start-Up scenes
Comparison of American and European Start-Up scenesComparison of American and European Start-Up scenes
Comparison of American and European Start-Up scenes
 
Zest !
Zest !Zest !
Zest !
 
図書館マップアプリをオープンソースに
図書館マップアプリをオープンソースに図書館マップアプリをオープンソースに
図書館マップアプリをオープンソースに
 
Introduction to Network Security
Introduction to Network SecurityIntroduction to Network Security
Introduction to Network Security
 
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
Chapter12 - Designing System Interfaces, Controls and Security(Demo Presentat...
 
Facebook Strategy
Facebook StrategyFacebook Strategy
Facebook Strategy
 
Facebook Strategy
Facebook StrategyFacebook Strategy
Facebook Strategy
 
ビッグデータで見えてくる多摩地域図書館
ビッグデータで見えてくる多摩地域図書館ビッグデータで見えてくる多摩地域図書館
ビッグデータで見えてくる多摩地域図書館
 
Belo e sublime
Belo e sublimeBelo e sublime
Belo e sublime
 
Apresentacao naSavassi
Apresentacao naSavassiApresentacao naSavassi
Apresentacao naSavassi
 
Análise Patentária
Análise Patentária Análise Patentária
Análise Patentária
 
75706727 manual-de-reparos-filizola
75706727 manual-de-reparos-filizola75706727 manual-de-reparos-filizola
75706727 manual-de-reparos-filizola
 
Manual captacion solar
Manual captacion solarManual captacion solar
Manual captacion solar
 
Designswala Profile-01
Designswala Profile-01Designswala Profile-01
Designswala Profile-01
 

Ähnlich wie หลักการแก้ปัญหา

ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
Nattapon
 
ใบความรู้ที่ 9
ใบความรู้ที่ 9ใบความรู้ที่ 9
ใบความรู้ที่ 9
Rattana Wongphu-nga
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
Orapan Chamnan
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
JL'mind Chutimon
 
งานคอม อลิตา
งานคอม  อลิตางานคอม  อลิตา
งานคอม อลิตา
alita122
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
Orapan Chamnan
 
แผนการเรียนรู้1
แผนการเรียนรู้1แผนการเรียนรู้1
แผนการเรียนรู้1
Yoon Yoon
 
แผนการจัดการเรียนรู้ที่ 1
แผนการจัดการเรียนรู้ที่  1แผนการจัดการเรียนรู้ที่  1
แผนการจัดการเรียนรู้ที่ 1
tongcuteboy
 
แผนการจัดการเรียนรู้ที่ 1
แผนการจัดการเรียนรู้ที่  1แผนการจัดการเรียนรู้ที่  1
แผนการจัดการเรียนรู้ที่ 1
tongcuteboy
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์
เทวัญ ภูพานทอง
 
โครงงาน
โครงงานโครงงาน
โครงงาน
nook868640
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
nuknook
 
โครงร่าง งานคอม
โครงร่าง งานคอมโครงร่าง งานคอม
โครงร่าง งานคอม
Visarut Keatnima
 
โจทย์ปัญหา8.1
โจทย์ปัญหา8.1โจทย์ปัญหา8.1
โจทย์ปัญหา8.1
anusong
 

Ähnlich wie หลักการแก้ปัญหา (20)

ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
ใบความรู้ที่ 1 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
ใบความรู้ที่ 9
ใบความรู้ที่ 9ใบความรู้ที่ 9
ใบความรู้ที่ 9
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
 
Ch1
Ch1Ch1
Ch1
 
ใบความรู้ที่2
ใบความรู้ที่2ใบความรู้ที่2
ใบความรู้ที่2
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 
งานคอม อลิตา
งานคอม  อลิตางานคอม  อลิตา
งานคอม อลิตา
 
ใบความรู้ที่1.2
ใบความรู้ที่1.2ใบความรู้ที่1.2
ใบความรู้ที่1.2
 
แผนการเรียนรู้1
แผนการเรียนรู้1แผนการเรียนรู้1
แผนการเรียนรู้1
 
แผนการจัดการเรียนรู้ที่ 1
แผนการจัดการเรียนรู้ที่  1แผนการจัดการเรียนรู้ที่  1
แผนการจัดการเรียนรู้ที่ 1
 
แผนการจัดการเรียนรู้ที่ 1
แผนการจัดการเรียนรู้ที่  1แผนการจัดการเรียนรู้ที่  1
แผนการจัดการเรียนรู้ที่ 1
 
66 การนับและความน่าจะเป็น ตอนที่1_การนับเบื้องต้น
66 การนับและความน่าจะเป็น ตอนที่1_การนับเบื้องต้น66 การนับและความน่าจะเป็น ตอนที่1_การนับเบื้องต้น
66 การนับและความน่าจะเป็น ตอนที่1_การนับเบื้องต้น
 
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์
 
Dc282 interaction
Dc282 interactionDc282 interaction
Dc282 interaction
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
โครงร่าง งานคอม
โครงร่าง งานคอมโครงร่าง งานคอม
โครงร่าง งานคอม
 
โจทย์ปัญหา8.1
โจทย์ปัญหา8.1โจทย์ปัญหา8.1
โจทย์ปัญหา8.1
 
11
1111
11
 
Unit2
Unit2Unit2
Unit2
 

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

  • 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 เงื่อนไข คําสั่ง คําสั่ง คําสั่ง คําสั่ง ...
  • 16. กรณีที่ 1 กรณีที่ 2 กรณีที่ 3 รูปที่ 3 การทํางานของโครงสรางแบบมีทางเลือก case
  • 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