เนื้อหา การเขียนผังงานและการเขียนโปรแกรม ผังงาน (flowchart) คือ แผนภาพซึ่งแสดงลาดับขั้นตอนของการทางาน โดยแต่ละขั้นตอนจะถูกแสดงโดย ใช้สัญลักษณ์ซึ่งมีความหมายบ่งบอกว่า ขั้นตอนนั้น ๆ มีลักษณะการทางาน ทาให้ง่ายต่อความเข้าใจ ว่าในการ ทางานนั้นมีขั้นตอนอะไรบ้าง และมีลาดับอย่างไร
ประโยชน์ของผังงาน 1. ช่วยให้สามารถทาความเข้าใจลาดับขั้นตอนการทางานของโปรแกรมหรือระบบใด ๆได้อย่างรวดเร็ว 2. ช่วยแสดงลาดับขั้นตอนการทางาน ทาให้สามารถเขียนโปรแกรมได้อย่างเป็นระบบไม่สับสน นอกจากนี้ผังงานยังเป็นอิสระต่อภาษาที่ใช้ในการ เขียนโปรแกรม กล่าวคือจากผังงานเดียวกันสามารถนาไปเขียน โปรแกรมด้วยภาษาใดก็ได้
ประเภทของผังงาน 1. ผังงานระบบ (system flowchart) เป็นผังซึ่งแสดงขอบเขต และลาดับขั้นตอนการทางานของระบบหนึ่ง ๆ รวมทั้งแสดงรูปแบบของข้อมูลเข้า (Input) และข้อมูลออก (Output) ว่าถูกรับเข้าหรือแสดงผลโดยผ่านสื่อประเภทใด เนื่องจากผังงานระบบเป็น แผนภาพที่แสดงถึงระบบโดยรวม ดังนั้นกระบวนการหรือโปรแกรมหนึ่ง ๆ อาจถูกแสดงเป็นเพียงขั้นตอนหนึ่งในผัง งานระบบเท่านั้น 2. ผังงานโปรแกรม (Program flowchart) เป็นผังงานซึ่งแสดงลาดับขั้นตอนการทางานของโปรแกรมหนึ่ง ๆ
จากตัวอย่างผังงานระบบมีความหมายดังนี้ 1. นาข้อมูลเข้าจากฐานข้อมูลพนักงาน ซึ่งอยู่ในดิสก์ (disk) จึงเขียนแทนด้วยสัญลักษณ์
2. คานวณเงินเดือน เป็นการประมวลผล จึงเขียนแทนด้วยสัญลักษณ์สี่เหลี่ยมผืนผ้า
3. พิมพ์เช็ค เป็นการแสดงผลทางเครื่องพิมพ์ จึงเขียนแทนด้วยสัญลักษณ์
ตัวอย่างผังงานโปรแกรม ผังงานโปรแกรมนี้แสดงการคานวณเงินเดือนของพนักงาน โดยถ้าชั่วโมงการทางานในเดือนนั้น ๆ ไม่เกิน 160 ชั่วโมง เงินเดือนจะถูกคานวณโดยใช้อัตราค่าแรงตามปกติ แต่ถ้าชั่วโมงการทางานเกิน 160 ชั่วโมง 160 ชั่วโมงแรกจะใช้อัตราค่าแรงตามปกติ และจานวนชั่วโมงที่เกินจะคิดค่าแรงโดยใช้อัตราของค่าล่วงเวลา (overtime หรือ OT ) ซึ่งเท่ากับ 1.5 เท่าของอัตราค่าแรงปกติ
จากผังงานสามารถแสดงขั้นตอนการทางานได้ดั้งนี้ 1.เริ่มต้นโปรแกรม ใช้สัญลักษณ์เทอร์มินัล
2.รับข้อมูลเข้า หรืออ่านค่าของข้อมูล ใช้สัญลักษณ์การรับค่าหรือแสดงผล
โดยข้อมูลที่รับประกอบด้วย - ชื่อพนักงาน - จานวนชั่วโมงการทางาน - อัตราค่าแรง
3.พิจารณาเงื่อนไขว่าจานวนชั่วโมงการทางานมากว่า 160 ชั้วโมงหรือไม่ โดยใช้สัญลักษณ์การตัดสินใจ
3.1 ถ้าใช่ ให้ใช้สมการต่อไปนี้ในการคานวณค่าจ้าง ค่าจ้าง = ((ชั่วโมงการทางาน - 160) *1.5 * อัตราค่าแรง)+(160 *อัตราค่าแรง) 3.2 ถ้าไม่ใช่ ให้ใช้สมการต่อไปนี้ในการคานวณค่าจ้าง ค่าจ้าง = (ชั่วโมงการทางาน * อัตราค่าแรง) การคานวณค่าจ้างในขั้นตอนที่ 3.1 และ 3.2 ใช้สัญลักษณ์การประมวลผล
4. แสดงชื่อพนักงาน และค่าจ้างที่ได้จากการคานวณ ใช้สัญลักษณ์การรับเข้าหรือแสดงผล
5. จบโปรแกรมโดยใช้สัญลักษณ์เทอร์มินัล
สัญลักษณ์ที่ใช้ในการเขียนผังงาน (FLOWCHATING SYMBOLS) การเขียนผังงาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการทางาน โดยนาภาพสัญลักษณ์ต่าง ๆ มา เรี ย นต่ อ กั น สั ญ ลั ก ษณ์ ที่ นิ ย มใช้ ใ นการเขี ย นผั ง งานนั้ น หน่ ว ยงานที่ ชื่ อ ว่ า American National Standards Institute (ANSI) และ International Standard Organization (ISO) ได้ร่วมกันกาหนดสัญลักษณ์มาตรฐานเพื่อ ใช้ในการเขียนผังงานดังนี้
หลักเกณฑ์ในการเขียนผังงาน 1. สัญลักษณ์ที่ใช้อาจมีขนาดต่างๆ กันได้ แต่จะต้องมีรูปร่างเป็นสัดส่วนตามมาตรฐาน 2. ทิศทางของลูกศรในผังงาน ควรมีทิศทางจากบนลงล่าง หรืออาจจากซ้ายไปขวาเสมอ 3. ผังงานคสรมีความเรียบร้อย สะอาด พยายามหลีกเลี่ยงกากรเขียนลูกศรที่ทาให้เกิดจุดตัด เพราะจะ ทาให้ผังงานอ่านและทาความเข้าใจได้ยาก และถ้าในผังงานมีการเขียนข้อความอธิบายใด ๆ ควรทาให้สั้นกะทัดรัด และได้ใจความ ลักษณะโครงสร้างของผังงาน ผังงานทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ 1.โครงสร้างแบบเป็นลาดับ (sequence structure) 2.โครงสร้างแบบมีการเลือก (selection structure) 3.โครงสร้างแบบทาซ้า (iteration structure)
โครงสร้างแบบเป็นลาดับ (Sequence Structure)
โครงสร้างลักษณะนี้เป็นโครงสร้างพื้นฐานของผังงาน และเป็นลักษณะขั้นตอนการทางานที่พบมากที่สุด คือทางาน ทีละขั้นตอนลาดับ ตัวอย่างผังงานที่มีโครงสร้างแบบเป็นลาดับ
จากตัวอย่างผังงานการคานวณดอกเบี้ย สามารถอธิบายเป็นขั้นตอนได้ดังนี้ 1. เริ่มต้นการทางาน 2. รับค่าเงินต้น และอัตราดอกเบี้ยเพื่อใช้ในการคานวณหาดอกเบี้ย 3. คานวณหาดอกเบี้ยโดยใช้สมการต่อไปนี้ ดอกเบี้ย = เงินต้น * อัตราดอกเบี้ย
4. แสดงค่าของดอกเบี้ยซึ่งคานวณได้ 5. จบการทางาน โครงสร้างแบบมีตัวเลือก (Selection Structure)
โครงสร้างการทางานแบบมีการเลือกมีรูปแบบที่ซับซ้อนกว่าโครงสร้างแบบเป็นลาดับรูปแบบที่ง่ายที่สุด ของโครงสร้างแบบนี้คือ การเลือกแบบมีทางออก 2 ทาง ในการเลือกแบบมีทางออก 2 ทาง นี้จะมีทางออกจาก สัญลักษณ์การตัดสินใจเพียง 2 ทาง คือ ใช่หรือไม่ใช่ เท่านั้น (แต่ระบบการเขียนผังงานระบบ อนุญาตให้มีทางออก จากการตัดสินใจได้มากกว่า 2 ทาง)
ตัวอย่างผังงานที่มีโครงสร้างแบบมีการเลือก ผังงานการคานวณดอกเบี้ยซึ่งมีอัตราดอกเบี้ย 2 อัตรา คือถ้าเงินต้นน้อยกว่า 1 ล้านบาท จะคิดดอกเบี้ย ด้วยอัตราร้อยละ 4 แต่ถ้ามีเงินต้นมากกว่า 1 ล้านบาท จะคิดดอกเบี้ยด้วยอัตราร้อยละ 5 จากผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้ 1. เริ่มต้นการทางาน 2. รับค่าเงินต้น 3. พิจารณาเงินต้นที่รับค่าเข้ามามากกว่า 1 ล้านบาทหรือไม่ - ถ้าใช่ ให้คานวณดอกเบี้ยในอัตราร้อยละ 5 ดังนั้น ดอกเบี้ย = เงินต้น * 0.05
- ถ้าไม่ใช่ ให้คานวณดอกเบี้ยในอัตราร้อยละ 5 ดังนั้น ดอกเบี้ย = เงินต้น * 0.04 4. แสดงค่าดอกเบี้ยที่คานวณได้ 5. จบการทางาน โครงสร้างแบบทาซ้า (Iteration Structure)
โครงสร้างการทางานแบบทาซ้า จะทางานแบบเดียวกันซ้าไปเรื่อย ๆ ในขณะที่ยังเป็นไปตามเงื่อนไขหรือ เงือ่ นไขเป็นจริง จนกระทั้งเงื่อนไขเป็นเท็จจึงทางานอื่นต่อไป ตัวอย่างผังงานที่มีโครงสร้างแบบทาซ้า ผังงานการคานวณยอดบัญชี ( เงินต้นทบดอกเบี้ย )
จากตัวอย่างผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้ 1. เริ่มต้นการทางาน 2. รับค่าเงินต้น อัตราดอกเบี้ย และจานวนปทที่าากเงิน ซึ่งเป็นข้อมูลที่จาเป็นในการคานวณยอดบัญชี (เงินต้นทบดอกเบี้ยตามจานวนปท ที่าากเงิน) 3. กาหนดให้ n มีค่าเท่ากับ 0 ในผังงานนี้ n คือจานวนรอบของการคิดดอกเบี้ย 4. กาหนดยอดบัญชีเริ่มต้นให้เท่ากับเงินต้นที่รับค่าเข้ามา 5. เปรียบเทียบว่า n น้อยกว่าจานวนปทที่าากเงินหรือไม่ 5.1 ถ้าใช่ให้ทาตามขั้นตอนต่อไปนี้ - คานวณยอดบัญชีใหม่โดยทบดอกเบี้ยเพิ่มเข้าไปจากยอดบัญชีเดิมโดยใช้สมการต่อไปนี้ยอด บัญชี = ยอดบัญชี + (ยอดบัญชี * อัตราดอกเบี้ย) - เพิ่มค่า n ไปอีก 1 - กลับไปเปรียบเทียบเงื่อนไขในข้อ 5 5.2 ถ้าไม่ใช่ แสดงว่าคิดดอกเบี้ยทบต้นครบตามจานวนปทที่า ากเงินซึ่งรับค่าเข้ามาแล้ว ให้ทาตาม ขั้นตอนต่อไปนี้ - แสดงค่ายอดบัญชีสุดท้ายที่คานวณได้ - จบการทางาน การเขียนโปรแกรม ผังงานโปรแกรมสามารถนามาใช้เขียนโปรแกรม โดยในการเขียนโปรแกรมสามารถเลือกใช้ภาษาได้หลาย ภาษา ไม่ว่าจะเป็นภาษาแอสเซมบลี ภาษาเบสิก ภาษาซี ภาษาปาสคาล ภาษาโคบอล ภาษาฟอร์แทรน หรือภาษา อื่น ๆ ซี่งแต่ละภาษาก็มีรูปแบบไวยากรณ์ของภาษาที่ใช้แตกต่างกันออกไป แต่โดยทั่วไปแล้วจะมีรูปแบบหรือ โครงสร้างของคาสั่งที่คล้ายกัน โดยทั่วไปทุกคาสั่งจะมีคาสั่งพื้นฐานต่อไปนี้ 1. คาสั่งการรับข้อมูลเข้า และการแสดงผล 2. คาสั่งการกาหนดค่า 3. คาสั่งการเปรียบเทียบเงื่อนไข 4. คาสั่งการทาซ้าหรือการวนลูป ซึ่งค่าสั่งพื้นฐานเหล่านี้ก็สามารถรองรับขั้นตอนการทางานแต่ละขั้นตอนในผังงานโปรแกรมได้เป็นอย่างดี ดังนั้นหลังการออกแบบขั้นตอนการทางานในโปรแกรมโดยใช้ผังานแล้วสามารถนาผังงานนั้นมาใช้ในการเ ขียน โปรแกรมได โดยเขียนโปรแกรมเป็นลาดับตามขั้นตอนต่าง ๆ ตามที่ระบุไว้ในผังงาน หลังจากเขียนโปรแกรมที่ต้องการเสร็จแล้ว ยังต้องมีการทดสอบความผิดพลาดในโปรแกรม และแก้ไข ข้อผิดพลาดนั้นๆ ก่อน จึงจะสามารถนะโปรแกรมเหล่านั้นไปใช้งานได้จริง