การเขียนผังการเขียนผัง
งานงาน((FlowchartingFlowcharting))
การเขียนผังการเขียนผัง
งานงาน(Flowcharting)(Flowcharting)
• ผังงาน (Flowchart)
คือ รูปภาพหรือสัญลักษณ์ที่ใช้เขียนแทนขั้นตอน
คำาอธิบาย ข้อความ หรือคำาพูด ที่ใช้ในอัลกอริทึม
เพราะการนำาเสนอขั้นตอนของงานให้เข้าใจตรงกัน
ระหว่างผู้เกี่ยวข้อง ด้วยคำาพูด หรือข้อความทำาได้
ยากกว่า
• ผังงาน
เป็นเครื่องมือแสดงขั้นตอน หรือกระบวนการทำางาน
โดยใช้สัญลักษณ์ที่เป็นมาตรฐานเดียวกัน ซึ่งใน
สัญลักษณ์จะมีข้อความสั้น ๆ อธิบายข้อมูลที่ต้องใช้
ผังงานทางคอมพิวเตอร์ผังงานทางคอมพิวเตอร์
ผังงานทางคอมพิวเตอร์แบ่งออกเป็น 2
ประเภท ได้แก่
ผังงานระบบ (System flowchart)
ผังงานโปรแกรม (Program flowchart)
ผังงานระบบผังงานระบบ(System(System
flowchart)flowchart)
• เป็นผังงานที่แสดงถึงขั้นตอนการทำางานภายใน
ระบบหนึ่ง ๆ โดยจะแสดงถึงความเกี่ยวข้องของ
ส่วนที่สำาคัญต่าง ๆ ในระบบนั้น เช่น เอกสารเบื้อง
ต้น หรือสื่อบันทึกข้อมูลที่ใช้อยู่เป็นอะไร และผ่าน
ไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น
แล้วจะส่งต่อไปหน่วยงานใด เป็นต้น
• ดังนั้นผังงานระบบอาจเกี่ยวข้องกับคน วัสดุ และ
เครื่องจักร ซึ่งแต่ละจุดจะประกอบไปด้วย การนำา
ข้อมูลเข้า วิธีการประมวลผลและการแสดงผลลัพธ์
(Input Process Output) ว่ามาจากที่ใดอย่าง
กว้าง ๆ จึงสามารถเขียนโปรแกรมจากผังงานระบบ
ตัวอย่างผังงานระบบตัวอย่างผังงานระบบ
• ผังงานแสดงการ
คำานวณพื้นที่
สามเหลี่ยมจำานวน
100 รูป
เริ่มต้น
บันทึกความสูงและความยาวฐาน
ลงในดิสก์
รับความสูง และความยาวฐาน
ของสามเหลี่ยม 100 รูป
ดิสก์ที่
บันทึกแล้ว
คำานวณพื้นที่ของสามเหลี่ยม
พิมพ์รายงานของ
พื้นที่สามเหลี่ยม
จบ
ผังงานโปรแกรมผังงานโปรแกรม(Program(Program
flowchart)flowchart)
• ผังงานประเภทนี้แสดงถึงขั้นตอนของคำาสั่งที่ใช้ใน
โปรแกรม ผังงานนี้อาจสร้างจากผังงานระบบโดยผู้
เขียนผังงานจะดึงเอาแต่ละจุดที่เกี่ยวข้องการ
ทำางานของเครื่องคอมพิวเตอร์ที่ปรากฏในผังงาน
ระบบมาเขียน เพื่อให้ทราบว่าถ้าจะใช้คอมพิวเตอร์
ทำางานในจุดนั้นเพื่อให้ได้ผลลัพธ์ที่ตามต้องการ
ควรที่จะมีขั้นตอนคำาสั่งอย่างไร และจะได้นำามา
เขียนโปรแกรมคอมพิวเตอร์ทำางานต่อไป
ตัวอย่างผังงานโปรแกรมตัวอย่างผังงานโปรแกรม
• ผังงานแสดงการ
คำานวณพื้นที่
สามเหลี่ยมจำานวน
100 รูป
เริ่มต้น
รับความสูง และ
ความยาวฐานทีละรูป
ครบ 100 รูปแล้ว
ใช่หรือไม่
คำานวณพื้นที่= 0.5 * ฐาน * สูง
พิมพ์พื้นที่สามเหลี่ยม
ทีละรูป
จบ
ไม่ใช่
ใช่
เปรียบเทียบผังงานระบบและเปรียบเทียบผังงานระบบและ
ผังงานโปรแกรมผังงานโปรแกรมเริ่มต้น
บันทึกความสูงและความยาวฐาน
ลงในดิสก์
รับความสูง และความยาวฐาน
ของสามเหลี่ยม 100 รูป
ดิสก์ที่
บันทึกแล้ว
คำานวณพื้นที่ของสามเหลี่ยม
พิมพ์รายงานของ
พื้นที่สามเหลี่ยม
จบ
เริ่มต้น
รับความสูง และ
ความยาวฐานทีละรูป
ครบ 100 รูปแล้ว
ใช่หรือไม่
คำานวณพื้นที่= 0.5 * ฐาน * สูง
พิมพ์พื้นที่สามเหลี่ยม
ทีละรูป
จบ
ไม่ใช่
ใช่
ผังงานระบบ
ผังงานโปรแกรม
ประโยชน์ของการเขียนผังประโยชน์ของการเขียนผัง
งานงาน
• การบำารุงรักษาโปรแกรม หรือมีการเปลี่ยนแปลง
แก้ไขโปรแกรมให้มีประสิทธิภาพ ถ้าดูจากผังงาน
จะช่วยให้สามารถทบทวนการทำางานในโปรแกรม
ได้ง่ายขึ้น
• ผังงานเป็นการสื่อความหมายด้วยภาพ ทำาให้ง่าย
และสะดวกต่อการพิจารณาลำาดับขั้นตอนในการ
ทำางานดีกว่าการบรรยายเป็นตัวอักษร
• เราสามารถเรียนรู้และเข้าใจผังงานได้ง่าย เพราะ
ผังงานไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใด
ภาษาหนึ่ง
• การเขียนโปรแกรมโดยพิจารณาจากผังงาน
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
• สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็น
สัญลักษณ์ของหน่วยงานที่ชื่อว่า American
National Standard Institute (ANSI) และ Int
ernational Standard Organization (ISO)
เป็นผู้กำาหนดและรวบรวมให้เป็นสัญลักษณ์
มาตรฐานในการเขียนผังงาน
• การเขียนผังงานเป็นการนำาเอาภาพสัญลักษณ์ต่าง
ๆ มาเรียงต่อกัน เพื่อแสดงลำาดับขั้นตอนการทำางาน
โดยมีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การเริ่มต้น
หรือสิ้นสุด
การเขียน
ผัง
งาน(Term
inal)
1. เริ่มต้น
ผังงาน
2. จบผัง
งาน
รับข้อมูล
หรือแสดง
ข้อมูลโดย
1. รับค่าใส่
ใน
ตัวแปร
START
STOP
read name
display area
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความ
หมาย
ตัวอย่าง
การใช้
คำาอธิบาย
การ
ประมวล
ผล
(Process)
1. คำานวณ A
+ B และ
เก็บไว้ใน
C
2. กำาหนดค่า
sum
เท่ากับ 0
การเปรียบ
เทียบหรือ
เปรียบเทียบถ้า i
มีค่า
น้อยกว่าหรือ
C = A + B
Sum = 0
i <= 10
true
false
แสดง i
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การแสดง
ผลลัพธ์
ทาง
เครื่องพิมพ์
(Documen
t)
พิมพ์ค่า A
ทาง
เครื่องพิมพ์
การแสดง
ผลลัพธ์
แสดงค่า A,
B
print A
display A , B
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
หมายเหตุ
(Commen
t)
รับค่า
ทางการกด
แป้นพิมพ์
(Manual
Input)
รับค่า A
ทาง
แป้นพิมพ์
read A A = Age
read A
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การ
กำาหนดค่า
ต่างๆ ไว้
ล่วงหน้า
(Preparati
on)
กำาหนดให้ i มี
ค่าเท่ากับ
1 และเพิ่มค่าที
ละ 1
จนมีค่าเป็น
100 จึง
ออก
จากการทำางาน
ซำ้า
โดยแต่ละรอบ
บวกค่า
sum ด้วยค่า i
for i =1 to 100
sum = sum + i
i
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
จุดต่อเนื่อง
ในหน้า
เดียวกัน
(In-Page
connector
)
หลังจากพิมพ์
ค่า A
แล้วให้ทำา
ตามที่จุด
ต่อเนื่อง A
ซึ่งอยู่ใน
หน้าเดียวกัน
จุดต่อเนื่อง
ที่อยู่คนละ
หลังจาก
กำาหนด
A
write A
A = 3
1
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การรับหรือ
แสดง
ข้อมูลโดย
ใช้บัตร
เจาะรู
(Punch
card)
1. อ่านค่า A
ที่บัตร
เจาะรู 1
ใบ
2. เจาะค่า
B,C บน
บัตร 1
ใบ
ชุดของ
บัตรเจาะรู
เจาะค่า B1 ,
B2 , Bn
read A
punch B , C
punch
bi b=1 ,
…n
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การรับหรือ
แสดง
ข้อมูลโดย
ใช้เทป
กระดาษ
(Punched
tape)
อ่านค่า ID ,
name
บนเทป
กระดาษ
การรับหรือ
read ID ,
name
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การรับหรือ
แสดง
ข้อมูลโดย
ใช้จานแม่
เหล็กเป็น
สื่อ
(Magnatic
disk)
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การทำางานที่
กำาหนดไว้
แล้ว เช่น
โปรแกรม
ย่อย
(Predefine
Process)
เรียก
โปรแกร
ม
ย่อยชื่อ
findGra
de
ให้ทำางาน
การควบคุม
การทำางาน
ด้วยมนุษย์
findGrade
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การทำางาน
แบบออฟไลน์
ของอุปกรณ์ที่
ไม่ได้ถูก
ควบคุมจาก
หน่วยประมวล
ผลกลาง
โดยตรง
(Auxiliary
Operation)
การจัดเรียง
สัญลักษณ์ในการเขียนผังงานสัญลักษณ์ในการเขียนผังงาน
สัญลักษ
ณ์
ความหมาย ตัวอย่าง
การใช้
คำาอธิบาย
การส่งข้อมูล
ทางสาย
สื่อสาร
(Communic
ation Link)
รูปแบบการเขียนผังงานรูปแบบการเขียนผังงาน
• แบบตามลำาดับ (Sequence)
• แบบการเลือก/ตัดสินใจ/เงื่อนไข
(Selection/Decision/Condition)
• แบบวนซำ้า (Iteration / Loop)
รูปแบบตามลำาดับรูปแบบตามลำาดับ
START
STOP
A = 5
B = 3
C = A + B
print C
เริ่มต้น
กำาหนดค่าตัวแปร A มีค่าเป็น 5
กำาหนดค่าตัวแปร B มีค่าเป็น 3
เอาค่า A บวกกับ B แล้วเก็บไว้ใน C
พิมพ์ค่า C
จบการทำางาน
ตัวอย่างการเขียนผังงานแบบตัวอย่างการเขียนผังงานแบบ
ตามลำาดับตามลำาดับ
• จงเขียนโปรแกรมคำานวณค่าไฟฟ้า โดยรับ
ค่ามิเตอร์จำานวนการใช้ไฟฟ้าของเดือนที่
แล้ว และค่ามิเตอร์การใช้ไฟฟ้าของเดือน
ปัจจุบัน คำานวณค่าไฟฟ้า โดยคิดอัตรา 2.5
บาท /1 หน่วยมิเตอร์
1.สิ่งที่โจทย์ต้องการ
ค่าไฟฟ้า
2.รูปแบบผลลัพธ์
ป้อนเลขมิเตอร์เดือนที่แล้ว --> <รอรับเลขมิเตอร์เดือนที่
แล้ว>
ป้อนเลขมิเตอร์เดือนปัจจุบัน--> <รอรับเลขมิเตอร์เดือน
ปัจจุบัน>
-----------------------------------------------------
จำานวนหน่วยไฟฟ้าที่ใช้ : <แสดงจำานวนหน่วยไฟฟ้าที่
ตัวอย่างการเขียนผังงานแบบตัวอย่างการเขียนผังงานแบบ
ตามลำาดับตามลำาดับ
3. ข้อมูลนำาเข้า
– เลขมิเตอร์เดือนที่แล้ว
– เลขมิเตอร์เดือนปัจจุบัน
4. ตัวแปรที่ใช้ในการประมวลผล
– Last_meter แทน เลขมิเตอร์เดือนที่แล้ว
– Curr_meter แทน เลขมิเตอร์เดือนปัจจุบัน
– Num_meter แทน จำานวนหน่วยมิเตอร์ที่ใช้
– Electric_fee แทน ค่าไฟฟ้า
ตัวอย่างการเขียนผังงานแบบตัวอย่างการเขียนผังงานแบบ
ตามลำาดับตามลำาดับ
5. ขั้นตอนวิธีการประมวลผล
1. เริ่มต้น
2. รับค่าใส่ตัวแปร last_meter และ curr_meter
จากผู้ใช้ทางแป้นพิมพ์
3. คำานวณ num_meter = curr_meter –
last_meter
4. คำานวณ electric_fee = num_meter * 2.5
5. แสดงค่า num_meter , electric_fee
6. จบการทำางาน
Flow chartFlow chart
START
STOP
Num_meter = Curr_meter – Last_meter
Last_meter ,
Curr_meter
Electric_fee = Num_meter * 2.5
Num_meter , Electric_fee
แบบการเลือกแบบการเลือก
การเขียนโปรแกรมแบบมีการเปรียบ
เทียบเงื่อนไข และทำางานตามคำาสั่งอย่างใดอย่าง
หนึ่งตามเงื่อนไขที่กำาหนด ผลจากการเปรียบเทียบ
เงื่อนไข จะให้ผลลัพธ์เป็นจริงหรือเท็จ ถ้าผลเป็น
จริง ให้ทำางานตามคำาสั่งด้านที่เงื่อนไขเป็นจริง ถ้า
เป็นเท็จให้ทำาตามคำาสั่งด้านที่เงื่อนไขเป็นเท็จ
• แบบทางเลือกเดียว (IF - THEN)
• แบบสองทางเลือก (IF – THEN - ELSE)
• แบบหลายทางเลือก (IF – THEN – ELSE IF |
CASE)
แบบทางเลือกเดียวแบบทางเลือกเดียว
เงื่อนไข
ประโยคงาน
งานลำาดับถัดไป
จริง
เท็จ
เงื่อนไข
ประโยคงาน 1
งานลำาดับถัดไป
จริง
เท็จ
ประโยคงาน 2
แบบทางเลือกเดียวแบบทางเลือกเดียว
START
STOP
read age
age > 60
“You are old”
true
false
เริ่มต้น
รับค่าใส่ตัวแปร age
ถ้าเป็นจริง พิมพ์ข้อความ You ar
ถ้าเป็นเท็จ ไม่ต้องทำาอะไร
จบการทำางาน
เปรียบเทียบค่า age มากกว่า 60
แบบทางเลือกเดียวแบบทางเลือกเดียว
• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้
พนักงานที่มีเงินเดือนตำ่ากว่า 5000 อีกคนละ
10% และให้พนักงานทุกคนได้รับโบนัสคนละ
3 เท่าของเงินเดือน
• ขั้นตอนการประมวลผล
1.รับค่าชื่อพนักงาน . เงินเดือน
2.เปรียบเทียบค่า เงินเดือน
- ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงิน
เดือน + (เงินเดือน * 10/100)
1.คำานวณโบนัส = เงินเดือน * 3
2.แสดงผลลัพธ์
แบบสองทางเลือกแบบสองทางเลือก
• การทำางานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปทำางาน
ด้านหนึ่ง ถ้าเป็นเท็จก็จะไปทำางานอีกอย่างหนึ่ง
เงื่อนไข
ประโยคงาน2
งานลำาดับถัดไป
จริงเท็จ
ประโยคงาน1
แบบสองทางเลือกแบบสองทางเลือก
START
STOP
read age
age > 60
“You are old”
truefalse
“You are young”
เริ่มต้น
รับค่าใส่ตัวแปร age
ถ้าเป็นจริง พิมพ์ข้อความ You are
ถ้าเป็นเท็จ พิมพ์ข้อความ You are
จบการทำางาน
เปรีบเทียบค่า age มากกว่า 6
แบบสองทางเลือกแบบสองทางเลือก
• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มี
เงินเดือนตำ่ากว่า 5000 อีกคนละ 10% และ
พนักงานที่มีเงินเดือนตั้งแต่ 5000 เพิ่ม 5% ให้
พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงิน
เดือน
• ขั้นตอนการประมวลผล
1.รับค่าชื่อพนักงาน . เงินเดือน
2.เปรียบเทียบค่า เงินเดือน < 5000
- ถ้าเป็นจริง ให้อัตราเพิ่มเงินเดือน = 10/100
- ถ้าเป็นเท็จให้อัตราเพิ่มเงินเดือน = 5/100
1.คำานวณเงินเดือน = เงินเดือน + (เงินเดือน *
อัตราเพิ่มเงินเดือน)
การเลือกหลายทางการเลือกหลายทาง((แบบแบบ
CASE)CASE)
•เป็นรูปแบบการเลือกการทำางานที่มีทาง
เลือกมากกว่า 2 ทางขึ้นไป
เงื่อนไข
คำาสั่งที่ 2คำาสั่งที่ 1 คำาสั่งที่ 4คำาสั่งที่ 3
กรณี 1 กรณี 2 กรณี 3 กรณี 4
แบบวนซำ้าแบบวนซำ้า
• แบบกำาหนดรอบไว้ล่วงหน้า(Controlled Loop)
• แบบตรวจสอบเงื่อนไขก่อน(Pre-Test
Condition)
• แบบตรวจสอบเงื่อนไขทีหลัง(Post-Test
Condition)
แบบกำาหนดรอบการทำางานแบบกำาหนดรอบการทำางาน
เอาไว้ล่วงหน้าเอาไว้ล่วงหน้า
• มีการกำาหนดรอบการทำางานซำ้าไว้ล่วงหน้า เมื่อครบ
ตามจำานวนรอบจึงหยุดทำางานซำ้าแล้วทำาคำาสั่งต่อไป
กำาหนดรอบการทำางาน
คำาสั่งทำาซำ้า 1
คำาสั่งทำาซำ้า 2
Next
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นแบบตรวจสอบเงื่อนไขก่อนถ้าเป็น
จริงแล้วค่อยทำาซำ้าจริงแล้วค่อยทำาซำ้า
• แบบตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขยังเป็นจริง
ให้ทำางานซำ้า จนกระทั่งเงื่อนไขเป็นเท็จจึงหยุด
ทำางานซำ้า แล้วไปทำางานคำาสั่งอื่นถัดไป
เงื่อนไข
คำาสั่งงานซำ้า 1
True
False
คำาสั่งงานซำ้า 2
แบบทำาซำ้าก่อนแล้วค่อยตรวจแบบทำาซำ้าก่อนแล้วค่อยตรวจ
เงื่อนไขเงื่อนไข
– ให้พิมพ์ค่าใน
ตัวแปร N
– เพิ่มค่าให้ตัวแปร N
อีก 1
• ตรวจสอบเงื่อนไข ถ้า
N > 5 เป็นจริงให้
หยุดทำางานซำ้า ถ้า
เป็นเท็จให้กลับไป
ทำางานคำาสั่งซำ้าอีกรอบ
N > 5
True
False
N = N+1
Print N
N = 1

ผังงาน เจนนภา