การจําลองความคิด -...

17
บทที5 การจําลองความคิด เนื้อหา 5.1 กระบวนการแกปญหา o การวิเคราะหและกําหนดรายละเอียดของปญหา o การเลือกเครื่องมือและออกแบบขั้นตอนวิธี o การดําเนินการแกปญหา o การตรวจสอบและปรับปรุง 5.2 การจําลองความคิด o ขอความหรือคําบรรยาย (Pseudo code) o สัญลักษณหรือแผนภาพ (Flowchart) - แบบลําดับ - แบบทางเลือก - แบบทําซ้ํา 5.3 โครงสรางแบบตางๆ สําหรับการเขียนโปรแกรม o โครงสรางแบบลําดับ o โครงสรางแบบมีทางเลือก o โครงสรางแบบทําซ้ํา ผลการเรียนรูที่คาดหวัง 1. อธิบายขั้นตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธีการในแตละขั้นตอนได 2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได 3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได ที ่มา http://www.seubsan.net/th/images/stories/yt/p4_Cap.gif

Upload: others

Post on 01-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

บทท่ี 5

การจําลองความคิด

เนื้อหา

5.1 กระบวนการแกปญหา

o การวิเคราะหและกําหนดรายละเอียดของปญหา

o การเลือกเคร่ืองมือและออกแบบข้ันตอนวิธี

o การดําเนินการแกปญหา

o การตรวจสอบและปรับปรุง

5.2 การจําลองความคิด

o ขอความหรือคําบรรยาย (Pseudo code)

o สัญลักษณหรือแผนภาพ (Flowchart)

- แบบลําดับ

- แบบทางเลือก

- แบบทําซ้ํา

5.3 โครงสรางแบบตางๆ สําหรับการเขียนโปรแกรม

o โครงสรางแบบลําดับ

o โครงสรางแบบมีทางเลือก

o โครงสรางแบบทําซ้ํา

ผลการเรียนรูท่ีคาดหวัง

1. อธิบายข้ันตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธีการในแตละข้ันตอนได

2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได

3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได

ทีม่า

http

://w

ww

.seu

bsan

.net

/th/im

ages

/sto

ries/

yt/p

4_C

ap.g

if

Page 2: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 2 -

5.1 กระบวนการแกปญหา

ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน การเงิน หรือแมแตการ

เลนเกม เมื่อพบกับปญหาแตละคนมีวิธีที่จะจัดการหรือแกปญหาเหลานั้นแตกตางกันไป ซึ่งแตละวิธีการอาจใหผลลัพธที่

เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ข้ึนอยูกับความรู ความสามารถ และประสบการณของบุคคลนั้น อยางไรก็ตามหากเรานํา

วิธีการแกปญหาตางวิธีมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎีซึ่งมีรูปแบบที่แนนอนได และบางคร้ัง

ตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่เราจะศึกษาตอไป ลองพิจารณาปญหา

ตอไปนี ้

ตัวอยางที่ 1 เกมทายใจ คือ เกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่ง คือ

ผูกําหนด เปนคนกําหนดเลข 3 ตัว ที่ไมซ้ํากันโดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือ ผูทาย เปนผูทายเลข 3 ตัว ที่

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

ถูกตองก่ีตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตองบอกวาถูกตําแหนงก่ีตัว เชน ถาตัวเลขที่กําหนดไวเปน 815

และ ผูทายทายวา 123 ผูกําหนดตองแจงวาตัวเลขที่ทายนั้นถูก 1 ตัว และไมมีตัวใดถูกตําแหนง แสดงในตารางดังนี้

ตัวเลขที่ทาย จํานวนตัวเลขที่ถูก จํานวนตําแหนงที่ถูก

123

415

425

416

715

815

1

2

1

1

2

3

-

2

1

1

2

3

จะเห็นวาการแกปญหาดังกลาวขางตน นอกจากจะใชวิธีลองผิดลองถูกในการทายคร้ังแรกๆ แลวยังมีการใชเหตุผล

ประกอบการแกปญหาซึ่งเราเรียกวิธีการดังกลาววา "วิธีขจัด" (method of elimination) กลาวคือ จะแยกขอมูลออกเปน

กรณีที่เปนไปไมไดทิ้ง จนเหลือกรณีที่เปนไปได วิธีการดังกลาวสามารถอธิบายไดวาทําไมจึงคิดหรือทําเชนนั้น รูปแบบของการ

ใชเหตุผลประกอบการแกปญหาอาจแตกตางกัน ข้ึนอยูกับเงื่อนไขในปญหาบางปญหา อาจจะขจัดใหเหลือกรณีเดียวไมได ก็

อาจจะทําใหเหลือกรณีนอยที่สุด นอกจากเกมทายใจเรายังมีเกมลับสมองที่นาสนใจและทาทายความสามารถในการแกปญหา

อยูอีกมากมายที่หาเลนไดตามเว็บไซต

นอกจากวิธีการแกปญหาที่ยกตัวอยางมาซึ่งไดแก วิธีการลองผิดลองถูก การใชเหตุผล การใชวิธีขจัด ยังมีวิธีการ

แกปญหาอีกมากมายที่ผูแกปญหาสามารถเลือกใชใหเขากับตัวปญหาและประสบการณของผูแกปญหาเอง แตอยางไรก็ตาม

วิธีการเหลานี้ลวนมีข้ันตอนที่คลายคลึงกัน และจากการศึกษาพฤติกรรมในการเรียนรูและแกปญหาของมนุษยพบวาโดยปกติ

มนุษยมีกระบวนการแกปญหาประกอบดวย 4 ข้ันตอนดังรูปที่ 1

Page 3: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 3 -

รูปที่ 1 กระบวนการแกปญหา

1) การวิเคราะหและกําหนดรายละเอียดของปญหา (State the problem)

ข้ันตอนนี้เปนข้ันตอนแรกสุดกอนที่จะลงมือแกปญหา แตผูแกปญหามักจะมองขามความสําคัญของข้ันตอน

นี้อยูเสมอ จุดประสงคของข้ันตอนนี้ คือ การทําความเขาใจกับปญหาเพื่อแยกใหออกวาขอมูลที่กําหนดมาในปญหา

หรือเงื่อนไขของปญหาคืออะไร และสิ่งที่ตองการคืออะไร อีกทั้งวิธีการที่ใชประมวลผล ในการวิเคราะหปญหาใด

กลาวโดยสรุปแลวองคประกอบในการวิเคราะหและกําหนดรายละเอียดของปญหามี 3 องคประกอบดังนี้

1.1) การระบุขอมูลเขา ไดแก การพิจารณาขอมูลและเงื่อนไขที่กําหนดมาในปญหา

1.2) การระบุขอมูลออก ไดแก การพิจารณาเปาหมายหรือสิ่งที่ตองหาคําตอบ

1.3) การกําหนดวิธีประมวลผล ไดแก การพิจารณาข้ันตอนวิธีการไดมาซึ่งคําตอบหรือขอมูลออก

ตัวอยางที่ 2 แสดงการวิเคราะหและกําหนดรายละเอียดของการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ไดแก 0

3 4 8 และ 12

1. การระบุขอมูลเขา ในที่นี้โจทยกําหนดใหหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ดังนั้น ขอมูลเขาไดแก

จํานวน 0 3 4 8 และ 12

2. การระบุขอมูลออก จากโจทยสิ่งที่เปนคําตอบของปญหา คือคาเฉลี่ย (�̅�) ของจํานวนทั้งหา

3. การกําหนดวิธีการประมวลผล จากสิ่งที่โจทยตองการ "คาเฉลี่ย" หมายถึง ผลรวมของจํานวนทั้ง 5หาร

ดวย 5 ดังนั้น ข้ันตอนของการประมวลผลประกอบดวย

3.1 รับคาจํานวนทั้ง 5 จํานวน

3.2 นําจํานวนเต็มทั้ง 5 มาบวกเขาดวยกัน

3.3 นําผลลัพธจากขอ 3.2 มาหารดวย 5

วเิคราะหแ์ละกาํหนด รายละเอยีดของปัญหา

เลอืกเครือ่งมอื / ออกแบบขัน้ตอนวธิ ี

ดาํเนินการแกปั้ญหา

ตรวจสอบและปรบัปรุง

Page 4: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 4 -

2) การเลือกเคร่ืองมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development)

ข้ันตอนนี้เปนข้ันตอนของการวางแผนในการแกปญหาอยางละเอียดถ่ีถวน หลังจากที่เราทําความเขาใจกับ

ปญหา พิจารณาขอมูลและเงื่อนไขที่มีอยู และสิ่งที่ตองการหาแลวในข้ันตอนที่ 1 เราสามารถคาดคะเนวิธีการที่เรา

จะใชในการแกปญหา กระบวนการนี้จําเปนอาศัยประสบการณของผูแกปญหาเปนหลัก หากผูแกปญหาเคยพบกับ

ปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัติมา ข้ันตอนนี้จะเร่ิมจากการเลือกเคร่ืองมือที่

ใชในการแกปญหา โดยพิจารณาความเหมาะสมระหวางเคร่ืองมือกับเงื่อนไขตางๆ ของปญหา ซึ่งหมายรวมถึง

ความสามารถของเคร่ืองมือในการแกปญหาดังกลาว และสิ่งที่สําคัญคือความคุนเคยในการใชงานเคร่ืองมือนั้นๆ

ของผูแกปญหา

อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือ ยุทธวิธีที่ ใชในการแกปญหาหรือที่เราเรียกวา ข้ันตอนวิธี

(algorithm) ในการแกปญหา หลังจากที่เราไดเคร่ืองมือชวยแกปญหาแลว ผูแกปญหาตองวางแผนวาจะใช

เคร่ืองมือดังกลาวอยางเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด ในการออกแบบข้ันตอนวิธีในการแกปญหา ผูแกปญหา

ควรใชแผนภาพหรือเคร่ืองมือในการแสดงข้ันตอนการทํางานเพื่อใหงายตอความเขาใจเชน ผังงาน (flowchart)

รหัสเทียม (pseudo code) การใชเคร่ืองมือชวยออกแบบดังกลาวนอกจากแสดงกระบวนการที่ชัดเจนแลว ยังชวย

ใหผูแกปญหาสามารถหาขอผิดพลาดของวิธีการที่ใชไดงายและแกไขไดอยางรวด

3) การดําเนินการแกปญหา (Implementation)

หลังจากที่ไดออกแบบข้ันตอนวิธีเรียบรอยแลว ข้ันตอนนี้เปนข้ันตอนที่ตองลงมือแกปญหาโดยใชเคร่ืองมือ

ที่ไดเลือกไว หากการแกปญหาดังกลาวใชคอมพิวเตอรเขามาชวยงาน ข้ันตอนนี้ก็เปนการใชโปรแกรมสําเร็จ หรือใช

ภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ข้ันตอนนี้ตองอาศัยความรูเก่ียวกับเคร่ืองมือที่เลือกใช ซึ่งผูแกปญหาตอง

ศึกษาที่เขาใจและเชี่ยวชาญ ในการดําเนินการอาจพบแนวทางที่ดีกวาที่ออกแบบไวก็สามารถปรับเปลี่ยนได

ตัวอยางที่ 3 แสดงการวิเคราะหและกําหนดรายละเอียดของการหาคา x เมื่อ x คือจํานวนเต็มจํานวนหนึ่งใน

กลุมจํานวนเต็ม 5 จํานวนที่มีคาเฉลี่ยเปน 10 และจํานวนอีก 4 จํานวนไดแก 3 4 8 และ 12

1. การระบุขอมูลเขา จากโจทยขอมูลเขา ไดแก 2.1 จํานวนอีก 4 จํานวน คือ 3 4 8 12 คาเฉลี่ยของ

จํานวนทั้ง 5 จํานวน คือ 10

2. การระบุขอมูลออก จากโจทยสิ่งที่เปนผลลัพธ คือ คา x

3. การกําหนดวิธีการประมวลผล จากโจทยและความหมายของ "คาเฉลี่ย" เราสามารถสรุปข้ันตอนของการ

ประมวลผลไดดังนี้

3.1 หาคาผลรวมของจํานวนเต็มทั้ง 5 โดยนําคาเฉลี่ยคูณดวยจํานวนของเลขจํานวนเต็ม นั่นคือ 10 * 5 =

50

3.2 จากความหมายของ "ผลรวม" จะได 3+4+8+12+x = 50

3.3 แกสมการ 27 + x = 50 (จะได x = 23 ซึ่งคือผลลัพธ)

Page 5: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 5 -

4) การตรวจสอบและปรับปรุง (Refinement)

หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตอง

ตรวจสอบวาข้ันตอนวิธีที่สรางข้ึนสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อให

มั่นใจวาสามารถรองรับขอมูลเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อให

การแกปญหานี้ไดผลลัพธที่ดีที่สุด

5.2 การจําลองความคิด

การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใช

ประสบการณ ความรู และความมีเหตุผลแลว ยังควรรูจักวางแผนใหเปนข้ันตอนอยางเปนระเบียบดวย การจําลองความคิด

เปนสวนหนึ่งในข้ันตอนที่สองของการแกปญหา การจําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวย

ใหสามารถแกปญหาไดดีโดยเฉพาะปญหาที่ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีก

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

เดียวกับกลุมกิจการกอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเคร่ืองมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง

แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเคร่ืองหมายซึ่งเปนที่เขาใจกันระหวางผูเก่ียวของ

แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบทบทวนและพิจารณาจากผูเก่ียวของหลายฝาย

เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่พอใจ ก็จะพิจารณาแกไขแบบ

แปลนสวนนั้น ๆ เสียกอนจะไดไมตองร้ือถอนหรือทุบทิ้งภายหลัง และเมื่อตองการซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิม

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

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

ขอตกลงใหสรางอาคารของผูจางกับผูรับจางที่อยูในรูปแบบกะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยาง

ยืดยาว และยังเปนเคร่ืองมือใหชางใชในการกอสรางอีกดวย

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

เปน 2 ลักษณะ ไดแก

1. ขอความหรือคําบรรยาย (Pseudo code)

2. สัญลักษณ (Flowchart)

1) ขอความหรือคําบรรยาย

เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงข้ันตอนการทํางาน

ของโปรแกรมแตละตอน ในบางคร้ังอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได

การเขียนขอความเพื่อการบรรยายข้ันตอนวิธีในการแกปญหาทางคอมพิวเตอร สามารถเรียกอีกอยางหนึ่ง

ไดวา รหัสเทียม (pseudo code)

Page 6: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 6 -

หลักการทั่วไปในการเขียนรหัสเทียม

1. สัญลักษณที่ใชในการดําเนินการทางคณิตศาสตรตางๆ จะถูกใชงานตามปกติ คือ “+” สําหรับการ

บวก “-” สําหรับการลบ “*” สําหรับการคูณ และ “/” สําหรับการหาร

2. การกําหนดคาใหกับชื่อขอมูล เชน เมื่อเราตองการกําหนดให ขอมูล pi มีคาเทากับ 3.14

สามารถเขียนไดดวยขอความ pi ← 3.14 หรือ pi:=3.14 หรือ pi=3.14 ในการกําหนดคาทาง

คอมพิวเตอรดานซายของเคร่ืองหมายมักใชแทน ที่เก็บขอมูล และดานขวาแทน ขอมูลที่ตองการ

นําไปเก็บ (ดังนั้นหากใชขอความวา 3.14=pi ถือวาไมถูกตองตามความหมายนี้)

3. คําสงวนบางคําที่ใชในภาษาระดับสูงทั่วไปอาจถูกนํามาใช เชน Read หรือ Enter สําหรับการรับ

ขอมูลเขา และ Write หรือ Print สําหรับการแสดงขอมูลออก

4. การเพิ่มหรือลดระยะยอหนาอยางเหมาะสม เพื่อแสดงระดับของข้ันตอนการทํางานในโครงสราง

ควบคุมการทํางานในกลุมเดียวกัน

2) สัญลักษณหรือแผนภาพ

เคร่ืองหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐานแหงชาติ

อเมริกัน (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปนมาตรฐานแลว สมควร

นําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียดรูปแบบและความหมายที่ควรทราบตามตารางตอไปนี้

การนําสัญลักษณไปใชเพื่อแสดงข้ันตอนการทํางานตางๆ ของงานหรือโปรแกรม รวมถึงแสดงการไหลของ

ขอมูลในระบบตั้งแตแรกจนไดผลลัพธตามตองการเรียกวา การเขียนผังงาน(Flowchart) ซึ่งสามารถแบงออกไดเปน

2 แบบคือ

1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงข้ันตอนการทํางานในระบบอยางกวางๆ

แตจะไมเจาะจงในระบบงานยอย อาจแสดงใหเห็นลําดับการทํางานของสวนตางๆ ในระบบ เชน การ

นําขอมูลเขา(Input) ถูกเก็บอยูที่ใดบาง ใชสื่อบันทึกขอมูลแบบใด ลักษณะของการประมวลผล

ตลอดจนลักษณะของผลลัพธ(Output) ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียน

โปรแกรมและผูที่เก่ียวของที่ตองการทําความเขาใจการทํางานของระบบ

ตัวอยางที่ 4 คําบรรยายแสดงข้ันตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ

1. จอดรถหลบขางทาง

2. นําแมแรงออกยกรถ

3. คลายสกรูยึดลอ

4. ถอดลอออก นํายางอะไหลมาเปลี่ยน

5. ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม คลายแมแรง เก็บแมแรง

Page 7: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 7 -

2. ผังงานโปรแกรม(Program Flowchart) หมายถึง ผังงานที่ใชในการแสดงการทํางานของโปรแกรม

โดยละเอียดในแตละข้ันตอน เชนรับขอมูล คํานวณ และแสดงผลลัพธ ผังงานโปรแกรมเปนสิ่งจําเปน

สําหรับผูเขียนโปรแกรมเพราะตองใชเปนแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิด

ขอผิดพลาดการเขาไปวิเคราะหผังงานโปรแกรมจะทําไดงายกวาการเขาไปวิเคราะหตัวโปรแกรม

โดยตรง

ประโยชนของผังงาน

1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางข้ันตอนในการทํางานตางๆ

2. ใชเปนสื่อกลางในการติดตอประสานความคิดระหวางผูที่เก่ียวของ เชน นักวิเคราะหระบบ(systems

analyst) นักเขียนโปรแกรม(programmer)

3. ชวยในการทดสอบหรือทบทวนข้ันตอนการทํางาน เพื่อหาขอผิดพลาด

ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ

สัญลักษณ ความหมาย

การทํางานดวยมือ (Manual Operation) แทนจุดที่มีการทํางานดวยแรงคน

การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูลเขา

หรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ

แถบบันทึกขอมูล(Magnetic tape) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม

ดวยแถบบันทึกขอมูล

จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรมดวย

จานบันทึกขอมูล

การปอนขอมูลเขาดวยมือ (Manual Input) แทนจุดที่จะนําขอมูลเขา

ดวยมือ

Page 8: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 8 -

การแสดงขอมูล (Display) แทนจุดที่จะนําขอมูลเขาดวยจอภาพ

การทําเอกสาร (Document) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย

เคร่ืองพิมพ

การตัดสินใจ (Decision) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง

การปฏิบัติงาน (Process) แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง

การเตรียมการ (Preparation) แทนจุดกําหนดชื่อขอมูลหรือคาเร่ิมตนตางๆ

การเรียกโปรแกรมภายนอก (External subroutine) แทนจุดเรียกใชโปรแกรมยอยที่

ไมไดอยูในโปรแกรมนั้น

การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่อยู

ในโปรแกรมนั้น

การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด

ทิศทาง (Flow line) แทนทิศทางข้ันตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกันตามหัว

ลูกศรชี้

หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด

ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน

การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย ขอมูล

ดวยระบบติดตอทางไกล

Page 9: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 9 -

จุดเชื่อมตอ (Connector) แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อใหดูงาย

จุดเชื่อมตอหนากระดาษ (Off page Connector) แทนจุดเชื่อมตอของ

ผังงานที่อยูคนละหนากระดาษ

เร่ิมตนและลงทาย (Terminal) แทนจุดเร่ิมตนและลงทายของผังงานของโปรแกรมหลัก

และโปรแกรมยอย

ตัวอยางที่ 5 การวางแผนไปโรงเรียน

การจําลองความคิดแบบรหัสทียม

เร่ิมตน

ตื่นนอน

อาบน้ําแตงตัว

ไปโรงเรียน

จบ

การจําลองความคิดแบบสัญลักษณ

ตัวอยางที่ 6 การคํานวณพื้นที่รูปวงกลม

การจําลองความคิดแบบรหัสเทียม

เร่ิมตน

รับคา radius

คํานวณพื้นที่ดวยสูตร

area= 22/7*radius*radius

แสดงคา area

จบ

การจําลองความคิดแบบสัญลักษณ

เริม่ตน้

จบ

ตื่นนอน

อาบน้ําแต่งตวั

ไปโรงเรยีน

เริม่ตน้

จบ

area = 22/7 * radius * radius

radius

area

Page 10: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 10 -

ตัวอยางที่ 7 การจําลองความคิดในการหาผลบวก 1,2,3,4,5,… จนถึง 20

การจําลองความคิดแบบรหัสเทียม เร่ิมตน

1. กําหนดให N มีคาเร่ิมตนเปน 0

2. กําหนดให K มีคาเร่ิมตนเปน 1

3. นําคา K มารวมกับคา N เดิม ไดผลลัพธเทาไรเก็บไวที่ N

4. นําคา 1 มารวมกับคา K เดิม ไดผลลัพธเทาไรเก็บไวที่ K

5. เปรียบเทียบคา K กับ 20 ถา K นอยกวาหรือเทากับ 20 ใหวนกลับไปทําในข้ัน 3 และทํา

คําสั่งถัดลงมาตามลําดับ แตถา K มากกวา 20 ใหแสดงคําตอบ

จบ

การจําลองความคิดแบบสัญลักษณ

เริม่ตน้

จบ

N=0

K=1

N=N+K

K=K+1

K≤20

เทจ็

จรงิ

แสดงค่า N

Page 11: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 11 -

5.3 โครงสรางแบบตางๆ สําหรับการเขียนโปรแกรม

จากการศึกษาหลักการข้ันตอนการแกปญหา ในหัวขอ 4.1 และ 4.2 หลังจากที่เราสามารถวิเคราะหปญหา และสราง

แบบจําลองความคิดเพื่อแสดงข้ันตอนในการแกปญหาแลว ข้ันตอนตอไปคือ การลงมือแกปญหาตามข้ันตอนที่ไดออกแบบไว

โดยใชเคร่ืองมือชวยในการแกปญหา ในที่นี้เคร่ืองมือที่นักเรียนเลือก คือ ภาษาคอมพิวเตอร ซึ่งถือไดวาเปนข้ันตอนหนึ่งที่

สําคัญในการแกปญหาดวยคอมพิวเตอร

การเขียนโปรแกรม (Programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของขอมูล

และกําหนดข้ันตอนวิธีเพื่อใชแกปญหาตามที่ไดออกแบบไวโดยอาศัยหลักเกณฑการเขียนโปรแกรมคอมพิวเตอรของแตละ

ภาษา

กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาที่จะนํามาชวยใชงานโดยพิจารณาจากปจจัยตางๆ ใน

การทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบคอมพิวเตอร เปน

ตน เนื่องจากในปจจุบันมีภาษาคอมพิวเตอรใหเลือกไดหลายภาษา เชน ภาษาซี ภาษาจาวา ภาษาไพทอน เปนตน ถึงแมแต

ละภาษาจะมีรูปแบบและหลักการในการสรางงานที่แตกตางกัน แตทุกภาษาจะตองมีโครงสรางควบคุมหลักทั้ง 3 แบบไดแก

โครงสรางแบบลําดับ (Sequential structure) โครงสรางแบบมีทางเลือก (Selection structure) และโครงสรางแบบ

ทําซ้ํา (Repetition structure)

1) โครงสรางแบบลําดับ

โครงสรางแบบลําดับ คือโครงสรางแสดงข้ันตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละข้ันตอน

จะถูกประมวลผลเพียงคร้ังเดียวเทานั้น

รูปที่ 2 แสดงการทาํงานของโครงสรางแบบลาํดับ

คาํสัง่ที ่1

คาํสัง่ที ่2

คาํสัง่ที ่3

คาํสัง่ที ่N

…….

Page 12: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 12 -

ตัวอยางที่ 8 แสดงผังงานที่จําลองการบวกเลขจํานวนเต็ม 2 จํานวน ในรูปของสัญลักษณ

รูปที่ 3 แสดงการทาํงานของโครงสรางแบบลาํดับ

2) โครงสรางแบบมีทางเลือก

โครงสรางแบบมีทางเลือก คือโครงสรางที่มีเงื่อนไข ข้ันตอนการทํางานบางข้ันตอนตองมีการตัดสินใจเพื่อ

เลือกวิธีการประมวลผลข้ันตอไป และจะมีบางข้ันตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมี 2 ทางหรือมากกวาก็ได

โครงสรางที่มีทางเลือกเพียง 2 ทางเราเรียกชื่อวา โครงสรางแบบทางเลือก if และโครงสรางที่มีทางเลือกมากกวา 2 ทาง เรา

เรียกชื่อวาโครงสรางแบบทางเลือก switch

o โครงสรางแบบทางเลือก if มี 3 รูปแบบคือ

1. หนึ่งทางเลือก (One Alternative) แสดงดังรูปที่ 4

2. สองทางเลือก (Two Alternative) แสดงดังรูปที่ 5

3. หลายทางเลือก (Multiple-Alternative) แสดงดังรูปที่ 6

เริม่ตน้

X = 2

Y = 5

Z = X + Y

“Output”, Z

สิน้สดุ

จุดเริม่ตน้

นํา 2 ไปเกบ็ใน X

นํา 5 ไปเกบ็ใน Y

นําค่าทีอ่ยู่ใน X และ Y มาบวกกนั

แลว้เกบ็ผลลพัธไ์วท้ี ่Z

แสดงผลลพัธค์อื Output 7

ทางจอภาพ

จุดสิน้สดุ

เงือ่นไข

เทจ็

จรงิ

คาํสัง่

รปูที ่4 แสดงการทาํงานของโครงสรา้งแบบ

มทีางเลอืก if รปูแบบหนึ่งทางเลอืก

รปูที ่5 แสดงการทาํงานของโครงสรา้งแบบ

มทีางเลอืก if รปูแบบสองทางเลอืก

คาํสัง่

เงื่อนไข

เทจ็

จรงิ

คาํสัง่

Page 13: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 13 -

รูปที่ 7 แสดงการทาํงานของโครงสราง switch

เงือ่นไข

…..

กรณทีี ่1 กรณทีี ่2 กรณทีี ่3 กรณทีี ่n

คาํสัง่ คาํสัง่ คาํสัง่ คาํสัง่

เงื่อนไข เทจ็ จรงิ

คาํสัง่ เงื่อนไข

คาํสัง่ เงื่อนไข

คาํสัง่ คาํสัง่

จรงิ

จรงิ

เทจ็

เทจ็

รปูที ่6 แสดงการทาํงานของโครงสรา้งแบบ

มทีางเลอืก if รปูแบบหลายทางเลอืก

Page 14: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 14 -

ตัวอยางที่ 8 แสดงผังงานที่จําลองข้ันตอนวิธีการเขียนและสงจดหมายใหอยูในรูปของสัญลักษณ

รูปที่ 8 แสดงการทาํงานของโครงสรางแบบมีทางเลือก if รูปแบบหนึ่งทางเลือก

โครงสรา้งแบบม ี

ทางเลอืก if

เริม่ตน้

จบ

เขยีนจดหมาย

พบัจดหมายใสซ่อง

จ่าหน้าซอง

ปิดซองจดหมาย

ไมม่แีสตมป์

เทจ็

จรงิ

ซือ้แสตมป์

ตดิแสตมป์

สง่จดหมาย

Page 15: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 15 -

ตัวอยางที่ 9 แสดงผังงานที่จําลองข้ันตอนวิธีของเกมหยิบลูกบอลใหอยูในรูปของสัญลักษณ โดยมีเงื่อนไข

วามีลูกบอลซึ่ง มี 5 สี

กรณีหยิบไดสีแดง จะได 10 คะแนน

กรณีหยิบไดสีฟา จะได 8 คะแนน

กรณีหยิบไดสีเขียว จะได 6 คะแนน

กรณีหยิบไดสีเหลือง จะได 4 คะแนน

กรณีหยิบไดสีสม จะได 2 คะแนน

รูปที่ 9 แสดงการทาํงานของโครงสรางแบบมีทางเลือก switch

3) โครงสรางแบบทําซ้ํา

โครงสรางแบบทําซ้ํา คือโครงสรางที่ข้ันตอนการทํางานบางข้ันตอนไดรับการประมวลผลมากกวา 1 คร้ัง

ทั้งนี้ข้ึนอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการทํางานของ

โครงสรางแบบนี้มี 2 ลักษณะ ไดแก

แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกคร้ังกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไขเปนจริงจะทํางาน

ซ้ําไปเร่ือยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ การทํางานลักษณะนี้แบงไดเปน 2 แบบยอย ไดแก การทําซ้ําแบบ for และแบบ

while ลักษณะการทํางานของทั้งสองแบบนี้จะเหมือนกัน โดยสําหรับแบบ for นั้นมักใชกรณีที่ตองการกําหนดจํานวนรอบ

การทํางานที่ชัดเจน

choose

‘R’

10

เริม่ตน้

choose

8 คะแนน 6 คะแนน 4 คะแนน 2 คะแนน

จบ

‘B’ ‘G’ ‘Y’ ‘O’

Page 16: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 16 -

แบบที่มีการดําเนินการกิจกรรมใดๆ กอนจํานวนหนึ่งรอบ แลวจึงคอยตรวจสอบเงื่อนไขในการทําซํ้า

ถาเงื่อนไขเปนจริงจะทํางานซ้ําไปเร่ือยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานแบบนี้วา การทําซ้ําแบบ do…while

ผังงานแสดงข้ันตอนการทํางานซ้ําทั้งสองแบบแสดงดังรูปที่ 10 และ 11

รูปที่ 10 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while

รูปที่ 11 แสดงการทํางานของการทําซ้ําแบบ do…while

โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ข้ันตอนที่เราใชในการแกปญหานั้นเอง พิจารณา

ตัวอยางที่ 10 เปนข้ันตอนการเลือกเคร่ืองมือและการออกแบบข้ันตอนวิธี คือ ข้ันตอนที่ 2 ในหัวขอ 4.1 เราเลือกสรางผังงาน

มาจําลองข้ันตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดงโครงสราง

ควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย

เงื่อนไข

เทจ็

จรงิ

คาํสัง่ที ่N

คาํสัง่ที ่1

เงื่อนไข จรงิ

เทจ็ คาํสัง่ที ่1

คาํสัง่ที ่N

Page 17: การจําลองความคิด - MWITcs/download/tech30101/TECH30101_ch5_1_2558.pdfo การเลือกเครื่องมือและออกแบบขั้นตอนวิธี

รายวิชา ง30101 เทคโนโลยีสารสนเทศและหลักการแกปญหา ภาคเรียนที่ 1/2558

- 17 -

ตัวอยางที่ 10 แสดงผังงานที่จําลองข้ันตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของสัญลักษณ

โครงสรา้ง

แบบทาํซํ้า

เริม่ตน้

จบ

SUM=0

N=1

จรงิ

เทจ็

SUM = SUM+DATA

data

N=N+1

N ≤ 5

A=SUM / (N-1)

A

รับค่า

แสดงผล