วันเสาร์ที่ 19 มีนาคม พ.ศ. 2559

การเขียนผังงาน

ในการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โดยทั่วไปจะมีหลักการหรือขั้นตอนที่สาคัญทั้งหมด 5 ขั้นตอนได้แก่

                             1. การวิเคราะห์ปัญหา
                             2. การออกแบบโปรแกรม 
                             3. การเขียนโปรแกรม 
                             4. การทดสอบและแก้ไขโปรแกรม 
                             5.ทำเอกสารประกอบโปรแกรม
 
            ดังนั้นก่อนที่จะลงมือเขียนโปรแกรมในขั้นตอนที่ 3 หลังจากทาการวิเคราะห์ปัญหาแล้ว จะต้องมีการออกแบบโปรแกรมเพื่อเป็นการวางแผนการทางานก่อน ผังงาน Flowchart เป็นเครื่องมือหนึ่งที่ใช้อธิบายลาดับขั้นตอนการทางานในรูปแบบแผนภาพ โดยใช้สัญลักษณ์รูปร่างต่าง ๆ ที่มีความหมายแทนคาสั่ง และใช้ข้อความในสัญลักษณ์แทนข้อมูลตัวแปร ตัวดาเนินการทางการคานวณ และการเปรียบเทียบ นอกจากนั้นผังงานยังใช้แสดงความสัมพันธ์ระหว่างขั้นตอนการทางานต่าง ๆ โดยสามารถแบ่งลักษณะการทางานและความสัมพันธ์เป็นรูปแบบต่างๆ ได้แก่ การทางานแบบมีลาดับ การทางานแบบมีเงื่อนไข และการทางานแบบทาซ้าภายใต้เงื่อนไขต่าง ๆ หลังจากนั้นจึงนาผังงาน Flowchart ที่ออกแบบไว้นาไปเขียนเป็นภาษาคอมพิวเตอร์ ดังนั้นผังงานจึงเป็นเครื่องมือที่ช่วยให้ผู้เขียนโปรแกรมและผู้ใช้ สามารถ
มองเห็นภาพการทางานของโปรแกรมที่กาลังจะสร้างได้อย่างเป็นระบบและง่ายขึ้น

ประเภทของผังงาน โดยทั่วไปผังงานคอมพิวเตอร์แบ่งเป็น 2 ประเภทใหญ่

        1. ผังงานระบบ (System Flowchart)

                        เป็นผังงานที่แสดงถึงขั้นตอนการทางานภายในระบบหนึ่ง ๆ เพื่อให้เห็นโครงสร้างโดยภาพรวมของระบบ ซึ่งจะแสดงถึงความเกี่ยวข้องของส่วนที่สาคัญต่างๆ ในระบบนั้น เช่น เอกสารข้อมูลเบื้องต้น สื่อบันทึกข้อมูลที่ใช้ ข้อมูลจะส่งผ่านไปยังหน่วยงานใด มีกิจกรรมประมวลผลข้อมูลอะไรในหน่วยงานนั้น แล้วจะส่งต่อไปหน่วยงานใด เป็นต้น ดังนั้นผังงานระบบอาจเกี่ยวข้องกับข้อมูล สื่อหรือแหล่งบันทึกข้อมูล วัสดุปกรณ์ คน หรือฝ่ายงานที่เกี่ยวข้อง ซึ่งแต่ละจุดจะประกอบไปด้วย 
การนาข้อมูลเข้า วิธีการประมวลผล และการแสดงผลลัพธ์ (Input – Process - Output) ดังภาพ

ภาพแสดงตัวอย่างผังงานระบบ


        2. ผังงานโปรแกรม (Program Flowchart) หรือเรียกสั้นๆ ว่า ผังงาน

            ผังงานประเภทนี้แสดงถึงขั้นตอนของคาสั่งที่ใช้ในโปรแกรม ผังงานนี้อาจสร้างจากผังงานระบบโดยผู้เขียนผังงานจะดึงเอาแต่ละจุด ที่เกี่ยวข้องกับการทางานของเครื่องคอมพิวเตอร์ที่ปรากฏในผังงานระบบมาเขียน เพื่อให้ทราบว่าถ้าจะใช้คอมพิวเตอร์ทางานควรที่จะมีขั้นตอนคาสั่งอย่างไร เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ และจะได้นามาเขียนโปรแกรมคอมพิวเตอร์ต่อไป
            ดังนั้นการเขียนผังงานก็จะมีประโยชน์ เหมาะสาหรับผู้บริหาร ผู้วิเคราะห์ระบบ ผู้เขียนโปรแกรม และบุคคลอื่นที่ต้องการศึกษา ทาให้ทราบถึงความสัมพันธ์ของระบบตั้งแต่เริ่มต้น ว่ามีการปฏิบัติแต่ละขั้นตอนอย่างไร ใช้วิธีการอะไรบ้าง สุดท้ายจะได้ผลลัพธ์อะไรบ้าง เมื่อเข้าใจระบบงานหรือสิ่งที่กาลังศึกษาก็จะช่วยให้สามารถปฏิบัติงานและแก้ปัญหาได้อย่างมีประสิทธิภาพมากยิ่งขึ้น ดังภาพ

ภาพแสดงตัวอย่างการกำหนดจุดเริ่มต้นและสิ้นสุดของการเขียนผังงาน



ประโยชน์ของผังงาน

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

ข้อจากัดของการเขียนผังงาน

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

วิธีการเขียนผังงานที่ดี 

การเขียนผังงานควรคานึงถึงสิ่งต่าง ๆ ดังนี้ 
                1. ใช้สัญลักษณ์ตามที่กาหนดไว้ 
                2. ผังงานจะต้องมีจุดเริ่มต้น (Start)และสิ้นสุด (Stop/End/Finish) 
                3. ใช้หัวลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่างหรือซ้ายไปขวา (ยกเว้นที่ต้องทาซ้า) 
                4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า 1 เส้นและออก 1 เส้นโดยไม่มีการปล่อยจุดใดจุดหนึ่งไว้ 
                5. เขียนคาอธิบายการทางานในแต่ละขั้นตอนโดยใช้ข้อความที่สั้น กะทัดรัด ชัดเจนและเข้าใจได้ง่าย 
                6. ควรหลีกเลี่ยงโยงเส้นไปมาทาให้เกิดจุดตัดมากเพราะจะทาให้เกิดข้อผิดพลาดง่าย ควรใช้สัญลักษณ์เชื่อมจุดต่อเนื่องแทน
                7. ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
                8. ผังงานที่ดีควรมีความเป็นระเบียบเรียบร้อย สะอาดและชัดเจน สามารถเข้าใจและติดตามขั้นตอนได้ง่าย
                9. ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนไปเขียนโปรแกรม


สัญลักษณ์และความหมายของผังงาน

การเขียนผังโปรแกรมจะมีขั้นตอนในการเขียนที่สาคัญประกอบกันดังนี้

                    1. การกำหนดจุดเริ่มต้นและสิ้นสุดโปรแกรม 
                                    โดยการเริ่มต้นผังงานจะใช้คาว่า Start และการสิ้นสุดจะใช้คาว่า Stop ซึ่งข้อความดังกล่าวจะอยู่ในสัญลักษณ์ ดังภาพ

ภาพแสดงตัวอย่างการกาหนดจุดเริ่มต้นและสิ้นสุดของการเขียนผังงาน

                    2. การกำหนดค่าเริ่มต้นและการคำนวณ
                                    ในการเขียนผังงานโปรแกรม จะมีการกาหนดค่าเริ่มต้น หรือ การกาหนดค่าคงที่ ให้กับข้อมูล รวมถึงจะมีการคานวณข้อมูลในรูปของสูตรสมการคณิตศาสตร์ ซึ่งขั้นตอนเหล่านี้จะเขียนข้อความภายในสัญลักษณ์กรอบสี่เหลี่ยมผืนผ้า ดังภาพ
ภาพแสดงการกาหนดค่าเริ่มเริ่มต้น ค่าคงที่ และ การคานวณ

                       3. การรับข้อมูลนาเข้า
                                    เป็นการรับข้อมูลเข้าสู่โปรแกรม หรือข้อมูลที่ต้องป้อนให้คอมพิวเตอร์นาไปใช้ในการคานวณ หรือประมวลผลข้อมูล หากไม่ระบุว่าจะรับเข้าทางอุปกรณ์ใด จะเขียนข้อความรับค่า หรือ Read ข้อมูล ภายในสัญลักษณ์สี่เหลี่ยมด้านขนาน ดังภาพ

ภาพแสดงการรับข้อมูล a , b เข้าสู่โปรแกรมโดยไม่ระบุอุปกรณ์นาเข้า


ภาพแสดงการรับข้อมูล a , b เข้าสู่โปรแกรมทางคีย์บอร์ด

                         4. การแสดงผลข้อมูล
                                        เป็นการนาข้อมูลที่ได้จากการกาหนดค่า หรือ การคานวณ หรือการประมวลผลใดใด มาแสดงผลออกทางอุปกรณ์ที่กาหนด จะเขียนข้อความแสดงผล หรือ Print ภายในสัญลักษณ์ ดังภาพ

ภาพแสดงการแสดงผลข้อมูล x , y โดยไม่ระบุอุปกรณ์แสดงผล



                                                ภาพการแสดงผลข้อมูล x , y ออกทางจอภาพ                                             ภาพการแสดงผลข้อมูล x , y ออกทางเครื่องพิมพ์


                            5. การตรวจสอบเงื่อนไข
                                          เป็นการเปรียบเทียบเพื่อตรวจสอบเงื่อนไข ซึ่งจะได้ผลลัพธ์จากการตรวจสอบเป็นตรรกะ จริงหรือเท็จอย่างใดอย่างหนึ่งเท่านั้น โดยจะเขียนข้อความเงื่อนไขที่ต้องการเปรียบเทียบภายในสัญลักษณ์สี่เหลี่ยมขนมเปียกปูน ดังภาพ


ภาพแสดงการเปรียบเทียบเพื่อตรวจสอบข้อมูล G มีค่ามากกว่า 100 ใช่หรือไม่ 
ถ้าหากมากกว่าจริงให้แสดงข้อความ “Over” ถ้าหากเท็จ ให้แสดงข้อความ “Ok”

                            6. จุดต่อและการเชื่อมโยงผังงาน
                                          ในการเขียนผังงานอาจมีลาดับการทางานหลายขั้นตอน ต้องใช้กระดาษมากกว่า 1 แผ่น หรือมีจุดต่อหลายจุดในหน้าเดียวกันจึงจาเป็นต้องใช้สัญลักษณ์เชื่อมโยงผังงานดังกล่าวเพื่ออ้างอิงจุดเชื่อมต่อนั้นไปยังตาแหน่งที่มีชื่อหรืออักษรเดียวกัน ดังภาพ


ภาพแสดงจุดต่อ A เชื่อมโยงผังงานในหน้าเดียวกัน

ภาพแสดงจุดต่อ A เชื่อมโยงผังงานที่อยู่คนละหน้า

                                    7.เส้นแสดงทิศทาง 
                                                    เป็นสัญลักษณ์แสดงทิศทางการทำงานของ Flowchart 

                                               


                                    8.การอธิบายผังงาน
                                           เป็นสัญลักษณ์แสดงการอธิบายผังงาน เพิ่มเติมหรือเป็นการหมายเหตุ (Comment)
               

                                            

ตัวอย่างการเขียนผังงาน Flowchart
    
    ตัวอย่างที่ 1 ผังงานการต้มบะหมี่สำาเร็จรูป


 


ตัวอย่างที่ 2 ผังงานหาพื้นที่สี่เหลี่ยม




ตัวอย่างที่ 3 ผังงานตัดสินผลการเข้าร่วมกิจกรรม


หลักในการเขียนโฟลว์ชาร์ต

            ในการเขียนผังงานหรือโฟลว์ชาร์ต ต้องรู้จักเลือกใช้รูปภาพหรือสัญลักษณ์ที่เหมาะสม รวมถึงอุปกรณ์ที่ช่วยในการเขียนผังงานที่เรียกว่า “ Flow Chart Template “ ซึ่งอุปกรณ์นี้จะช่วยให้การเขียนผังงานสะดวกและรวดเร็วยิ่งขึ้น
            ในการเขียนผังงานนี้จะเขียนตามขั้นตอนและวิธีการประมวลผลที่ได้ทำการวิเคราะห์งานเอาไว้แล้ว ซึ่งต้องพิจารณาตามลำดับก่อนหลังของการทำงาน เพื่อจัดภาพของผังงานให้เป็นมาตรฐานง่ายต่อการเข้าใจ และช่วยให้การเขียนโปรแกรมจากผังงานมีประสิทธิภาพมากยิ่งขึ้น เพื่อให้การเขียนผังงานเป็นมาตรฐานเดียวกันจะใช้ลำดับในการเขียนผังงานดังนี้

                        1. การกำหนดค่าเริ่มต้น เป็นการกำหนดค่าเริ่มต้นให้กับตัวแปรต่างๆ ที่จำเป็นบางตัว ได้แก่ ตัวแปรที่ใช้เป็นตัวนับ หรือตัวแปรที่เป็นตัวคำนวณผลรวมต่างๆ
                        2. การรับข้อมูลเข้า เป็นการรับข้อมูลนำเข้ามาจากแหล่งข้อมูลต่างๆ เพื่อใช้เป็นส่วนหนึ่งของการประมวลผล แล้วนำค่ามาเก็บไว้ในตัวแปรใด ๆ ที่กำหนดเอาไว้
                        3. การประมวลผล เป็นการประมวลผลตามที่ได้มีการกำหนด หรือเป็นการคำนวณต่างๆ ซึ่งจะต้องทำทีละลำดับขั้นตอนและแยกรูปแต่ละรูปออกจากกันให้ชัดเจนด้วย
                        4. การแสดงผลลัพธ์ เป็นการแสดงข้อมูลที่ได้จากการคำนวณหรือผลลัพธ์ที่ต้องการหรือค่าจากตัวแปรต่างๆ ซึ่งการแสดงผลลัพธ์นี้มักจะกระทำหลังจากการประมวลผล
                            หรือหลังจากการรับข้อมูลเข้ามาแล้ว
 
ข้อสังเกตในการเขียนโฟลว์ชาร์ต

                        1. โฟลว์ชาร์ตใด ๆ จะมีจุดเริ่มต้นและจุดสิ้นสุดเพียงอย่างละแห่งเดียวเท่านั้น
                        2. ทุกสัญลักษณ์ที่ใช้แทนขั้นตอนการทำงาน จะต้องมีทิศทางเข้าเพียง 1 แห่งและทิศทางออกเพียง 1 แห่งเท่านั้น ยกเว้นสัญลักษณ์ของจุดเริ่มเริ่มต้น จุดสิ้นสุด จุดต่อ
                             และ การตัดสินใจ
                        3. ทิศทางของลำดับขั้นตอนการทำงานในโฟลว์ชาร์ตนิยมเขียนจากซ้ายไปขวาหรือจากบนลงล่าง
                        4. หลีกเลี่ยงการขีดเส้นโยงไปโยงมาในลักษณะที่ตัดกัน ถ้าจำเป็นต้องโยงเส้นดังกล่าวถึงกันควรใช้เครื่องหมายต่อจุดเพื่อเชื่อมความสัมพันธ์แทน
                        5. สัญลักษณ์ต่าง ๆ นั้นจะเปลี่ยนรูปเป็นอย่างอื่นไม่ได้ ต้องเป็นไปตามมาตรฐานที่กำหนดไว้แล้วเท่านั้น
                        6. ควรมีเครื่องหมายลูกศรกำกับทิศทางทางไหลให้กับแต่ละสัญลักษณ์ ด้วย
                        7. คำอธิบายการทำงานควรเขียนให้สั้นเข้าใจง่ายและเขียนในสัญลักษณ์ของโฟลว์ชาร์ต ทั้งหมดหากมีคำอธิบายเพิ่มเติมให้เขียนไว้บนสัญลักษณ์ด้านขวา
                        8. ในการเขียนโฟลว์ชาร์ตควรเขียนให้เป็นระเบียบ เรียบร้อย และสะอาด

ที่มา(https://sites.google.com/site/programmingm42/kar-kheiyn-phang-ngan-flowchart)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น