Ch11. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
1
บทที่ 1
การจําลองความคิด
เนื้อหา
1. กระบวนการแกปญหา
o การวิเคราะหและกําหนดรายละเอียดของปญหา
o การเลือกเครื่องมือและออกแบบขั้นตอนวิธี
o การดําเนินการแกปญหา
o การตรวจสอบและปรับปรุง
2. การจําลองความคิด
o ขอความหรือคําบรรยาย (Pseudo code)
o สัญลักษณหรือแผนภาพ (Flowchart)
- แบบลําดับ
- แบบทางเลือก
- แบบทําซ้ํา
3. โครงสรางแบบตางๆ สําหรับการเขียนโปรแกรม
o โครงสรางแบบลําดับ
o โครงสรางแบบมีทางเลือก
o โครงสรางแบบทําซ้ํา
ผลการเรียนรูที่คาดหวัง
1. อธิบายขั้นตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธีการในแตละขั้นตอนได
2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได
3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได
ที่มาhttp://www.seubsan.net/th/images/stories/yt/p4_Cap.gif
2. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 2 -
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
3. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 3 -
รูปที่ 1 กระบวนการแกปญหา
รูปที่ 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. การระบุขอมูลออก จากโจทยสิ่งที่เปนคําตอบของปญหา คือคาเฉลี่ย (x) ของจํานวนทั้งหา
3. การกําหนดวิธีการประมวลผล จากสิ่งที่โจทยตองการ "คาเฉลี่ย" หมายถึง ผลรวมของจํานวนทั้ง 5หาร
ดวย 5 ดังนั้น ขั้นตอนของการประมวลผลประกอบดวย
3.1 รับคาจํานวนทั้ง 5 จํานวน
3.2 นําจํานวนเต็มทั้ง 5 มาบวกเขาดวยกัน
3.3 นําผลลัพธจากขอ 3.2 มาหารดวย 5
วิเคราะหและกําหนด
รายละเอียดของปญหา
เลือกเครื่องมือ / ออกแบบขั้นตอนวิธี
ดําเนินการแกปญหา
ตรวจสอบและปรับปรุง
4. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 4 -
ตัวอยางที่ 3 แสดงการวิเคราะหและกําหนดรายละเอียดของการหาคา x เมื่อ x คือจํานวนเต็มจํานวนหนึ่งในกลุม
จํานวนเต็ม 5 จํานวนที่มีคาเฉลี่ยเปน 10 และจํานวนอีก 4 จํานวนไดแก 3 4 8 และ 12
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 ซึ่งคือผลลัพธ)
2) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development)
ขั้นตอนนี้เปนขั้นตอนของการวางแผนในการแกปญหาอยางละเอียดถี่ถวน หลังจากที่เราทําความเขาใจกับ
ปญหา พิจารณาขอมูลและเงื่อนไขที่มีอยู และสิ่งที่ตองการหาแลวในขั้นตอนที่ 1 เราสามารถคาดคะเนวิธีการที่เรา
จะใชในการแกปญหากระบวนการนี้จําเปนอาศัยประสบการณของผูแกปญหาเปนหลัก หากผูแกปญหาเคยพบกับ
ปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัติมา ขั้นตอนนี้จะเริ่มจากการเลือกเครื่องมือที่
ใชในการแกปญหา โดยพิจารณาความเหมาะสมระหวางเครื่องมือกับเงื่อนไขตางๆ ของปญหา ซึ่งหมายรวมถึง
ความสามารถของเครื่องมือในการแกปญหาดังกลาว และสิ่งที่สําคัญคือความคุนเคยในการใชงานเครื่องมือนั้นๆ
ของผูแกปญหา
อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือ ยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวา ขั้นตอนวิธี
(algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหาตองวางแผนวาจะใช
เครื่องมือดังกลาวอยางเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด ในการออกแบบขั้นตอนวิธีในการแกปญหา ผูแกปญหา
ควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอความเขาใจเชน ผังงาน (flowchart)
รหัสลําลอง (pseudo code) การใชเครื่องมือชวยออกแบบดังกลาวนอกจากแสดงกระบวนการที่ชัดเจนแลว ยัง
ชวยใหผูแกปญหาสามารถหาขอผิพลาดของวิธีการที่ใชไดงายและแกไขไดอยางรวด
3) การดําเนินการแกปญหา (Implementation)
หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอยแลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใชเครื่องมือ
ที่ไดเลือกไว หากการแกปญหาดังกลาวใชคอมพิวเตอรเขามาชวยงาน ขั้นตอนนี้ก็เปนการใชโปรแกรมสําเร็จ หรือใช
ภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับเครื่องมือที่เลือกใช ซึ่งผูแกปญหาตอง
ศึกษาที่เขาใจและเชี่ยวชาญ ในการดําเนินการอาจพบแนวทางที่ดีกวาที่ออกแบบไวก็สามารถปรับเปลี่ยนได
4) การตรวจสอบและปรับปรุง (Refinement)
หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตอง
ตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อให
มั่นใจวาสามารถรองรับขอมูลเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อให
การแกปญหานี้ไดผลลัพธที่ดีที่สุด
5. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 5 -
2. การจําลองความคิด
การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใช
ประสบการณ ความรู และความมีเหตุผลแลว ยังควรรูจักวางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย การจําลองความคิด
เปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การจําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวย
ใหสามารถแกปญหาไดดีโดยเฉพาะปญหาที่ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีก
ทั้งเปนการแสดงแบบเพื่อใหผูที่เกี่ยวของไดเขาใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ดวยวัตถุประสงคอยาง
เดียวกับกลุมกิจการกอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง
แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวางผูเกี่ยวของ
แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบทบทวนและพิจารณาจากผูเกี่ยวของหลายฝาย
เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่พอใจ ก็จะพิจารณาแกไขแบบ
แปลนสวนนั้น ๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิม
มาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบแปลนจึงเปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและ
ผูเกี่ยวของอื่น ๆ เปนอยางมาก เพราะประหยัดเวลา คาใชจายและเขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คือ
ขอตกลงใหสรางอาคารของผูจางกับผูรับจางที่อยูในรูปแบบกะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยาง
ยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสรางอีกดวย
เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลายอยาง แตพอสรุปได
เปน 2 ลักษณะ ไดแก
1. ขอความหรือคําบรรยาย (Pseudo code)
2. สัญลักษณ (Flowchart)
1) ขอความหรือคําบรรยาย
เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอนการทํางาน
ของโปรแกรมแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได
การเขียนขอความเพื่อการบรรยายขั้นตอนวิธีในการแกปญหาทางคอมพิวเตอร สามารถเรียกอีกอยางหนึ่ง
ไดวา รหัสเทียม (pseudo code)
ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
1. คลายสกรูยึดลอ
2. จอดรถหลบขางทาง
3. นําแมแรงออกยกรถ
4. ถอดลอออก นํายางอะไหลมาเปลี่ยน
5. ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม
6. คลายแมแรง เก็บแมแรง
หลักการทั่วไปในการเขียนรหัสเทียม
1. สัญลักษณที่ใชในการดําเนินการทางคณิตศาสตรตางๆ จะถูกใชงานตามปกติ คือ “+” สําหรับการ
บวก “-” สําหรับการลบ “*” สําหรับการคูณ และ “/” สําหรับการหาร
2. การกําหนดคาใหกับชื่อขอมูล เชน เมื่อเราตองการกําหนดให ขอมูล pi มีคาเทากับ 3.14
สามารถเขียนไดดวยขอความ pi ← 3.14 หรือ pi:=3.14 หรือ pi=3.14 ในการกําหนดคาทาง
คอมพิวเตอรดานซายของเครื่องหมายมักใชแทน ที่เก็บขอมูล และดานขวาแทน ขอมูลที่ตองการ
นําไปเก็บ (ดังนั้นหากใชขอความวา 3.14=pi ถือวาไมถูกตองตามความหมายนี้)
6. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 6 -
3. คําสงวนบางคําที่ใชในภาษาระดับสูงทั่วไปอาจถูกนํามาใช เชน Read หรือ Enter สําหรับการรับ
ขอมูลเขา และ Write หรือ Print สําหรับการแสดงขอมูลออก
4. การเพิ่มหรือลดระยะยอหนาอยางเหมาะสม เพื่อแสดงระดับของขั้นตอนการทํางานในโครงสราง
ควบคุมการทํางานในกลุมเดียวกัน
2) สัญลักษณหรือแผนภาพ
เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐานแหงชาติ
อเมริกัน (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปนมาตรฐานแลว สมควร
นําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียดรูปแบบและความหมายที่ควรทราบตามตารางตอไปนี้
การนําสัญลักษณไปใชเพื่อแสดงขั้นตอนการทํางานตางๆ ของงานหรือโปรแกรม รวมถึงแสดงการไหลของ
ขอมูลในระบบตั้งแตแรกจนไดผลลัพธตามตองการเรียกวา การเขียนผังงาน(Flowchart) ซึ่งสามารถแบงออกไดเปน
2 แบบคือ
1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงขั้นตอนการทํางานในระบบอยางกวางๆ
แตจะไมเจาะจงในระบบงานยอย อาจแสดงใหเห็นลําดับการทํางานของสวนตางๆ ในระบบ เชน การ
นําขอมูลเขา(Input) ถูกเก็บอยูที่ใดบาง ใชสื่อบันทึกขอมูลแบบใด ลักษณะของการประมวลผล
ตลอดจนลักษณะของผลลัพธ(Output) ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียน
โปรแกรมและผูที่เกี่ยวของที่ตองการทําความเขาใจการทํางานของระบบ
2. ผังงานโปรแกรม(Program Flowchart) หมายถึง ผังงานที่ใชในการแสดงการทํางานของโปรแกรม
โดยละเอียดในแตละขั้นตอน เชนรับขอมูล คํานวณ และแสดงผลลัพธ ผังงานโปรแกรมเปนสิ่งจําเปน
สําหรับผูเขียนโปรแกรมเพราะตองใชเปนแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิด
ขอผิดพลาดการเขาไปวิเคราะหผังงานโปรแกรมจะทําไดงายกวาการเขาไปวิเคราะหตัวโปรแกรม
โดยตรง
ประโยชนของผังงาน
1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางขั้นตอนในการทํางานตางๆ
2. ใชเปนสื่อกลางในการติดตอประสานความคิดระหวางผูที่เกี่ยวของ เชน นักวิเคราะหระบบ(systems
analyst) นักเขียนโปรแกรม(programmer)
3. ชวยในการทดสอบหรือทบทวนขั้นตอนการทํางาน เพื่อหาขอผิดพลาด
7. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 7 -
ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ
สัญลักษณ ความหมาย
การทํางานดวยมือ (Manual Operation) แทนจุดที่มีการทํางานดวยแรงคน
การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูลเขา
หรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ
แถบบันทึกขอมูล(Magnetic tape) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม
ดวยแถบบันทึกขอมูล
จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรมดวย
จานบันทึกขอมูล
การปอนขอมูลเขาดวยมือ (Manual Input) แทนจุดที่จะนําขอมูลเขา
ดวยมือ
การแสดงขอมูล (Display) แทนจุดที่จะนําขอมูลออกทางจอภาพ
การทําเอกสาร (Document) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย
เครื่องพิมพ
การตัดสินใจ (Decision) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง
การปฏิบัติงาน (Process) แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง
การเตรียมการ (Preparation) แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ
การเรียกโปรแกรมภายนอก (External subroutine) แทนจุดเรียกใชโปรแกรมยอยที่
ไมไดอยูในโปรแกรมนั้น
8. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 8 -
การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่อยู
ในโปรแกรมนั้น
การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด
ทิศทาง (Flow line) แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกันตามหัว
ลูกศรชี้
หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด
ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน
การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย ขอมูล
ดวยระบบติดตอทางไกล
จุดเชื่อมตอ (Connector) แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อใหดูงาย
จุดเชื่อมตอหนากระดาษ (Off page Connector) แทนจุดเชื่อมตอของ
ผังงานที่อยูคนละหนากระดาษ
เริ่มตนและลงทาย (Terminal) แทนจุดเริ่มตนและลงทายของผังงานของโปรแกรมหลัก
และโปรแกรมยอย
9. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 9 -
ตัวอยางที่ 5 การวางแผนไปโรงเรียน
การจําลองความคิดแบบรหัสทียม
เริ่มตน
ตื่นนอน
อาบน้ําแตงตัว
ไปโรงเรียน
จบ
การจําลองความคิดแบบสัญลักษณ
ตัวอยางที่ 6 การคํานวณพื้นที่รูปวงกลม
การจําลองความคิดแบบรหัสเทียม
เริ่มตน
รับคา radius
คํานวณพื้นที่ดวยสูตร
area= 22/7*radius*radius
แสดงคา area
จบ
การจําลองความคิดแบบสัญลักษณ
ตัวอยางที่ 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 ใหแสดงคําตอบ
จบ
เริ่มต้น
จบ
ตื่นนอน
อาบนํ้าแต่งตัว
ไปโรงเรียน
เริ่มตน
จบ
area = 22/7 * radius * radius
radius
area
10. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 10 -
การจําลองความคิดแบบสัญลักษณ
3. โครงสรางแบบตางๆ สําหรับการเขียนโปรแกรม
จากการศึกษาหลักการขั้นตอนการแกปญหา ในหัวขอ 5.1 และ 5.2 หลังจากที่เราสามารถวิเคราะหปญหา และสราง
แบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอนตอไปคือ การลงมือแกปญหาตามขั้นตอนที่ไดออกแบบไว
โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หากเครื่องมือที่นักเรียนเลือก คือ ภาษาคอมพิวเตอรซึ่งถือไดวาเปนขั้นตอนหนึ่งที่
สําคัญในการแกปญหาดวยคอมพิวเตอร
การเขียนโปรแกรม (Programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของขอมูล
และกําหนดขั้นตอนวิธีเพื่อใชแกปญหาตามที่ไดออกแบบไวโดยอาศัยหลักเกณฑการเขียนโปรแกรมคอมพิวเตอรของแตละ
ภาษา
กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาที่จะนํามาชวยใชงานโดยพิจารณาจากปจจัยตางๆ ใน
การทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบคอมพิวเตอร เปน
ตน เนื่องจากในปจจุบันมีภาษาคอมพิวเตอรใหเลือกไดหลายภาษาเชน ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย เปน
ตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงานที่แตกตางกัน แตทุกภาษาจะตองมีโครงสรางควบคุมหลักทั้ง 3
แบบไดแก โครงสรางแบบลําดับ (Sequential structure) โครงสรางแบบมีทางเลือก (Selection structure) และ
โครงสรางแบบทําซ้ํา (Repetition structure)
เริ่มตน
จบ
N=0
K=1
N=N+K
K=K+1
K≤20
เท็จ
จริง
แสดงคา N
11. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 11 -
1) โครงสรางแบบลําดับ
โครงสรางแบบลําดับ คือโครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละขั้นตอน
จะถูกประมวลผลเพียงครั้งเดียวเทานั้น
รูปที่ 2 การทํางานของโครงสรางแบบลําดับ
ตัวอยางที่ 8 ผังงานที่จําลองการบวกเลขจํานวนเต็ม 2 จํานวน ในรูปของสัญลักษณ
คําสั่งที่ 1
คําสั่งที่ 2
คําสั่งที่ 3
คําสั่งที่ N
…….
เริ่มตน
X = 2
Y = 5
Z = X + Y
“Output“, Z
สิ้นสุด
จุดเริ่มตน
นํา 2 ไปเก็บใน X
นํา 5 ไปเก็บใน Y
นําคาที่อยูใน X และ Y มาบวกกัน
แลวเก็บผลลัพธไวที่ Z
แสดงผลลัพธคือ Output 7
ทางจอภาพ
จุดสิ้นสุด
12. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 12 -
2) โครงสรางแบบมีทางเลือก
โครงสรางแบบมีทางเลือก คือโครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจเพื่อ
เลือกวิธีการประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมี 2 ทางหรือมากกวาก็ได
โครงสรางที่มีทางเลือกเพียง 2 ทางเราเรียกชื่อวา โครงสรางแบบทางเลือก if และโครงสรางที่มีทางเลือกมากกวา 2 ทาง เรา
เรียกชื่อวาโครงสรางแบบทางเลือก switch
oโครงสรางแบบทางเลือก if มี 3 รูปแบบคือ
1. หนึ่งทางเลือก (One Alternative) แสดงดังรูปที่ 3
2. สองทางเลือก (Two Alternative) แสดงดังรูปที่ 4
3. หลายทางเลือก (Multiple-Alternative) แสดงดังรูปที่ 5
เงื่อนไข
เท็จ
จริง
คําสั่ง
รูปที่ 3 แสดงการทํางานของโครงสรางแบบมี
ทางเลือก if รูปแบบหนึ่งทางเลือก
รูปที่ 4 แสดงการทํางานของโครงสรางแบบมี
ทางเลือก if รูปแบบสองทางเลือก
เงื่อนไข 1
เท็จ จริง
คําสั่ง
เงื่อนไข
คําสั่ง
เงื่อนไข 2
เงื่อนไข n
คําสั่งคําสั่ง
จริง
จริง
เท็จ
เท็จ
รูปที่ 5 แสดงการทํางานของโครงสรางแบบมี
ทางเลือก if รูปแบบหลายทางเลือก
คําสั่ง
เงื่อนไข
เท็จ
จริง
คําสั่ง
14. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 14 -
ตัวอยางที่ 9 ผังงานที่จําลองขั้นตอนวิธีของเกมหยิบลูกบอลใหอยูในรูปของสัญลักษณ โดยมีเงื่อนไขวามีลูก
บอลซึ่ง มี 5 สี
กรณีหยิบไดสีแดง จะได 10 คะแนน
กรณีหยิบไดสีฟา จะได 8 คะแนน
กรณีหยิบไดสีเขียว จะได 6 คะแนน
กรณีหยิบไดสีเหลือง จะได 4 คะแนน
กรณีหยิบไดสีสม จะได 2 คะแนน
3) โครงสรางแบบทําซ้ํา
โครงสรางแบบทําซ้ํา คือโครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1 ครั้ง
ทั้งนี้ขึ้นอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการทํางานของ
โครงสรางแบบนี้มี 2 ลักษณะ ไดแก
แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไขเปนจริงจะทํางาน
ซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ การทํางานลักษณะนี้แบงไดเปน 2 แบบยอย ไดแก การทําซ้ําแบบ for และแบบ
while ลักษณะการทํางานของทั้งสองแบบนี้จะเหมือนกัน โดยสําหรับแบบ for นั้นมักใชกรณีที่ตองการกําหนดจํานวนรอบ
การทํางานที่ชัดเจน
แบบที่มีการดําเนินการกิจกรรมใดๆ กอนจํานวนหนึ่งรอบ แลวจึงคอยตรวจสอบเงื่อนไขในการทําซ้ํา
ถาเงื่อนไขเปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานแบบนี้วา การทําซ้ําแบบ do…while
ผังงานแสดงขั้นตอนการทํางานซ้ําทั้งสองแบบแสดงดังรูปที่ 7 และ 8
choose
‘R’
10 คะแนน
เริ่มตน
choose
8 คะแนน 6 คะแนน 4 คะแนน 2 คะแนน
จบ
‘B’ ‘G’ ‘Y’ ‘O’
15. M
W
ITSM
ahidolW
ittayanusorn
School
M
W
ITS
สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์
- 15 -
รูปที่ 7 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while
รูปที่ 8 แสดงการทํางานของการทําซ้ําแบบ do…while
โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ขั้นตอนที่เราใชในการแกปญหานั้นเอง พิจารณา
ตัวอยางที่ 10 เปนขั้นตอนการเลือกเครื่องมือและการออกแบบขั้นตอนวิธี คือ ขั้นตอนที่ 2 ในหัวขอที่ 1 เราเลือกสรางผังงาน
มาจําลองขั้นตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดงโครงสราง
ควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย
เงื่อนไข
เท็จ
จริง
คําสั่งที่ N
คําสั่งที่ 1
เงื่อนไข
จริง
เท็จ คําสั่งที่ 1
คําสั่งที่ N