12

Click here to load reader

ch4ผังงานและการเขียนโปรแกรม

Embed Size (px)

Citation preview

Page 1: ch4ผังงานและการเขียนโปรแกรม

บทที ่4 ผงังานและการเขียนโปรแกรม

ผงังาน (flowchart) คือ แผนภาพซ่ึงแสดงล าดบัขั้นตอนของการท างาน โดยแต่ละขั้นตอนจะถูกแสดง

โดยใช้สัญลกัษณ์ซ่ึงมีความหมายบ่งบอกว่า ขั้นตอนนั้น ๆ มีลกัษณะการท างาน ท าให้ง่ายต่อความเขา้ใจ วา่ในการท างานนั้นมีขั้นตอนอะไรบา้ง และมีล าดบัอยา่งไร

Page 2: ch4ผังงานและการเขียนโปรแกรม

ประโยชน์ของผงังาน 1. ช่วยใหส้ามารถท าความเขา้ใจล าดบัขั้นตอนการท างานของโปรแกรมหรือระบบใด ๆไดอ้ยา่ง

รวดเร็ว 2. ช่วยแสดงล าดบัขั้นตอนการท างาน ท าใหส้ามารถเขียนโปรแกรมไดอ้ยา่งเป็นระบบไม่สับสน

นอกจากน้ีผงังานยงัเป็นอิสระต่อภาษาท่ีใชใ้นการ เขียนโปรแกรม กล่าวคือจากผงังานเดียวกนัสามารถน าไปเขียนโปรแกรมดว้ยภาษาใดก็ได ้ ประเภทของผงังาน 1. ผงังานระบบ (system flowchart)

เป็นผงัซ่ึงแสดงขอบเขต และล าดบัขั้นตอนการท างานของระบบหน่ึง ๆ รวมทั้งแสดงรูปแบบของขอ้มูลเขา้ (Input) และขอ้มูลออก (Output) วา่ถูกรับเขา้หรือแสดงผลโดยผา่นส่ือประเภทใด เน่ืองจากผงังานระบบเป็นแผนภาพท่ีแสดงถึงระบบโดยรวม ดงันั้นกระบวนการหรือโปรแกรมหน่ึง ๆ อาจถูกแสดงเป็นเพียงขั้นตอนหน่ึงในผงังานระบบเท่านั้น 2. ผงังานโปรแกรม (Program flowchart)

เป็นผงังานซ่ึงแสดงล าดบัขั้นตอนการท างานของโปรแกรมหน่ึง ๆ จากตวัอยา่งผงังานระบบมีความหมายดงัน้ี

1. น าขอ้มูลเขา้จากฐานขอ้มูลพนกังาน ซ่ึงอยูใ่นดิสก ์(disk) จึงเขียนแทนดว้ยสัญลกัษณ์

Page 3: ch4ผังงานและการเขียนโปรแกรม

2. ค านวณเงินเดือน เป็นการประมวลผล จึงเขียนแทนดว้ยสัญลกัษณ์ส่ีเหล่ียมผนืผา้

3. พิมพเ์ช็ค เป็นการแสดงผลทางเคร่ืองพิมพ ์จึงเขียนแทนดว้ยสัญลกัษณ์ ตัวอย่างผงังานโปรแกรม

ผงังานโปรแกรมน้ีแสดงการค านวณเงินเดือนของพนกังาน โดยถา้ชัว่โมงการท างานในเดือนนั้น ๆ ไม่เกิน 160 ชัว่โมง เงินเดือนจะถูกค านวณโดยใชอ้ตัราค่าแรงตามปกติ แต่ถา้ชัว่โมงการท างานเกิน 160 ชัว่โมง 160 ชั่วโมงแรกจะใช้อัตราค่าแรงตามปกติ และจ านวนชั่วโมงท่ีเกินจะคิดค่าแรงโดยใช้อัตราของค่าล่วงเวลา (overtime หรือ OT ) ซ่ึงเท่ากบั 1.5 เท่าของอตัราค่าแรงปกติ

Page 4: ch4ผังงานและการเขียนโปรแกรม

จากผงังานสามารถแสดงขั้นตอนการท างานไดด้ั้งน้ี 1.เร่ิมตน้โปรแกรม ใชส้ัญลกัษณ์เทอร์มินลั

2.รับขอ้มูลเขา้ หรืออ่านค่าของขอ้มูล ใชส้ัญลกัษณ์การรับค่าหรือแสดงผล โดยขอ้มูลท่ีรับประกอบดว้ย

- ช่ือพนกังาน - จ านวนชัว่โมงการท างาน - อตัราค่าแรง

3.พิจารณาเง่ือนไขวา่จ านวนชัว่โมงการท างานมากวา่ 160 ชั้วโมงหรือไม่ โดยใชส้ัญลกัษณ์การตดัสินใจ

3.1 ถา้ใช่ ใหใ้ชส้มการต่อไปน้ีในการค านวณค่าจา้ง ค่าจา้ง = ((ชัว่โมงการท างาน - 160) *1.5 * อตัราค่าแรง)+(160 *อตัราค่าแรง)

3.2 ถา้ไม่ใช่ ใหใ้ชส้มการต่อไปน้ีในการค านวณค่าจา้ง ค่าจา้ง = (ชัว่โมงการท างาน * อตัราค่าแรง)

การค านวณค่าจา้งในขั้นตอนท่ี 3.1 และ 3.2 ใชส้ัญลกัษณ์การประมวลผล

4. แสดงช่ือพนกังาน และค่าจา้งท่ีไดจ้ากการค านวณ ใชส้ัญลกัษณ์การรับเขา้หรือแสดงผล

Page 5: ch4ผังงานและการเขียนโปรแกรม

5. จบโปรแกรมโดยใชส้ัญลกัษณ์เทอร์มินลั สัญลกัษณ์ทีใ่ช้ในการเขียนผงังาน (FLOWCHATING SYMBOLS)

การเขียนผงังาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการท างาน โดยน าภาพสัญลกัษณ์ต่าง ๆ มาเรียนต่อกนั สัญลกัษณ์ท่ีนิยมใชใ้นการเขียนผงังานนั้นหน่วยงานท่ีช่ือวา่ American National Standards Institute (ANSI) และ International Standard Organization (ISO) ไดร่้วมกนัก าหนดสัญลกัษณ์มาตรฐานเพื่อใชใ้นการเขียนผงังานดงัน้ี

Page 6: ch4ผังงานและการเขียนโปรแกรม
Page 7: ch4ผังงานและการเขียนโปรแกรม
Page 8: ch4ผังงานและการเขียนโปรแกรม

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

ท าใหผ้งังานอ่านและท าความเขา้ใจไดย้าก และถา้ในผงังานมีการเขียนขอ้ความอธิบายใด ๆ ควรท าใหส้ั้นกะทดัรัดและไดใ้จความ ลกัษณะโครงสร้างของผงังาน

ผงังานทัว่ไปจะประกอบดว้ยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปน้ีคือ 1.โครงสร้างแบบเป็นล าดบั (sequence structure) 2.โครงสร้างแบบมีการเลือก (selection structure) 3.โครงสร้างแบบท าซ ้ า (iteration structure)

โครงสร้างแบบเป็นล าดับ (Sequence Structure) โครงสร้างลกัษณะน้ีเป็นโครงสร้างพื้นฐานของผงังาน และเป็นลกัษณะขั้นตอนการท างานท่ีพบมากท่ีสุด คือท างานทีละขั้นตอนล าดบั

Page 9: ch4ผังงานและการเขียนโปรแกรม

ตัวอย่างผงังานทีม่ีโครงสร้างแบบเป็นล าดับ จากตวัอยา่งผงังานการค านวณดอกเบ้ีย สามารถอธิบายเป็นขั้นตอนไดด้งัน้ี

1. เร่ิมตน้การท างาน 2. รับค่าเงินตน้ และอตัราดอกเบ้ียเพื่อใชใ้นการค านวณหาดอกเบ้ีย 3. ค านวณหาดอกเบ้ียโดยใชส้มการต่อไปน้ี ดอกเบ้ีย = เงินตน้ * อตัราดอกเบ้ีย 4. แสดงค่าของดอกเบ้ียซ่ึงค านวณได ้5. จบการท างาน

โครงสร้างแบบมีตัวเลอืก (Selection Structure)

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

Page 10: ch4ผังงานและการเขียนโปรแกรม

ตัวอย่างผงังานทีม่ีโครงสร้างแบบมีการเลอืก

ผงังานการค านวณดอกเบ้ียซ่ึงมีอตัราดอกเบ้ีย 2 อตัรา คือถา้เงินตน้นอ้ยกวา่ 1 ลา้นบาท จะคิดดอกเบ้ียดว้ยอตัราร้อยละ 4 แต่ถา้มีเงินตน้มากกวา่ 1 ลา้นบาท จะคิดดอกเบ้ียดว้ยอตัราร้อยละ 5 จากผงังานสามารถอธิบายเป็นขั้นตอนไดด้งัน้ี

1. เร่ิมตน้การท างาน 2. รับค่าเงินตน้ 3. พิจารณาเงินตน้ท่ีรับค่าเขา้มามากกวา่ 1 ลา้นบาทหรือไม่

- ถา้ใช่ ใหค้ านวณดอกเบ้ียในอตัราร้อยละ 5 ดงันั้น ดอกเบ้ีย = เงินตน้ * 0.05 - ถา้ไม่ใช่ ใหค้ านวณดอกเบ้ียในอตัราร้อยละ 5 ดงันั้น ดอกเบ้ีย = เงินตน้ * 0.04

4. แสดงค่าดอกเบ้ียท่ีค านวณได ้5. จบการท างาน

โครงสร้างแบบท าซ ้า (Iteration Structure)

Page 11: ch4ผังงานและการเขียนโปรแกรม

โครงสร้างการท างานแบบท าซ ้ า จะท างานแบบเดียวกนัซ ้ าไปเร่ือย ๆ ในขณะท่ียงัเป็นไปตามเง่ือนไขหรือเง่ือนไขเป็นจริง จนกระทั้งเง่ือนไขเป็นเทจ็จึงท างานอ่ืนต่อไป ตัวอย่างผงังานทีม่ีโครงสร้างแบบท าซ ้า ผงังานการค านวณยอดบญัชี ( เงินตน้ทบดอกเบ้ีย ) จากตวัอยา่งผงังานสามารถอธิบายเป็นขั้นตอนไดด้งัน้ี

1. เร่ิมตน้การท างาน 2. รับค่าเงินตน้ อตัราดอกเบ้ีย และจ านวนปีท่ีฝากเงิน ซ่ึงเป็นขอ้มูลท่ีจ าเป็นในการค านวณยอดบญัชี

(เงินตน้ทบดอกเบ้ียตามจ านวนปี ท่ีฝากเงิน) 3. ก าหนดให ้n มีค่าเท่ากบั 0 ในผงังานน้ี n คือจ านวนรอบของการคิดดอกเบ้ีย 4. ก าหนดยอดบญัชีเร่ิมตน้ใหเ้ท่ากบัเงินตน้ท่ีรับค่าเขา้มา 5. เปรียบเทียบวา่ n นอ้ยกวา่จ านวนปีท่ีฝากเงินหรือไม่

5.1 ถา้ใช่ใหท้ าตามขั้นตอนต่อไปน้ี - ค านวณยอดบญัชีใหม่โดยทบดอกเบ้ียเพิ่มเขา้ไปจากยอดบญัชีเดิมโดยใช้สมการต่อไปน้ี

ยอดบญัชี = ยอดบญัชี + (ยอดบญัชี * อตัราดอกเบ้ีย)

Page 12: ch4ผังงานและการเขียนโปรแกรม

- เพิ่มค่า n ไปอีก 1 - กลบัไปเปรียบเทียบเง่ือนไขในขอ้ 5

5.2 ถา้ไม่ใช่ แสดงว่าคิดดอกเบ้ียทบตน้ครบตามจ านวนปีท่ีฝากเงินซ่ึงรับค่าเขา้มาแลว้ให้ท าตามขั้นตอนต่อไปน้ี

- แสดงค่ายอดบญัชีสุดทา้ยท่ีค านวณได ้- จบการท างาน

การเขียนโปรแกรม

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

1. ค าสั่งการรับขอ้มูลเขา้ และการแสดงผล 2. ค าสั่งการก าหนดค่า 3. ค าสั่งการเปรียบเทียบเง่ือนไข 4. ค าสั่งการท าซ ้ าหรือการวนลูป ซ่ึงค่าสั่งพื้นฐานเหล่าน้ีก็สามารถรองรับขั้นตอนการท างานแต่ละขั้นตอนในผงังานโปรแกรมไดเ้ป็น

อยา่งดี ดงันั้นหลงัการออกแบบขั้นตอนการท างานในโปรแกรมโดยใชผ้งัานแลว้สามารถน าผงังานนั้นมาใชใ้นการเขียนโปรแกรมได โดยเขียนโปรแกรมเป็นล าดบัตามขั้นตอนต่าง ๆ ตามท่ีระบุไวใ้นผงังาน

หลงัจากเขียนโปรแกรมท่ีตอ้งการเสร็จแลว้ ยงัตอ้งมีการทดสอบความผิดพลาดในโปรแกรม และแกไ้ขขอ้ผดิพลาดนั้นๆ ก่อน จึงจะสามารถนะโปรแกรมเหล่านั้นไปใชง้านไดจ้ริง