More Related Content Similar to การจำลองความคิด
Similar to การจำลองความคิด (20) การจำลองความคิด1. บทที่ 5
การจําลองความคิด
ที่มา http://www.seubsan.net/th/images/stories/yt/p4_Cap.gif
เนื้อหา
5.1 ขั้นตอนการพัฒนาซอฟตแวร
o การวิเคราะหและกําหนดรายละเอียดของปญหา
o การเลือกเครืองมือและออกแบบขั้นตอนวิธี
่
o การดําเนินการแกปญหา
o การตรวจสอบและปรับปรุง
5.2 การจําลองความคิด
o ขอความหรือคําบรรยาย (Pseudo code)
o สัญลักษณหรือแผนภาพ (Flowchart)
- แบบลําดับ
- แบบทางเลือก
- แบบทําซ้ํา
5.3 การเขียนโปรแกรม
o โครงสรางแบบลําดับ
o โครงสรางแบบมีทางเลือก
o โครงสรางแบบทําซ้ํา
ผลการเรียนรูที่คาดหวัง
1. อธิบายขั้นตอนการพัฒนาซอฟตแวรและอธิบายถึงวิธการในแตละขันตอนได
ี ้
2. อธิบายความหมายและเหตุผลในการเขียนแผนภาพที่ใชในการออกแบบโปรแกรมได
3. บอกสัญลักษณและสามารถเขียนผังงานที่ใชในการออกแบบโปรแกรมได
2. -2-
5.1 ขั้นตอนการพัฒนาซอฟตแวร
ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน การเงิน หรือ
แมแตการเลนเกม เมื่อพบกับปญหาแตละคนมีวิธีท่จะจัดการหรือแกปญหาเหลานั้นแตกตางกันไป ซึ่งแตละวิธีการอาจ
ี
ใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ขึ้นอยูกับความรู ความสามารถ และประสบการณของบุคคลผูนั้น
อยางไรก็ตาม หากเรานําวิธีการแกปญหาตางวิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎี
ซึ่งมีรูปแบบที่แนนอนได และบางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่
เราจะศึกษาตอไป ลองพิจารณาปญหาตอไปนี้
ตัวอยางที่ 1 เกมทายใจ คือ เกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่ง คือ
ผูกําหนด เปนคนกําหนดเลข 3 ตัว ที่ไมซ้ํากันโดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือ ผูทาย เปนผูทายเลข 3
ตัว ที่ไมซ้ํากัน ที่ผูกําหนดไดกําหนดเอาไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตองใหรายละเอียดวา
ตัวเลขที่ทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตองบอกวาถูกตําแหนงกี่ตัว เชน ถา
ตัวเลขที่กําหนดไวเปน 815 และ ผูทายทายวา 123 ผูกําหนดตองแจงวาตัวเลขที่ทายนั้นถูก 1 ตัว และไมมีตัวใดถูก
ตําแหนง รูปที่ 1 เปนตารางแสดงขอมูลการเลนเกมทายใจ
ตัวเลขที่ทาย จํานวนตัวเลขที่ถูก จํานวนตําแหนงที่ถูก
123 1 -
415 2 2
425 1 1
416 1 1
715 2 2
815 3 3
รูปที่ 1 ขอมูลการเลนเกมทายใจ
จะเห็นวาการแกปญหาดังกลาวขางตน นอกจากจะใชวิธีลองผิดลองถูกในการทายครั้งแรกๆ แลวยังมีการใช
เหตุผลประกอบการแกปญหาซึ่งเราเรียกวิธีการดังกลาววา "วิธีขจัด" (method of elimination) กลาวคือ จะแยกขอมูล
ออกเปนกรณีที่เปนไปไมไดทิ้ง จนเหลือกรณีที่เปนไปได วิธีการดังกลาวสามารถอธิบายไดวาทําไมจึงคิดหรือทํา
เชนนั้น รูปแบบของการใชเหตุผลประกอบการแกปญหาอาจแตกตางกัน ขึ้นอยูกับเงื่อนไข ในปญหาบางปญหา อาจจะ
ขจัดใหเหลือกรณีเดียวไมได ก็อาจจะทําใหเหลือกรณีนอยที่สุด นอกจากเกมทายใจเรายังมีเกมลับสมองที่นาสนใจและ
ทาทายความสามารถในการแกปญหาอยูอีกมากมายที่หาเลนไดตามเว็บไซต
นอกจากวิธีการแกปญหาที่ยกตัวอยางมาซึ่งไดแก วิธีการลองผิดลองถูก การใชเหตุผล การใชวิธีขจัด
ยังมีวิธี การแกป ญหาอีกมากมายที่ผูแกป ญหาสามารถเลือกใชใ ห เข ากับ ตั ว ปญหาและประสบการณของผู
แกปญหาเอง แตอยางไรก็ตาม วิธการเหลานี้ลวนมีขั้นตอนที่คลายคลึงกัน และจากการศึกษาพฤติกรรมในการ
ี
เรียนรูและแกปญหาของมนุษยพบวาโดยปกติมนุษยมีกระบวนการในการแกปญหาประกอบดวย 4 ขั้นตอนดัง
รูปที่ 2
3. -3-
วิเคราะหและกําหนด
รายละเอียดของปญหา
เลือกเครื่องมือ / ออกแบบ
ดําเนินการแกปญหา
ตรวจสอบและปรับปรุง
รูปที่ 2 แสดงกระบวนการแกปญหา
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. -4-
ตัวอยางที่ 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 ซึ่งคือผลลัพธ)
2) การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development)
ขั้นตอนนี้เปนขั้นตอนของการวางแผนในการแกปญหาอยางละเอียดถี่ถวน หลังจากที่เราทําความ
เขาใจกั บปญ หา พิจารณาขอ มูลและเงื่อ นไขที่ มีอยู และสิ่ งที่ต องการหาแล วในขั้น ตอนที่ 1 เราสามารถ
คาดคะเนวิธีการที่เราจะใชในการแกปญหากระบวนการนี้จําเปนอาศัยประสบการณของผูแกปญหาเปนหลัก
หากผูแกปญหาเคยพบกับปญหาทํานองนี้มาแลวก็สามารถดําเนินการตามแนวทางที่เคยปฏิบัตมา ขั้นตอนนี้
ิ
จะเริ่มจากการเลือกเครื่องมือที่ใชในการแกปญหา โดยพิจารณาความเหมาะสมระหวางเครื่องมือกับเงื่อนไข
ตางๆ ของปญหา ซึ่งหมายรวมถึงความสามารถของเครื่องมือในการแกปญหาดังกลาว และสิ่งที่สําคัญคือ
ความคุนเคยในการใชงานเครื่องมือนั้นๆ ของผูแกปญหา
อีกสิ่งหนึ่งที่สําคัญในการแกปญหา คือ ยุทธวิธีที่ใชในการแกปญหาหรือที่เราเรียกวา ขั้นตอนวิธี
(algorithm) ในการแกปญหา หลังจากที่เราไดเครื่องมือชวยแกปญหาแลว ผูแกปญหาตองวางแผนวาจะใช
เครื่องมือดังกลาวอยางเพื่อใหไดผลลัพธที่ถูกตองและดีที่สุด ในการออกแบบขั้นตอนวิธีในการแกปญหา ผู
แกปญหาควรใชแผนภาพหรือเครื่องมือในการแสดงขั้นตอนการทํางานเพื่อใหงายตอความเขาใจเชน ผังงาน
(flowchart) รหัสลําลอง (pseudo code) การใชเครื่องมือชวยออกแบบดังกลาวนอกจากแสดงกระบวนการที่
ชัดเจนแลว ยังชวยใหผูแกปญหาสามารถหาขอผิพลาดของวิธีการที่ใชไดงายและแกไขไดอยางรวด
3) การดําเนินการแกปญหา (Implementation)
หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอยแลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใช
เครื่ อ งมื อ ที่ไ ด เ ลื อ กไว หากการแก ป ญ หาดั ง กล า วใชค อมพิ ว เตอร เ ข ามาช ว ยงาน ขั้ น ตอนนี้ ก็เ ป น การใช
โปรแกรมสําเร็จ หรือใชภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับ
เครื่องมือที่เลือกใช ซึ่งผูแกปญหาตองศึกษาที่เขาใจและเชี่ยวชาญ ในการดําเนินการอาจพบแนวทางที่ดีกวาที่
ออกแบบไวก็สามารถปรับเปลี่ยนได
5. -5-
4) การตรวจสอบและปรับปรุง (Refinement)
หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตอง
ตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจ
วาสามารถรองรับขอมูลเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการ
แกปญหานี้ไดผลลัพธที่ดีท่สุด
ี
5.2 การจําลองความคิด
ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่
สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณ ความรู และความมีเหตุผลแลว ยังควรรูจัก
วางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การ
จําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดีโดยเฉพาะปญหาที่
ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบเพื่อใหผูที่
เกี่ยวของไดเขาใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการ
กอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง
แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวาง
ผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบทบทวนและพิจารณาจาก
ผูเกี่ยวของหลายฝาย เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่
พอใจ ก็จะพิจารณาแกไขแบบแปลนสวนนั้น ๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการ
ซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบแปลนจึง
เปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเกี่ยวของอื่น ๆ เปนอยางมาก เพราะประหยัดเวลา คาใชจายและ
เขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คื อขอตกลงใหสรางอาคารของผูจางกับผู รับจางที่อ ยูในรูป แบบ
กะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยางยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสราง
อีกดวย
เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลายอยาง แตพอสรุปได
เปน 2 ลักษณะ ไดแก
1. ขอความหรือคําบรรยาย
2. สัญลักษณ
5.2.1) ขอความหรือคําบรรยาย
เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอนการ
ทํางานของโปรแกรมแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได
การเขียนขอความเพื่อการบรรยายขั้นตอนวิธีในการแกปญหาทางคอมพิวเตอร สามารถเรียกอีก
อยางหนึ่งไดวา รหัสเทียม (pseudo code)
6. -6-
ตัวอยางที่ 4 คําบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ
1. คลายสกรูยึดลอ
2. จอดรถหลบขางทาง
3. นําแมแรงออกยกรถ
4. ถอดลอออก นํายางอะไหลมาเปลี่ยน
5. ขันสกรูเขา เก็บยางที่ชํารุดเพื่อไปซอม
6. คลายแมแรง เก็บแมแรง
หลักการทั่วไปในการเขียนรหัสเทียม
1. สัญลักษณที่ใชในการดําเนินการทางคณิตศาสตรตางๆ จะถูกใชงานตามปกติ คือ “+” สําหรับ
การบวก “-” สําหรับการลบ “*” สําหรับการคูณ และ “/” สําหรับการหาร
2. ชื่อขอมูลแทนจํานวนที่จะถูกดําเนินการ
3. การกําหนดคาใหกับชื่อขอมูล เชน
เมื่อเราตองการกําหนดให ขอมูล pi มีคาเทากับ 3.14 สามารถเขียนไดดวยขอความ
pi←3.14 หรือ pi:=3.14 หรือ pi=3.14
ในการกําหนดคาทางคอมพิวเตอรดานซายของเครื่องหมายมักใชแทน ที่เก็บขอมูล และ
ดานขวาแทน ขอมูลที่ตองการนําไปเก็บ (ดังนั้นหากใชขอความวา 3.14=pi ถือวาไมถูกตอง
ตามความหมายนี้)
4. คําสงวนบางคําที่ใชในภาษาระดับสูงทั่วไปอาจถูกนํามาใช เชน Read หรือ Enter สําหรับ
การรับขอมูลเขา และ Write หรือ Print สําหรับการแสดงขอมูลออก
5. การเพิ่ ม หรื อ ลดระยะย อ หน า อย า งเหมาะสม เพื่ อ แสดงระดั บ ของขั้ น ตอนการทํ า งานใน
โครงสรางควบคุมการทํางานในกลุมเดียวกัน
5.2.2) สัญลักษณหรือแผนภาพ
เครื่องหมายรูปแบบตางๆ ซึ่งใชสําหรับสื่อสารความหมายใหเขาใจตรงกัน สถาบันมาตรฐานแหงชาติ
อเมริกัน (The American National Standard Institute, ANSI) ไดกําหนดสัญลักษณไวเปนมาตรฐานแลว
สมควรนําไปใชไดตามความเหมาะสมตอไป ซึ่งมีรายละเอียดรูปแบบและความหมายที่ควรทราบตามตาราง
ตอไปนี้
การนําสัญลักษณไปใชเพื่อแสดงขั้นตอนการทํางานตางๆ ของงานหรือโปรแกรม รวมถึงแสดงการ
ไหลของขอมูลในระบบตั้งแตแรกจนไดผลลัพธตามตองการเรียกวา การเขียนผังงาน(Flowchart) ซึ่งสามารถ
แบงออกไดเปน 2 แบบคือ
7. -7-
1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงขั้นตอนตางๆ ในการทํางานของ
ระบบ ชวยอธิบายลําดับการทํางานของสวนตางๆ ในระบบ เชน การนําขอมูลเขา(Input) ถูกเก็บ
อยูที่ใดบาง ใช สื่อบัน ทึกขอ มูลแบบใด ลักษณะของการประมวลผล ตลอดจนลักษณะของ
ผลลัพธ(Output) ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียนโปรแกรมและผูที่
เกี่ยวของที่ตองการทําความเขาใจการทํางานของระบบ ตัวอยางดังรูปที่ 3
เอกสารขอมูล
โปรแกรมปรับปรุงขอมูล
แฟมขอมูล รายงาน
รูปที่ 3 ผังงานระบบ
2. ผังงานโปรแกรม(Program Flowchart) หมายถึง ผังงานที่ใชในการแสดงการทํางานของ
โปรแกรมโดยละเอียดในแตละขั้นตอน ผังงานโปรแกรมเปนสิ่งจําเปนสําหรับผูเขียนโปรแกรม
เพราะตองใชเปนแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิดขอผิดพลาดการเขาไป
วิเคราะหผังงานโปรแกรมจะทําไดงายกวาการเขาไปวิเคราะหตัวโปรแกรมโดยตรง
ประโยชนของผังงาน
1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางขั้นตอนในการทํางาน
ตางๆ
2. ใช เ ปน สื่ อ กลางในการติ ดต อ ประสานความคิ ด ระหวา งผู ที่เ กี่ ยวข อ ง เชน นั กวิ เ คราะหร ะบบ
(systems analyst) นักเขียนโปรแกรม(programmer)
3. ชวยในการทดสอบหรือทบทวนขั้นตอนการทํางาน เพื่อหาขอผิดพลาด
8. -8-
ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ
สัญลักษณ ความหมาย
การทํางานดวยมือ ( Manual Operation ) แทนจุดที่มี
การทํางานดวยแรงคน
การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูล
เขาหรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ
แถบบันทึกขอมูล(Magnetic tape) แทนจุดที่จะนําขอมูลเขาหรือออกจาก
โปรแกรมดวยแถบบันทึกขอมูล
จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม
ดวยจานบันทึกขอมูล
การปอนขอมูลเขาดวยมือ ( Manual Input ) แทนจุดที่จะนําขอมูลเขา
ดวยมือ
การแสดงขอมูล ( Display ) แทนจุดที่จะนําขอมูลเขาดวยจอภาพ
การทําเอกสาร ( Document ) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย
เครื่องพิมพ
การตัดสินใจ ( Decision ) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง
การปฏิบัติงาน ( Process) แทนจุดที่มการปฏิบัติงานอยางใดอยางหนึ่ง
ี
9. -9-
การเตรียมการ (Preparation) แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ
การเรียกโปรแกรมภายนอก (External subroutine) แทนจุดเรียกใชโปรแกรม
ยอยที่ไมไดอยูในโปรแกรมนั้น
การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่
อยูในโปรแกรมนั้น
การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด
ทิศทาง (Flow line) แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกัน
ตามหัวลูกศรชี้
หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด
ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน
การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย
ขอมูลดวยระบบติดตอทางไกล
จุดเชื่อมตอ (Connector) แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อให
ดูงาย
จุดเชื่อมตอหนากระดาษ (Off page Connector) แทนจุดเชื่อมตอของ
ผังงานที่อยูคนละหนากระดาษ
เริ่มตนและลงทาย (Terminal) แทนจุดเริ่มตนและลงทายของผังงานของ
โปรแกรมหลักและโปรแกรมยอย
10. - 10 -
ตัวอยางที่ 5 การวางแผนไปโรงเรียน
การจําลองความคิดดวยรหัสเทียม การจําลองความคิดเปนสัญลักษณ
เริ่มตน
ตื่นนอน เริ่มตน
อาบน้ําแตงตัว
ไปโรงเรียน ตื่นนอน
จบ
อาบน้ําแตงตัว
ไปโรงเรียน
จบ
ตัวอยางที่ 6 การคํานวณพื้นที่รปวงกลม
ู
การจําลองความคิดดวยรหัสเทียม การจําลองความคิดเปนสัญลักษณ
เริ่มตน
รับคา radius เริ่มตน
คํานวณพื้นที่ดวยสูตร
area= 22/7*radius*radius รับคา radius
แสดงคา area
จบ area = 22/7 * radius * radius
แสดงคา area
จบ
11. - 11 -
ตัวอยางที่ 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
จบ
12. - 12 -
5.3 การเขียนโปรแกรม
จากการศึกษาหลักการขั้นตอนการแกปญหา ในหัวขอ 5.1 และ 5.2 หลังจากที่เราสามารถวิเคราะหปญหา
และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอนตอไปคือ การลงมือแกปญหาตามขั้นตอน
ที่ไดออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หากเครื่องมือที่นักเรียนเลือก คือ ภาษาคอมพิวเตอรซึ่ง
ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร
การเขียนโปรแกรม (programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของ
ข อ มู ล และกํ า หนดขั้ น ตอนวิ ธี เ พื่ อ ใช แ ก ป ญ หาตามที่ ไ ด อ อกแบบไว โ ดยอาศั ย หลั ก เกณฑ ก ารเขี ย นโปรแกรม
คอมพิวเตอรของแตละภาษา
กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาที่จะนํามาชวยใชงานโดยพิจารณาจากปจจัย
ตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบ
ค อ ม พิ ว เ ต อ ร เ ป น ต น เ นื่ อ ง จ า ก ใ น ป จ จุ บั น มี ภ า ษ า ค อ ม พิ ว เ ต อ ร ใ ห เ ลื อ ก ไ ด ห ล า ย ภ า ษ า เ ช น
ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย เปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงาน
ที่ แ ตกต า งกั น แต ทุ ก ภาษาจะต อ งมี โ ครงสร า งควบคุ ม หลั ก ทั้ ง 3 แบบได แ ก โครงสร า งแบบลํ า ดั บ
(sequential structure) โครงสรางแบบมีทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition
structure)
5.3.1) โครงสรางแบบลําดับ
โครงสรางแบบลําดับ คือโครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละ
ขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเทานั้น สามารถแสดงการทํางานของโครงสรางนี้โดยใชผงงานไดดังรูป
ั
คําสั่งที่ 1
คําสั่งที่ 2
คําสั่งที่ 3
…….
คําสั่งที่ n
รูปที่ 4 แสดงการทํางานของโครงสรางแบบลําดับ
13. - 13 -
5.3.2) โครงสรางแบบมีทางเลือก
โครงสรางแบบมีทางเลือก คือโครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจ
เพื่อเลือกวิธีการประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมี 2 ทางหรือ
มากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทางเราเรียกชื่อวา โครงสรางแบบ if…then…else… และโครงสรางที่มี
ทางเลือกมากกวา 2 ทาง เราเรียกชื่อวาโครงสรางแบบ case ซึ่งสามารถแสดงการทํางานของโครงสรางนี้โดยใชผังงาน
ดังรูป
เท็จ
เงื่อนไข
จริง
คําสั่ง คําสั่ง
รูปที่ 5 แสดงการทํางานของโครงสราง if…then…else…
เงื่อนไข
กรณีท่ี 1 กรณีที่ 2 กรณีที่ 3 กรณีที่ n
คําสั่ง คําสั่ง คําสั่ง ….. คําสั่ง
รูปที่ 6 แสดงการทํางานของโครงสราง case
14. - 14 -
ตัวอยางที่ 8 แสดงผังงานที่จําลองขั้นตอนวิธการเขียนและสงจดหมายใหอยูในรูปของสัญลักษณ
ี
เริ่มตน
เขียนจดหมาย
พับจดหมายใสซอง
จาหนาซอง
ปดซองจดหมาย
เท็จ
มีแสตมป
จริง
ซื้อแสตมป
ติดแสตมป
สงจดหมาย
จบ
15. - 15 -
ตัวอยางที่ 9 แสดงผังงานทีจําลองขั้นตอนวิธีของเกมหยิบลูกบอลใหอยูในรูปของสัญลักษณ โดยมีเงื่อนไขวา
่
มีลูกบอลซึ่ง มี 5 สี
กรณีหยิบไดสีแดง จะได 10 คะแนน
กรณีหยิบไดสีฟา จะได 8 คะแนน
กรณีหยิบไดสีเขียว จะได 6 คะแนน
กรณีหยิบไดสีเหลือง จะได 4 คะแนน
กรณีหยิบไดสีสม จะได 2 คะแนน
เริ่มตน
หยิบลูกบอล 1 ลูก
สีของลูกบอล
สีแดง สีฟา สีเขียว สีเหลือง สีสม
ได 10 คะแนน ได 8 คะแนน ได 6 คะแนน ได 4 คะแนน ได 2 คะแนน
จบ
5.3.3) โครงสรางแบบทําซ้า ํ
โครงสรางแบบทําซ้ํา คือโครงสรางที่ขั้นตอนการทํางานบางขั้นตอนไดรับการประมวลผลมากกวา 1
ครั้ง ทังนี้ขนอยูกับเงื่อนไขบางประการ โครงสรางแบบทําซ้ํานี้ตองมีการตัดสินใจในการทํางานซ้ํา และลักษณะการ
้ ึ้
ทํางานของโครงสรางแบบนี้มี 2 ลักษณะ ไดแก
แบบที่มีการตรวจสอบเงื่อนไขในการทําซ้ําทุกครั้งกอนดําเนินการกิจกรรมใดๆ ถาเงื่อนไขเปนจริงจะ
ทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ การทํางานลักษณะนี้แบงไดเปน 2 แบบยอย ไดแก การทําซ้ําแบบ
for และแบบ while ลักษณะการทํางานของทั้งสองแบบนี้จะเหมือนกัน โดยสําหรับแบบ for นั้นมักใชกรณีที่ตองการ
กําหนดจํานวนรอบการทํางานที่ชัดเจน
แบบที่มีการดําเนินการกิจกรรมใดๆ กอนจํานวนหนึ่งรอบ แลวจึงคอยตรวจสอบเงื่อนไขในการทําซ้ํา
ถาเงื่อนไขเปนจริงจะทํางานซ้ําไปเรื่อยๆ และหยุดเมื่อเงื่อนไขเปนเท็จ เรียกการทํางานแบบนี้วา การทําซ้ําแบบ
do…while ผังงานแสดงขั้นตอนการทํางานซ้ําทั้งสองแบบแสดงดังรูปที่ 7 และ 8
16. - 16 -
คําสั่ง
…
คําสั่ง
จริง
เงื่อนไข
เท็จ
รูปที่ 7 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while
คําสั่ง
…
คําสั่ง
จริง
เงื่อนไข
เท็จ
รูปที่ 8 แสดงการทํางานของการทําซ้ําแบบ do…while
โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ขั้นตอนที่เราใชในการแกปญหานั้นเอง พิจารณา
ตัวอยางที่ 10 เปนขั้นตอนการเลือกเครื่องมือและการออกแบบขั้นตอนวิธี คือ ขั้นตอนที่ 2 ในหัวขอ 5.1 เราเลือกสราง
ผังงานมาจําลองขั้นตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดง
โครงสรางควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย
17. - 17 -
ตัวอยางที่ 10 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ
สัญลักษณ
เริ่มตน
กําหนดคาเริ่มตน
sum=0
กําหนดคาเริ่มตน
N=1
เพิ่มคาตัวนับจํานวน
N=N+1
เพิ่มคาผลบวก
sum=sum+data
รับตัวเลขเปนขอมูลเขาทีละตัว
เก็บในตัวแปรชื่อ data
N≤5 จริง
เท็จ
คํานวณคาเฉลี่ยเก็บในตัวแปร A
A=sum/5
แสดงคา A
จบ