64
By… Mr.Prasit Tawanha www.prasit.sirin.ac.th [email protected] Basic Flowcharting

Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

By…Mr.Prasit Tawanha

[email protected]

Basic Flowcharting

Page 2: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเขียนผังงาน(Flowcharting)• ผังงาน หมายถึง เครื่องมือที่ช่วยในการเขียนโปรแกรม โดยเขียน

เป็นเครื่องหมายภาพสัญลักษณ์แสดงล าดับขั้นตอนการท างาน

• การเขียนผังงาน เป็นการถ่ายทอดความเข้าใจทีไ่ด้จากการวิเคราะห์งานให้อยู่ในรูปภาพหรือสัญลักษณ์

• ผู้เขียนโปรแกรมจะสามารถเข้าใจล าดับขั้นตอนการเขียนโปรแกรมได้อย่างรวดเร็วและง่ายขึ้น และง่ายต่อการตรวจสอบความถูกต้องของล าดับขั้นตอนในวิธีการประมวลผล

Page 3: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเขียนผังงาน(Flowcharting)• งานทุกชนิดที่มีการวิเคราะห์เป็นล าดับขั้นตอนแล้ว เราสามารถ

น ามาเขียนผังงานได้ แม้กระทั่งงานที่เกี่ยวข้องกับชีวิตประจ าวันของเราเอง

Page 4: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างผังงานทั่วไป(1/3)• แสดงการโยนเหรียญ 3

ครั้ง ถ้าออกหัว ผู้โยนจะได้เงิน 10 บาท ถ้าออกก้อย ผู้โยนจะเสียเงิน 10 บาท

เริ่มต้น

โยนเหรียญ

ผลการโยน

ได้เงิน 10 บาทเสียเงิน 10 บาท

ครบ 3 ครั้งหรือยัง?

หยุด

หัวก้อย

ยัง

ครบ

Page 5: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างผังงานทั่วไป(2/3)• ผังงานแสดงการเดินข้าม

ถนนที่มีสัญญาณไฟจราจร

เริ่มต้น

รอสัญญาณไฟ

ไฟแดงหรือไม่

เดินข้ามถนน

หยุด

ใช่

ไม่ใช่

Page 6: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างผังงานทั่วไป(3/3)• ผังงานพิจารณาการใช้ยาตาม

ฉลากยาที่ปิดข้างขวด แยกตามขนาดการใช้ดังนี้– อายุต่ ากว่า 5 ปี ห้าม

รับประทาน

– อายุ 5 - 7 ปี ครั้งละ 1 เม็ด

– อายุ 8 - 14 ปี ครั้งละ 2 เม็ด

– อายุ 15 ปีขึ้นไป ครั้งละ 3 เม็ด

เริ่มต้น

อายุต่ ากว่า 5 ปี

ห้ามรับประทาน

อายุ 5 ปีขัน้ไป แต่ไม่ถึง 8 ปี

ครั้งละ 1 เม็ด

อายุ 8 ปีขัน้ไปแต่ไม่ถึง 15 ปี

ครัง้ละ 2 เม็ด

ครัง้ละ 3 เม็ด

หยุด

ใช่

ใช่

ใช่

ไม่ใช่

ไม่ใช่

ไม่ใช่

Page 7: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ผังงานทางคอมพิวเตอร์ผังงานทางคอมพิวเตอร์แบ่งออกเป็น 2 ประเภท ได้แก่

ผังงานระบบ (System flowchart)

ผังงานโปรแกรม (Program flowchart)

Page 8: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ผังงานระบบ(System flowchart)• เป็นผังงานที่ใช้แสดงขั้นตอนการท างานของระบบงานอย่างกว้าง ๆ

ทั้งระบบ โดยแสดงให้เห็นถึงความสัมพันธ์ของส่วนส าคัญต่าง ๆ ในระบบนั้น

• เช่น เอกสารเบื้องต้น หรือสื่อบันทึกที่ใช้อยู่เป็นอะไร และผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น ๆ แล้วส่งต่อไปยังหน่วยงานใด เป็นต้น

• ดังนั้น ผังงานระบบ จะเกี่ยวข้องกับ คน วัสดุ และเครื่องจักร โดยแสดงการน าข้อมูลเข้า ประมวลผล แสดงผลลัพธ์ ว่ามาจากที่ใดกว้าง ๆ

Page 9: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างผังงานระบบ• ผังงานแสดงการค านวณ

พื้นที่สามเหลี่ยมจ านวน 100 รูป

เริ่มต้น

บันทกึความสูงและความยาวฐานลงในดสิก์

รับความสูง และความยาวฐานของสามเหลี่ยม 100 รูป

ดิสก์ที่บันทกึแล้ว

ค านวณพื้นที่ของสามเหลีย่ม

พิมพ์รายงานของพื้นทีส่ามเหลี่ยม

จบ

Page 10: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ผังงานโปรแกรม(Program flowchart)• เป็นผังงานที่แสดงขั้นตอนของค าสั่งที่ใช้ในโปรแกรม

• ผังงานนี้แยกย่อยมาจากผังงานระบบ โดยผู้เขียนโปรแกรมจะดึงเอาแต่ละจุดที่เกี่ยวข้องกับการประมวลผลในคอมพิวเตอร์ที่ปรากฏในผังงานระบบมาเขียนแสดงรายละเอียดในการประมวลผลอย่างเป็นล าดับขั้นตอน เพื่อน าไปประกอบการเขียนโปรแกรมต่อไป

Page 11: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างผังงานโปรแกรม• ผังงานแสดงการค านวณพื้นที่สามเหลี่ยมจ านวน 100 รูป

เริ่มต้น

รับความสงู และความยาวฐานทีละรูป

ครบ 100 รูปแล้วใช่หรือไม่

ค านวณพื้นที=่ 0.5 * ฐาน * สูง

พิมพ์พื้นที่สามเหลี่ยมทีละรูป

จบ

ไม่ใช่

ใช่

Page 12: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

เปรียบเทียบผังงานระบบและผังงานโปรแกรมเริ่มต้น

บันทึกความสูงและความยาวฐานลงในดิสก์

รับความสงู และความยาวฐานของสามเหล่ียม 100 รูป

ดิสก์ที่บันทึกแลว้

ค านวณพื้นที่ของสามเหล่ียม

พิมพ์รายงานของพื้นที่สามเหล่ียม

จบ

เริ่มต้น

รับความสงู และความยาวฐานทีละรูป

ครบ 100 รูปแล้วใช่หรือไม่

ค านวณพื้นที=่ 0.5 * ฐาน * สูง

พิมพ์พื้นที่สามเหล่ียมทีละรูป

จบ

ไม่ใช่

ใช่

ผังงานระบบ

ผังงานโปรแกรม

Page 13: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ประโยชน์ของการเขียนผังงาน• เราสามารถเรียนรู้และเขา้ใจผังงานได้ง่าย เพราะผังงานไม่ขึ้นอยู่กับ

ภาษาคอมพวิเตอร์ภาษาใดภาษาหนึ่ง• ผังงานเป็นการสื่อความหมายด้วยภาพ ท าให้ง่ายและสะดวกตอ่การ

พิจารณาล าดับขั้นตอนในการท างานดีกว่าการบรรยายเป็นตัวอักษร• ช่วยให้การคน้หาความผิดพลาดของล าดับการท างานได้รวดเรว็ และ

สามารถแก้ไขได้ง่าย• การเขยีนโปรแกรมโดยพจิารณาจากผังงาน สามารถท าได้รวดเร็วและ

ง่ายขึ้น• ในการบ ารงุรักษาโปรแกรม หรือมีการเปลี่ยนแปลงแก้ไขโปรแกรมให้

มีประสิทธิภาพ ถ้าดจูากผังงานจะช่วยให้สามารถทบทวนการท างานในโปรแกรมได้ง่ายขึ้น

Page 14: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ข้อจ ากัดของการเขียนผังงาน• การเขียนผังงานไม่เหมาะกับงานที่มีวิธีการซับซ้อน เช่น มีการที่เงื่อนไขในการทอสอบมากมาย ซึ่งมักจะใช้ตารางการตัดสินใจ(decision table) เข้ามาช่วยมากกว่า

Page 15: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(1/13)• การเขียนผังงานเป็นการน าเอาภาพสัญลักษณ์ต่าง ๆ มาเรียงต่อกัน เพื่อแสดงล าดับขั้นตอนการท างาน โดยมีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ

• สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็นสัญลักษณ์ของหน่วยงานที่ชื่อว่า American National Standard Institute (ANSI) และ International Standard Organization (ISO) เป็นผู้ก าหนดและรวบรวมให้เป็นสัญลักษณ์มาตรฐานในการเขียนผังงาน

Page 16: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(2/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การเริ่มต้นหรือสิ้นสุดการเขยีนผังงาน

(Terminal)

1. เริ่มต้นผังงาน

2. จบผังงาน

รับข้อมูลหรือแสดงข้อมูลโดยไม่ระบุสื่อ

(Input/output)

1. รับค่าใส่ในตัวแปรชื่อ name

2. แสดงค่าจากตัวแปร area

START

STOP

read name

display area

Page 17: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(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

Page 18: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(4/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การแสดงผลลัพธ์ทางเครื่องพิมพ์

(Document)

พิมพ์ค่า A ทาง

เครื่องพิมพ์

การแสดงผลลัพธ์ทางจอภาพ

(Display)

แสดงคา่ A, B

บนจอภาพ

print A

display A , B

Page 19: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(5/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

หมายเหตุ

(Comment)

รับค่าทางการกดแป้นพิมพ์

(Manual Input)

รับค่า A ทาง

แป้นพิมพ์

read A A = Age

read A

Page 20: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(6/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การก าหนดคา่ต่างๆ ไว้ล่วงหน้า

(Preparation)

ก าหนดให้ i มีค่าเท่ากับ

1 และเพิ่มค่าทีละ 1

จนมีค่าเป็น 100 จึงออก

จากการท างานซ้ า

โดยแต่ละรอบ บวกค่า

sum ด้วยค่า i

แสดงทิศทางและล าดับของการท างาน

(Flow line)

for i =1 to 100

sum = sum + i

i

Page 21: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(7/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

จุดต่อเนื่องในหน้าเดียวกัน

(In-Page connector)

หลังจากพิมพ์ค่า A

แล้วให้ท าตามที่จุด

ต่อเนื่อง A ซึ่งอยู่ใน

หน้าเดียวกัน

จุดต่อเนื่องทีอ่ยู่คนละหน้า

(Off-Page Connector)

หลังจากก าหนดค่า A

เท่ากับ 3 ให้ท าตาม

จุดต่อเนื่องชื่อ 1 ซึ่ง

ไม่ได้อยู่ในหนา้

เดียวกัน

A

write A

A = 3

1

Page 22: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(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

Page 23: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(9/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การรับหรือแสดงข้อมูลโดยใชเ้ทปกระดาษ

(Punched tape)

อ่านค่า ID , name

บนเทปกระดาษ

การรับหรือแสดงข้อมูลโดยใชเ้ทปแม่เหล็กเป็นสื่อ

(Magnatic tape)

read ID , name

Page 24: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(10/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การรับหรือแสดงข้อมูลโดยใชจ้านแม่เหล็กเป็นสื่อ

(Magnatic disk)

การรับหรือแสดงข้อมูลโดยใชด้รัมแม่เหล็กเป็นสื่อ

(Magnatic drum)

Page 25: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(11/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การท างานที่ก าหนดไว้แล้ว เช่น โปรแกรมย่อย

(Predefine Process)

เรียกโปรแกรม

ย่อยชื่อ findGrade

ให้ท างาน

การควบคุมการท างานด้วยมนุษย์ บางครั้งเรียกการท างานแบบออฟไลน์

(Offline Processing)

findGrade

Page 26: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(12/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การท างานแบบออฟไลน์ของอุปกรณ์ที่ไม่ได้ถูกควบคุมจากหน่วยประมวลผลกลางโดยตรง

(Auxiliary Operation)

การจัดเรียงล าดับข้อมูล

(Sorting)

Page 27: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

สัญลักษณ์ในการเขียนผังงาน(13/13)สัญลักษณ์ ความหมาย ตัวอย่างการใช้ ค าอธิบาย

การส่งข้อมูลทางสายส่ือสาร

(Communication Link)

Page 28: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

หลักการจัดภาพผังงาน(1/2)• ทิศทางของผังงานจะเริ่ม

จากส่วนบนของหน้ากระดาษลงมายงัส่วนล่าง และจากซ้ายมือไปของหน้ากระดาษ และควรเขียนเครื่องหมายลูกศรก ากับทิศทางไว้ด้วย

START

STOP

read age

age > 60

“You are old”

true

false

บน

ล่าง

ทิศทางของเส้น

Page 29: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

หลักการจัดภาพผังงาน(2/2)• สัญลักษณ์หรือภาพที่ใช้

ในการเขียนผังงานมีขนาดต่าง ๆ กันได้ แต่จะต้องมีรูปมาตรฐานตามความหมายที่ก าหนด

START

sum = 0

i = 1 to 10

sum = sum + i

i

sum

STOP

ขนาดของสัญลักษณ์ปรับให้เหมาะสมกบัข้อความในสัญลักษณ์

Page 30: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

หลักการจัดภาพผังงาน(3/2)• การเขียนทิศทางของผังงานควรเป็นไปอย่างมีระเบียบ และหลีกเลี่ยงการขีดโยงไปโยงมาในทิศทางตัดกัน ถ้าจ าเป็นต้องโยงถึงกัน ควรใช้เครื่องหมายจุดต่อเนื่องแทนและถ้าเป็นไปได้ควรเขียนผังงานให้จบในหน้าเดียวกัน

• ค าอธิบายในภาพ เขียนเพียงสั้น ๆ และเข้าใจง่าย• ผังงานที่ดีควรจะมีความเป็นระเบียบเรียบร้อยและสะอาด นอกจากนี้แล้ว จะมีชื่อของผังงาน ผู้เขียน วันที่เขียน และเลขหน้าล าดับ

Page 31: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

รูปแบบการเขียนผังงาน• แบบตามล าดับ (Sequence)

• แบบการเลือก/ตัดสินใจ/เงื่อนไข (Selection/Decision/Condition)

• แบบวนซ้ า (Iteration / Loop)

Page 32: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

รูปแบบตามล าดับ(1/3)• เป็นรูปแบบการเขียนโปรแกรมที่ง่ายที่สุด ท างานทีละอย่างจากบนลงล่าง แสดงล าดับการท างานจากบนลงล่างตามลูกศร

งานที่ 1

งานที่ 2

งานที่ 3

อ่านข้อมูล

ค านวณข้อมูล

พิมพ์ผลลัพธ์

ค านวณ

ค านวณ

ค านวณ

Page 33: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

รูปแบบตามล าดับ(2/3)START

STOP

A = 5

B = 3

C = A + B

print C

เริ่มต้น

ก าหนดค่าตวัแปร A มีค่าเป็น 5

ก าหนดค่าตวัแปร B มีค่าเป็น 3

เอาค่า A บวกกับ B แล้วเก็บไว้ใน C

พิมพ์ค่า C

จบการท างาน

Page 34: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

รูปแบบตามล าดับ(3/3)

เริ่มต้น

รับข้อมูลมาเก็บไว้ในตัวแปร A, B ทางแป้นพิมพ์

เอาค่า A บวกกับ B แล้วเก็บไว้ใน C

พิมพ์ค่า C

จบการท างาน

START

STOP

C = A + B

print C

A , B

Page 35: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างการเขียนผังงานแบบตามล าดับ• จงเขียนโปรแกรมค านวณค่าไฟฟ้า โดยรับค่ามิเตอร์จ านวนการใช้

ไฟฟ้าของเดอืนที่แล้ว และค่ามิเตอรก์ารใช้ไฟฟ้าของเดือนปจัจบุัน ค านวณค่าไฟฟ้า โดยคิดอัตรา 2.5 บาท /1 หน่วยมิเตอร์

1. สิ่งที่โจทย์ต้องการ

ค่าไฟฟ้า

2. รูปแบบผลลัพธ์

ป้อนเลขมิเตอร์เดือนที่แล้ว --> <รอรบัเลขมิเตอร์เดือนทีแ่ล้ว>ป้อนเลขมิเตอร์เดือนปัจจุบัน--> <รอรบัเลขมิเตอร์เดือนปัจจุบัน>

-----------------------------------------------------จ านวนหน่วยไฟฟ้าทีใ่ช้ : <แสดงจ านวนหน่วยไฟฟ้าที่ใช้>ค่าไฟฟ้า : <แสดงคา่ไฟฟ้า>

Page 36: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างการเขียนผังงานแบบตามล าดับ3. ข้อมูลน าเข้า

– เลขมิเตอร์เดือนที่แล้ว

– เลขมิเตอร์เดือนปัจจุบัน

4. ตัวแปรที่ใช้ในการประมวลผล– Last_meter แทน เลขมิเตอร์เดือนที่แล้ว

– Curr_meter แทน เลขมิเตอร์เดือนปัจจุบัน

– Num_meter แทน จ านวนหน่วยมิเตอร์ที่ใช้

– Electric_fee แทน ค่าไฟฟ้า

Page 37: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ตัวอย่างการเขียนผังงานแบบตามล าดับ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. จบการท างาน

Page 38: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

Flow chartSTART

STOP

Num_meter = Curr_meter – Last_meter

Last_meter , Curr_meter

Electric_fee = Num_meter * 2.5

Num_meter , Electric_fee

Page 39: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบการเลือกเป็นการเขียนโปรแกรมแบบมีการเปรียบเทียบเงื่อนไข และท างานตามค าส่ังอย่างใดอย่างหนึ่งตามเงื่อนไขที่ก าหนด ผลจากการเปรียบเทียบเงื่อนไข จะให้ผลลัพธ์เป็นจริงหรือเท็จ ถ้าผลเป็นจริง ให้ท างานตามค าสั่งด้านที่เงื่อนไขเป็นจริง ถ้าเป็นเท็จให้ท าตามค าสั่งด้านที่เงื่อนไขเป็นเทจ็

• แบบทางเลอืกเดียว (IF - THEN)

• แบบสองทางเลือก (IF – THEN - ELSE)

• แบบหลายทางเลือก (IF – THEN – ELSE IF | CASE)

Page 40: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(1/5)

เงื่อนไข

ประโยคงาน

งานล าดับถัดไป

จริง

เท็จ

เงื่อนไข

ประโยคงาน 1

งานล าดับถัดไป

จริง

เท็จ

ประโยคงาน 2

Page 41: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(2/5)START

STOP

read age

age > 60

“You are old”

true

false

เริ่มต้น

รับค่าใส่ตัวแปร age

ถ้าเป็นจริง พิมพ์ข้อความ You are oldถ้าเป็นเท็จ ไม่ต้องท าอะไร

จบการท างาน

เปรียบเทียบค่า age มากกว่า 60

Page 42: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(3/5)

รับค่า รหัสผ่านจากผู้ใช้ ถ้ารหัสผ่านที่ป้อนมีค่า GoodLuck ให้แสดงข้อว่า Welcome Manager และข้อความ Exit Password System

เริ่ม

รับค่า ans

ans = “GoodLuck”

พิมพ์ Welcome

Manager

พิมพ์ Exit Password

System

จบ

จริง

เท็จ

Page 43: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(4/5)• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ ากว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน

• ขั้นตอนการประมวลผล1. รับค่าชื่อพนกังาน . เงินเดือน2. เปรียบเทียบค่า เงินเดือน

- ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงินเดือน + (เงินเดือน * 10/100)

3. ค านวณโบนัส = เงินเดือน * 34. แสดงผลลัพธ์5. จบการท างาน

Page 44: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(5/5)START

STOP

read

name ,salary

salary < 5000Name , salary ,

bonus true

false

salary = salary + (salary*10/100)

A

A

bonus = salary * 3

แต่ไม่ต้องเขียนเสน้เชื่อมนี้

Page 45: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

ข้อควรจ า• ในการเปรียบเทียบเงื่อนไขแบบ IF – THEN นิยมให้ท างานตามค าสั่งเมื่อเงื่อนไขมีค่าเป็นจริง ไม่นิยมให้ท างามตามค าสั่งเป็นเท็จ

เงื่อนไข

ประโยคงาน 1

งานล าดับถัดไป

จริง

เท็จ

ประโยคงาน 2

เงื่อนไข

ประโยคงาน 1

งานล าดับถัดไป

จริง

เท็จ

ประโยคงาน 2

Page 46: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

เงื่อนไข

ประโยคงาน 1

งานล าดับถัดไป

จริง

เท็จ

ประโยคงาน 2

IF เงื่อนไข THEN

BEGINประโยคงาน 1 ;ประโยคงาน 2 ;

END;

Page 47: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

เงื่อนไข

ประโยคงาน 1

งานล าดับถัดไป

เท็จ

จริง

ประโยคงาน 2

IF เงื่อนไข THEN

ELSE

BEGINประโยคงาน 1 ;ประโยคงาน 2 ;

END;

Page 48: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบสองทางเลือก(1/6)• การท างานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปท างานด้านหนึ่ง ถ้าเป็นเท็จก็จะไปท างานอีกอย่างหนึ่ง

เงื่อนไข

ประโยคงาน2

งานล าดับถัดไป

จริงเท็จ

ประโยคงาน1

Page 49: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบสองทางเลือก(2/6)• ถ้า sex =1 เงื่อนไขเป็นจริง จะเพิ่มค่าตัวแปร Male ขึ้นอีก 1

• ถ้า sex =1 เงื่อนไขเป็นเท็จ จะเพิ่มค่าตัวแปร Female ขึ้นอีก 1

Sex = 1

Male = Male +1Female = Female + 1

TrueFalse

Page 50: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบสองทางเลือก(3/6)START

STOP

read age

age > 60

“You are old”

truefalse

“You are young”

เริ่มต้น

รับค่าใส่ตัวแปร age

ถ้าเป็นจริง พิมพ์ข้อความ You are oldถ้าเป็นเท็จ พิมพ์ข้อความ You are young

จบการท างาน

เปรีบเทียบค่า age มากกว่า 60

Page 51: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบสองทางเลือก(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

จบการท างาน

Page 52: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบสองทางเลือก(5/6)• บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ ากว่า

5000 อกีคนละ 10% และพนักงานที่มีเงินเดือนตั้งแต่ 5000 เพิ่ม 5% ให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน

• ขั้นตอนการประมวลผล1. รับค่าชื่อพนักงาน . เงินเดือน2. เปรียบเทียบคา่ เงินเดือน < 5000

- ถ้าเป็นจริง ให้อัตราเพิ่มเงินเดือน = 10/100- ถ้าเป็นเท็จให้อัตราเพิ่มเงินเดือน = 5/100

3. ค านวณเงินเดือน = เงินเดือน + (เงินเดือน * อัตราเพิ่มเงินเดือน)4. โบนัส = เงินเดอืน * 35. แสดงผลลัพธ์6. จบการท างาน

Page 53: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบทางเลือกเดียว(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)

Page 54: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเลือกหลายทาง(แบบ IF)• เป็นรูปแบบการเลือกการท างานที่มทีางเลือกมากกว่า 2 ทางขึ้นไป

เงื่อนไข 1

ค ำสั่งที่ 1

TrueFalse

เงื่อนไข 2

ค ำสั่งที่ 2

TrueFalse

เงื่อนไข 3

ค ำสั่งที่ 3

TrueFalse

ค ำสั่งที่ 4

Page 55: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเลือกหลายทาง(แบบ 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

Page 56: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเลือกหลายทาง(แบบ CASE)• เป็นรูปแบบการเลือกการท างานที่มีทางเลือกมากกว่า 2 ทางขึ้นไป

เงื่อนไข

ค ำสั่งที่ 2ค ำสั่งที่ 1 ค ำสั่งที่ 4ค ำสั่งที่ 3

กรณี 1 กรณี 2 กรณี 3 กรณี 4

Page 57: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

การเลือกหลายทาง(แบบ 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

Page 58: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบวนซ้ า• แบบก าหนดรอบไว้ล่วงหน้า(Controlled Loop)

• แบบตรวจสอบเงื่อนไขก่อน(Pre-Test Condition)

• แบบตรวจสอบเงื่อนไขทีหลัง(Post-Test Condition)

Page 59: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบก าหนดรอบการท างานเอาไว้ล่วงหน้า• มีการก าหนดรอบการท างานซ้ าไว้ล่วงหน้า เมื่อครบตามจ านวนรอบจึงหยุดท างานซ้ าแล้วท าค าสั่งต่อไป

ก าหนดรอบการท างาน

ค ำสั่งท ำซ ำ 1

ค ำสั่งท ำซ ำ 2

Next

Page 60: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบก าหนดรอบการท างานเอาไว้ล่วงหน้า• ค่า N จะเริ่มต้นที่ 1 และเพิ่มค่าทีละ 1 จนกระทั่ง มากกว่า 5 จึงหยุดการท างานซ้ า และท าค าส่ังถัดจาก Next ในแต่ละรอบของงานที่ให้ท าซ้ าคือ พิมพ์ค่าในตัวแปร N ทีละรอบ

For N =1 , 5

Next

Print N

Page 61: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยท าซ้ า

• แบบตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขยังเป็นจริงให้ท างานซ้ า จนกระทั่งเงื่อนไขเป็นเท็จจึงหยุดท างานซ้ า แล้วไปท างานค าสั่งอ่ืนถัดไป

เงื่อนไข

ค าสั่งงานซ้ า 1

True

False

ค าสั่งงานซ้ า 2

Page 62: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยท าซ้ า

• ตรวจสอบเงื่อนไขถ้า N <= 5– ให้พิมพ ์ค่า N

– เพิ่มค่า N อกี 1 (N=N+1)

• กลับไปตรวจสอบเงื่อนไขอีกจนกว่าเงื่อนจะเป็นเท็จ จึงหยุดท างานซ้ า แล้วไปท างานค าสั่งอ่ืน

N <=5

N = N+1

True

False

Print N

N = 1

Page 63: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบท าซ้ าก่อนแล้วค่อยตรวจเงื่อนไข• แบบให้ท างานในค าสั่งท าซ้ าก่อน แล้วค่อยตรวจสอบเงื่อนไข ถ้าเงื่อนไขยังเป็นเท็จให้กลับไปท างานในค าสั่งท าซ้ าอีก จนกระทั่งตรวจสอบแล้วเงื่อนเป็นจริง จึงหยุด แล้วไปท างานค าส่ังอื่น

เงื่อนไข

ค าสั่งงานซ้ า 1

True

False

ค าสั่งงานซ้ า 2

Page 64: Mr.Prasit Tawanha …prasit.sirin.ac.th/ppt/flowchating.pdfการเข ยนผ งงาน(Flowcharting) •งานท กชน ดท ม การว เคราะห

แบบท าซ้ าก่อนแล้วค่อยตรวจเงื่อนไข– ให้พิมพ์ค่าในตัวแปร N

– เพิ่มค่าให้ตัวแปร N อีก 1

• ตรวจสอบเงื่อนไข ถ้า N > 5 เป็นจริงให้หยุดท างานซ้ า ถ้าเป็นเท็จให้กลับไปท างานค าสั่งซ้ าอีกรอบ

N > 5

True

False

N = N+1

Print N

N = 1