kroo1.files.wordpress.com€¦  · web...

22
บบบบบ 1 บบบบบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ (computer algorithms) เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเ 1.1 บบบบบบบบบบบบบบบบบบบบบบบบบบบบ (computer algorithms) เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 1) เเเเเเเเเเเเเเเ (job analysis) 2) เเเเเเเเเเเเเเเเเเเเเ (program flowcharting) 3) เเเเเเเเเเเเเเเ (programming) 4) เเเเเเเเ เเเเเเเเเเเเเเเ (testing and editing program) 5) เเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเ (documentation and maintenance program) 1.1.1 บบบบบบบบบบบบบบบ (job analysis) เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเ 1.1.1.1 บบบบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเ 1. เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 2. เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 3. เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเ 4. เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 5. เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 1.1.1.2 บบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเ 1) บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเ เ 2) บบบบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเ เเเเเเเเเ เเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเ เเเเเเเเเเเเเเเเ เเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเ 3) บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ บบบบบบบบบบบ 1.1 เเเเเเเเเเเเเเเเเ เเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 1) เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ

Upload: others

Post on 16-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

บทท  1ความรพนฐานการเขยนโปรแกรม

            เนอหาในบทนจะกลาวถงขนตอนวธการทางคอมพวเตอร (computer  algorithms)  เพอเปนการใหความรพนฐานกอนการเขยนโปรแกรมคอมพวเตอร  รวมถงเนอหาเกยวกบโครงสรางภายในโปรแกรมซงจะประกอบดวยเนอหาเกยวกบลกษณะของโปรแกรมแบบโครงสราง  และรปแบบโครงสรางภายในโปรแกรม  เพอชวยใหผเขยนโปรแกรมสามารถเลอกใชคำาสงใหสอดคลองกบโครงสรางภายในโปรแกรมได  ซงรายละเอยดของแตละเนอหามดงตอไปน

1.1 ขนตอนวธการทางคอมพวเตอร  (computer  algorithms)

            กอนทเราจะเขยนโปรแกรมคอมพวเตอรภาษาใดภาษาหนงเพอแกปญหาทางคอมพวเตอร  เราควรศกษาขนตอนวธการทางคอมพวเตอร   เพอใหเกดความรความเขาใจทถกตองตามขนตอนวธดงน            1) การวเคราะหงาน  (job analysis)            2) การเขยนผงงานโปรแกรม  (program flowcharting)            3) การเขยนโปรแกรม  (programming)            4) การทดสอบ  และแกไขโปรแกรม  (testing and editing program)            5) การจดทำาเอกสารประกอบ  และการบำารงรกษาโปรแกรม  (documentation and maintenance program)

            1.1.1 การวเคราะหงาน  (job  analysis)                        ในการวเคราะหงานเราจะตองกำาหนดจดประสงคของการวเคราะหงาน  และขนตอนวธการวเคราะหงานแตละอยางใหได  ซงงานแตละอยางมรายละเอยดดงน                        1.1.1.1  จดประสงคของการวเคราะหงาน                                    ในการวเคราะหงานแตละอยางมจดประสงคของการวเคราะหงานทสำาคญดงน                                    1. เพอหาวตถประสงคของการเขยนโปรแกรม                                    2. เพอหารปแบบผลลพธทตองการ                                    3. เพอหาขอมลนำาเขาทตองใสเขาไปในโปรแกรม                                    4. เพอหาตวแปรทจำาเปนตองใชในโปรแกรม                                    5. เพอหาขนตอนวธการทำางานของโปรแกรม                        1.1.1.2 ขนตอนวธการวเคราะหงาน                                    ในการวเคราะหงานแตละอยางมขนตอนวธการวเคราะหงานทสำาคญดงน                       1) การหาวตถประสงคของการเขยนโปรแกรมผเขยนโปรแกรมจะตองหาวตถประสงคจากงานทจะเขยนโปรแกรมวา ตองการเขยนโปรแกรมเพอแกปญหาอะไรบางซงจะทำาใหเขยนโปรแกรมไดตรงกบความตองการหรอวตถประสงคของงานนน ๆ                            2) การหารปแบบผลลพธทตองการเมอผเขยนโปรแกรมหาวตถประสงคของการเขยนโปรแกรมไดแลว ขนตอนตอมาคอการกำาหนดรปแบบผลลพธทตองการจากโปรแกรม  ซงรปแบบผลลพธอาจอยในลกษณะของขอความหรอตวเลข  หรอตาราง   หรอแผนภม   หรออาจใชผสมกนระหวางตวเลขกบขอความ หรอขอความกบตวเลข  และตารางกได   ขนอยกบผเขยนโปรแกรมเปนผกำาหนดเอง    แตโดยสวนมากนยมแสดงผลลพธของโปรแกรมใหอยในรปแบบทเขาใจงายมากกวารปแบบทซบซอน                        3) การหาขอมลนำาเขาทตองใสเขาไปในโปรแกรมผเขยนโปรแกรมจะตองหาขอมลนำาเขาจากผลลพธทไดจากโปรแกรม โดยคำานงถงขนตอนวธการคำานวณ และขอมลทจำาเปนตองใสเขาไปเพอใหไดผลลพธทตองการ

            ตวอยางท  1.1  ผลลพธทตองการ  คอ  พนทสามเหลยมมมฉากขอมลนำาเขาทตองใสเขาไปในโปรแกรมคอ                         1) สตรคำานวณพนทสามเหลยมมมฉาก                                    พนทสามเหลยมมมฉาก  =  ? x ฐาน x สง                        2) ความยาวของฐานและความสงของรปสามเหลยม                       4) การหาตวแปรทจำาเปนตองใชในโปรแกรมตวแปร  หมายถง  ชอทผเขยนโปรแกรมสามารถตงขนเองตามหลกการตงชอตวแปรของภาษาคอมพวเตอรทนำามาเขยนโปรแกรม (หลกเกณฑการตงชอตวแปรกลาวไวในหวขอ 2.5.3.1)  เพอใชในการอางองการเกบขอมลและเรยกใชขอมลภายในตวแปร   ดงนนผเขยนโปรแกรมจะตองตงชอตวแปรทใชในการเกบขอมลทงหมดภายในโปรแกรม   รวมถงตวแปรบางตวทใชในการนบจำานวนรอบของการทำางานในโปรแกรมอกดวย

Page 2: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

จากตวอยางท  1.1  สามารถแสดงการวเคราะหงานตงแตขนตอนท  1  ถง  4  ไดดงน

            1) วตถประสงคของการเขยนโปรแกรม            เพอคำานวณหาคาพนทสามเหลยมมมฉาก            2) รปแบบผลลพธทตองการ            พมพผลลพธทตองการออกทางภาพดงน                        * ** output ***                        Base  =   5                        High   =   4                        Area   =   10            3) ขอมลนำาเขา  คอ  ความยาวฐานและความสง            4) ตวแปรทใช                        B  =  ตวแปรทเกบความยาวของสามเหลยมมมฉาก                             H  =  ตวแปรทเกบความสงของสามเหลยมมมฉาก                         Area  =    ตวแปรทเกบผลลพธทไดจากการคำานวณตามสตร

                        Area  =   1/2*B*H               หรอ         Area  =   0.5*B*H

                       5) การหาขนตอนวธการทำางานของโปรแกรม

การหาขนตอนวธการทำางานของโปรแกรมจะขนอยกบลกษณะของการแกปญหา  ดงนนนกเขยนโปรแกรมทมความชำานาญในระดบหนงแลวจะสามารถหาขนตอนวธการทำางานของโปรแกรมไดโดยไมยาก แตสำาหรบผทเรมตนศกษาการเขยนโปรแกรม  ควรหาขนตอนวธการทำางานของโปรแกรมตามคำาแนะนำาโดยเรยงตามลำาดบดงน

ขนตอนวธการทำางานของโปรแกรมทแนะนำา

            5.1) เรมตนทำางาน            5.2) กำาหนดคาเรมตนใหกบตวแปร            5.3) พมพหวรายงาน  (ถามรายงาน)            5.4) รบขอมลเขาทละเรคอรด            5.5) ตรวจสอบขอมลวาเปนชดสดทายหรอไม                        5.5.1  ถาเปนขอมลชดสดทาย   ใหไปทำางานขอ 5.11                          5.5.2 ถาไมใชขอมลชดสดทาย  ใหทำางานขอตอมา  (ขอ 5.6)            5.6) คำานวณผลลพธ            5.7) เปรยบเทยบผลลพธ  (ถาม)            5.8) เพมคาตวแปรสะสม  (ถาม)            5.9) พมพคาผลลพธทละเรคอรด            5.10) ยอนกลบไปทำางานขอ 5.4            5.11) พมพสรป  (ถาม)

Page 3: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

            5.12) จบการทำางาน

            ทงนการวเคราะหงานเพอแกปญหาแตละอยางอาจมบางขนตอนแตกตางกนไป  ดงนนคำาแนะนำาขางตนจงเปนเพยงแนวทางของการหาขนตอนวธการทำางานของโปรแกรมเทานน    ซงเวลาใชงานจรงผวเคราะหงานตองประยกตใหเขากบปญหาทตองการแกไขตอไป             เพอความเขาใจเกยวกบขนตอนวธการวเคราะหงานมากยงขน    ใหศกษาจากตวอยางการวเคราะหงานดงตอไปน

            ตวอยางท  1.2 จงเขยนวเคราะหงาน เพอเขยนโปรแกรมคำานวณ พนทสเหลยมผนผา จำานวน 1 รป โดยทผใชโปรแกรม จะตองปอนความกวาง และความยาวของสเหลยมผนผา เขาไปในโปรแกรม

            วธทำา               ขนตอนการวเคราะหงานทง  5  ขนตอน   สามารถแสดงไดดงน            1) วตถประสงคของการเขยนโปรแกรม            เพอคำานวณพนทสเหลยมผนผาจำานวน 1 รป            2) รปแบบผลลพธทตองการ            พมพผลลพธออกทางจอภาพ   ดงน

 

             3) ขอมลนำาเขา                        3.1) สตรคำานวณพนทสเหลยมผนผา

                                    Area  =   Width*Length

                        3.2) รบคาความกวางและความยาวของสเหลยมผนผาผานทางคยบอรด            4) ตวแปรทตงขนเพอใชในโปรแกรม                        Width   =  ตวแปรทใชเกบความกวางของสเหลยมผนผา                         Length  =  ตวแปรทใชเกบความยาวของสเหลยมผนผา                       Area = ตวแปรทใชเกบพนทของสเหลยมผนผา                          โดยคำานวณไดจากสตร    Area   =   Width*Length            5) ขนตอนวธการทำางานของโปรแกรมมดงน                       5.1) เรมตนทำางาน                        5.2) รบขอมลคาความยาวและความกวางของสเหลยมผนผาผานทางคยบอรด                        5.3) คำานวณพนทสเหลยมผนผาตามสตร                          Area = Width*Length                        5.4) พมพคาความยาว   ความกวาง   และพนทสเหลยมผนผาออกทางจอภาพ                        5.5) จบการทำางาน

            1.1.2 การเขยนผงงานโปรแกรม  (program  flowcharting)สำาหรบหวขอการเขยนผงงานโปรแกรมจะประกอบดวยเนอหาทสำาคญดงนคอ ความหมายของผงงาน  ประเภทของผงงาน 

Page 4: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

สญลกษณมาตรฐานทใชเขยนผงงานโปรแกรม  หลกการเขยนผงงานโปรแกรม  และขนตอนการเขยนผงงานโปรแกรม  ดงรายละเอยดตอไปน

                        1.1.2.1 ความหมายของผงงาน                                    “ผงงาน”  (flowchart)  ทางคอมพวเตอร หมายถง แผนภาพทเขยนขนโดยใชสญลกษณมาตรฐาน เพอแสดงขนตอนวธการทำางานของโปรแกรม หรอระบบงานทตองการ

                        1.1.2.2 ประเภทของผงงานผงงานสามารถจำาแนกออกได  2 ประเภท  คอ                                    1) ผงงานระบบ (system flowchart)   หมายถง   ผงงานทแสดงถงขนตอนวธการทำางานของระบบงานใดระบบหนง   ซงในผงงานระบบจะแสดงใหเหนถงสอทใชรบขอมล   บนทกขอมล   วธการประมวลผล  ขนตอนการทำางานและความสมพนธของสวนตาง ๆ  ในระบบงานอยางกวาง ๆ  เพอใหเหนภาพรวมของระบบงานใดระบบงานหนง  เชน

 

 

รปท  1.1  ผงงานระบบแสดงการตดเกรดทมา : กรรณการ  กมลรตน, 2547.

                                    2) ผงงานโปรแกรม (program flowchart)    หมายถงผงงานทแสดงขนตอน วธการทำางานของโปรแกรมทตองการเขยนขน     ภายในผงงานโปรแกรม จะแสดงใหเหนขนตอน วธการทำางาน ของโปรแกรมอยางละเอยด เพอใหคอมพวเตอร สามารถทำางานตามทเขยนไวในผงงานโปรแกรม ไดอยางถกตอง    โดยเราสามารถนำาขนตอน วธการทำางานของโปรแกรมในขนการวเคราะหงาน มาเขยนเปนผงงานโปรแกรมไดทนท     จากนนกสามารถนำาผงงานโปรแกรม ไปเขยนโปรแกรมตามทตองการได   ดงนนในเรองของการเขยนผงงาน ทจะกลาวตอไปนจะเกยวของกบผงงานโปรแกรมทงสน  เชน

Page 5: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

 

 

รปท  1.2  ผงงานโปรแกรมแสดงรายละเอยดการทำางานของโปรแกรมสำาหรบตดเกรดทมา : เฉลมพล  ทพซาย, 2530 : 29.

 

                               1.2.1.3 สญลกษณมาตรฐานทใชเขยนผงงานโปรแกรมสถาบนมาตรฐานแหงชาตของสหรฐอเมรกา (American  National  Standard  Institute) และองคการระหวางประเทศวาดวยการมาตรฐาน  (International  Organization  for  Standardization)  ไดรวมกนกำาหนดสญลกษณมาตรฐานทใชเขยนผงงานโปรแกรม โดยในเอกสารเลมนจะนำาเสนอสญลกษณทนยมนำามาใชเขยนผงงานโปรแกรม ดงตอไปน 

            1. สญลกษณ  Process

 

Process 

            ความหมายของ  Process  คอ  การกำาหนดคาหรอการคำานวณคา

         

ตวอยางท  1.3  แสดงการกำาหนดคาใหตวแปร  Total

Page 6: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

 

            ตวอยางท  1.4  แสดงการคำานวณคาผลรวมของตวแปร  Total

                                      

 

             2. สญลกษณ  Decision

 

            ความหมายของ  Decision  คอ  การทดสอบเงอนไขหรอเปรยบเทยบเงอนไข เพอตดสนใจทำางานอยางใดอยางหนงตามทตองการ

 

            ตวอยางท  1.5  แสดงการเปรยบเทยบเงอนไข  1  ทางเลอก

 

Page 7: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

            ตวอยางท  1.6  แสดงการเปรยบเทยบเงอนไข  2  ทางเลอก

 

 

             3. สญลกษณ  Start/ Stop program  หรอ  Terminal Interrupt

 

            ความหมายของสญลกษณ  คอ  การเรมตนโปรแกรม  หรอการสนสดการทำางานของโปรแกรม   หรอหยดการทำางานชวคราว             ตวอยางท  1.7  แสดงการใชงานสญลกษณ Start/ Stop program  หรอ  Terminal Interrupt

Page 8: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

      4. สญลกษณ   Input / Output

            ความหมายของสญลกษณ  คอ  การรบขอมล (input)  หรอการแสดงผลลพธ  (output)  โดยไมไดระบสอทใช 

            ตวอยางท  1.8  แสดงการใชงานสญลกษณ  Input/ Output

 

 

            5. สญลกษณ  Display

                       

 

            ความหมายของสญลกษณ คอ การแสดงผลลพธทางจอภาพ

            ตวอยางท  1.9  แสดงการใชงานสญลกษณ  display

 

            6. สญลกษณ  Document

 

Page 9: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

            ความหมายของสญลกษณ  คอ  การพมพผลลพธออกทางกระดาษพมพ

            ตวอยางท  1.10  แสดงการใชงานสญลกษณ  Document

            7. สญลกษณ  Manual  Input

            ความหมายของสญลกษณ  คอ  การรบขอมลหรอคำาสงผานทางคยบอรด

            ตวอยางท  1.11  แสดงการใชงานสญลกษณ  Manual  Input

 

            8. สญลกษณ  Manual  Operation

            ความหมายของสญลกษณคอการรบขอมลหรอแสดงผลลพธโดยไมระบสอ

            ตวอยางท  1.12  แสดงการใชงานสญลกษณ  Manual  Operation

 

Page 10: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

9. สญลกษณ  Connector

Connector

            ความหมายของสญลกษณ  คอ   แสดงจดเชอมตอจากทหนงไปยงอกทหนงของผงงาน   โดยทจดเชอมตอนอยในหนาเดยวกน

            ตวอยางท  1.13  แสดงการใชงานสญลกษณ  Connector

                                                         

10. สญลกษณ  Off  page  Connector

 

      Off  page  Connector

            ความหมายของสญลกษณ  คอ   แสดงจดเชอมตอจากทหนงไปยงอกทหนงของผงงาน   โดยทจดเชอมตอนอยตางหนากน

            ตวอยางท  1.14  แสดงการใชงานสญลกษณ  Off  page  Connector

Page 11: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

คำานวณคา  Avg = Total + N เสรจแลว  ไปทำางานตอไปทจด  B  โดยทจด  B  อยตางหนากน                            

11. สญลกษณ  flow line and arrowheads

            ความหมายของสญลกษณ คอ แสดงทศทาง การทำางานของผงงาน โดยใชลกศร เปนตวกำาหนดทศทาง การทำางานของผงงาน             ตวอยางท  1.15  แสดงการใชงานสญลกษณ  flow line and arrowheads

 

12. สญลกษณ  Punched  Card

            ความหมายของสญลกษณคอการรบขอมลหรอแสดงผลลพธบนบตรเจาะร             ตวอยางท  1.16  แสดงการใชงานสญลกษณ  Punched  Card

Page 12: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

                                                1.1.2.4 หลกการเขยนผงงานโปรแกรมการเขยนผงงานโปรแกรม   มหลกการเขยนดงน

           1) เขยนผงงานจากดานบนลงดานลาง2) ใชสญลกษณใหตรงกบความหมายของผงงาน3) ใชเสน flow line  และ arrowheads  แสดงทศทางการทำางานของผงงาน4) ใสคำาอธบายลงในสญลกษณสน ๆ แตเขาใจงาย จะใชภาษาไทยหรอองกฤษกได5) หลกเลยงการโยงเสนทศทางของผงงานใหตดกนเพราะจะทำาใหสบสน   ควรใชจดเชอมตอ (connector)  หนาเดยวกนแทน  จะเขาใจไดงายและเปนระเบยบ6) พยายามเขยนผงงานใหจบในหนากระดาษเดยวกน   แตถาไมจบในหนาเดยวกน   ควรใชจดเชอมตอตางหนากระดาษ (off  page  connector)

                   1.1.2.5 ขนตอนการเขยนผงงานโปรแกรมเพอความเขาใจเกยวกบขนตอนการเขยนผงงานโปรแกรมไดถกตองใหศกษาจากตวอยางดงตอไปน ตวอยางท 1.17 จงเขยนผงงานโปรแกรมทไดวเคราะหงานมาแลวในตวอยางท 1.2

วธทำา

                                    จากการวเคราะหงานในตวอยางท  1.2  จะไดวา

                                    ขนตอนวธการทำางานของโปรแกรม   มดงน1) เรมตนทำางาน2) รบขอมลคาความยาว  และความกวางของสเหลยมผนผาผานทางคยบอรด3) คำานวณพนทสเหลยมผนผาตามสตร  Area = Width * Length4) พมพคาความยาว ความกวาง  และพนทสเหลยมผนผาออกทาง จอภาพ5) จบการทำางาน

           การเขยนผงงานโปรแกรม จะนำาขนตอนวธการทำางานของโปรแกรม ทไดจากการวเคราะหงาน มาเขยนผงงานไดดงน

Page 13: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

รปท 1.3  แสดงผงงานขนตอนวธการทำางานของโปรแกรม ทมา : สมชาย  รตนเลศนสรณ, 2545 : 17.

            1.1.3  การเขยนโปรแกรม  (programming)ในหวขอเรองการเขยนโปรแกรมจะกลาวถงเนอหา  2  สวน คอความหมายของโปรแกรมคอมพวเตอร  และภาษาคอมพวเตอรดงมรายละเอยดตอไปน

                        1.1.3.1 ความหมายของโปรแกรมคอมพวเตอรโปรแกรมคอมพวเตอร (computer  program)    หมายถง     ชดของคำาสงทเขยนขนเพอสงใหคอมพวเตอรทำางานตามทตองการ    สวนการเขยนโปรแกรม (programming) หมายถง การเขยนชดคำาสงดวยภาษาคอมพวเตอรภาษาใดภาษาหนง    เพอใหคอมพวเตอรทำางานตามโปรแกรมทเราเขยนขน

                        ดงนน  ผเขยนโปรแกรม (programmer)  จงจำาเปนตองเรยนรภาษาคอมพวเตอรภาษาใดภาษาหนงหรอหลายภาษา    แลวฝกฝนทกษะการเขยนโปรแกรมดวยภาษาคอมพวเตอรทตองการใชงานใหเกดความชำานาญจงจะสามารถเขยนโปรแกรมคอมพวเตอรไดอยางมประสทธภาพ

                        1.1.3.2 ภาษาคอมพวเตอรภาษาคอมพวเตอร (computer  language)  หมายถง  ภาษาทสามารถนำามาใชเขยนโปรแกรมคอมพวเตอรได   ซงแตละภาษามรายละเอยดดงตอไปน

                         1) ภาษาเครอง (machine  language)                        ภาษาเครองจดเปนภาษาคอมพวเตอรภาษาเดยวทสามารถตดตอกบคอมพวเตอรไดโดยตรง    เพราะวาการเขยนคำาสงและขอมลในภาษาเครองใชระบบเลขฐานสอง (binary number system) คอใชตวเลข 0  และ 1 เทานน   ทำาใหเครองคอมพวเตอรสามารถทำางานไดรวดเรว   สวนขอเสยของภาษาเครอง  คอ  เครองคอมพวเตอรตางชนดกนมลกษณะการเขยนภาษาเครองทแตกตางกนไป  และเกดความยงยากในการปรบปรงแกไข  ทำาใหเกดความไมสะดวกในการใชงาน    ดงนนภาษานจงไมเหมาะกบผเรมตนเขยนโปรแกรม

ตวอยางท  1.18  แสดงคำาสงของภาษาเครองมดงน  ถาเราตองการสงใหเครองทำางานตามคำาสง  9 + 3  แสดงไดดงน

Page 14: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

การบวกแทนดวยรหส                          10101010เลข  9  เปลยนเปนเลขฐานสอง            00001001เลข  3  เปลยนเปนเลขฐานสอง            00000011ดงนน  คำาสง  9 + 3  เขยนเปนภาษาเครองไดดงน

00001001   10101010   00000011

 

                        2) ภาษาแอสเซมบล (assembly  language)                        ภาษาแอสเซมบลหรอจะเรยกชออกอยางวาภาษาระดบตำา  ซงเปนภาษาคอมพวเตอรทพฒนาขนมาเพอใหผเขยนโปรแกรมสามารถเขยนโปรแกรมตดตอกบคอมพวเตอรไดงายกวาภาษาเครอง    สวนการเขยนคำาสงในภาษาแอสเซมบลจะใชคำายอของภาษาองกฤษและอางถงตำาแหนงทอยภายในคอมพวเตอรเปนสวนใหญ  ไดแก  MOVE, DC, DS, CL10 เปนตน    ผทตองใชภาษาแอสเซมบลสวนมากจะเปนวศวกรคอมพวเตอร  ดงนนภาษาแอสเซมบลจงไมเหมาะกบผเรมตนเขยนโปรแกรม

            ตวอยางท  1.19  แสดงคำาสงของภาษาแอสเซมบลมดงน  ถาเราตองการสงใหเครองทำางานตามคำาสง  9 + 3  แสดงไดดงน                MOV   AX,  9                MOV   BX, 3                ADD   AX, BX

                        3) ภาษาระดบสง (high  level  language)                        ภาษาระดบสงเปนภาษาทผเขยนโปรแกรมสามารถเขาใจไดงายกวาภาษาแอสเซมบลและภาษาเครอง ทงนกเพราะการเขยนคำาสงของภาษาระดบสงมลกษณะเปนภาษาองกฤษ    ซงอานแลวเขาใจไดงายกวาภาษาแอสเซมบล  เชน  ใชคำาวา  READ, WRITE, PRINT, COMPUTE  เปนตน    ตวอยางของภาษาระดบสงไดแก   ภาษาฟอรแทรน (FORTRAN), ภาษาโคบอล (COBOL),  ภาษาเบสก (BASIC), ภาษาปาสคาล (PASCAL)  และภาษาซ (C)   เปนตน  ซงแตละภาษามประวตพอสงเขปดงตอไปน

ภาษาฟอรแทรน (FORTRAN  ยอมาจาก  FORmula  TRANslator)  พฒนาโดยบรษท  IBM  ระหวางป ค.ศ.1954  ถง  ค.ศ.1957  ภาษานใชสำาหรบการพฒนาโปรแกรมประยกตดานวทยาศาสตรและวศวกรรมศาสตร  ทตองใชในการคำานวณสมการคณตศาสตรทซบซอน  ปจจบนภาษาฟอรแทรนยงเปนทนยมใช  ในการพฒนาโปรแกรมดานวทยาศาสตรและวศวกรรมศาสตร

ภาษาโคบอล (COBOL  ยอมาจาก  Common  Business  Oriented  Language)  พฒนาขนในป  ค.ศ.1959  เปนภาษาทพฒนาขนมาเพอใชในการพฒนาโปรแกรมประยกตดานธรกจและการคา  ปจจบนโปรแกรมทใชในดานธรกจจำานวนมากยงเปนโปรแกรมทพฒนามาจากภาษาโคบอล

ภาษาเบสก  (BASIC ยอมาจาก  Beginners  All-purpose  Symbolic  Instructional  Code)  เปนภาษาทพฒนาขนโดยมจดประสงคเพอใหผเรมตนพฒนาโปรแกรมสามารถเรยนรและเขาใจการพฒนาโปรแกรมอยางงาย  ภาษาเบสกเปนภาษาคอมพวเตอรภาษาแรกทใชเครองไมโครคอมพวเตอร

                                    ภาษาคอมพวเตอรทพฒนาขนในยคแรก  ยงมขอจำากดในการทจะพฒนาโปรแกรมขนาดใหญ  ทงนเนองจากภาษาคอมพวเตอรเหลานนขาดโครงสรางทด  ทำาใหการพฒนาโปรแกรมทมขนาดใหญและมความซบซอนเปนไปไดยาก  ในชวงตนป  ค.ศ.1970  จงมภาษาคอมพวเตอรทเปนภาษาเชงกระบวนการ (Procedural  หรอ  Structural  Language)  เกดขน  ภาษาคอมพวเตอรประเภทนจะมความยดหยนในการพฒนาโปรแกรม  ทำาใหสามารถแกไขและบำารงรกษาไดงาย  เนองจากโปรแกรมถกแยกออกเปนสวน ๆ ภาษาคอมพวเตอรทเปนภาษาเชงกระบวนการทสำาคญคอ

ภาษาปาสคาล (Pascal) พฒนาโดย  Niclaus  Wirth  ในป ค.ศ.1971  โดยมจดประสงคเพอใชในการสอนการเขยนโปรแกรมภาษาเชงกระบวนการ  ในมหาวทยาลย  แตเนองจากภาษาปาสคาลไมมคณลกษณะทจะสนบสนนการพฒนาโปรแกรมดานธรกจและอตสาหกรรมจงไมไดรบความนยมมากนก

ภาษาซ (C)  พฒนาขนในชวงเดยวกบภาษาปาสคาล  โดยนกวจยทหองปฏบตการ  AT&T  Bell  ซงไดนำาเอาจดเดนของภาษา  BCPL  และภาษา  B  มาใชและไดเพมคณลกษณะและชนดขอมลอนเขามาดวย  เดมภาษาซถอวาเปนภาษาคอมพวเตอรทสำาคญในการพฒนาโปรแกรมบนระบบปฏบตการยนกส  (Unix)  ซงเปนภาษาคอมพวเตอรทสามารถสรางโปรแกรมประยกตททำางานไดรวดเรวมาก  เมอเทยบกบภาษาคอมพวเตอรอน ๆ

Page 15: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

                        4) ภาษาระดบสงมาก  (very  high  level  language)                        ภาษาระดบสงมาก   บางครงเรยกวา  Fourth Gerneration Languages (4GLs)   เปนภาษาทมลกษณะสำาคญ  คอ  ผเขยนโปรแกรมไมตองบอกวธการทำางานโดยละเอยด   เพยงแตระบคำาสงใหทำางานสน ๆ   ใหภาษาระดบสงมากเขาใจกเพยงพอ    สวนวธการคำานวณหรอการทำางานภาษาระดบสงมากจะเปนผจดการเองทงสน    บางครงเรยกวา  non-procedure languageตวอยางภาษาระดบสงมาก  ไดแก  ภาษา SQL (Structured  Query  Langauge) ซงนยมใชกนในซอรฟแวรพฒนาระบบจดการฐานขอมล   เชน   ORACLE   เปนตน

                        5) ภาษาระดบธรรมชาต  (natural   language)                        ภาษาธรรมชาตจะเกยวของกบระบบฐานความร (knowledge based system )  และกฎอางอง  (inference rules)  เพยงแตผใชภาษาธรรมชาตปอนคำาถามผานเขาไปในคอมพวเตอรทมภาษาธรรมชาตกจะทำาการวเคราะหคำาถามแลวไปคนหาคำาตอบจากระบบฐานความรทเกบไวตวอยางของภาษาธรรมชาต  ไดแก  ภาษา  PROLOG และภาษา LISP  (List  Processing Language)

            1.1.4 การทดสอบ และแกไขโปรแกรม  (testing  and  editing  program)            หลงจากทเราเขยนโปรแกรมเสรจแลว    ขนตอนตอไป  คอ  การทดสอบโปรแกรมทเขยนขนซงอาจพบความผดพลาดได  2  ชนด   ดงน                        1) ความผดพลาดทางไวยากรณภาษา (syntax  error)  เปนความผดพลาดทเกดจากการเขยนคำาสงของภาษาคอมพวเตอรผด   ตวอยางเชน    คำาสง  printf( )  ในภาษา C   ตองเขยนดวยตวอกษรตวเลก   แตเขยนเปน  PRINTF( )  เปนตน     โดยสวนมากความผดพลาดทางไวยากรณ    จะถกตรวจสอบพบเมอมการแปลโปรแกรม (compile)  ใหเปนภาษาเครอง  ซงเราสามารถแกไขโดยการเขยนคำาสงใหถกตองตามไวยากรณของภาษานน ๆ

                        2) ความผดพลาดทางตรรกะ (logical  error)  เปนความผดพลาดทเกดจากการลำาดบการทำางานผดหรอปอนสตรคำานวณผด ตวอยางเชน ตองการหาคา  X = X + Y แตปอนสตรเปน X = X * Y  อยางน  เปนตน  วธการตรวจหาความผดพลาดแบบน    คอ    ตรวจสอบการคำานวณผลลพธของโปรแกรมวาตรงกบผลลพธทคำานวณดวยมอหรอเครองคดเลขหรอไม    ถาไมตรงกนแสดงวาเกดความผดพลาดทางตรรกะขน    วธการแกไขกคอ  การแกไขสตรใหถกตอง หรอแกไขลำาดบการทำางานใหถกตอง ดงนน  จะเหนไดวาผเขยนโปรแกรมจะตองทำาการทดสอบโปรแกรมและแกไขโปรแกรมใหสามารถทำางานไดตามทตองการ

            1.1.5 การจดทำาเอกสารประกอบ และการบำารงรกษาโปรแกรม (documentation  and  maintenance  program)            เมอผเขยนโปรแกรมไดทำาการทดสอบโปรแกรมและแกไขความผดพลาดทเกดขนเรยบรอยแลว ขนตอนตอไปกควรจดทำาคมอการใชโปรแกรม    เพราะจะทำาใหผใชโปรแกรมสามารถใชงานไดถกตอง    โดยคมอการใชโปรแกรมทดควรจดทำาในลกษณะทแสดงการทำางานเปนขนตอน    ผใชโปรแกรมสามารถปฏบตตามไดจรง  สวนการบำารงรกษาโปรแกรมทพฒนาขนกตองมคำาแนะนำาใหผใชโปรแกรมปฏบต    ตวอยางเชน    การเกบโปรแกรมตนฉบบ     ควรเกบไวในกลองทมดชด     ปองกนฝนได     ไมควรเกบไวบนโตะทำางาน     ไมควรเกบไวในรถยนตเพราะอาจถกอากาศรอนทำาใหเสยได       นอกจากนตองมการสำาเนาโปรแกรมตนฉบบเอาไว    อยางนอย  1  ชด  แลวนำาชดทสำาเนาไปใช    ไมควรใชโปรแกรมตนฉบบโดยตรง    ควรเกบเอาไวสำาหรบกรณทโปรแกรมสำาเนาเกดปญหาจะไดนำาโปรแกรมตนฉบบมาทำาสำาเนาและใชงานไดทนท

Page 16: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

1.2 โครงสรางภายในโปรแกรม            เนอหาในหวขอนจะกลาวถงรปแบบโครงสรางภายในโปรแกรมทผเขยนโปรแกรมจำาเปนตองทราบ เพราะชวยใหผเขยนโปรแกรมสามารถเลอกใชคำาสงใหสอดคลองกบโครงสรางภายในโปรแกรมได  ซงมเนอหา  2  สวนคอ ลกษณะของโปรแกรมแบบโครงสราง  และรปแบบโครงสรางภายในโปรแกรม  ดงรายละเอยดตอไปน            1.2.1 ลกษณะของโปรแกรมแบบโครงสราง                        การเขยนโปแกรมแบบโครงสราง (structured  programming)  หมายถงการเขยนโปรแกรมทมการนำาโครงสรางของคำาสงหลาย ๆ รปแบบมาใชในโปรแกรม  เพอใหโปรแกรมทเขยนขนมขนตอนทแนนอน  และสะดวกตอการแกไขโปรแกรม  โดยหลกเลยงการใชคำาสง  goto  หรอใชใหนอยทสด  เพราะคำาสง  goto  จะทำาใหโปรแกรมมการยายการทำางานจากจดหนงไปยงอกจดหนงทกำาหนดไว  ซงอาจเกดความสบสนในการตรวจสอบการทำางานของโปรแกรมไดโดยทวไปแลวภาษาคอมพวเตอรทเหมาะสมสำาหรบการนำามาเขยนโปรแกรมแบบโครงสรางมหลายภาษา  ตวอยางเชน  ภาษาปาสคาล (PASCAL)  ภาษาโคบอล (COBOL)  และภาษา  C  เปนตน  สำาหรบในเอกสารนจะกลาวถงลกษณะของโปแกรมแบบโครงสรางทเขยนดวยภาษา  C  เทานน

            เพอความเขาใจเกยวกบลกษณะของโปรแกรมแบบโครงสรางมากยงขน  ใหศกษาจากตวอยางโปรแกรมภาษา  C  ดงตอไปน

  โปรแกรมตวอยางท 1.1 แสดงตวอยางโปรแกรมภาษา C ทเปนแบบโครงสรางอยางงาย

/*  strucpro.c  */#include<stdio.h>void  main(void){      /*  สวนท  1  ประกาศตวแปรและกำาหนดคาเรมตนใหตวแปร  */            int    k= 1 ;            float  sum=0 , avg;            /*  สวนท  2  คำานวณคาผลรวมของตวเลข  1+2+3+…+10  */            while  ( k<=10)            {                        sum+=k;                        k++;            }            /*   คำานวณคาเฉลยของตวเลข */            avg = sum/10;            /*  สวนท  3  พมพผลลพธออกทางจอภาพ */            printf(“N=%d , SUM=%.2f , AVERAGE=%.2f\n” , 10,sum,avg);

Page 17: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

}

จากตวอยางโปรแกรมภาษา  C  ขางตนจะเหนวาโปรแกรมนสามารถแบงสวนของการทำางานออกเปน  3  สวนทสำาคญดงน            สวนท  1  คอ  สวนของการประกาศตวแปรและคาเรมตนของตวแปรทจำาเปนตองใชในโปรแกรมซงกคอ  คำาสง  int  k=1;  และคำาสง  float = sum=0, avg;            สวนท  2  คอ สวนของการคำานวณคาผลรวม  และคาเฉลยนของตวเลข  ซงกคอ  คำาสง  while  และคำาสง  avg = sum/10;            สวนท  3  คอ สวนของการแสดงผลลพธทางจอภาพ ซงกคอคำาสง  printf( );

            สำาหรบการแกไขโปรแกรมขางตนสามารถทำาไดงายและสะดวกมาก  ตวอยางเชน  ผเขยนโปรแกรมตองการแกไขสวนของการแสดงผลลพธกสามารถแกไขในสวนท  3  คอแกไขคำาสง  printf( );  เทานน  สวนท  1  และสวนท  2  ไมตองแกไข  หรอทำานองเดยวกนถาตองการแกไขคาเรมตนของตวแปร  k  ใหมคาเปน  10  กสามารถทำาไดงายมากโดยแกไขสวนท  1  คอคำาสง  int  k=1;  แกเปน  int k=10;

            ดงนนจะเหนไดวาลกษณะของโปรแกรม แบบโครงสรางจะมการทำางานเปนขนตอน ทสามารถเขาใจการทำางานของโปรแกรมไดงาย และสะดวกในการแกไขโปรแกรมภายหลง

          

  1.2.2 รปแบบโครงสรางภายในโปรแกรม

                        รปแบบโครงสรางภายในโปรแกรมทควรรจกมดงน                        1.2.2.1 โครงสรางแบบเรยงลำาดบ

รปท 1.4 แสดงโครงสรางแบบเรยงลำาดบ ทมา : สมชาย รตนเลศนสรณ, 2545 : 29.

                        การทำางานของโครงสรางแบบเรยงลำาดบ คอจะทำางานตามคำาสงท 1, คำาสงท 2, …, คำาสงท n ตามลำาดบ

                        1.2.2.2 โครงสรางแบบทดสอบเงอนไขโครงสรางแบบทดสอบเงอนไข หมายถง โครงสรางของคำาสง ทมการทดสอบเงอนไขกอน ทจะทำางานอยางใดอยางหนง ซงสามารถแบงออกเปน 3 ชนด ดงน

                                    1) โครงสรางแบบทดสอบเงอนไข 1 ทาง

Page 18: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

 

รปท 1.5 แสดงโครงสรางแบบทดสอบเงอนไข 1 ทางทมา : สมชาย รตนเลศนสรณ, 2545 : 29.

                                    การทำางานของโครงสรางแบบทดสองเงอนไข 1 ทาง คอทำาการทดสอบเงอนไขวาเปนจรงหรอเทจ ถาเงอนไขเปนจรง ใหทำางานตามคำาสงทกำาหนดไวแลวออกจากการทำางาน แตถาเงอนไขเปนเทจ ใหออกจากการทำางาน

                              

      2) โครงสรางแบบทดสอบเงอนไข  2  ทาง

รปท 1.6 แสดงโครงสรางแบบทดสอบเงอนไข 2 ทางทมา : สมชาย รตนเลศนสรณ, 2545 : 30.

                                    การทำางานของโครงสรางแบบทดสอบเงอนไข 2 ทาง คอทำาการทดสอบเงอนไขวาเปนจรงหรอเทจ ถาเงอนไขเปนจรง ใหทำางานตามคำาสง A ทกำาหนดไวแลวออกจากการทำางาน แตถาเงอนไขเปนเทจ ใหทำางานตามคำาสง B ทกำาหนดไวแลวออกจากการทำางาน

3) โครงสรางแบบทดสอบเงอนไขมากกวา 2 ทางขนไป

Page 19: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

รปท 1.7 แสดงโครงสรางแบบทดสอบเงอนไขมากกวา 2 ทางขนไปทมา : สมชาย รตนเลศนสรณ, 2545 : 30.

การทำางานของโครงสรางแบบทดสอบเงอนไขมากกวา 2 ทางขนไป มลกษณะดงตอไปน  1. ทำาการทดสอบเงอนไขท 1 วาเปนจรงหรอเทจ ถาเงอนไขเปนจรง ใหทำางานตามคำาสง A ทกำาหนดไวแลวออกจากการทำางาน แตถาเงอนไขเปนเทจ ใหทำางานในขอ 2.2. ทำาการทดสอบเงอนไขท 2 วาเปนจรงหรอเทจ ถาเงอนไขเปนจรง ใหทำางานตามคำาสง B ทกำาหนดไวแลวออกจากการทำางาน แตถาเงอนไขเปนเทจ ใหทำางานในขอ 3.3. ทำาการทดสอบเงอนไขใหมอก โดยทำาซำาเชนนไปเรอย ๆ จนกวาจะถงเงอนไขสดทาย (เงอนไขท n) ถาเงอนไขเปนจรง ใหทำางานตามคำาสง N ทกำาหนดไวแลวออกจากการทำางาน แตถาเงอนไขเปนเทจ ใหออกจากการทำางาน

                        1.2.2.3 โครงสรางแบบทำางานวนลป

                                    โครงสรางแบบทำางานวนลป หมายถง โครงสรางของคำาสงทมการทำางานซำา ๆ เปนวงจรปด จนกวาเงอนไขททดสอบจะตรงกบคาจรงหรอเทจตามโครงสรางทใช จงสามารถออกจากการทำางานได ซงสามารถแบงออกเปน 2 ชนด ดงน

                                    1) โครงสรางแบบ DO UNTIL

Page 20: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

รปท 1.8 แสดงโครงสรางแบบ DO UNTILทมา : สมชาย รตนเลศนสรณ, 2545 : 31.

                                    การทำางานของโครงสรางแบบ DO UNTIL คอเรมตนดวยการทำางานตามคำาสงทตองการภายในลปจนหมดคำาสงไป 1 รอบ จากนนจงทำาการทดสอบเงอนไขวาเปนจรงหรอเทจ ถาเงอนไขเปนเทจ ใหกลบไปทำางานตามคำาสงภายในลปอก ทำางานซำา ๆ เชนนจนกวาเงอนไขเปนจรง จงออกจากการทำางานแบบนได ลกษณะของโครงสรางแบบ DO UNTIL นจะตรงกบคำาสง REPEAT UNTIL ในภาษาปาสคาล

                                    2) โครงสรางแบบ DO WHILE 

รปท 1.9 แสดงโครงสรางแบบ DO WHILEทมา : สมชาย รตนเลศนสรณ, 2545 : 32.

                                    การทำางานของโครงสรางแบบ DO WHILE คอเรมตนดวยการทดสอบเงอนไขวาเปนจรงหรอเทจ ถาเงอนเปนจรง ใหทำางานตามคำาสงทตองการภายในลปจนหมดคำาสง จากนนจงยอนกลบไปทำาการทดสอบเงอนไขอกครงวาเปนจรงหรอเทจ ถาเงอนไขเปนจรง ใหทำางานตามคำาสงภายในลปอก ทำางานซำา ๆ เชนนจนกวาเงอนไขเปนเทจ จงออกจากการทำางานแบบนได ลกษณะของโครงสราง DO WHILE นจำาตรงกบคำาสง while ในภาษา C

ขอควรระวงของโครงสรางแบบทำางานวนลป คอการทำาสอบเงอนไขจะตองมทง 2 กรณ คอเปนจรง และเปนเทจ ตวอยางเชน โครงสรางแบบ DO UNTIL ถาเงอนไขททดสอบไมมกรณทเปนจรง จะทำาใหการทำางานของโปรแกรมทำางานซำา ๆ แบบไมมทางออกได ในทำานองเดยวกนโครงสรางแบบ DO WHILE ถาเงอนไขททดสอบไมมกรณทเปนเทจ จะทำาใหการทำางานของโปรแกรมวนทำางานซำา ๆ แบบไมมทางออกได

Page 21: kroo1.files.wordpress.com€¦  · Web viewเนื้อหาในบทนี้จะกล่าวถึงขั้นตอนวิธีการทางคอมพิวเตอร์

1.3 สรปทายบท

            ความรพนฐานในการเขยนโปแกรม มเนอหาเพอใหผเขยนโปรแกรม ทราบขนตอนวธการกอนทจะเขยนโปรแกรมคอมพวเตอรภาษาใดภาษาหนง เพอแกปญหาทางคอมพวเตอร  ผเขยนโปรแกรมควรศกษาขนตอนวธการทางคอมพวเตอร   เพอใหเกดความรความเขาใจทถกตองตามขนตอนวธดงน

1. การวเคราะหงาน  (job analysis)  จะตองกำาหนดจดประสงคของการวเคราะหงาน  และขนตอนวธการวเคราะหงานแตละอยางใหได

2. การเขยนผงงานโปรแกรม  (program flowcharting)  เปนการเขยนแผนภาพโดยใชสญลกษณมาตรฐานทางคอมพวเตอร  เพอแสดงขนตอนวธการทำางานของโปรแกรมหรอระบบงานตามทเราไดวเคราะหงานไว

3. การเขยนโปรแกรม  (programming)  เปนการเขยนชดคำาสงภาษาใดภาษาหนงเพอสงใหคอมพวเตอรทำางานตามทเราตองการ  ตามแผนผงทเราไดเขยนไว

4. การทดสอบ  และแกไขโปรแกรม  (testing and editing program)  ภายหลงจากทเราไดเขยนโปรแกรมแลวจะตองมการทดสอบโปรแกรมทเขยนขนวามความผดพลาดทางไวยากรณภาษา  หรอมความผดพลาดทางตรรกะหรอไมอยางไร  แลวแกไขโปรแกรมทผดใหไดโปรแกรมทถกตองสมบรณ

5. การจดทำาเอกสารประกอบ และการบำารงรกษาโปรแกรม (documentation and maintenance program) ภายหลงจากไดทำาการทดสอบโปรแกรมและแกไขความผดพลาดทเกดขนเรยบรอยแลว ขนตอนตอไปกควรจดทำาคมอการใชโปรแกรม    เพราะจะทำาใหผใชโปรแกรมสามารถใชงานไดถกตอง    โดยคมอการใชโปรแกรมทดควรจดทำาในลกษณะทแสดงการทำางานเปนขนตอน    ผใชโปรแกรมสามารถปฏบตตามไดจรง  สวนการบำารงรกษาโปรแกรมทพฒนาขนกตองมคำาแนะนำาใหผใชโปรแกรมปฏบตได

            สำาหรบเนอหาสวนทายในบทนตองการใหทราบถงโครงสรางภายในโปรแกรม เพราะจะชวยใหผเขยนโปรแกรม สามารถเลอกใชคำาสงใหสอดคลองกบโครงสรางภายในโปรแกรมได  และใหทราบถงลกษณะการเขยนโปรแกรมแบบโครงสราง  ทมการนำาโครงสรางของคำาสงหลาย ๆ รปแบบมาใชในการเขยนโปรแกรม  เพอใหโปรแกรมทเขยนขนมขนตอนทแนนอน  และสะดวกตอการแกไขโปรแกรม