Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
บทที่ 2
แผนภาพแสดงลําดับขั้นตอนการทํางาน (Flow Chart)
การเขียนผังงาน ( Flowchart ) ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการทํางานของ โปรแกรม หรือระบบทีละขั้นตอนรวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตาม ที่ต้องการ
ประโยชน์ของผังงาน • ช่วยลําดับขั้นตอนการทํางานของโปรแกรม และสามารถนําไปเขียนโปรแกรมได้โดยไม่สับสน • ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด • ช่วยให้การดัดแปลง แก้ไข ทําได้อย่างสะดวกและรวดเร็ว • ช่วยให้ผู้อื่นสามารถศึกษาการทํางานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น วิธีการเขียนผังงานที่ด ี• ใช้สัญลักษณ์ตามที่กําหนดไว้ • ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา • คําอธิบายในภาพควรสั้นกระทัดรัด และเข้าใจง่าย • ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก • ไมค่วรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน • ผังงานควรมีการทดสอบความถูกต้องของการทํางานก่อนนําไปเขียนโปรแกรม
สัญลักษณ์ที่ใช้ในการเขียนผังงาน (Flowcharting Symbols)
การเขียนผังงาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการทํางาน โดยนําภาพสัญลักษณ์ต่างๆ มาเรียนต่อกัน สัญลักษณ์ที่นิยมใช้ในการเขียนผังงานนั้นหน่วยงานที่ชื่อว่า American National Standards Institute (ANSI) และ International Standard Organization (ISO) ได้ร่วมกันกําหนด สัญลักษณ์มาตรฐานเพื่อใช้ในการเขียนผังงานดังนี้
2
3
รูปที่1 แสดง สัญลักษณ์ในการเขียนผังงานโปรแกรม
หลักเกณฑ์ในการเขียนผังงาน
1. สัญลักษณ์ที่ใช้อาจมีขนาดต่างๆ กันได้ แต่จะต้องมีรูปร่างเป็นสัดส่วนตามมาตรฐาน 2. ทิศทางของลูกศรในผังงาน ควรมีทิศทางจากบนลงล่าง หรืออาจจากซา้ยไปขวาเสมอ 3. ผังงานคสรมีความเรียบร้อย สะอาด พยายามหลีกเลี่ยงกากรเขียนลูกศรที่ทําให้เกิดจุดตัด
เพราะจะทําให้ผังงานอ่านและทําความเข้าใจได้ยาก และถ้าในผังงานมีการเขียนข้อความอธิบายใด ๆ ควรทําให้สั้นกะทัดรัดและได้ใจความ
4
ประเภทของผังงาน 1. ผังงานระบบ (system flowchart)
เป็นผังซึ่งแสดงขอบเขต และลําดับขั้นตอนการทํางานของระบบหนึ่งๆ รวมทั้งแสดงรูปแบบ ของข้อมูลเข้า (Input) และข้อมูลออก (Output) ว่าถูกรับเข้าหรือแสดงผลโดยผ่านสื่อประเภทใด เนื่องจากผังงานระบบเป็นแผนภาพที่แสดงถึงระบบโดยรวม ดังนั้นกระบวนการหรือโปรแกรมหนึ่งๆ อาจถูกแสดงเป็นเพียงขั้นตอนหนึ่งในผังงานระบบเท่านั้น
2. ผังงานโปรแกรม (Program flowchart) เป็นผังงานซึ่งแสดงลําดับขั้นตอนการทํางานของโปรแกรมหนึ่ง ๆ
จากตัวอย่างผังงานระบบมีความหมายดังนี้
1. นําข้อมูลเข้าจากฐานข้อมูลพนักงาน ซึ่งอยู่ในดิสก์ (disk) จงึเขียนแทนด้วยสัญลักษณ์
2. คํานวณเงินเดือน เป็นการประมวลผล จึงเขียนแทนด้วยสัญลักษณ์สี่เหลี่ยมผืนผ้า
3. พิมพ์เช็ค เป็นการแสดงผลทางเครื่องพิมพ์ จึงเขียนแทนด้วยสัญลักษณ์
5
ตัวอย่างผังงานโปรแกรม
ผังงานโปรแกรมนี้แสดงการคํานวณเงินเดือนของพนักงาน โดยถ้าชั่วโมงการทํางานในเดือนนั้นๆ ไม่เกิน 160 ชั่วโมง เงินเดือนจะถูกคํานวณโดยใช้อัตราค่าแรงตามปกติ แต่ถ้าชั่วโมงการทํางานเกิน 160 ชั่วโมง 160 ชั่วโมงแรกจะใช้อัตราค่าแรงตามปกติ และจํานวนชั่วโมงที่เกินจะคิดค่าแรงโดยใช้อัตราของ ค่าล่วงเวลา (overtime หรือ OT ) ซึ่งเท่ากับ 1.5 เท่าของอัตราค่าแรงปกติ
จากผังงานสามารถแสดงขั้นตอนการทํางานได้ดั้งนี้
1.เริ่มต้นโปรแกรม ใช้สัญลักษณ์เทอร์มินัล
2.รับข้อมูลเข้า หรืออ่านค่าของข้อมูล ใช้สัญลักษณ์การรับค่าหรือแสดงผล
โดยข้อมูลที่รับประกอบด้วย
- ชื่อพนักงาน - จํานวนชั่วโมงการทํางาน - อัตราค่าแรง
6
3.พิจารณาเงื่อนไขว่าจํานวนชั่วโมงการทํางานมากว่า 160 ชั้วโมงหรือไม่
โดยใช้สัญลักษณ์การตัดสินใจ
3.1 ถ้าใช่ ให้ใช้สมการต่อไปนี้ในการคํานวณค่าจ้าง
ค่าจ้าง = ((ชั่วโมงการทํางาน - 160) *1.5 * อัตราค่าแรง)+(160 *อัตราค่าแรง)
3.2 ถ้าไมใ่ช่ ให้ใช้สมการต่อไปนี้ในการคํานวณค่าจ้าง
ค่าจ้าง = (ชั่วโมงการทํางาน * อัตราค่าแรง)
การคํานวณค่าจ้างในขั้นตอนที่ 3.1 และ 3.2 ใช้สัญลักษณ์การประมวลผล
4. แสดงชื่อพนักงาน และค่าจ้างที่ได้จากการคํานวณ ใช้สัญลักษณ์การรับเข้าหรือแสดงผล
5. จบโปรแกรมโดยใช้สัญลักษณ์เทอร์มินัล
ลักษณะโครงสร้างของผังงาน ผังงานทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ 1.โครงสร้างแบบเป็นลําดับ (sequence structure) 2.โครงสร้างแบบมีการเลือก (selection structure) 3.โครงสร้างแบบทําซ้ํา (iteration structure)
ผังงานกับชีวิตประจําวัน การทํางานหลายอย่างในชีวิตประจําวัน จะมีลักษณะที่เป็นลําดับขั้นตอน ซึ่งก่อนที่ท่านจะได้ ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนําให้ท่านลองฝึกเขียนผังงานที่แสดงการทํางานใน ชีวิตประจําวัน เพื่อเป็นการสร้างความคุ้นเคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงาน โปรแกรมต่อไป ดังตัวอย่างต่อไปนี ้
7
โครงสร้างแบบเป็นลําดับ (Sequence Structure)
โครงสร้างลักษณะนี้เป็นโครงสร้างพื้นฐานของผังงาน และเป็นลักษณะขั้นตอนการทํางานที่พบ
มากที่สุด คือทํางานทีละขั้นตอนลําดับ
ตัวอย่างผังงานที่มีโครงสร้างแบบเป็นลําดับ
8
จากตัวอย่างผังงานการคํานวณดอกเบี้ย สามารถอธิบายเป็นขั้นตอนได้ดังนี้
1. เริ่มต้นการทํางาน 2. รับค่าเงินต้น และอัตราดอกเบี้ยเพื่อใช้ในการคํานวณหาดอกเบี้ย 3. คํานวณหาดอกเบี้ยโดยใช้สมการต่อไปนี้ ดอกเบี้ย = เงินต้น * อัตราดอกเบี้ย 4. แสดงค่าของดอกเบี้ยซึ่งคํานวณได ้5. จบการทํางาน
ตัวอย่างที ่1 เขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย
รูปที่ 2 แสดงการเขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย
9
ตัวอย่างที่ 2 เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของ ผู้ทานดังนี ้• อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา • อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา • อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา • แรกเกิดถึง 1 ปี ห้ามรับประทาน
รูปที่ 3 แสดงการเขียนผังงานแสดงวิธีการรับประทานยา
โครงสร้างการทํางานแบบมีการเลือก ( Selection ) เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทํางานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF - THEN
10
รูปที่4 แสดงโครงสร้างผังงานแบบมีการเลือก
โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทําการเปรียบเทียบเงื่อนไขที่ใส่ไว้ในส่วนหลังคําว่า IF และเมื่อได้ผลลัพธ์จาก การเปรียบเทียบก็จะเลือกว่าจะทํางานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือก ไปทํางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) กจ็ะไปทํางานต่อในส่วนที่อยู่ หลังคําว่า ELSE แต่ถ้าสําหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น ถ้ามีการ เปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทําส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทําคําสั่งที่อยูถ่ัดจาก IF - THEN แทน
ตัวอย่าง 3 การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้วทําการเปรียบ เทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้
11
• ถ้า A มากกว่า B ให้คํานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT • ถ้า A น้อยกว่าหรือเท่ากับ B ใหค้ํานวณหาค่า A + B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT
รูปที่ 3 แสดงการเขียนผังงานอ่านค่าข้อมูล
ตัวอย่าง 4 การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี ้• ถ้า X > 0 ให้พิมพ์คําว่า " POSITIVE NUMBER " • ถ้า X < 0 ให้พิมพ์คําว่า " NEGATIVE NUMBER " • ถ้า X = 0 ให้พิมพ์คําว่า " ZERO NUMBER "
12
รูปที่ 4 แสดงการเขียนผังงานเปรียบเทียบค่าข้อมูล
โครงสร้างการทํางานแบบมีการทํางานซ้ํา (Iteration Structure) เป็นโครงสร้างที่มีการประมวลผลกลุ่มคําสั่งซ้ําหลายครั้ง ตามลักษณะเงื่อนไขที่กําหนด อาจเรียก การทํางานซ้ําแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทํางานซ้ํานี้จะมีอยู่ 2 ประเภท คือ • DO WHILE • DO UNTIL
รูปแบบโครงสร้างแบบทําซ้ํา (Iteration Structure)
13
DO WHILE เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทํางานในกลุ่มคําสั่งที่ ต้องทําซ้ํา ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคง เป็นจริงอยู่ ก็ยังคงต้องทํากลุ่มคําสั่งซ้ําหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูป ไปทําคําสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทํางาน
แสดงโครงสร้างการทํางานซ้ําแบบ DO WHILE
DO UNTIL เป็นโครงสร้างการทํางานแบบทํางานซ้ําเช่นกัน แต่มีการทํางานที่แตกต่างจาก DO WHILE คือจะมีการเข้าทํางานกลุ่มคําสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจงึจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทํากลุ่มคําสั่งที่ต้องทําซ้ําอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบ เงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทํากลุ่มคําสั่งซ้ําหรือเข้าลูปต่อไปอีก จนกระทั่ง เงื่อนไขเป็นจริง จึงจะออกจากลูปไปทําคําสั่งถดัจาก UNTIL หรืออาจเป็นการจบการทํางาน
แสดงโครงสร้างการทํางานซ้ําแบบ DO UNTIL
14
สรุปข้อแตกต่างระหว่าง DO WHILE และ DO UNTIL มีดังนี ้1. DO WHILE ในการทํางานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อนทุกครั้ง ก่อนที่จะมีการเข้ลูปการทํางาน 2. DO UNTIL การทํางานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะเข้าไปทํางานในลูปก่อนอย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข 3. DO WHILE จะมีการเข้าไปทํางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นจริง แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที 4. DO UNTIL จะมีการเข้าไปทํางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นเท็จ แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที
ตัวอย่าง 5 จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เก็บอย่ในหน่วยความจําที่แอดเดรส 1 โดยที่ค่าเริ่มต้นจาก 0 ให้ทําการเพิ่มค่าทีละ 1 เรื่อยไปจนกระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทํางาน ตัวอย่างนี้ เป็นตัวอย่างการทํางานแบบทําซ้ํา ซึ่งจะสามารถแสดงการเขียนได้ทั้งแบบ DO WHILE และ DO UNTIL ดังนี้
15
แสดงตัวอย่างการใช้ DO WHILE และ DO UNTIL
การเขียนโปรแกรม
ผังงานโปรแกรมสามารถนํามาใช้เขียนโปรแกรม โดยในการเขียนโปรแกรมสามารถเลือกใช้ ภาษาได้หลายภาษา ไม่ว่าจะเป็นภาษาแอสเซมบลี ภาษาเบสิก ภาษาซี ภาษาปาสคาล ภาษาโคบอล ภาษาฟอร์แทรน หรือภาษาอื่น ๆ ซี่งแต่ละภาษาก็มีรูปแบบไวยากรณ์ของภาษาที่ใช้แตกต่างกันออกไป แต่โดยทั่วไปแล้วจะมีรูปแบบหรือโครงสร้างของคําสั่งที่คล้ายกัน โดยทั่วไปทุกคําสั่งจะมีคําสั่งพื้นฐานต่อไปนี ้
1. คําสั่งการรับข้อมูลเข้า และการแสดงผล 2. คําสั่งการกําหนดค่า 3. คําสั่งการเปรียบเทียบเงื่อนไข 4. คําสั่งการทําซ้ําหรือการวนลูป
ซึ่งค่าสั่งพื้นฐานเหล่านี้ก็สามารถรองรับขั้นตอนการทํางานแต่ละขั้นตอนในผังงานโปรแกรมได ้
เป็นอย่างดี ดังนั้นหลังการออกแบบขั้นตอนการทํางานในโปรแกรมโดยใช้ผังงานแล้ว สามารถนํา ผังงานนั้น
มาใช้ในการเขียนโปรแกรมได้ โดยเขียนโปรแกรมเป็นลําดับตามขั้นตอนต่าง ๆ ตามที่ ระบุไว้ในผังงาน
หลังจากเขียนโปรแกรมที่ต้องการเสร็จแล้ว ยังต้องมีการทดสอบความผิดพลาดในโปรแกรม
และแก้ไขข้อผิดพลาดนั้นๆ ก่อน จึงจะสามารถนะโปรแกรมเหล่านั้นไปใช้งานได้จริง
อาจารย์วิภาดา เชี่ยวชาญ :ผู้สอน อ้างอิง สมชาย รัตนเลิศนุสรณ์, 2545 : 17.