การเขียนผังงาน
เบื้องต้น
Basic
Flowcharting
การเขียนผังงาน(Flowcharting)
• ผังงาน หมายถึง เครื่องมือที่ช่วยในการเขียนโปรแกรม โดย
เขียนเป็นเครื่องหมายภาพสัญลักษณ์แสดงลาดับขั้นตอนการ
ทางาน
• การเขียนผังงาน เป็นการถ่ายทอดความเข้าใจที่ได้จากการ
วิเคราะห์งานให้อยู่ในรูปภาพหรือสัญลักษณ์
• ผู้เขียนโปรแกรมจะสามารถเข้าใจลาดับขั้นตอนการเขียน
โปรแกรมได้อย่างรวดเร็วและง่ายขึ้น และง่ายต่อการ
ตรวจสอบความถูกต้องของลาดับขั้นตอนในวิธีการ
ประมวลผล
การเขียนผังงาน(Flowcharting)
• งานทุกชนิดที่มีการวิเคราะห์เป็นลาดับขั้นตอนแล้ว เรา
สามารถนามาเขียนผังงานได้ แม้กระทั่งงานที่เกี่ยวข้องกับ
ชีวิตประจาวันของเราเอง
ตัวอย่างผังงานทั่วไป(1/3)
• แสดงการโยนเหรียญ 3
ครั้ง ถ้าออกหัว ผู้โยนจะ
ได้เงิน 10 บาท ถ้าออก
ก้อย ผู้โยนจะเสียเงิน
10 บาท
เริ่มต้น
โยนเหรียญ
ผลการโยน
ได้เงิน 10 บาทเสียเงิน 10 บาท
ครบ 3 ครั้ง
หรือยัง?
หยุด
หัวก้อย
ยัง
ครบ
ตัวอย่างผังงานทั่วไป(2/3)
• ผังงานแสดงการเดิน
ข้ามถนนที่มีสัญญาณ
ไฟจราจร
เริ่มต้น
รอสัญญาณไฟ
ไฟแดง
หรือไม่
เดินข้ามถนน
หยุด
ใช่
ไม่ใช่
ตัวอย่างผังงานทั่วไป(3/3)
• ผังงานพิจารณาการใช้ยา
ตามฉลากยาที่ปิดข้างขวด
แยกตามขนาดการใช้ดังนี้
– อายุต่ากว่า 5 ปี ห้าม
รับประทาน
– อายุ 5 - 7 ปี ครั้งละ 1 เม็ด
– อายุ 8 - 14 ปี ครั้งละ 2 เม็ด
– อายุ 15 ปีขึ้นไป ครั้งละ 3
เม็ด
เริ่มต้น
อายุต่ากว่า
5 ปี
ห้ามรับประทาน
อายุ 5 ปี ขั้นไป
แต่ไม่ถึง 8 ปี
ครั้งละ 1 เม็ด
อายุ 8 ปี ขั้นไป
แต่ไม่ถึง 15 ปี
ครั้งละ 2 เม็ด
ครั้งละ 3 เม็ด
หยุด
ใช่
ใช่
ใช่
ไม่ใช่
ไม่ใช่
ไม่ใช่
ผังงานทางคอมพิวเตอร์
ผังงานทางคอมพิวเตอร์แบ่งออกเป็น 2 ประเภท
ได้แก่
ผังงานระบบ (System flowchart)
ผังงานโปรแกรม (Program flowchart)
ผังงานระบบ(System flowchart)
• เป็นผังงานที่ใช้แสดงขั้นตอนการทางานของระบบงานอย่าง
กว้าง ๆ ทั้งระบบ โดยแสดงให้เห็นถึงความสัมพันธ์ของส่วน
สาคัญต่าง ๆ ในระบบนั้น
• เช่น เอกสารเบื้องต้น หรือสื่อบันทึกที่ใช้อยู่เป็นอะไร และ
ผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น ๆ
แล้วส่งต่อไปยังหน่วยงานใด เป็นต้น
• ดังนั้น ผังงานระบบ จะเกี่ยวข้องกับ คน วัสดุ และเครื่องจักร
โดยแสดงการนาข้อมูลเข้า ประมวลผล แสดงผลลัพธ์ ว่ามา
จากที่ใดกว้าง ๆ
ตัวอย่างผังงานระบบ
• ผังงานแสดงการคานวณ
พื้นที่สามเหลี่ยมจานวน
100 รูป
เริ่มต้น
บันทึกความสูงและความยาวฐาน
ลงในดิสก์
รับความสูง และความยาวฐาน
ของสามเหลี่ยม 100 รูป
ดิสก์ที่
บันทึกแล้ว
คานวณพื้นที่ของสามเหลี่ยม
พิมพ์รายงานของ
พื้นที่สามเหลี่ยม
จบ
ผังงานโปรแกรม(Program flowchart)
• เป็นผังงานที่แสดงขั้นตอนของคาสั่งที่ใช้ในโปรแกรม
• ผังงานนี้แยกย่อยมาจากผังงานระบบ โดยผู้เขียนโปรแกรมจะ
ดึงเอาแต่ละจุดที่เกี่ยวข้องกับการประมวลผลในคอมพิวเตอร์
ที่ปรากฏในผังงานระบบมาเขียนแสดงรายละเอียดในการ
ประมวลผลอย่างเป็นลาดับขั้นตอน เพื่อนาไปประกอบการ
เขียนโปรแกรมต่อไป
ตัวอย่างผังงานโปรแกรม
• ผังงานแสดงการคานวณ
พื้นที่สามเหลี่ยมจานวน
100 รูป
เริ่มต้น
รับความสูง และ
ความยาวฐานทีละรูป
ครบ 100 รูปแล้ว
ใช่หรือไม่
คานวณพื้นที่= 0.5 * ฐาน * สูง
พิมพ์พื้นที่สามเหลี่ยม
ทีละรูป
จบ
ไม่ใช่
ใช่
เปรียบเทียบผังงานระบบและผังงานโปรแกรม
เริ่มต้น
บันทึกความสูงและความยาวฐาน
ลงในดิสก์
รับความสูง และความยาวฐาน
ของสามเหลี่ยม 100 รูป
ดิสก์ที่
บันทึกแล้ว
คานวณพื้นที่ของสามเหลี่ยม
พิมพ์รายงานของ
พื้นที่สามเหลี่ยม
จบ
เริ่มต้น
รับความสูง และ
ความยาวฐานทีละรูป
ครบ 100 รูปแล้ว
ใช่หรือไม่
คานวณพื้นที่= 0.5 * ฐาน * สูง
พิมพ์พื้นที่สามเหลี่ยม
ทีละรูป
จบ
ไม่ใช่
ใช่
ผังงานระบบ
ผังงานโปรแกรม
ประโยชน์ของการเขียนผังงาน
• เราสามารถเรียนรู้และเข้าใจผังงานได้ง่าย เพราะผังงานไม่ขึ้นอยู่กับ
ภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
• ผังงานเป็นการสื่อความหมายด้วยภาพ ทาให้ง่ายและสะดวกต่อการ
พิจารณาลาดับขั้นตอนในการทางานดีกว่าการบรรยายเป็นตัวอักษร
• ช่วยให้การค้นหาความผิดพลาดของลาดับการทางานได้รวดเร็ว และ
สามารถแก้ไขได้ง่าย
• การเขียนโปรแกรมโดยพิจารณาจากผังงาน สามารถทาได้รวดเร็วและ
ง่ายขึ้น
• ในการบารุงรักษาโปรแกรม หรือมีการเปลี่ยนแปลงแก้ไขโปรแกรมให้
มีประสิทธิภาพ ถ้าดูจากผังงานจะช่วยให้สามารถทบทวนการทางาน
ในโปรแกรมได้ง่ายขึ้น
ข้อจากัดของการเขียนผังงาน
• การเขียนผังงานไม่เหมาะกับงานที่มีวิธีการซับซ้อน เช่น
มีการที่เงื่อนไขในการทอสอบมากมาย ซึ่งมักจะใช้
ตารางการตัดสินใจ(decision table) เข้ามาช่วยมากกว่า
สัญลักษณ์ในการเขียนผังงาน(1/13)
• การเขียนผังงานเป็นการนาเอาภาพสัญลักษณ์ต่าง ๆ
มาเรียงต่อกัน เพื่อแสดงลาดับขั้นตอนการทางาน โดย
มีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ
• สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็น
สัญลักษณ์ของหน่วยงานที่ชื่อว่า American National
Standard Institute (ANSI) และ International Standard
Organization (ISO) เป็นผู้กาหนดและรวบรวมให้เป็น
สัญลักษณ์มาตรฐานในการเขียนผังงาน
สัญลักษณ์ในการเขียนผังงาน(2/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การเริ่มต้นหรือ
สิ้นสุดการเขียน
ผังงาน
(Terminal)
1. เริ่มต้นผัง
งาน
2. จบผังงาน
รับข้อมูลหรือ
แสดงข้อมูลโดย
ไม่ระบุสื่อ
(Input/output)
1. รับค่าใส่ในตัว
แปรชื่อ name
2. แสดงค่าจาก
ตัวแปร area
START
STOP
read name
display area
สัญลักษณ์ในการเขียนผังงาน(3/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การประมวลผล
(Process)
1. คานวณ A + B
และเก็บไว้ใน C
2. กาหนดค่า sum
เท่ากับ 0
การเปรียบเทียบ
หรือตัวสินใจ
(Compare /
Decision)
เปรียบเทียบถ้า i มีค่า
น้อยกว่าหรือเท่ากับ 10
- เป็นจริง พิมพ์ค่า i
เสร็จแล้วไปทา
คาสั่งอื่น ๆ
- เป็นเท็จ ไปทาคาสั่ง
อื่น ๆ
C = A + B
Sum = 0
i <= 10
true
false
แสดง i
สัญลักษณ์ในการเขียนผังงาน(4/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การแสดงผลลัพธ์
ทางเครื่องพิมพ์
(Document)
พิมพ์ค่า A ทาง
เครื่องพิมพ์
การแสดงผลลัพธ์
ทางจอภาพ
(Display)
แสดงค่า A, B
บนจอภาพ
print A
display A , B
สัญลักษณ์ในการเขียนผังงาน(5/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
หมายเหตุ
(Comment)
รับค่าทางการกด
แป้นพิมพ์
(Manual Input)
รับค่า A ทาง
แป้นพิมพ์
read A A = Age
read A
สัญลักษณ์ในการเขียนผังงาน(6/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การกาหนดค่า
ต่างๆ ไว้ล่วงหน้า
(Preparation)
กาหนดให้ i มีค่าเท่ากับ
1 และเพิ่มค่าทีละ 1
จนมีค่าเป็น 100 จึงออก
จากการทางานซ้า
โดยแต่ละรอบ บวกค่า
sum ด้วยค่า i
แสดงทิศทางและ
ลาดับของการ
ทางาน
(Flow line)
for i =1 to 100
sum = sum + i
i
สัญลักษณ์ในการเขียนผังงาน(7/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
จุดต่อเนื่องใน
หน้าเดียวกัน
(In-Page
connector)
หลังจากพิมพ์ค่า A
แล้วให้ทาตามที่จุด
ต่อเนื่อง A ซึ่งอยู่ใน
หน้าเดียวกัน
จุดต่อเนื่องที่อยู่
คนละหน้า
(Off-Page
Connector)
หลังจากกาหนดค่า A
เท่ากับ 3 ให้ทาตาม
จุดต่อเนื่องชื่อ 1 ซึ่ง
ไม่ได้อยู่ในหน้า
เดียวกัน
A
write A
A = 3
1
สัญลักษณ์ในการเขียนผังงาน(8/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การรับหรือแสดง
ข้อมูลโดยใช้
บัตรเจาะรู
(Punch card)
1. อ่านค่า A ที่
บัตรเจาะรู 1
ใบ
2. เจาะค่า B,C
บนบัตร 1 ใบ
ชุดของบัตรเจาะรู
(Card Desk)
เจาะค่า B1 , B2 , Bn
บนบัตร n ใบ
read A
punch B , C
punch
bi b=1 ,
…n
สัญลักษณ์ในการเขียนผังงาน(9/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การรับหรือแสดง
ข้อมูลโดยใช้เทป
กระดาษ
(Punched tape)
อ่านค่า ID , name
บนเทปกระดาษ
การรับหรือแสดง
ข้อมูลโดยใช้เทป
แม่เหล็กเป็นสื่อ
(Magnatic tape)
read ID ,
name
สัญลักษณ์ในการเขียนผังงาน(10/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การรับหรือแสดง
ข้อมูลโดยใช้จาน
แม่เหล็กเป็นสื่อ
(Magnatic disk)
การรับหรือแสดง
ข้อมูลโดยใช้ดรัม
แม่เหล็กเป็นสื่อ
(Magnatic drum)
สัญลักษณ์ในการเขียนผังงาน(11/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การทางานที่กาหนด
ไว้แล้ว เช่น
โปรแกรมย่อย
(Predefine Process)
เรียกโปรแกรม
ย่อยชื่อ findGrade
ให้ทางาน
การควบคุมการ
ทางานด้วยมนุษย์
บางครั้งเรียกการ
ทางานแบบ
ออฟไลน์
(Offline Processing)
findGrade
สัญลักษณ์ในการเขียนผังงาน(12/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การทางานแบบ
ออฟไลน์ของอุปกรณ์ที่
ไม่ได้ถูกควบคุมจาก
หน่วยประมวลผลกลาง
โดยตรง
(Auxiliary Operation)
การจัดเรียงลาดับ
ข้อมูล
(Sorting)
สัญลักษณ์ในการเขียนผังงาน(13/13)
สัญลักษณ์ ความหมาย ตัวอย่างการใช้ คาอธิบาย
การส่งข้อมูลทาง
สายสื่อสาร
(Communication
Link)
หลักการจัดภาพผังงาน(1/2)
• ทิศทางของผังงานจะเริ่ม
จากส่วนบนของ
หน้ากระดาษลงมายัง
ส่วนล่าง และจากซ้ายมือ
ไปของหน้ากระดาษ และ
ควรเขียนเครื่องหมาย
ลูกศรกากับทิศทางไว้ด้วย
START
STOP
read age
age > 60
“You are old”
true
false
บน
ล่าง
ทิศทางของเส้น
หลักการจัดภาพผังงาน(2/2)
• สัญลักษณ์หรือภาพที่ใช้
ในการเขียนผังงานมี
ขนาดต่าง ๆ กันได้ แต่
จะต้องมีรูปมาตรฐานตาม
ความหมายที่กาหนด
START
sum = 0
i = 1 to 10
sum = sum + i
i
sum
STOP
ขนาดของ
สัญลักษณ์
ปรับให้เหมาะสมกับ
ข้อความใน
สัญลักษณ์
หลักการจัดภาพผังงาน(3/2)
• การเขียนทิศทางของผังงานควรเป็นไปอย่างมีระเบียบ
และหลีกเลี่ยงการขีดโยงไปโยงมาในทิศทางตัดกัน ถ้า
จาเป็นต้องโยงถึงกัน ควรใช้เครื่องหมายจุดต่อเนื่อง
แทนและถ้าเป็นไปได้ควรเขียนผังงานให้จบในหน้า
เดียวกัน
• คาอธิบายในภาพ เขียนเพียงสั้น ๆ และเข้าใจง่าย
• ผังงานที่ดีควรจะมีความเป็นระเบียบเรียบร้อยและ
สะอาด นอกจากนี้แล้ว จะมีชื่อของผังงาน ผู้เขียน วันที่
เขียน และเลขหน้าลาดับ
รูปแบบการเขียนผังงาน
• แบบตามลาดับ (Sequence)
• แบบการเลือก/ตัดสินใจ/เงื่อนไข
(Selection/Decision/Condition)
• แบบวนซ้า (Iteration / Loop)
รูปแบบตามลาดับ(1/3)
• เป็นรูปแบบการเขียนโปรแกรมที่ง่ายที่สุด ทางานทีละอย่าง
จากบนลงล่าง แสดงลาดับการทางานจากบนลงล่างตามลูกศร
งานที่ 1
งานที่ 2
งานที่ 3
อ่านข้อมูล
คานวณข้อมูล
พิมพ์ผลลัพธ์
คานวณ
คานวณ
คานวณ
รูปแบบตามลาดับ(2/3)
START
STOP
A = 5
B = 3
C = A + B
print C
เริ่มต้น
กาหนดค่าตัวแปร A มีค่าเป็น 5
กาหนดค่าตัวแปร B มีค่าเป็น 3
เอาค่า A บวกกับ B แล้วเก็บไว้ใน C
พิมพ์ค่า C
จบการทางาน
รูปแบบตามลาดับ(3/3)
เริ่มต้น
รับข้อมูลมาเก็บไว้ในตัวแปร A, B ทาง
แป้นพิมพ์
เอาค่า A บวกกับ B แล้วเก็บไว้ใน C
พิมพ์ค่า C
จบการทางาน
START
STOP
C = A + B
print C
A , B
ตัวอย่างการเขียนผังงานแบบตามลาดับ
• จงเขียนโปรแกรมคานวณค่าไฟฟ้า โดยรับค่ามิเตอร์จานวนการใช้
ไฟฟ้าของเดือนที่แล้ว และค่ามิเตอร์การใช้ไฟฟ้าของเดือนปัจจุบัน
คานวณค่าไฟฟ้า โดยคิดอัตรา 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 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/5)
เงื่อนไข
ประโยคงาน
งานลาดับถัดไป
จริง
เท็จ
เงื่อนไข
ประโยคงาน 1
งานลาดับถัดไป
จริง
เท็จ
ประโยคงาน 2
แบบทางเลือกเดียว(2/5)
START
STOP
read age
age > 60
“You are old”
true
false
เริ่มต้น
รับค่าใส่ตัวแปร age
ถ้าเป็นจริง พิมพ์ข้อความ You are old
ถ้าเป็นเท็จ ไม่ต้องทาอะไร
จบการทางาน
เปรียบเทียบค่า age มากกว่า 60
แบบทางเลือกเดียว(3/5)
รับค่า รหัสผ่านจากผู้ใช้ ถ้า
รหัสผ่านที่ป้อนมีค่า GoodLuck
ให้แสดงข้อว่า Welcome
Manager และข้อความ Exit
Password System
เริ่ม
รับค่า ans
ans = “GoodLuck”
พิมพ์ Welcome
Manager
พิมพ์ Exit Password
System
จบ
จริง
เท็จ
แบบทางเลือกเดียว(4/5)
• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือน
ต่ากว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับ
โบนัสคนละ 3 เท่าของเงินเดือน
• ขั้นตอนการประมวลผล
1. รับค่าชื่อพนักงาน . เงินเดือน
2. เปรียบเทียบค่า เงินเดือน
- ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงินเดือน + (เงินเดือน * 10/100)
3. คานวณโบนัส = เงินเดือน * 3
4. แสดงผลลัพธ์
5. จบการทางาน
แบบทางเลือกเดียว(5/5)
START
STOP
read
name ,salary
salary < 5000 Name , salary ,
bonus
true
false
salary = salary + (salary*10/100)
A
A
bonus = salary * 3
แต่ไม่ต้องเขียนเส้นเชื่อมนี้
ข้อควรจา
• ในการเปรียบเทียบเงื่อนไขแบบ IF – THEN นิยมให้ทางาน
ตามคาสั่งเมื่อเงื่อนไขมีค่าเป็นจริง ไม่นิยมให้ทางามตามคาสั่ง
เป็นเท็จ
เงื่อนไข
ประโยคงาน 1
งานลาดับถัดไป
จริง
เท็จ
ประโยคงาน 2
เงื่อนไข
ประโยคงาน 1
งานลาดับถัดไป
จริง
เท็จ
ประโยคงาน 2
เงื่อนไข
ประโยคงาน 1
งานลาดับถัดไป
จริง
เท็จ
ประโยคงาน 2
IF เงื่อนไข THEN
BEGIN
ประโยคงาน 1 ;
ประโยคงาน 2 ;
END;
เงื่อนไข
ประโยคงาน 1
งานลาดับถัดไป
เท็จ
จริง
ประโยคงาน 2
IF เงื่อนไข THEN
ELSE
BEGIN
ประโยคงาน 1 ;
ประโยคงาน 2 ;
END;
แบบสองทางเลือก(1/6)
• การทางานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปทางานด้านหนึ่ง ถ้า
เป็นเท็จก็จะไปทางานอีกอย่างหนึ่ง
เงื่อนไข
ประโยคงาน2
งานลาดับถัดไป
จริงเท็จ
ประโยคงาน1
แบบสองทางเลือก(2/6)
• ถ้า sex =1 เงื่อนไขเป็น
จริง จะเพิ่มค่าตัวแปร
Male ขึ้นอีก 1
• ถ้า sex =1 เงื่อนไขเป็น
เท็จ จะเพิ่มค่าตัวแปร
Female ขึ้นอีก 1
Sex = 1
Male = Male +1Female = Female + 1
TrueFalse
แบบสองทางเลือก(3/6)
START
STOP
read age
age > 60
“You are old”
truefalse
“You are young”
เริ่มต้น
รับค่าใส่ตัวแปร age
ถ้าเป็นจริง พิมพ์ข้อความ You are old
ถ้าเป็นเท็จ พิมพ์ข้อความ You are young
จบการทางาน
เปรีบเทียบค่า age มากกว่า 60
แบบสองทางเลือก(4/6)
เริ่ม
รับค่า ans
ans = ‘y’ OR ans=‘Y’
พิมพ์ Thank Youพิมพ์ I’m sorry to hear that
จริงเท็จ
พิมพ์ Do you like Pascal
พิมพ์ Good Bye
จบ
แสดงข้อความ Do you like Pascal
รับค่าใส่ตัวแปร ans
เริ่มการทางาน
เปรียบเทียบค่า ans เท่ากับ y หรือ Y
- ถ้าเป็นจริง พิมพ์
Thank you
-ถ้าเป็นเท็จ พิมพ์
I’m sorry to hear that
พิมพ์คาว่า Goodbye
จบการทางาน
แบบสองทางเลือก(5/6)
• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ากว่า
5000 อีกคนละ 10% และพนักงานที่มีเงินเดือนตั้งแต่ 5000 เพิ่ม 5%
ให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน
• ขั้นตอนการประมวลผล
1. รับค่าชื่อพนักงาน . เงินเดือน
2. เปรียบเทียบค่า เงินเดือน < 5000
- ถ้าเป็นจริง ให้อัตราเพิ่มเงินเดือน = 10/100
- ถ้าเป็นเท็จให้อัตราเพิ่มเงินเดือน = 5/100
3. คานวณเงินเดือน = เงินเดือน + (เงินเดือน * อัตราเพิ่มเงินเดือน)
4. โบนัส = เงินเดือน * 3
5. แสดงผลลัพธ์
6. จบการทางาน
แบบทางเลือกเดียว(6/6)
START
STOP
read
name ,salary
salary < 5000
Name , salary ,
bonus
truefalse
rate = 10 / 100
A
A
bonus = salary * 3
แต่ไม่ต้องเขียนเส้นเชื่อมนี้
rate = 5 / 100
salary = salary+(salary * rate)
การเลือกหลายทาง(แบบ IF)
• เป็นรูปแบบการเลือกการ
ทางานที่มีทางเลือกมากกว่า
2 ทางขึ้นไป
เงื่อนไข 1
คำสั่งที่ 1
TrueFalse
เงื่อนไข 2
คำสั่งที่ 2
TrueFalse
เงื่อนไข 3
คำสั่งที่ 3
TrueFalse
คำสั่งที่ 4
การเลือกหลายทาง(แบบ IF)
Score >=80
Grade = ‘A’
truefalse
Score >=70
Grade = ‘B’
truefalse
Score >=60
Grade = ‘C’
truefalse
Score >=50
Grade = ‘D’
truefalse
Grade = ‘F’
Score = mid + final
การเลือกหลายทาง(แบบ CASE)
• เป็นรูปแบบการเลือกการทางานที่มีทางเลือกมากกว่า 2 ทาง
ขึ้นไป
เงื่อนไข
คำสั่งที่ 2คำสั่งที่ 1 คำสั่งที่ 4คำสั่งที่ 3
กรณี 1 กรณี 2 กรณี 3 กรณี 4
การเลือกหลายทาง(แบบ CASE)
score
Grade = ‘B’Grade = ‘A’ Grade = ‘D’Grade = ‘C’
80..100 70..79 60..69 50..59
Grade = ‘F’
0..49
Score = mid + final
แบบวนซ้า
• แบบกาหนดรอบไว้ล่วงหน้า(Controlled Loop)
• แบบตรวจสอบเงื่อนไขก่อน(Pre-Test Condition)
• แบบตรวจสอบเงื่อนไขทีหลัง(Post-Test Condition)
แบบกาหนดรอบการทางานเอาไว้ล่วงหน้า
• มีการกาหนดรอบการทางานซ้าไว้ล่วงหน้า เมื่อครบตาม
จานวนรอบจึงหยุดทางานซ้าแล้วทาคาสั่งต่อไป
กาหนดรอบการทางาน
คำสั่งทำซ้ำ 1
คำสั่งทำซ้ำ 2
Next
แบบกาหนดรอบการทางานเอาไว้ล่วงหน้า
• ค่า N จะเริ่มต้นที่ 1 และเพิ่มค่าทีละ 1 จนกระทั่ง มากกว่า 5
จึงหยุดการทางานซ้า และทาคาสั่งถัดจาก Next ในแต่ละรอบ
ของงานที่ให้ทาซ้าคือ พิมพ์ค่าในตัวแปร N ทีละรอบ
For N =1 , 5
Next
Print N
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทาซ้า
• แบบตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขยังเป็นจริงให้ทางานซ้า
จนกระทั่งเงื่อนไขเป็นเท็จจึงหยุดทางานซ้า แล้วไปทางาน
คาสั่งอื่นถัดไป
เงื่อนไข
คาสั่งงานซ้า 1
True
False
คาสั่งงานซ้า 2
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทาซ้า
• ตรวจสอบเงื่อนไขถ้า N <= 5
– ให้พิมพ์ ค่า N
– เพิ่มค่า N อีก 1 (N=N+1)
• กลับไปตรวจสอบเงื่อนไขอีก
จนกว่าเงื่อนจะเป็นเท็จ จึง
หยุดทางานซ้า แล้วไปทางาน
คาสั่งอื่น
N <=5
N = N+1
True
False
Print N
N = 1
แบบทาซ้าก่อนแล้วค่อยตรวจเงื่อนไข
• แบบให้ทางานในคาสั่งทาซ้าก่อน
แล้วค่อยตรวจสอบเงื่อนไข ถ้า
เงื่อนไขยังเป็นเท็จให้กลับไปทางาน
ในคาสั่งทาซ้าอีก จนกระทั่ง
ตรวจสอบแล้วเงื่อนเป็นจริง จึงหยุด
แล้วไปทางานคาสั่งอื่น
เงื่อนไข
คาสั่งงานซ้า 1
True
False
คาสั่งงานซ้า 2
แบบทาซ้าก่อนแล้วค่อยตรวจเงื่อนไข
– ให้พิมพ์ค่าในตัวแปร N
– เพิ่มค่าให้ตัวแปร N อีก 1
• ตรวจสอบเงื่อนไข ถ้า N >
5 เป็นจริงให้หยุดทางานซ้า
ถ้าเป็นเท็จให้กลับไป
ทางานคาสั่งซ้าอีกรอบ
N > 5
True
False
N = N+1
Print N
N = 1

หลักการเขียนผังงาน(Flow chart)