Click here to load reader
Upload
-titiporn-waidee
View
3.285
Download
1
Embed Size (px)
Citation preview
บทที ่4 ผงังานและการเขียนโปรแกรม
ผงังาน (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. ค าสั่งการท าซ ้ าหรือการวนลูป ซ่ึงค่าสั่งพื้นฐานเหล่าน้ีก็สามารถรองรับขั้นตอนการท างานแต่ละขั้นตอนในผงังานโปรแกรมไดเ้ป็น
อยา่งดี ดงันั้นหลงัการออกแบบขั้นตอนการท างานในโปรแกรมโดยใชผ้งัานแลว้สามารถน าผงังานนั้นมาใชใ้นการเขียนโปรแกรมได โดยเขียนโปรแกรมเป็นล าดบัตามขั้นตอนต่าง ๆ ตามท่ีระบุไวใ้นผงังาน
หลงัจากเขียนโปรแกรมท่ีตอ้งการเสร็จแลว้ ยงัตอ้งมีการทดสอบความผิดพลาดในโปรแกรม และแกไ้ขขอ้ผดิพลาดนั้นๆ ก่อน จึงจะสามารถนะโปรแกรมเหล่านั้นไปใชง้านไดจ้ริง