Posted: มิถุนายน 27, 2012 in บทที่7
เป็นขั้นตอนที่ 2 ของวงจรการพัฒนาโปรแกรมซึ่งการออกแบบโปรแกรมเป็นขั้นตอนที่ต้องใช้เครื่องมือช่วยในการออกแบบ เช่น ผังงาน (Flowchart) รหัสจำลอง (Pseudo code) เป็นต้น ซึ่งจะช่วยให้เข้าใจขั้นตอนการทำงานของโปรแกรมได้ดียิ่งขึ้น
ผังงาน (Flowchart) เป็นเครื่องมือชนิดหนึ่งที่ใช้รูปภาพแสดงถึงขั้นตอนการเขียนโปรแกรมและมีลูกศรแสดงทิศทางการไหลของข้อมูลจากจุดเริ่มต้นถึงจุดเส้นสุด
การออกแบบ
สำหรับการออกแบบในการเรียนรู้เบื้องต้น จะให้นักเรียนเรียนรู้เฉพาะการออกแบบการแก้ปัญหาเท่านั้น นั่นคือไม่รวมถึงการออกแบบหน้าจอ (User interface) หรือออกแบบฐานข้อมูล (Database) หรืออื่นๆ วิธีการออกแบบการแก้ปัญหานั้น นิยมทำอยู่ 3 ลักษณะ ได้แก่
1.การเขียนขั้นตอนวิธี (Algorithm)
2.การเขียนผังงาน (Flowchart)
3.การเขียนรหัสลำลอง (Pseudo code)
ในที่นี้จะกำหนดให้นักเรียนเรียนรู้เฉพาะการเขียนผังงานเท่านั้นซึ่งเป็นวิธีที่นิยมมากที่สุด เพราะมองเห็นขั้นตอนและทิศทางการทำงานของโปรแกรมได้ง่ายกว่าวิธีอื่นๆ
นักเรียนพิจารณาผังงานของโปรแกรมหาพื้นที่สี่เหลี่ยมผืนผ้า ต่อไปนี้
จะเห็นว่าผังงานประกอบไปด้วยรูปที่มีลักษณะต่างๆ กันหลายรูป ซึ่งแต่ละรูปจะมีข้อความอยู่ภายใน แต่ละรูปจะมีลูกศรเชื่อมโยงจากบนลงมาล่าง ต่อไปเราจะศึกษาถึงรูปต่างๆ ว่ามีความหมายอย่างไร
ผังงาน (Flowchart)
ผังงาน คือ การออกแบบวิธีการแก้ปัญหาของการเขียนโปรแกรมในลักษณะของแผนภาพและลูกศร ด้วยสัญลักษณ์และทิศทางที่แน่นอน เป็นระบบ มองเห็นขั้นตอนการทำงานได้ง่ายกว่าขั้นตอนวิธี นิยมใช้ประโยคสัญลักษณ์หรือรหัสโปรแกรมที่เข้าใจง่ายเขียนไว้ในสัญลักษณ์ สำหรับรูปสัญลักษณ์แบบต่างๆ มีลักษณะเป็นสากลที่เข้าใจได้ตรงกัน ซึ่งสถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute, ANSI) เป็นผู้กำหนดเอาไว้ มีรายละเอียดรูปแบบและความหมายที่ควรทราบ ดังนี้
ตารางที่ 4.1 สัญลักษณ์ที่ใช้ในการทำผังงาน
สัญลักษณ์ | ชื่อเรียก | ความหมาย |
การทำงานด้วยมือ (manual operation) | แทนจุดที่มีการทำงานด้วยแรงคน | |
การนำเข้าข้อมูล-ออกโดยทั่วไป (general input/output) | แทนจุดที่จะนำเข้าหรือออกจากระบบคอมพิวเตอร์โดยไม่ระบุชนิดของอุปกรณ์ | |
จานบันทึกข้อมูล (magnetic disk) | แทนจุดที่นำข้อมูลเข้าหรือออกจากโปรแกรมด้วยจานบันทึกข้อมูล | |
การนำข้อมูลเข้าด้วยมือ (manual input) | แทนจุดที่จะนำเข้าข้อมูลด้วยมือ | |
การแสดงข้อมูล (display) | แทนจุดที่แสดงข้อมูลด้วยจอภาพ | |
การทำเอกสาร (document) | แทนจุดที่มีข้อมูลเป็นเอกสารหรือแสดงข้อมูลออกทางเครื่องพิมพ์ | |
การตัดสินใจ (decision) | แทนจุดที่จะต้องเลือกปฏิบัติอย่างใดอย่างหนึ่ง | |
การปฏิบัติงาน (process) | แทนจุดที่มีการปฏิบัติงานอย่างใดอย่างหนึ่ง | |
การเตรียมการ (preparation) | แทนจุดกำหนดชื่อข้อมูลหรือค่าเริ่มต้นต่างๆ | |
การเรียกโปรแกรมภายนอก (external subroutine) | แทนจุดเรียกใช้โปรแกรมย่อย ที่ไม่ได้อยู่ในโปรแกรมนั้น | |
การเรียกใช้โปรแกรมภายใน (internal subroutine) | แทนจุดเรียกใช้โปรแกรมย่อย ที่อยู่ในโปรแกรมนั้น | |
การเรียงข้อมูล (sort) | แทนจุดที่มีการเรียงข้อมูลใหม่ตามข้อกำหนด | |
ทิศทาง (flow line) | แทนทิศทางขั้นตอนการดำเนินงานซึ่งจะปฏิบัติต่อเนื่องกันตามหัวลูกศรชี้ | |
หมายเหตุ (annotation) | แทนจุดที่แสดงรายละเอียดเพิ่มเติม หรือหมายเหตุของจุดต่างๆ ที่แสดงในผังงานด้วยสัญลักษณ์ไม่ชัดเจน | |
การติดต่อทางไกล (communication link) | แทนช่วงที่มีการติดต่อหรือย้ายข้อมูลด้วยระบบการติดต่อทางไกล | |
จุดเชื่อมต่อ (connector) | แทนจุดเชื่อมต่อของผังงานเมื่อใช้สัญลักษณ์เพื่อให้ดูง่าย | |
จุดเชื่อมต่อหน้ากระดาษ (off page connector) | แทนจุดเชื่อมต่อของผังงานเมื่อใช้สัญลักษณ์เพื่อให้ดูง่าย | |
เริ่มต้นและลงท้าย (terminal) | แทนจุดเริ่มต้นและลงท้ายของผังงานของโปรแกรมหลักและโปรแกรมย่อย |
ประโยชน์ของผังงาน
• ช่วยลำดับขั้นตอนการทำงานของโปรแกรม และสามารถนำไปเขียนโปรแกรมได้โดยไม่สับสน
• ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
• ช่วยให้การดัดแปลง แก้ไข ทำได้อย่างสะดวกและรวดเร็ว
• ช่วยให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น
วิธีการเขียนผังงานที่ดี
• ใช้สัญลักษณ์ตามที่กำหนดไว้
• ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา ยกเว้นมีการทำงานแบบย้อนกลับ
• คำอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย
• ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
• ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
• ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรม
ตามที่นักเรียนได้ศึกษาถึงเรื่องการวิเคราะห์ปัญหาและความต้องการในหัวข้อที่ผ่านมา ทีนี้เราจะนำผลการวิเคราะห์มาออกแบบโปรแกรมในลักษณะของผังงาน ดังต่อไปนี้
ผังงานดังกล่าวข้างต้น จัดว่าเป็นการทำงานแบบลำดับ เพราะจะมีการทำงานตามลำดับจากบนลงล่าง โดยทุกคำสั่งจะมีโอกาสทำงานแน่นอนแต่จะทำงานเพียง 1 ครั้งเท่านั้น การทำงานแบบลำดับจัดว่าเป็นโครงสร้างหนึ่งของการเขียนโปรแกรม นอกจากนี้ยังมีโครงสร้างอีก 2 รูปแบบคือ โครงสร้างการทำงานแบบทางเลือก โดยแบบทางเลือกจะมีบางคำสั่งที่ไม่โอกาสได้ทำงาน ขึ้นอยู่กับเงื่อนไข และโครงสร้างการทำงานแบบทำซ้ำ โดยแบบทำซ้ำจะมีบางคำสั่งมีโอกาสทำงานซ้ำๆ หลายรอบ สำหรับรายละเอียดนักเรียนจะได้เรียนรู้อีกครั้งในลำดับถัดไป