Professional Documents
Culture Documents
หลักการเขียนผังงาน (Flow chart) PDF
หลักการเขียนผังงาน (Flow chart) PDF
เบื้องต้น
Basic
Flowcharting
การเขียนผังงาน(Flowcharting)
• ผังงาน หมายถึง เครื่องมือที่ช่วยในการเขียนโปรแกรม โดย
เขียนเป็นเครื่องหมายภาพสัญลักษณ์แสดงลาดับขั้นตอนการ
ทางาน
• การเขียนผังงาน เป็นการถ่ายทอดความเข้าใจที่ได้จากการ
วิเคราะห์งานให้อยู่ในรูปภาพหรือสัญลักษณ์
• ผู้เขียนโปรแกรมจะสามารถเข้าใจลาดับขั้นตอนการเขียน
โปรแกรมได้อย่างรวดเร็วและง่ายขึ้น และง่ายต่อการ
ตรวจสอบความถูกต้องของลาดับขั้นตอนในวิธีการ
ประมวลผล
การเขียนผังงาน(Flowcharting)
• งานทุกชนิดที่มีการวิเคราะห์เป็นลาดับขั้นตอนแล้ว เรา
สามารถนามาเขียนผังงานได้ แม้กระทั่งงานที่เกี่ยวข้องกับ
ชีวิตประจาวันของเราเอง
ตัวอย่างผังงานทั่วไป(1/3)
เริม
่ ต้น
• แสดงการโยนเหรียญ 3
ครั้ง ถ้าออกหัว ผู้โยนจะ โยนเหรียญ
ย ัง ครบ 3 ครงั้
หรือย ัง?
ครบ
หยุด
ตัวอย่างผังงานทั่วไป(2/3)
• ผังงานแสดงการเดิน เริม
่ ต้น
ข้ามถนนที่มีสัญญาณ
ไฟจราจร
ั
รอสญญาณไฟ
ไม่ใช่ ไฟแดง
หรือไม่
ใช่
เดินข้ามถนน
หยุด
ตัวอย่างผังงานทั่วไป(3/3)
เริม
่ ต้น
• ผังงานพิจารณาการใช้ยา
ใช่
ตามฉลากยาที่ปิดข้างขวด อายุตา
่ กว่า
5 ปี
ห้ามร ับประทาน
แยกตามขนาดการใช้ดังนี้ ไม่ใช่
รับประทาน ไม่ใช่
ดิสก์ท ี่
บ ันทึกแล้ว
้ ทีข
คานวณพืน ่ องสามเหลีย
่ ม
พิมพ์รายงานของ
พืน้ ทีส
่ ามเหลีย
่ ม
จบ
ผังงานโปรแกรม(Program flowchart)
• เป็นผังงานที่แสดงขั้นตอนของคาสั่งที่ใช้ในโปรแกรม
• ผังงานนี้แยกย่อยมาจากผังงานระบบ โดยผู้เขียนโปรแกรมจะ
ดึงเอาแต่ละจุดที่เกี่ยวข้องกับการประมวลผลในคอมพิวเตอร์
ที่ปรากฏในผังงานระบบมาเขียนแสดงรายละเอียดในการ
ประมวลผลอย่างเป็นลาดับขั้นตอน เพื่อนาไปประกอบการ
เขียนโปรแกรมต่อไป
ตัวอย่างผังงานโปรแกรม
เริม
่ ต้น
• ผังงานแสดงการคานวณ
พื้นที่สามเหลี่ยมจานวน ร ับความสูง และ
ความยาวฐานทีละรูป
100 รูป
้ ที=
คานวณพืน ่ 0.5 * ฐาน * สูง
ื้ ทีส
พิมพ์พน ่ ามเหลีย
่ ม
ทีละรูป
ใช่
จบ
เปรียบเทียบผังงานระบบและผังงานโปรแกรม
เริม
่ ต้น
เริม
่ ต้น
ร ับความสูง และความยาวฐาน
ของสามเหลีย่ ม 100 รูป
ร ับความสูง และ
ความยาวฐานทีละรูป
บ ันทึกความสูงและความยาวฐาน
ลงในดิสก์ ผังงานระบบ
้ ที=
คานวณพืน ่ 0.5 * ฐาน * สูง
ดิสก์ท ี่
บ ันทึกแล้ว ื้ ทีส
พิมพ์พน ่ ามเหลีย
่ ม
ผังงานโปรแกรม ทีละรูป
้ ทีข
คานวณพืน ่ องสามเหลีย
่ ม
ไม่ใช่ ครบ 100 รูปแล้ว
่ รือไม่
ใชห
พิมพ์รายงานของ
พืน้ ทีส
่ ามเหลีย
่ ม ใช่
จบ
จบ
ประโยชน์ของการเขียนผังงาน
• เราสามารถเรียนรู้และเข้าใจผังงานได้ง่าย เพราะผังงานไม่ขึ้นอยู่กับ
ภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
• ผังงานเป็นการสื่อความหมายด้วยภาพ ทาให้ง่ายและสะดวกต่อการ
พิจารณาลาดับขั้นตอนในการทางานดีกว่าการบรรยายเป็นตัวอักษร
• ช่วยให้การค้นหาความผิดพลาดของลาดับการทางานได้รวดเร็ว และ
สามารถแก้ไขได้ง่าย
• การเขียนโปรแกรมโดยพิจารณาจากผังงาน สามารถทาได้รวดเร็วและ
ง่ายขึ้น
• ในการบารุงรักษาโปรแกรม หรือมีการเปลี่ยนแปลงแก้ไขโปรแกรมให้
มีประสิทธิภาพ ถ้าดูจากผังงานจะช่วยให้สามารถทบทวนการทางาน
ในโปรแกรมได้ง่ายขึ้น
ข้อจากัดของการเขียนผังงาน
• การเขียนผังงานไม่เหมาะกับงานที่มีวิธีการซับซ้อน เช่น
มีการที่เงื่อนไขในการทอสอบมากมาย ซึ่งมักจะใช้
ตารางการตัดสินใจ(decision table) เข้ามาช่วยมากกว่า
สัญลักษณ์ในการเขียนผังงาน(1/13)
• การเขียนผังงานเป็นการนาเอาภาพสัญลักษณ์ต่าง ๆ
มาเรียงต่อกัน เพื่อแสดงลาดับขั้นตอนการทางาน โดย
มีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ
• สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็น
สัญลักษณ์ของหน่วยงานที่ชื่อว่า American National
Standard Institute (ANSI) และ International Standard
Organization (ISO) เป็นผู้กาหนดและรวบรวมให้เป็น
สัญลักษณ์มาตรฐานในการเขียนผังงาน
สัญลักษณ์ในการเขียนผังงาน(2/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การเริ่มต้นหรือ START
1. เริ่มต้นผัง
สิ้นสุดการเขียน งาน
ผังงาน STOP 2. จบผังงาน
(Terminal)
รับข้อมูลหรือ read name
1. รับค่าใส่ในตัว
แสดงข้อมูลโดย แปรชื่อ name
ไม่ระบุสื่อ display area
2. แสดงค่าจาก
ตัวแปร area
(Input/output)
สัญลักษณ์ในการเขียนผังงาน(3/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การประมวลผล 1. คานวณ A + B
C=A+B
และเก็บไว้ใน C
(Process)
2. กาหนดค่า sum
Sum = 0
เท่ากับ 0
การเปรียบเทียบ เปรียบเทียบถ้า i มีค่า
หรือตัวสินใจ i <= 10
false น้อยกว่าหรือเท่ากับ 10
true - เป็นจริง พิมพ์ค่า i
(Compare / เสร็จแล้วไปทา
แสดง i
Decision) คาสั่งอื่น ๆ
- เป็นเท็จ ไปทาคาสั่ง
อื่น ๆ
สัญลักษณ์ในการเขียนผังงาน(4/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การแสดงผลลัพธ์ พิมพ์ค่า A ทาง
ทางเครื่องพิมพ์ print A เครื่องพิมพ์
(Document)
การแสดงผลลัพธ์ แสดงค่า A, B
ทางจอภาพ บนจอภาพ
display A , B
(Display)
สัญลักษณ์ในการเขียนผังงาน(5/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
หมายเหตุ
(Comment) read A A = Age
(Punched tape)
การรับหรือแสดง
ข้อมูลโดยใช้เทป
แม่เหล็กเป็นสื่อ
(Magnatic tape)
สัญลักษณ์ในการเขียนผังงาน(10/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การรับหรือแสดง
ข้อมูลโดยใช้จาน
แม่เหล็กเป็นสื่อ
(Magnatic disk)
การรับหรือแสดง
ข้อมูลโดยใช้ดรัม
แม่เหล็กเป็นสื่อ
(Magnatic drum)
สัญลักษณ์ในการเขียนผังงาน(11/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การทางานที่กาหนด เรียกโปรแกรม
ไว้แล้ว เช่น findGrade ย่อยชื่อ findGrade
โปรแกรมย่อย ให้ทางาน
(Predefine Process)
การควบคุมการ
ทางานด้วยมนุษย์
บางครั้งเรียกการ
ทางานแบบ
ออฟไลน์
(Offline Processing)
สัญลักษณ์ในการเขียนผังงาน(12/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การทางานแบบ
ออฟไลน์ของอุปกรณ์ที่
ไม่ได้ถูกควบคุมจาก
หน่วยประมวลผลกลาง
โดยตรง
(Auxiliary Operation)
การจัดเรียงลาดับ
ข้อมูล
(Sorting)
สัญลักษณ์ในการเขียนผังงาน(13/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การส่งข้อมูลทาง
สายสื่อสาร
(Communication
Link)
หลักการจัดภาพผังงาน(1/2)
• ทิศทางของผังงานจะเริ่ม บน START
จากส่วนบนของ ทิศทางของเส้น
หน้ากระดาษลงมายัง read age
ส่วนล่าง และจากซ้ายมือ
false
ไปของหน้ากระดาษ และ age > 60
ควรเขียนเครื่องหมาย true
ลูกศรกากับทิศทางไว้ด้วย “You are old”
ล่าง STOP
หลักการจัดภาพผังงาน(2/2)
• สัญลักษณ์หรือภาพที่ใช้ START
sum
STOP
หลักการจัดภาพผังงาน(3/2)
• การเขียนทิศทางของผังงานควรเป็นไปอย่างมีระเบียบ
และหลีกเลี่ยงการขีดโยงไปโยงมาในทิศทางตัดกัน ถ้า
จาเป็นต้องโยงถึงกัน ควรใช้เครื่องหมายจุดต่อเนื่อง
แทนและถ้าเป็นไปได้ควรเขียนผังงานให้จบในหน้า
เดียวกัน
• คาอธิบายในภาพ เขียนเพียงสั้น ๆ และเข้าใจง่าย
• ผังงานที่ดีควรจะมีความเป็นระเบียบเรียบร้อยและ
สะอาด นอกจากนี้แล้ว จะมีชื่อของผังงาน ผู้เขียน วันที่
เขียน และเลขหน้าลาดับ
รูปแบบการเขียนผังงาน
• แบบตามลาดับ (Sequence)
• แบบการเลือก/ตัดสินใจ/เงื่อนไข
(Selection/Decision/Condition)
• แบบวนซ้า (Iteration / Loop)
รูปแบบตามลาดับ(1/3)
• เป็นรูปแบบการเขียนโปรแกรมที่ง่ายที่สุด ทางานทีละอย่าง
จากบนลงล่าง แสดงลาดับการทางานจากบนลงล่างตามลูกศร
อ่านข้อมูล คานวณ
งานที่ 1
คานวณ
งานที่ 2 คานวณข้อมูล
คานวณ
งานที่ 3 พิมพ์ผลล ัพธ์
รูปแบบตามลาดับ(2/3)
START เริ่มต้น
A=5 กาหนดค่าตัวแปร A มีค่าเป็น 5
print C พิมพ์ค่า C
STOP จบการทางาน
รูปแบบตามลาดับ(3/3)
START เริ่มต้น
Last_meter ,
Curr_meter
Num_meter , Electric_fee
STOP
แบบการเลือก
เป็นการเขียนโปรแกรมแบบมีการเปรียบเทียบเงื่อนไข และ
ทางานตามคาสั่งอย่างใดอย่างหนึ่งตามเงื่อนไขที่กาหนด ผล
จากการเปรียบเทียบเงื่อนไข จะให้ผลลัพธ์เป็นจริงหรือเท็จ
ถ้าผลเป็นจริง ให้ทางานตามคาสั่งด้านที่เงื่อนไขเป็นจริง ถ้า
เป็นเท็จให้ทาตามคาสั่งด้านที่เงื่อนไขเป็นเท็จ
• แบบทางเลือกเดียว (IF - THEN)
• แบบสองทางเลือก (IF – THEN - ELSE)
• แบบหลายทางเลือก (IF – THEN – ELSE IF | CASE)
แบบทางเลือกเดียว(1/5)
จริง
เงื่อนไข
จริง
เงื่อนไข
เท็จ ประโยคงาน 1
เท็จ ประโยคงาน
ประโยคงาน 2
งานลาดับถัดไป
งานลาดับถัดไป
แบบทางเลือกเดียว(2/5)
START เริ่มต้น
age > 60
false เปรียบเทียบค่า age มากกว่า 60
true
ถ้าเป็นจริง พิมพ์ข้อความ You are old
“You are old”
ถ้าเป็นเท็จ ไม่ต้องทาอะไร
STOP จบการทางาน
แบบทางเลือกเดียว(3/5)
เริ่ม
รับค่า รหัสผ่านจากผู้ใช้ ถ้า
รับค่า ans
รหัสผ่านที่ป้อนมีค่า GoodLuck
ให้แสดงข้อว่า Welcome ans = “GoodLuck”
เท็จ
Manager และข้อความ Exit จริง
Password System พิมพ์ Welcome
Manager
จบ
แบบทางเลือกเดียว(4/5)
• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือน
ต่ากว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับ
โบนัสคนละ 3 เท่าของเงินเดือน
• ขั้นตอนการประมวลผล
1. รับค่าชื่อพนักงาน . เงินเดือน
2. เปรียบเทียบค่า เงินเดือน
- ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงินเดือน + (เงินเดือน * 10/100)
3. คานวณโบนัส = เงินเดือน * 3
4. แสดงผลลัพธ์
5. จบการทางาน
แบบทางเลือกเดียว(5/5)
START A
A
แต่ไม่ต้องเขียนเส้นเชื่อมนี้
ข้อควรจา
• ในการเปรียบเทียบเงื่อนไขแบบ IF – THEN นิยมให้ทางาน
ตามคาสั่งเมื่อเงื่อนไขมีค่าเป็นจริง ไม่นิยมให้ทางามตามคาสั่ง
เป็นเท็จ
เท็จ
เงื่อนไข จริง เงื่อนไข
ประโยคงาน 2 ประโยคงาน 2
งานลาดับถัดไป งานลาดับถัดไป
จริง
เงื่อนไข IF เงื่อนไข THEN
BEGIN
เท็จ ประโยคงาน 1 ประโยคงาน 1 ;
ประโยคงาน 2 ;
ประโยคงาน 2
END;
งานลาดับถัดไป
เท็จ
เงื่อนไข IF เงื่อนไข THEN
งานลาดับถัดไป
แบบสองทางเลือก(1/6)
• การทางานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปทางานด้านหนึ่ง ถ้า
เป็นเท็จก็จะไปทางานอีกอย่างหนึ่ง
เท็จ จริง
เงื่อนไข
ประโยคงาน1 ประโยคงาน2
งานลาดับถัดไป
แบบสองทางเลือก(2/6)
• ถ้า sex =1 เงื่อนไขเป็น
จริง จะเพิ่มค่าตัวแปร
False
Sex = 1
True Male ขึ้นอีก 1
• ถ้า sex =1 เงื่อนไขเป็น
Female = Female + 1 Male = Male +1 เท็จ จะเพิ่มค่าตัวแปร
Female ขึ้นอีก 1
แบบสองทางเลือก(3/6)
START เริ่มต้น
STOP จบการทางาน
แบบสองทางเลือก(4/6)
เริ่ม เริ่มการทางาน
พิมพ์ Do you like Pascal แสดงข้อความ Do you like Pascal
รับค่า ans รับค่าใส่ตัวแปร ans
เท็จ จริง
ans = ‘y’ OR ans=‘Y’ เปรียบเทียบค่า ans เท่ากับ y หรือ Y
พิมพ์ I’m sorry to hear that พิมพ์ Thank You
- ถ้าเป็นจริง พิมพ์
Thank you
-ถ้าเป็นเท็จ พิมพ์
I’m sorry to hear that
พิมพ์ Good Bye
พิมพ์คาว่า Goodbye
จบ จบการทางาน
แบบสองทางเลือก(5/6)
• บริษัทแห่งหนึ่งต้องการเพิม่ เงินเดือนให้พนักงานที่มีเงินเดือนต่ากว่า
5000 อีกคนละ 10% และพนักงานที่มีเงินเดือนตั้งแต่ 5000 เพิ่ม 5%
ให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน
• ขั้นตอนการประมวลผล
1. รับค่าชื่อพนักงาน . เงินเดือน
2. เปรียบเทียบค่า เงินเดือน < 5000
- ถ้าเป็นจริง ให้อัตราเพิ่มเงินเดือน = 10/100
- ถ้าเป็นเท็จให้อัตราเพิ่มเงินเดือน = 5/100
3. คานวณเงินเดือน = เงินเดือน + (เงินเดือน * อัตราเพิ่มเงินเดือน)
4. โบนัส = เงินเดือน * 3
5. แสดงผลลัพธ์
6. จบการทางาน
แบบทางเลือกเดียว(6/6)
START A
A STOP
แต่ไม่ต้องเขียนเส้นเชื่อมนี้
การเลือกหลายทาง(แบบ IF)
• เป็นรูปแบบการเลือกการ
False True
ทางานที่มีทางเลือกมากกว่า เงือ
่ นไข 1
False True
เงือ
่ นไข 3 คำสงั่ ที่ 2
false true
Score >=80
false true
Score >=70 Grade = ‘A’
false true
Score >=60 Grade = ‘B’
false true
Score >=50 Grade = ‘C’
เงือ
่ นไข
score
Grade = ‘A’ Grade = ‘B’ Grade = ‘C’ Grade = ‘D’ Grade = ‘F’
แบบวนซ้า
• แบบกาหนดรอบไว้ล่วงหน้า(Controlled Loop)
• แบบตรวจสอบเงื่อนไขก่อน(Pre-Test Condition)
• แบบตรวจสอบเงื่อนไขทีหลัง(Post-Test Condition)
แบบกาหนดรอบการทางานเอาไว้ล่วงหน้า
• มีการกาหนดรอบการทางานซ้าไว้ล่วงหน้า เมื่อครบตาม
จานวนรอบจึงหยุดทางานซ้าแล้วทาคาสั่งต่อไป
กาหนดรอบการทางาน
คำสงั่ ทำซ้ำ 1
คำสงั่ ทำซ้ำ 2
Next
แบบกาหนดรอบการทางานเอาไว้ล่วงหน้า
• ค่า N จะเริ่มต้นที่ 1 และเพิ่มค่าทีละ 1 จนกระทั่ง มากกว่า 5
จึงหยุดการทางานซ้า และทาคาสั่งถัดจาก Next ในแต่ละรอบ
ของงานที่ให้ทาซ้าคือ พิมพ์ค่าในตัวแปร N ทีละรอบ
For N =1 , 5
Print N
Next
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทาซ้า
• แบบตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขยังเป็นจริงให้ทางานซ้า
จนกระทั่งเงื่อนไขเป็นเท็จจึงหยุดทางานซ้า แล้วไปทางาน
คาสั่งอื่นถัดไป
False
เงือ
่ นไข
True
คาสง่ ั งานซา้ 1
คาสง่ ั งานซา้ 2
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทาซ้า
• ตรวจสอบเงื่อนไขถ้า N <= 5 N=1
– ให้พิมพ์ ค่า N
– เพิ่มค่า N อีก 1 (N=N+1)
False
N <=5
True
• กลับไปตรวจสอบเงื่อนไขอีก
Print N
จนกว่าเงื่อนจะเป็นเท็จ จึง
หยุดทางานซ้า แล้วไปทางาน N = N+1
คาสั่งอื่น
แบบทาซ้าก่อนแล้วค่อยตรวจเงื่อนไข
• แบบให้ทางานในคาสั่งทาซ้าก่อน
แล้วค่อยตรวจสอบเงื่อนไข ถ้า
เงื่อนไขยังเป็นเท็จให้กลับไปทางาน
ในคาสั่งทาซ้าอีก จนกระทั่ง คาสง่ ั งานซา้ 1
ตรวจสอบแล้วเงื่อนเป็นจริง จึงหยุด
คาสง่ ั งานซา้ 2
แล้วไปทางานคาสั่งอื่น
False
เงือ
่ นไข
True
แบบทาซ้าก่อนแล้วค่อยตรวจเงื่อนไข
– ให้พิมพ์ค่าในตัวแปร N
N=1
– เพิ่มค่าให้ตัวแปร N อีก 1
ทางานคาสั่งซ้าอีกรอบ
False
N>5
True