840 likes | 1.79k Views
การเขียนผังงานเบื้องต้น. Basic Flowcharting นายพิทักษ์ เพียรสบาย. การเขียนผังงาน (Flowcharting). ผังงาน หมายถึง เครื่องมือที่ช่วยในการเขียนโปรแกรม โดยเขียนเป็นเครื่องหมายภาพสัญลักษณ์แสดงลำดับขั้นตอนการทำงาน
E N D
การเขียนผังงานเบื้องต้นการเขียนผังงานเบื้องต้น Basic Flowcharting นายพิทักษ์ เพียรสบาย
การเขียนผังงาน(Flowcharting) • ผังงาน หมายถึง เครื่องมือที่ช่วยในการเขียนโปรแกรม โดยเขียนเป็นเครื่องหมายภาพสัญลักษณ์แสดงลำดับขั้นตอนการทำงาน • การเขียนผังงาน เป็นการถ่ายทอดความเข้าใจที่ได้จากการวิเคราะห์งานให้อยู่ในรูปภาพหรือสัญลักษณ์ • ผู้เขียนโปรแกรมจะสามารถเข้าใจลำดับขั้นตอนการเขียนโปรแกรมได้อย่างรวดเร็วและง่ายขึ้น และง่ายต่อการตรวจสอบความถูกต้องของลำดับขั้นตอนในวิธีการประมวลผล
การเขียนผังงาน(Flowcharting) • งานทุกชนิดที่มีการวิเคราะห์เป็นลำดับขั้นตอนแล้ว เราสามารถนำมาเขียนผังงานได้ แม้กระทั่งงานที่เกี่ยวข้องกับชีวิตประจำวันของเราเอง
เริ่มต้น โยนเหรียญ ก้อย หัว ผลการโยน เสียเงิน 10 บาท ได้เงิน 10 บาท ยัง ครบ 3 ครั้ง หรือยัง? ครบ หยุด ตัวอย่างผังงานทั่วไป(1/3) • แสดงการโยนเหรียญ 3 ครั้ง ถ้าออกหัว ผู้โยนจะได้เงิน 10 บาท ถ้าออกก้อย ผู้โยนจะเสียเงิน 10 บาท
เริ่มต้น รอสัญญาณไฟ ไม่ใช่ ไฟแดง หรือไม่ ใช่ เดินข้ามถนน หยุด ตัวอย่างผังงานทั่วไป(2/3) • ผังงานแสดงการเดินข้ามถนนที่มีสัญญาณไฟจราจร
เริ่มต้น อายุต่ำกว่า 5 ปี ใช่ ห้ามรับประทาน ไม่ใช่ อายุ 5 ปีขั้นไป แต่ไม่ถึง 8 ปี ใช่ ครั้งละ 1 เม็ด ไม่ใช่ อายุ 8 ปีขั้นไป แต่ไม่ถึง 15 ปี ใช่ ครั้งละ 2 เม็ด ไม่ใช่ ครั้งละ 3 เม็ด หยุด ตัวอย่างผังงานทั่วไป(3/3) • ผังงานพิจารณาการใช้ยาตามฉลากยาที่ปิดข้างขวด แยกตามขนาดการใช้ดังนี้ • อายุต่ำกว่า 5 ปี ห้ามรับประทาน • อายุ 5 - 7 ปี ครั้งละ 1 เม็ด • อายุ 8 - 14 ปี ครั้งละ 2 เม็ด • อายุ 15 ปีขึ้นไป ครั้งละ 3 เม็ด
ผังงานทางคอมพิวเตอร์ ผังงานทางคอมพิวเตอร์แบ่งออกเป็น 2 ประเภท ได้แก่ • ผังงานระบบ (System flowchart) • ผังงานโปรแกรม (Program flowchart)
ผังงานระบบ(System flowchart) • เป็นผังงานที่ใช้แสดงขั้นตอนการทำงานของระบบงานอย่างกว้าง ๆ ทั้งระบบ โดยแสดงให้เห็นถึงความสัมพันธ์ของส่วนสำคัญต่าง ๆ ในระบบนั้น • เช่น เอกสารเบื้องต้น หรือสื่อบันทึกที่ใช้อยู่เป็นอะไร และผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น ๆ แล้วส่งต่อไปยังหน่วยงานใด เป็นต้น • ดังนั้น ผังงานระบบ จะเกี่ยวข้องกับ คน วัสดุ และเครื่องจักร โดยแสดงการนำข้อมูลเข้า ประมวลผล แสดงผลลัพธ์ ว่ามาจากที่ใดกว้าง ๆ
เริ่มต้น รับความสูง และความยาวฐาน ของสามเหลี่ยม 100 รูป บันทึกความสูงและความยาวฐาน ลงในดิสก์ ดิสก์ที่ บันทึกแล้ว คำนวณพื้นที่ของสามเหลี่ยม พิมพ์รายงานของ พื้นที่สามเหลี่ยม จบ ตัวอย่างผังงานระบบ • ผังงานแสดงการคำนวณพื้นที่สามเหลี่ยมจำนวน 100 รูป
ผังงานโปรแกรม(Program flowchart) • เป็นผังงานที่แสดงขั้นตอนของคำสั่งที่ใช้ในโปรแกรม • ผังงานนี้แยกย่อยมาจากผังงานระบบ โดยผู้เขียนโปรแกรมจะดึงเอาแต่ละจุดที่เกี่ยวข้องกับการประมวลผลในคอมพิวเตอร์ที่ปรากฏในผังงานระบบมาเขียนแสดงรายละเอียดในการประมวลผลอย่างเป็นลำดับขั้นตอน เพื่อนำไปประกอบการเขียนโปรแกรมต่อไป
เริ่มต้น รับความสูง และ ความยาวฐานทีละรูป คำนวณพื้นที่= 0.5 * ฐาน * สูง พิมพ์พื้นที่สามเหลี่ยม ทีละรูป ไม่ใช่ ครบ 100 รูปแล้ว ใช่หรือไม่ ใช่ จบ ตัวอย่างผังงานโปรแกรม • ผังงานแสดงการคำนวณพื้นที่สามเหลี่ยมจำนวน 100 รูป
เริ่มต้น เริ่มต้น รับความสูง และความยาวฐาน ของสามเหลี่ยม 100 รูป รับความสูง และ ความยาวฐานทีละรูป บันทึกความสูงและความยาวฐาน ลงในดิสก์ คำนวณพื้นที่= 0.5 * ฐาน * สูง ดิสก์ที่ บันทึกแล้ว พิมพ์พื้นที่สามเหลี่ยม ทีละรูป คำนวณพื้นที่ของสามเหลี่ยม ไม่ใช่ ครบ 100 รูปแล้ว ใช่หรือไม่ พิมพ์รายงานของ พื้นที่สามเหลี่ยม ใช่ จบ จบ เปรียบเทียบผังงานระบบและผังงานโปรแกรม ผังงานระบบ ผังงานโปรแกรม
ประโยชน์ของการเขียนผังงานประโยชน์ของการเขียนผังงาน • เราสามารถเรียนรู้และเข้าใจผังงานได้ง่าย เพราะผังงานไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง • ผังงานเป็นการสื่อความหมายด้วยภาพ ทำให้ง่ายและสะดวกต่อการพิจารณาลำดับขั้นตอนในการทำงานดีกว่าการบรรยายเป็นตัวอักษร • ช่วยให้การค้นหาความผิดพลาดของลำดับการทำงานได้รวดเร็ว และสามารถแก้ไขได้ง่าย • การเขียนโปรแกรมโดยพิจารณาจากผังงาน สามารถทำได้รวดเร็วและง่ายขึ้น • ในการบำรุงรักษาโปรแกรม หรือมีการเปลี่ยนแปลงแก้ไขโปรแกรมให้มีประสิทธิภาพ ถ้าดูจากผังงานจะช่วยให้สามารถทบทวนการทำงานในโปรแกรมได้ง่ายขึ้น
ข้อจำกัดของการเขียนผังงานข้อจำกัดของการเขียนผังงาน • การเขียนผังงานไม่เหมาะกับงานที่มีวิธีการซับซ้อน เช่น มีการที่เงื่อนไขในการทอสอบมากมาย ซึ่งมักจะใช้ตารางการตัดสินใจ(decision table) เข้ามาช่วยมากกว่า
สัญลักษณ์ในการเขียนผังงาน(1/13)สัญลักษณ์ในการเขียนผังงาน(1/13) • การเขียนผังงานเป็นการนำเอาภาพสัญลักษณ์ต่าง ๆ มาเรียงต่อกัน เพื่อแสดงลำดับขั้นตอนการทำงาน โดยมีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ • สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็นสัญลักษณ์ของหน่วยงานที่ชื่อว่า American National Standard Institute (ANSI)และ International Standard Organization (ISO)เป็นผู้กำหนดและรวบรวมให้เป็นสัญลักษณ์มาตรฐานในการเขียนผังงาน
สัญลักษณ์ในการเขียนผังงาน(2/13)สัญลักษณ์ในการเขียนผังงาน(2/13) START STOP read name display area
false i <= 10 true แสดง i สัญลักษณ์ในการเขียนผังงาน(3/13) C = A + B Sum = 0
สัญลักษณ์ในการเขียนผังงาน(4/13)สัญลักษณ์ในการเขียนผังงาน(4/13) print A display A , B
A = Age สัญลักษณ์ในการเขียนผังงาน(5/13) read A read A
for i =1 to 100 sum = sum + i i สัญลักษณ์ในการเขียนผังงาน(6/13)
สัญลักษณ์ในการเขียนผังงาน(7/13)สัญลักษณ์ในการเขียนผังงาน(7/13) write A A A = 3 1
punch bi b=1 , …n สัญลักษณ์ในการเขียนผังงาน(8/13) read A punch B , C
สัญลักษณ์ในการเขียนผังงาน(9/13)สัญลักษณ์ในการเขียนผังงาน(9/13) read ID , name
สัญลักษณ์ในการเขียนผังงาน(10/13)สัญลักษณ์ในการเขียนผังงาน(10/13)
สัญลักษณ์ในการเขียนผังงาน(11/13)สัญลักษณ์ในการเขียนผังงาน(11/13) findGrade
สัญลักษณ์ในการเขียนผังงาน(12/13)สัญลักษณ์ในการเขียนผังงาน(12/13)
สัญลักษณ์ในการเขียนผังงาน(13/13)สัญลักษณ์ในการเขียนผังงาน(13/13)
หลักการจัดภาพผังงาน(1/2)หลักการจัดภาพผังงาน(1/2) • ทิศทางของผังงานจะเริ่มจากส่วนบนของหน้ากระดาษลงมายังส่วนล่าง และจากซ้ายมือไปของหน้ากระดาษ และควรเขียนเครื่องหมายลูกศรกำกับทิศทางไว้ด้วย บน START ทิศทางของเส้น read age age > 60 false true “You are old” ล่าง STOP
หลักการจัดภาพผังงาน(2/2)หลักการจัดภาพผังงาน(2/2) • สัญลักษณ์หรือภาพที่ใช้ในการเขียนผังงานมีขนาดต่าง ๆ กันได้ แต่จะต้องมีรูปมาตรฐานตามความหมายที่กำหนด START sum = 0 ขนาดของสัญลักษณ์ ปรับให้เหมาะสมกับข้อความในสัญลักษณ์ i = 1 to 10 sum = sum + i i sum STOP
หลักการจัดภาพผังงาน(3/2)หลักการจัดภาพผังงาน(3/2) • การเขียนทิศทางของผังงานควรเป็นไปอย่างมีระเบียบ และหลีกเลี่ยงการขีดโยงไปโยงมาในทิศทางตัดกัน ถ้าจำเป็นต้องโยงถึงกัน ควรใช้เครื่องหมายจุดต่อเนื่องแทนและถ้าเป็นไปได้ควรเขียนผังงานให้จบในหน้าเดียวกัน • คำอธิบายในภาพ เขียนเพียงสั้น ๆ และเข้าใจง่าย • ผังงานที่ดีควรจะมีความเป็นระเบียบเรียบร้อยและสะอาด นอกจากนี้แล้ว จะมีชื่อของผังงาน ผู้เขียน วันที่เขียน และเลขหน้าลำดับ
รูปแบบการเขียนผังงาน • แบบตามลำดับ (Sequence) • แบบการเลือก/ตัดสินใจ/เงื่อนไข (Selection/Decision/Condition) • แบบวนซ้ำ (Iteration / Loop)
คำนวณ อ่านข้อมูล งานที่ 1 คำนวณ งานที่ 2 คำนวณข้อมูล คำนวณ งานที่ 3 พิมพ์ผลลัพธ์ รูปแบบตามลำดับ(1/3) • เป็นรูปแบบการเขียนโปรแกรมที่ง่ายที่สุด ทำงานทีละอย่างจากบนลงล่าง แสดงลำดับการทำงานจากบนลงล่างตามลูกศร
START A = 5 B = 3 C = A + B print C STOP รูปแบบตามลำดับ(2/3) เริ่มต้น กำหนดค่าตัวแปร A มีค่าเป็น 5 กำหนดค่าตัวแปร B มีค่าเป็น 3 เอาค่า A บวกกับ B แล้วเก็บไว้ใน C พิมพ์ค่า C จบการทำงาน
START A , B C = A + B print C STOP รูปแบบตามลำดับ(3/3) เริ่มต้น รับข้อมูลมาเก็บไว้ในตัวแปร A, B ทางแป้นพิมพ์ เอาค่า A บวกกับ B แล้วเก็บไว้ใน C พิมพ์ค่า C จบการทำงาน
ตัวอย่างการเขียนผังงานแบบตามลำดับตัวอย่างการเขียนผังงานแบบตามลำดับ • จงเขียนโปรแกรมคำนวณค่าไฟฟ้า โดยรับค่ามิเตอร์จำนวนการใช้ไฟฟ้าของเดือนที่แล้ว และค่ามิเตอร์การใช้ไฟฟ้าของเดือนปัจจุบัน คำนวณค่าไฟฟ้า โดยคิดอัตรา 2.5 บาท /1 หน่วยมิเตอร์ • สิ่งที่โจทย์ต้องการ ค่าไฟฟ้า • รูปแบบผลลัพธ์ ป้อนเลขมิเตอร์เดือนที่แล้ว --> <รอรับเลขมิเตอร์เดือนที่แล้ว> ป้อนเลขมิเตอร์เดือนปัจจุบัน--> <รอรับเลขมิเตอร์เดือนปัจจุบัน> ----------------------------------------------------- จำนวนหน่วยไฟฟ้าที่ใช้ : <แสดงจำนวนหน่วยไฟฟ้าที่ใช้> ค่าไฟฟ้า : <แสดงค่าไฟฟ้า>
ตัวอย่างการเขียนผังงานแบบตามลำดับตัวอย่างการเขียนผังงานแบบตามลำดับ • ข้อมูลนำเข้า • เลขมิเตอร์เดือนที่แล้ว • เลขมิเตอร์เดือนปัจจุบัน • ตัวแปรที่ใช้ในการประมวลผล • Last_meter แทน เลขมิเตอร์เดือนที่แล้ว • Curr_meter แทน เลขมิเตอร์เดือนปัจจุบัน • Num_meter แทน จำนวนหน่วยมิเตอร์ที่ใช้ • Electric_fee แทน ค่าไฟฟ้า
ตัวอย่างการเขียนผังงานแบบตามลำดับตัวอย่างการเขียนผังงานแบบตามลำดับ • ขั้นตอนวิธีการประมวลผล • เริ่มต้น • รับค่าใส่ตัวแปร last_meter และ curr_meter จากผู้ใช้ทางแป้นพิมพ์ • คำนวณ num_meter = curr_meter – last_meter • คำนวณ electric_fee = num_meter * 2.5 • แสดงค่า num_meter , electric_fee • จบการทำงาน
Flow chart START Last_meter , Curr_meter Num_meter = Curr_meter – Last_meter Electric_fee = Num_meter * 2.5 Num_meter , Electric_fee STOP
แบบการเลือก เป็นการเขียนโปรแกรมแบบมีการเปรียบเทียบเงื่อนไข และทำงานตามคำสั่งอย่างใดอย่างหนึ่งตามเงื่อนไขที่กำหนด ผลจากการเปรียบเทียบเงื่อนไข จะให้ผลลัพธ์เป็นจริงหรือเท็จ ถ้าผลเป็นจริง ให้ทำงานตามคำสั่งด้านที่เงื่อนไขเป็นจริง ถ้าเป็นเท็จให้ทำตามคำสั่งด้านที่เงื่อนไขเป็นเท็จ • แบบทางเลือกเดียว (IF - THEN) • แบบสองทางเลือก (IF – THEN - ELSE) • แบบหลายทางเลือก (IF – THEN – ELSE IF | CASE)
จริง จริง เงื่อนไข เงื่อนไข เท็จ เท็จ ประโยคงาน ประโยคงาน 1 ประโยคงาน 2 งานลำดับถัดไป งานลำดับถัดไป แบบทางเลือกเดียว(1/5)
แบบทางเลือกเดียว(2/5) START เริ่มต้น read age รับค่าใส่ตัวแปร age เปรียบเทียบค่า age มากกว่า 60 age > 60 false true ถ้าเป็นจริง พิมพ์ข้อความ You are old ถ้าเป็นเท็จ ไม่ต้องทำอะไร “You are old” จบการทำงาน STOP
เริ่ม รับค่า ans เท็จ ans = “GoodLuck” จริง พิมพ์ Welcome Manager พิมพ์ Exit Password System จบ แบบทางเลือกเดียว(3/5) รับค่า รหัสผ่านจากผู้ใช้ ถ้ารหัสผ่านที่ป้อนมีค่า GoodLuck ให้แสดงข้อว่า Welcome Manager และข้อความ Exit Password System
แบบทางเลือกเดียว(4/5) • บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ำกว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน • ขั้นตอนการประมวลผล • รับค่าชื่อพนักงาน . เงินเดือน • เปรียบเทียบค่า เงินเดือน - ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงินเดือน + (เงินเดือน * 10/100) • คำนวณโบนัส = เงินเดือน * 3 • แสดงผลลัพธ์ • จบการทำงาน
แบบทางเลือกเดียว(5/5) A START read name ,salary bonus = salary * 3 salary < 5000 false Name , salary , bonus true salary = salary + (salary*10/100) STOP A แต่ไม่ต้องเขียนเส้นเชื่อมนี้
จริง เงื่อนไข เท็จ ประโยคงาน 1 ประโยคงาน 2 งานลำดับถัดไป ข้อควรจำ • ในการเปรียบเทียบเงื่อนไขแบบ IF – THEN นิยมให้ทำงานตามคำสั่งเมื่อเงื่อนไขมีค่าเป็นจริง ไม่นิยมให้ทำงามตามคำสั่งเป็นเท็จ เท็จ เงื่อนไข ประโยคงาน 1 จริง ประโยคงาน 2 งานลำดับถัดไป
จริง เงื่อนไข เท็จ ประโยคงาน 1 ประโยคงาน 2 งานลำดับถัดไป IF เงื่อนไข THEN BEGIN ประโยคงาน 1 ; ประโยคงาน 2 ; END;
เท็จ เงื่อนไข จริง ประโยคงาน 1 ประโยคงาน 2 งานลำดับถัดไป IF เงื่อนไข THEN ELSE BEGIN ประโยคงาน 1 ; ประโยคงาน 2 ; END;
จริง เท็จ เงื่อนไข ประโยคงาน1 ประโยคงาน2 งานลำดับถัดไป แบบสองทางเลือก(1/6) • การทำงานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปทำงานด้านหนึ่ง ถ้าเป็นเท็จก็จะไปทำงานอีกอย่างหนึ่ง
แบบสองทางเลือก(2/6) • ถ้า sex =1 เงื่อนไขเป็นจริง จะเพิ่มค่าตัวแปร Male ขึ้นอีก 1 • ถ้า sex =1 เงื่อนไขเป็นเท็จ จะเพิ่มค่าตัวแปร Female ขึ้นอีก 1 True False Sex = 1 Female = Female + 1 Male = Male +1
START read age false age > 60 true “You are young” “You are old” STOP แบบสองทางเลือก(3/6) เริ่มต้น รับค่าใส่ตัวแปร age เปรีบเทียบค่า age มากกว่า 60 ถ้าเป็นจริง พิมพ์ข้อความ You are old ถ้าเป็นเท็จ พิมพ์ข้อความ You are young จบการทำงาน