บทที่ 5
                                                     การจําลองความคิด




                                                                          ที่มา http://www.seubsan.net/th/images/stories/yt/p4_Cap.gif
เนื้อหา
     5.1 ขั้นตอนการพัฒนาซอฟตแวร
              o การวิเคราะหและกําหนดรายละเอียดของปญหา
              o การเลือกเครืองมือและออกแบบขั้นตอนวิธี
                            ่
              o การดําเนินการแกปญหา
              o การตรวจสอบและปรับปรุง
     5.2 การจําลองความคิด
              o ขอความหรือคําบรรยาย (Pseudo code)
              o สัญลักษณหรือแผนภาพ (Flowchart)
                    - แบบลําดับ
                    - แบบทางเลือก
                    - แบบทําซ้ํา
     5.3 การเขียนโปรแกรม
              o โครงสรางแบบลําดับ
              o โครงสรางแบบมีทางเลือก
              o โครงสรางแบบทําซ้ํา

ผลการเรียนรูที่คาดหวัง
  1. อธิบายขั้นตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธการในแตละขันตอนได
                                                  ี           ้
  2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได
  3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได
-2-

5.1 ขั้นตอนการพัฒนาซอฟตแวร

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

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

                 ตัวเลขที่ทาย                    จํานวนตัวเลขที่ถูก          จํานวนตําแหนงที่ถูก
                     123                                 1                            -
                     415                                 2                            2
                     425                                 1                            1
                     416                                 1                            1
                     715                                 2                            2
                     815                                 3                            3
                                        รูปที่ 1 ขอมูลการเลนเกมทายใจ

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

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



                                                  วิเคราะหและกําหนด
                                                 รายละเอียดของปญหา

                                               เลือกเครื่องมือ / ออกแบบ


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


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




                                        รูปที่ 2 แสดงกระบวนการแกปญหา

1) การวิเคราะหและกําหนดรายละเอียดของปญหา (State the problem)
          ขั้นตอนนี้เปนขั้นตอนแรกสุดกอนที่จะลงมือแกปญหา แตผูแกปญหามักจะมองขามความสําคัญของ
  ขั้นตอนนี้อยูเสมอ จุดประสงคของขั้นตอนนี้ คือ การทําความเขาใจกับปญหาเพื่อแยกใหออกวาขอมูลที่
  กําหนดมาในปญหาหรือเงื่อนไขของปญหาคืออะไร และสิ่งที่ตองการคืออะไร อีกทั้งวิธีการที่ใชประมวลผล ใน
  การวิเคราะหปญหาใด กลาวโดยสรุปแลวองคประกอบในการวิเคราะหมีอยู 3 องคประกอบ

           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. การระบุขอมูลเขา จากโจทยขอมูลเขา ไดแก 2.1 จํานวนอีก 4 จํานวน คือ 3 4 8 12 คาเฉลี่ย
            ของจํานวนทั้ง 5 จํานวน คือ 10
            2. การระบุขอมูลออก จากโจทยสิ่งที่เปนผลลัพธ คือ คา x
                        
            3. การกําหนดวิธีการประมวลผล จากโจทยและความหมายของ "คาเฉลี่ย" เราสามารถสรุปขั้นตอน
            ของการประมวลผลไดดังนี้
                    3.1 หาคาผลรวมของจํานวนเต็มทั้ง 5 โดยนําคาเฉลี่ยคูณดวยจํานวนของเลขจํานวนเต็ม
                          นั่นคือ 10 * 5 = 50
                    3.2 จากความหมายของ "ผลรวม" จะได 3+4+8+12+x = 50
                    3.3 แกสมการ 27 + x = 50 (จะได x = 23 ซึ่งคือผลลัพธ)

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

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

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



5.2 การจําลองความคิด

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

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

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

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


ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
        1. คลายสกรูยึดลอ
        2. จอดรถหลบขางทาง
        3. นําแมแรงออกยกรถ
        4. ถอดลอออก นํายางอะไหลมาเปลี่ยน
        5. ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม
        6. คลายแมแรง เก็บแมแรง

       หลักการทั่วไปในการเขียนรหัสเทียม
           1. สัญลักษณที่ใชในการดําเนินการทางคณิตศาสตรตางๆ จะถูกใชงานตามปกติ คือ “+” สําหรับ
                                                                
              การบวก “-” สําหรับการลบ “*” สําหรับการคูณ และ “/” สําหรับการหาร
           2. ชื่อขอมูลแทนจํานวนที่จะถูกดําเนินการ
           3. การกําหนดคาใหกับชื่อขอมูล เชน
              เมื่อเราตองการกําหนดให ขอมูล pi มีคาเทากับ 3.14 สามารถเขียนไดดวยขอความ
              pi←3.14 หรือ pi:=3.14 หรือ pi=3.14
              ในการกําหนดคาทางคอมพิวเตอรดานซายของเครื่องหมายมักใชแทน ที่เก็บขอมูล และ
              ดานขวาแทน ขอมูลที่ตองการนําไปเก็บ (ดังนั้นหากใชขอความวา 3.14=pi ถือวาไมถูกตอง
              ตามความหมายนี้)
           4. คําสงวนบางคําที่ใชในภาษาระดับสูงทั่วไปอาจถูกนํามาใช เชน Read หรือ Enter สําหรับ
              การรับขอมูลเขา และ Write หรือ Print สําหรับการแสดงขอมูลออก
           5. การเพิ่ ม หรื อ ลดระยะย อ หน า อย า งเหมาะสม เพื่ อ แสดงระดั บ ของขั้ น ตอนการทํ า งานใน
              โครงสรางควบคุมการทํางานในกลุมเดียวกัน

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

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

         1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงขั้นตอนตางๆ ในการทํางานของ
            ระบบ ชวยอธิบายลําดับการทํางานของสวนตางๆ ในระบบ เชน การนําขอมูลเขา(Input) ถูกเก็บ
            อยูที่ใดบาง ใช สื่อบัน ทึกขอ มูลแบบใด ลักษณะของการประมวลผล ตลอดจนลักษณะของ
            ผลลัพธ(Output)              ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียนโปรแกรมและผูที่
            เกี่ยวของที่ตองการทําความเขาใจการทํางานของระบบ ตัวอยางดังรูปที่ 3


                                                เอกสารขอมูล


                                           โปรแกรมปรับปรุงขอมูล



                                       แฟมขอมูล              รายงาน



                                         รูปที่ 3 ผังงานระบบ

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

ประโยชนของผังงาน
      1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางขั้นตอนในการทํางาน
          ตางๆ
      2. ใช เ ปน สื่ อ กลางในการติ ดต อ ประสานความคิ ด ระหวา งผู ที่เ กี่ ยวข อ ง เชน นั กวิ เ คราะหร ะบบ
          (systems analyst) นักเขียนโปรแกรม(programmer)
      3. ชวยในการทดสอบหรือทบทวนขั้นตอนการทํางาน เพื่อหาขอผิดพลาด
-8-

ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ

    สัญลักษณ                             ความหมาย

                          การทํางานดวยมือ ( Manual Operation ) แทนจุดที่มี
                          การทํางานดวยแรงคน



                          การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูล
                          เขาหรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ


                          แถบบันทึกขอมูล(Magnetic          tape) แทนจุดที่จะนําขอมูลเขาหรือออกจาก
                          โปรแกรมดวยแถบบันทึกขอมูล


                          จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม
                          ดวยจานบันทึกขอมูล


                          การปอนขอมูลเขาดวยมือ ( Manual Input ) แทนจุดที่จะนําขอมูลเขา
                          ดวยมือ


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


                          การทําเอกสาร ( Document ) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย
                          เครื่องพิมพ


                          การตัดสินใจ ( Decision ) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง


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

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


การเรียกโปรแกรมภายนอก (External subroutine) แทนจุดเรียกใชโปรแกรม
ยอยที่ไมไดอยูในโปรแกรมนั้น


การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่
อยูในโปรแกรมนั้น


การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด


ทิศทาง (Flow line) แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกัน
ตามหัวลูกศรชี้


หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด
ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน


การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย
ขอมูลดวยระบบติดตอทางไกล


จุดเชื่อมตอ (Connector)   แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อให
ดูงาย


จุดเชื่อมตอหนากระดาษ (Off      page     Connector)    แทนจุดเชื่อมตอของ
ผังงานที่อยูคนละหนากระดาษ


เริ่มตนและลงทาย (Terminal)        แทนจุดเริ่มตนและลงทายของผังงานของ
โปรแกรมหลักและโปรแกรมยอย
- 10 -

ตัวอยางที่ 5 การวางแผนไปโรงเรียน
        การจําลองความคิดดวยรหัสเทียม                    การจําลองความคิดเปนสัญลักษณ
        เริ่มตน
                   ตื่นนอน                                         เริ่มตน
                   อาบน้ําแตงตัว
                   ไปโรงเรียน                                       ตื่นนอน
        จบ
                                                                 อาบน้ําแตงตัว

                                                                  ไปโรงเรียน


                                                                      จบ


ตัวอยางที่ 6 การคํานวณพื้นที่รปวงกลม
                               ู
        การจําลองความคิดดวยรหัสเทียม                   การจําลองความคิดเปนสัญลักษณ
        เริ่มตน
                   รับคา radius                                  เริ่มตน
                   คํานวณพื้นที่ดวยสูตร
                       area= 22/7*radius*radius               รับคา radius
                   แสดงคา area
        จบ                                             area = 22/7 * radius * radius

                                                               แสดงคา area


                                                                    จบ
- 11 -

ตัวอยางที่ 7 การจําลองความคิดในการหาผลบวก 1,2,3,4,5,… จนถึง 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




                               N=N+K


                                K=K+1


                                           จริง
                              K≤20
                                   เท็จ
                            แสดงคา N


                                จบ
- 12 -

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

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


                                                              คําสั่งที่ 1

                                                              คําสั่งที่ 2

                                                              คําสั่งที่ 3

                                                               …….

                                                              คําสั่งที่ n


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

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



                                                                   เท็จ
                                           เงื่อนไข
                                                  จริง
                                             คําสั่ง                      คําสั่ง



                             รูปที่ 5 แสดงการทํางานของโครงสราง if…then…else…




                                                       เงื่อนไข

     กรณีท่ี 1           กรณีที่ 2              กรณีที่ 3                                 กรณีที่ n
            คําสั่ง              คําสั่ง                 คําสั่ง                    …..           คําสั่ง



                                     รูปที่ 6 แสดงการทํางานของโครงสราง case
- 14 -

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

                                     เริ่มตน

                                  เขียนจดหมาย


                                พับจดหมายใสซอง


                                   จาหนาซอง


                                 ปดซองจดหมาย


                                                         เท็จ
                                    มีแสตมป
                                           จริง
                                                                ซื้อแสตมป



                                   ติดแสตมป


                                   สงจดหมาย


                                      จบ
- 15 -

        ตัวอยางที่ 9 แสดงผังงานทีจําลองขั้นตอนวิธีของเกมหยิบลูกบอลใหอยูในรูปของสัญลักษณ โดยมีเงื่อนไขวา
                                  ่                                      
        มีลูกบอลซึ่ง มี 5 สี
                กรณีหยิบไดสีแดง         จะได 10 คะแนน
                กรณีหยิบไดสีฟา         จะได 8 คะแนน
                กรณีหยิบไดสีเขียว       จะได 6 คะแนน
                กรณีหยิบไดสีเหลือง      จะได 4 คะแนน
                กรณีหยิบไดสีสม         จะได 2 คะแนน


                                                เริ่มตน

                                           หยิบลูกบอล 1 ลูก


                                              สีของลูกบอล



     สีแดง                 สีฟา             สีเขียว             สีเหลือง                  สีสม
       ได 10 คะแนน        ได 8 คะแนน         ได 6 คะแนน          ได 4 คะแนน            ได 2 คะแนน




                                                   จบ



          5.3.3) โครงสรางแบบทําซ้า   ํ
                    โครงสรางแบบทําซ้ํา คือโครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1
ครั้ง ทังนี้ขนอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการ
        ้ ึ้
ทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก
                    แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไขเปนจริงจะ
ทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ การทํางานลักษณะนี้แบงไดเปน 2 แบบยอย ไดแก การทําซ้ําแบบ
for และแบบ while ลักษณะการทํางานของทั้งสองแบบนี้จะเหมือนกัน โดยสําหรับแบบ for นั้นมักใชกรณีที่ตองการ
กําหนดจํานวนรอบการทํางานที่ชัดเจน
                    แบบที่มีการดําเนินการกิจกรรมใดๆ กอนจํานวนหนึ่งรอบ แลวจึงคอยตรวจสอบเงื่อนไขในการทําซ้ํา
ถาเงื่อนไขเปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานแบบนี้วา การทําซ้ําแบบ
do…while ผังงานแสดงขั้นตอนการทํางานซ้ําทั้งสองแบบแสดงดังรูปที่ 7 และ 8
- 16 -




                                                             คําสั่ง

                                                                 …

                                                             คําสั่ง
                                                จริง
                                  เงื่อนไข
                                         เท็จ

                          รูปที่ 7 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while




                                    คําสั่ง

                                      …

                                    คําสั่ง

                                                 จริง
                                  เงื่อนไข
                                         เท็จ
                              รูปที่ 8 แสดงการทํางานของการทําซ้ําแบบ do…while

                  โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ขั้นตอนที่เราใชในการแกปญหานั้นเอง พิจารณา
ตัวอยางที่ 10 เปนขั้นตอนการเลือกเครื่องมือและการออกแบบขั้นตอนวิธี คือ ขั้นตอนที่ 2 ในหัวขอ 5.1 เราเลือกสราง
ผังงานมาจําลองขั้นตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดง
โครงสรางควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย
- 17 -

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

                       เริ่มตน

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


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



                                            เพิ่มคาตัวนับจํานวน
                                                  N=N+1


                                              เพิ่มคาผลบวก
                                               sum=sum+data

                                               รับตัวเลขเปนขอมูลเขาทีละตัว
                                              เก็บในตัวแปรชื่อ data

                       N≤5           จริง
                              เท็จ
            คํานวณคาเฉลี่ยเก็บในตัวแปร A
                      A=sum/5


                     แสดงคา A


                         จบ

การจำลองความคิด

  • 1.
    บทที่ 5 การจําลองความคิด ที่มา http://www.seubsan.net/th/images/stories/yt/p4_Cap.gif เนื้อหา 5.1 ขั้นตอนการพัฒนาซอฟตแวร o การวิเคราะหและกําหนดรายละเอียดของปญหา o การเลือกเครืองมือและออกแบบขั้นตอนวิธี ่ o การดําเนินการแกปญหา o การตรวจสอบและปรับปรุง 5.2 การจําลองความคิด o ขอความหรือคําบรรยาย (Pseudo code) o สัญลักษณหรือแผนภาพ (Flowchart) - แบบลําดับ - แบบทางเลือก - แบบทําซ้ํา 5.3 การเขียนโปรแกรม o โครงสรางแบบลําดับ o โครงสรางแบบมีทางเลือก o โครงสรางแบบทําซ้ํา ผลการเรียนรูที่คาดหวัง 1. อธิบายขั้นตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธการในแตละขันตอนได ี ้ 2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได 3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได
  • 2.
    -2- 5.1 ขั้นตอนการพัฒนาซอฟตแวร ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน การเงิน หรือ แมแตการเลนเกม เมื่อพบกับปญหาแตละคนมีวิธีท่จะจัดการหรือแกปญหาเหลานั้นแตกตางกันไป ซึ่งแตละวิธีการอาจ ี ใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ขึ้นอยูกับความรู ความสามารถ และประสบการณของบุคคลผูนั้น อยางไรก็ตาม หากเรานําวิธีการแกปญหาตางวิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎี ซึ่งมีรูปแบบที่แนนอนได และบางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่ เราจะศึกษาตอไป ลองพิจารณาปญหาตอไปนี้ ตัวอยางที่ 1 เกมทายใจ คือ เกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่ง คือ ผูกําหนด เปนคนกําหนดเลข 3 ตัว ที่ไมซ้ํากันโดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือ ผูทาย เปนผูทายเลข 3 ตัว ที่ไมซ้ํากัน ที่ผูกําหนดไดกําหนดเอาไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตองใหรายละเอียดวา ตัวเลขที่ทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตองบอกวาถูกตําแหนงกี่ตัว เชน ถา ตัวเลขที่กําหนดไวเปน 815 และ ผูทายทายวา 123 ผูกําหนดตองแจงวาตัวเลขที่ทายนั้นถูก 1 ตัว และไมมีตัวใดถูก ตําแหนง รูปที่ 1 เปนตารางแสดงขอมูลการเลนเกมทายใจ ตัวเลขที่ทาย จํานวนตัวเลขที่ถูก จํานวนตําแหนงที่ถูก 123 1 - 415 2 2 425 1 1 416 1 1 715 2 2 815 3 3 รูปที่ 1 ขอมูลการเลนเกมทายใจ จะเห็นวาการแกปญหาดังกลาวขางตน นอกจากจะใชวิธีลองผิดลองถูกในการทายครั้งแรกๆ แลวยังมีการใช เหตุผลประกอบการแกปญหาซึ่งเราเรียกวิธีการดังกลาววา "วิธีขจัด" (method of elimination) กลาวคือ จะแยกขอมูล ออกเปนกรณีที่เปนไปไมไดทิ้ง จนเหลือกรณีที่เปนไปได วิธีการดังกลาวสามารถอธิบายไดวาทําไมจึงคิดหรือทํา เชนนั้น รูปแบบของการใชเหตุผลประกอบการแกปญหาอาจแตกตางกัน ขึ้นอยูกับเงื่อนไข ในปญหาบางปญหา อาจจะ ขจัดใหเหลือกรณีเดียวไมได ก็อาจจะทําใหเหลือกรณีนอยที่สุด นอกจากเกมทายใจเรายังมีเกมลับสมองที่นาสนใจและ ทาทายความสามารถในการแกปญหาอยูอีกมากมายที่หาเลนไดตามเว็บไซต  นอกจากวิธีการแกปญหาที่ยกตัวอยางมาซึ่งไดแก วิธีการลองผิดลองถูก การใชเหตุผล การใชวิธีขจัด ยังมีวิธี การแกป ญหาอีกมากมายที่ผูแกป ญหาสามารถเลือกใชใ ห เข ากับ ตั ว ปญหาและประสบการณของผู แกปญหาเอง แตอยางไรก็ตาม วิธการเหลานี้ลวนมีขั้นตอนที่คลายคลึงกัน และจากการศึกษาพฤติกรรมในการ ี เรียนรูและแกปญหาของมนุษยพบวาโดยปกติมนุษยมีกระบวนการในการแกปญหาประกอบดวย 4 ขั้นตอนดัง รูปที่ 2
  • 3.
    -3- วิเคราะหและกําหนด รายละเอียดของปญหา เลือกเครื่องมือ / ออกแบบ ดําเนินการแกปญหา ตรวจสอบและปรับปรุง รูปที่ 2 แสดงกระบวนการแกปญหา 1) การวิเคราะหและกําหนดรายละเอียดของปญหา (State the problem) ขั้นตอนนี้เปนขั้นตอนแรกสุดกอนที่จะลงมือแกปญหา แตผูแกปญหามักจะมองขามความสําคัญของ ขั้นตอนนี้อยูเสมอ จุดประสงคของขั้นตอนนี้ คือ การทําความเขาใจกับปญหาเพื่อแยกใหออกวาขอมูลที่ กําหนดมาในปญหาหรือเงื่อนไขของปญหาคืออะไร และสิ่งที่ตองการคืออะไร อีกทั้งวิธีการที่ใชประมวลผล ใน การวิเคราะหปญหาใด กลาวโดยสรุปแลวองคประกอบในการวิเคราะหมีอยู 3 องคประกอบ 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. การระบุขอมูลเขา จากโจทยขอมูลเขา ไดแก 2.1 จํานวนอีก 4 จํานวน คือ 3 4 8 12 คาเฉลี่ย ของจํานวนทั้ง 5 จํานวน คือ 10 2. การระบุขอมูลออก จากโจทยสิ่งที่เปนผลลัพธ คือ คา x  3. การกําหนดวิธีการประมวลผล จากโจทยและความหมายของ "คาเฉลี่ย" เราสามารถสรุปขั้นตอน ของการประมวลผลไดดังนี้ 3.1 หาคาผลรวมของจํานวนเต็มทั้ง 5 โดยนําคาเฉลี่ยคูณดวยจํานวนของเลขจํานวนเต็ม นั่นคือ 10 * 5 = 50 3.2 จากความหมายของ "ผลรวม" จะได 3+4+8+12+x = 50 3.3 แกสมการ 27 + x = 50 (จะได x = 23 ซึ่งคือผลลัพธ) 2) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) ขั้นตอนนี้เปนขั้นตอนของการวางแผนในการแกปญหาอยางละเอียดถี่ถวน หลังจากที่เราทําความ เขาใจกั บปญ หา พิจารณาขอ มูลและเงื่อ นไขที่ มีอยู และสิ่ งที่ต องการหาแล วในขั้น ตอนที่ 1 เราสามารถ คาดคะเนวิธีการที่เราจะใชในการแกปญหากระบวนการนี้จําเปนอาศัยประสบการณของผูแกปญหาเปนหลัก หากผูแกปญหาเคยพบกับปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัตมา ขั้นตอนนี้  ิ จะเริ่มจากการเลือกเครื่องมือที่ใชในการแกปญหา โดยพิจารณาความเหมาะสมระหวางเครื่องมือกับเงื่อนไข ตางๆ ของปญหา ซึ่งหมายรวมถึงความสามารถของเครื่องมือในการแกปญหาดังกลาว และสิ่งที่สําคัญคือ ความคุนเคยในการใชงานเครื่องมือนั้นๆ ของผูแกปญหา อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือ ยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวา ขั้นตอนวิธี (algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหาตองวางแผนวาจะใช เครื่องมือดังกลาวอยางเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด ในการออกแบบขั้นตอนวิธีในการแกปญหา ผู แกปญหาควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอความเขาใจเชน ผังงาน (flowchart) รหัสลําลอง (pseudo code) การใชเครื่องมือชวยออกแบบดังกลาวนอกจากแสดงกระบวนการที่ ชัดเจนแลว ยังชวยใหผูแกปญหาสามารถหาขอผิพลาดของวิธีการที่ใชไดงายและแกไขไดอยางรวด 3) การดําเนินการแกปญหา (Implementation) หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอยแลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใช เครื่ อ งมื อ ที่ไ ด เ ลื อ กไว หากการแก ป ญ หาดั ง กล า วใชค อมพิ ว เตอร เ ข ามาช ว ยงาน ขั้ น ตอนนี้ ก็เ ป น การใช โปรแกรมสําเร็จ หรือใชภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับ เครื่องมือที่เลือกใช ซึ่งผูแกปญหาตองศึกษาที่เขาใจและเชี่ยวชาญ ในการดําเนินการอาจพบแนวทางที่ดีกวาที่ ออกแบบไวก็สามารถปรับเปลี่ยนได
  • 5.
    -5- 4) การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตอง ตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจ วาสามารถรองรับขอมูลเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการ แกปญหานี้ไดผลลัพธที่ดีท่สุด ี 5.2 การจําลองความคิด ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่ สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณ ความรู และความมีเหตุผลแลว ยังควรรูจัก วางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การ จําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดีโดยเฉพาะปญหาที่ ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบเพื่อใหผูที่ เกี่ยวของไดเขาใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการ กอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวาง ผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบทบทวนและพิจารณาจาก ผูเกี่ยวของหลายฝาย เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่ พอใจ ก็จะพิจารณาแกไขแบบแปลนสวนนั้น ๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการ ซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบแปลนจึง เปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเกี่ยวของอื่น ๆ เปนอยางมาก เพราะประหยัดเวลา คาใชจายและ เขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คื อขอตกลงใหสรางอาคารของผูจางกับผู รับจางที่อ ยูในรูป แบบ กะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยางยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสราง อีกดวย เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลายอยาง แตพอสรุปได เปน 2 ลักษณะ ไดแก 1. ขอความหรือคําบรรยาย 2. สัญลักษณ 5.2.1) ขอความหรือคําบรรยาย เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอนการ ทํางานของโปรแกรมแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได การเขียนขอความเพื่อการบรรยายขั้นตอนวิธีในการแกปญหาทางคอมพิวเตอร สามารถเรียกอีก อยางหนึ่งไดวา รหัสเทียม (pseudo code)
  • 6.
    -6- ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ 1. คลายสกรูยึดลอ 2. จอดรถหลบขางทาง 3. นําแมแรงออกยกรถ 4. ถอดลอออก นํายางอะไหลมาเปลี่ยน 5. ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม 6. คลายแมแรง เก็บแมแรง หลักการทั่วไปในการเขียนรหัสเทียม 1. สัญลักษณที่ใชในการดําเนินการทางคณิตศาสตรตางๆ จะถูกใชงานตามปกติ คือ “+” สําหรับ  การบวก “-” สําหรับการลบ “*” สําหรับการคูณ และ “/” สําหรับการหาร 2. ชื่อขอมูลแทนจํานวนที่จะถูกดําเนินการ 3. การกําหนดคาใหกับชื่อขอมูล เชน เมื่อเราตองการกําหนดให ขอมูล pi มีคาเทากับ 3.14 สามารถเขียนไดดวยขอความ pi←3.14 หรือ pi:=3.14 หรือ pi=3.14 ในการกําหนดคาทางคอมพิวเตอรดานซายของเครื่องหมายมักใชแทน ที่เก็บขอมูล และ ดานขวาแทน ขอมูลที่ตองการนําไปเก็บ (ดังนั้นหากใชขอความวา 3.14=pi ถือวาไมถูกตอง ตามความหมายนี้) 4. คําสงวนบางคําที่ใชในภาษาระดับสูงทั่วไปอาจถูกนํามาใช เชน Read หรือ Enter สําหรับ การรับขอมูลเขา และ Write หรือ Print สําหรับการแสดงขอมูลออก 5. การเพิ่ ม หรื อ ลดระยะย อ หน า อย า งเหมาะสม เพื่ อ แสดงระดั บ ของขั้ น ตอนการทํ า งานใน โครงสรางควบคุมการทํางานในกลุมเดียวกัน 5.2.2) สัญลักษณหรือแผนภาพ เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐานแหงชาติ อเมริกัน (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปนมาตรฐานแลว สมควรนําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียดรูปแบบและความหมายที่ควรทราบตามตาราง ตอไปนี้ การนําสัญลักษณไปใชเพื่อแสดงขั้นตอนการทํางานตางๆ ของงานหรือโปรแกรม รวมถึงแสดงการ ไหลของขอมูลในระบบตั้งแตแรกจนไดผลลัพธตามตองการเรียกวา การเขียนผังงาน(Flowchart) ซึ่งสามารถ แบงออกไดเปน 2 แบบคือ
  • 7.
    -7- 1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงขั้นตอนตางๆ ในการทํางานของ ระบบ ชวยอธิบายลําดับการทํางานของสวนตางๆ ในระบบ เชน การนําขอมูลเขา(Input) ถูกเก็บ อยูที่ใดบาง ใช สื่อบัน ทึกขอ มูลแบบใด ลักษณะของการประมวลผล ตลอดจนลักษณะของ ผลลัพธ(Output) ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียนโปรแกรมและผูที่ เกี่ยวของที่ตองการทําความเขาใจการทํางานของระบบ ตัวอยางดังรูปที่ 3 เอกสารขอมูล โปรแกรมปรับปรุงขอมูล แฟมขอมูล รายงาน รูปที่ 3 ผังงานระบบ 2. ผังงานโปรแกรม(Program Flowchart) หมายถึง ผังงานที่ใชในการแสดงการทํางานของ โปรแกรมโดยละเอียดในแตละขั้นตอน ผังงานโปรแกรมเปนสิ่งจําเปนสําหรับผูเขียนโปรแกรม เพราะตองใชเปนแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิดขอผิดพลาดการเขาไป วิเคราะหผังงานโปรแกรมจะทําไดงายกวาการเขาไปวิเคราะหตัวโปรแกรมโดยตรง ประโยชนของผังงาน 1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางขั้นตอนในการทํางาน ตางๆ 2. ใช เ ปน สื่ อ กลางในการติ ดต อ ประสานความคิ ด ระหวา งผู ที่เ กี่ ยวข อ ง เชน นั กวิ เ คราะหร ะบบ (systems analyst) นักเขียนโปรแกรม(programmer) 3. ชวยในการทดสอบหรือทบทวนขั้นตอนการทํางาน เพื่อหาขอผิดพลาด
  • 8.
    -8- ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ สัญลักษณ ความหมาย การทํางานดวยมือ ( Manual Operation ) แทนจุดที่มี การทํางานดวยแรงคน การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูล เขาหรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ แถบบันทึกขอมูล(Magnetic tape) แทนจุดที่จะนําขอมูลเขาหรือออกจาก โปรแกรมดวยแถบบันทึกขอมูล จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม ดวยจานบันทึกขอมูล การปอนขอมูลเขาดวยมือ ( Manual Input ) แทนจุดที่จะนําขอมูลเขา ดวยมือ การแสดงขอมูล ( Display ) แทนจุดที่จะนําขอมูลเขาดวยจอภาพ การทําเอกสาร ( Document ) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย เครื่องพิมพ การตัดสินใจ ( Decision ) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง การปฏิบัติงาน ( Process) แทนจุดที่มการปฏิบัติงานอยางใดอยางหนึ่ง ี
  • 9.
    -9- การเตรียมการ (Preparation) แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ การเรียกโปรแกรมภายนอก(External subroutine) แทนจุดเรียกใชโปรแกรม ยอยที่ไมไดอยูในโปรแกรมนั้น การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่ อยูในโปรแกรมนั้น การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด ทิศทาง (Flow line) แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกัน ตามหัวลูกศรชี้ หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย ขอมูลดวยระบบติดตอทางไกล จุดเชื่อมตอ (Connector) แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อให ดูงาย จุดเชื่อมตอหนากระดาษ (Off page Connector) แทนจุดเชื่อมตอของ ผังงานที่อยูคนละหนากระดาษ เริ่มตนและลงทาย (Terminal) แทนจุดเริ่มตนและลงทายของผังงานของ โปรแกรมหลักและโปรแกรมยอย
  • 10.
    - 10 - ตัวอยางที่5 การวางแผนไปโรงเรียน การจําลองความคิดดวยรหัสเทียม การจําลองความคิดเปนสัญลักษณ เริ่มตน ตื่นนอน เริ่มตน อาบน้ําแตงตัว ไปโรงเรียน ตื่นนอน จบ อาบน้ําแตงตัว ไปโรงเรียน จบ ตัวอยางที่ 6 การคํานวณพื้นที่รปวงกลม ู การจําลองความคิดดวยรหัสเทียม การจําลองความคิดเปนสัญลักษณ เริ่มตน รับคา radius เริ่มตน คํานวณพื้นที่ดวยสูตร area= 22/7*radius*radius รับคา radius แสดงคา area จบ area = 22/7 * radius * radius แสดงคา area จบ
  • 11.
    - 11 - ตัวอยางที่7 การจําลองความคิดในการหาผลบวก 1,2,3,4,5,… จนถึง 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 N=N+K K=K+1 จริง K≤20 เท็จ แสดงคา N จบ
  • 12.
    - 12 - 5.3การเขียนโปรแกรม จากการศึกษาหลักการขั้นตอนการแกปญหา ในหัวขอ 5.1 และ 5.2 หลังจากที่เราสามารถวิเคราะหปญหา และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอนตอไปคือ การลงมือแกปญหาตามขั้นตอน ที่ไดออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หากเครื่องมือที่นักเรียนเลือก คือ ภาษาคอมพิวเตอรซึ่ง ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร การเขียนโปรแกรม (programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของ ข อ มู ล และกํ า หนดขั้ น ตอนวิ ธี เ พื่ อ ใช แ ก ป ญ หาตามที่ ไ ด อ อกแบบไว โ ดยอาศั ย หลั ก เกณฑ ก ารเขี ย นโปรแกรม คอมพิวเตอรของแตละภาษา กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาที่จะนํามาชวยใชงานโดยพิจารณาจากปจจัย ตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบ ค อ ม พิ ว เ ต อ ร เ ป น ต น เ นื่ อ ง จ า ก ใ น ป จ จุ บั น มี ภ า ษ า ค อ ม พิ ว เ ต อ ร ใ ห เ ลื อ ก ไ ด ห ล า ย ภ า ษ า เ ช น ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย เปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงาน ที่ แ ตกต า งกั น แต ทุ ก ภาษาจะต อ งมี โ ครงสร า งควบคุ ม หลั ก ทั้ ง 3 แบบได แ ก โครงสร า งแบบลํ า ดั บ (sequential structure) โครงสรางแบบมีทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition structure) 5.3.1) โครงสรางแบบลําดับ โครงสรางแบบลําดับ คือโครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละ ขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเทานั้น สามารถแสดงการทํางานของโครงสรางนี้โดยใชผงงานไดดังรูป ั คําสั่งที่ 1 คําสั่งที่ 2 คําสั่งที่ 3 ……. คําสั่งที่ n รูปที่ 4 แสดงการทํางานของโครงสรางแบบลําดับ
  • 13.
    - 13 - 5.3.2) โครงสรางแบบมีทางเลือก โครงสรางแบบมีทางเลือก คือโครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจ เพื่อเลือกวิธีการประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมี 2 ทางหรือ มากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทางเราเรียกชื่อวา โครงสรางแบบ if…then…else… และโครงสรางที่มี ทางเลือกมากกวา 2 ทาง เราเรียกชื่อวาโครงสรางแบบ case ซึ่งสามารถแสดงการทํางานของโครงสรางนี้โดยใชผังงาน ดังรูป เท็จ เงื่อนไข จริง คําสั่ง คําสั่ง รูปที่ 5 แสดงการทํางานของโครงสราง if…then…else… เงื่อนไข กรณีท่ี 1 กรณีที่ 2 กรณีที่ 3 กรณีที่ n คําสั่ง คําสั่ง คําสั่ง ….. คําสั่ง รูปที่ 6 แสดงการทํางานของโครงสราง case
  • 14.
    - 14 - ตัวอยางที่8 แสดงผังงานที่จําลองขั้นตอนวิธการเขียนและสงจดหมายใหอยูในรูปของสัญลักษณ ี เริ่มตน เขียนจดหมาย พับจดหมายใสซอง จาหนาซอง ปดซองจดหมาย เท็จ มีแสตมป จริง ซื้อแสตมป ติดแสตมป สงจดหมาย จบ
  • 15.
    - 15 - ตัวอยางที่ 9 แสดงผังงานทีจําลองขั้นตอนวิธีของเกมหยิบลูกบอลใหอยูในรูปของสัญลักษณ โดยมีเงื่อนไขวา ่  มีลูกบอลซึ่ง มี 5 สี กรณีหยิบไดสีแดง จะได 10 คะแนน กรณีหยิบไดสีฟา จะได 8 คะแนน กรณีหยิบไดสีเขียว จะได 6 คะแนน กรณีหยิบไดสีเหลือง จะได 4 คะแนน กรณีหยิบไดสีสม จะได 2 คะแนน เริ่มตน หยิบลูกบอล 1 ลูก สีของลูกบอล สีแดง สีฟา สีเขียว สีเหลือง สีสม ได 10 คะแนน ได 8 คะแนน ได 6 คะแนน ได 4 คะแนน ได 2 คะแนน จบ 5.3.3) โครงสรางแบบทําซ้า ํ โครงสรางแบบทําซ้ํา คือโครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1 ครั้ง ทังนี้ขนอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการ ้ ึ้ ทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไขเปนจริงจะ ทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ การทํางานลักษณะนี้แบงไดเปน 2 แบบยอย ไดแก การทําซ้ําแบบ for และแบบ while ลักษณะการทํางานของทั้งสองแบบนี้จะเหมือนกัน โดยสําหรับแบบ for นั้นมักใชกรณีที่ตองการ กําหนดจํานวนรอบการทํางานที่ชัดเจน แบบที่มีการดําเนินการกิจกรรมใดๆ กอนจํานวนหนึ่งรอบ แลวจึงคอยตรวจสอบเงื่อนไขในการทําซ้ํา ถาเงื่อนไขเปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานแบบนี้วา การทําซ้ําแบบ do…while ผังงานแสดงขั้นตอนการทํางานซ้ําทั้งสองแบบแสดงดังรูปที่ 7 และ 8
  • 16.
    - 16 - คําสั่ง … คําสั่ง จริง เงื่อนไข เท็จ รูปที่ 7 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while คําสั่ง … คําสั่ง จริง เงื่อนไข เท็จ รูปที่ 8 แสดงการทํางานของการทําซ้ําแบบ do…while โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ขั้นตอนที่เราใชในการแกปญหานั้นเอง พิจารณา ตัวอยางที่ 10 เปนขั้นตอนการเลือกเครื่องมือและการออกแบบขั้นตอนวิธี คือ ขั้นตอนที่ 2 ในหัวขอ 5.1 เราเลือกสราง ผังงานมาจําลองขั้นตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดง โครงสรางควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย
  • 17.
    - 17 - ตัวอยางที่10 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ สัญลักษณ เริ่มตน กําหนดคาเริ่มตน sum=0 กําหนดคาเริ่มตน N=1 เพิ่มคาตัวนับจํานวน N=N+1 เพิ่มคาผลบวก sum=sum+data รับตัวเลขเปนขอมูลเขาทีละตัว เก็บในตัวแปรชื่อ data N≤5 จริง เท็จ คํานวณคาเฉลี่ยเก็บในตัวแปร A A=sum/5 แสดงคา A จบ