บทที่ 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
การจําลองความคิด
-2-
5.1 ขั้นตอนการพัฒนาซอฟตแวร ในชีวิตประจําวันทุกคนตองเคยพบกับปญหาตางๆ ไมวาจะเปนปญหาดานการเรียน การงาน การเงิน หรือ แมแตการเลนเกม เมื่อพบกับปญหาแตละคนมีวิธีที่จะจัดการหรือแกปญหาเหลานั้นแตกตางกันไป ซึ่งแตละวิธีการอาจ ใหผลลัพธที่เหมือนหรือแตกตางกันเล็กนอย ทั้งนี้ขึ้นอยูกับความรู ความสามารถ และประสบการณของบุคคลผูนั้น อยางไรก็ตาม หากเรานําวิธีการแกปญหาตางวิธีนั้นมาวิเคราะหใหดี จะพบวาสามารถสรุปวิธีการเหลานั้นเปนทฤษฎี ซึ่งมีรูปแบบที่แนนอนได และบางครั้งตองอาศัยการเรียนรูในระดับสูงเพื่อแกปญหาบางอยางใหสมบูรณแบบ แตกอนที่ เราจะศึกษาตอไป ลองพิจารณาปญหาตอไปนี้ ตัวอยางที่ 1 เกมทายใจ คือ เกมใหผูเลนทายตัวเลข 3 ตัว ในการเลนเกมตองใชผูเลน 2 คน คนที่หนึ่ง คือ ผูกําหนด เปนคนกําหนดเลข 3 ตัว ที่ไมซ้ํากันโดยเลือกจากกลุมตัวเลข 1-9 และอีกคนหนึ่งคือ ผูทาย เปนผูทายเลข 3 ตัว ที่ไมซ้ํากัน ที่ผูกําหนดไดกําหนดเอาไวแลว หลังจากที่ผูทายทายเลขแตละครั้ง ผูกําหนดตองใหรายละเอียดวา ตัวเลขที่ทายมานั้นถูกตองกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตําแหนงดวยก็ตองบอกวาถูกตําแหนงกี่ตัว เชน ถา ตัวเลขที่กําหนดไวเปน 815 และ ผูทายทายวา 123 ผูกําหนดตองแจงวาตัวเลขที่ทายนั้นถูก 1 ตัว และไมมีตัวใดถูก ตําแหนง รูปที่ 1 เปนตารางแสดงขอมูลการเลนเกมทายใจ ตัวเลขที่ทาย 123 415 425 416 715 815
จํานวนตัวเลขที่ถูก 1 2 1 1 2 3 รูปที่ 1 ขอมูลการเลนเกมทายใจ
จํานวนตําแหนงที่ถูก 2 1 1 2 3
จะเห็นวาการแกปญหาดังกลาวขางตน นอกจากจะใชวิธีลองผิดลองถูกในการทายครั้งแรกๆ แลวยังมีการใช เหตุผลประกอบการแกปญหาซึ่งเราเรียกวิธีการดังกลาววา "วิธีขจัด" (method of elimination) กลาวคือ จะแยกขอมูล ออกเปนกรณีที่เปนไปไมไดทิ้ง จนเหลือกรณีที่เปนไปได วิธีการดังกลาวสามารถอธิบายไดวาทําไมจึงคิดหรือทํา เชนนั้น รูปแบบของการใชเหตุผลประกอบการแกปญหาอาจแตกตางกัน ขึ้นอยูกับเงื่อนไข ในปญหาบางปญหา อาจจะ ขจัดใหเหลือกรณีเดียวไมได ก็อาจจะทําใหเหลือกรณีนอยที่สุด นอกจากเกมทายใจเรายังมีเกมลับสมองที่นาสนใจและ ทาทายความสามารถในการแกปญหาอยูอีกมากมายที่หาเลนไดตามเว็บไซต
นอกจากวิธีการแกปญหาที่ยกตัวอยางมาซึ่งไดแก วิธีการลองผิดลองถูก การใชเหตุผล การใชวิธีขจัด ยังมีวิธี การแก ปญหาอีกมากมายที่ผูแกปญหาสามารถเลือกใชใ ห เข ากับ ตั ว ปญหาและประสบการณของผู แกปญหาเอง แตอยางไรก็ตาม วิธีการเหลานี้ลวนมีขั้นตอนที่คลายคลึงกัน และจากการศึกษาพฤติกรรมในการ เรียนรูและแกปญหาของมนุษยพบวาโดยปกติมนุษยมีกระบวนการในการแกปญหาประกอบดวย 4 ขั้นตอนดัง รูปที่ 2 รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-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
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-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) หลังจากที่ไดออกแบบขั้นตอนวิธีเรียบรอยแลว ขั้นตอนนี้เปนขั้นตอนที่ตองลงมือแกปญหาโดยใช เครื่ อ งมื อ ที่ไ ด เ ลื อ กไว หากการแก ป ญ หาดั ง กล า วใชค อมพิ ว เตอร เ ข ามาช ว ยงาน ขั้ น ตอนนี้ ก็เ ป น การใช โปรแกรมสําเร็จ หรือใชภาษาคอมพิวเตอรเขียนโปรแกรมแกปญหา ขั้นตอนนี้ตองอาศัยความรูเกี่ยวกับ เครื่องมือที่เลือกใช ซึ่งผูแกปญหาตองศึกษาที่เขาใจและเชี่ยวชาญ ในการดําเนินการอาจพบแนวทางที่ดีกวาที่ ออกแบบไวก็สามารถปรับเปลี่ยนได
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-5-
4) การตรวจสอบและปรับปรุง (Refinement) หลังจากที่ลงมือแกปญหาแลว ตองตรวจสอบใหแนใจวาวิธีการนี้ใหผลลัพธที่ถูกตอง โดยผูแกปญหาตอง ตรวจสอบวาขั้นตอนวิธีที่สรางขึ้นสอดคลองกับรายละเอียดของปญหา ซึ่งไดแก ขอมูลเขา และขอมูลออก เพื่อใหมั่นใจ วาสามารถรองรับขอมูลเขาไดในทุกกรณีอยางถูกตองและสมบูรณ ในขณะเดียวกันก็ตองปรับปรุงวิธีการเพื่อใหการ แกปญหานี้ไดผลลัพธที่ดีที่สุด
5.2 การจําลองความคิด ขั้นตอนที่สําคัญในการแกปญหาคือการวางแผน การวางแผนที่ดีจะชวยใหการแกปญหาเปนไปไดโดยงาย ผูที่ สามารถวางแผนในการแกปญหาไดดีนอกจากจะตองใชประสบการณ ความรู และความมีเหตุผลแลว ยังควรรูจัก วางแผนใหเปนขั้นตอนอยางเปนระเบียบดวย การจําลองความคิดเปนสวนหนึ่งในขั้นตอนที่สองของการแกปญหา การ จําลองความคิดออกมาในลักษณะเปนขอความ หรือเปนแผนภาพจะชวยใหสามารถแกปญหาไดดีโดยเฉพาะปญหาที่ ยุงยากซับซอน การวางแผนจะเปนแนวทางในการดําเนินการแกปญหาตอไป อีกทั้งเปนการแสดงแบบเพื่อใหผูที่ เกี่ยวของไดเขาใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ดวยวัตถุประสงคอยางเดียวกับกลุมกิจการ กอสราง ซึ่งจําเปนตองมีแบบแปลนเปนเครื่องมือติดตอสื่อสารระหวางผูออกแบบและผูกอสราง แบบแปลนเหลานั้นจะอยูในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเปนที่เขาใจกันระหวาง ผูเกี่ยวของ แบบแปลนจะตองจัดทําใหเสร็จกอนที่จะลงมือกอสราง โดยผานการตรวจสอบทบทวนและพิจารณาจาก ผูเกี่ยวของหลายฝาย เมื่อเห็นวาเปนที่ถูกตองและพอใจของทุกฝายแลว จึงกอสรางตามแบบนั้น แตถายังไมเปนที่ พอใจ ก็จะพิจารณาแกไขแบบแปลนสวนนั้น ๆ เสียกอนจะไดไมตองรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อตองการ ซอมแซมหรือตอเติมก็นําเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในสวนนั้นไดโดยงาย การใชแบบแปลนจึง เปนสิ่งที่จําเปนระหวางชางกอสราง ผูออกแบบและผูเกี่ยวของอื่น ๆ เปนอยางมาก เพราะประหยัดเวลา คาใชจายและ เขาใจงาย เมื่อสรุปรวมแลวแบบแปลนเหลานั้นก็คื อขอตกลงใหสรางอาคารของผูจางกับผู รับจางที่อ ยูในรูป แบบ กะทัดรัด แทนที่จะเขียนเปนขอความที่เปนลายลักษณอักษรอยางยืดยาว และยังเปนเครื่องมือใหชางใชในการกอสราง อีกดวย เครื่องมือที่ใชในการจําลองความคิดมักจะประกอบขึ้นดวยเครื่องหมายที่แตกตางกันหลายอยาง แตพอสรุปได เปน 2 ลักษณะ ไดแก 1. ขอความหรือคําบรรยาย 2. สัญลักษณ 5.2.1) ขอความหรือคําบรรยาย เปนการเขียนเคาโครงดวยการบรรยายเปนภาษาที่มนุษยใชสื่อสารกัน เพื่อใหทราบถึงขั้นตอนการ ทํางานของโปรแกรมแตละตอน ในบางครั้งอาจใชคําสั่งของภาษาที่ใชเขียนโปรแกรมก็ได การเขียนขอความเพื่อการบรรยายขั้นตอนวิธีในการแกปญหาทางคอมพิวเตอร สามารถเรียกอีก อยางหนึ่งไดวา รหัสเทียม (pseudo code)
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-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 แบบคือ
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-7-
1. ผังงานระบบ(System Flowchart) หมายถึง ผังงานที่แสดงขั้นตอนตางๆ ในการทํางานของ ระบบ ชวยอธิบายลําดับการทํางานของสวนตางๆ ในระบบ เชน การนําขอมูลเขา(Input) ถูกเก็บ อยูที่ใดบาง ใช สื่อบัน ทึกขอ มูลแบบใด ลักษณะของการประมวลผล ตลอดจนลักษณะของ ผลลัพธ(Output) ผังงานระบบจะชวยอํานวยความสะดวกใหแกผูเขียนโปรแกรมและผูที่ เกี่ยวของที่ตองการทําความเขาใจการทํางานของระบบ ตัวอยางดังรูปที่ 3 เอกสารขอมูล
โปรแกรมปรับปรุงขอมูล
แฟมขอมูล
รายงาน
รูปที่ 3 ผังงานระบบ 2. ผังงานโปรแกรม(Program Flowchart) หมายถึง ผังงานที่ใชในการแสดงการทํางานของ โปรแกรมโดยละเอียดในแตละขั้นตอน ผังงานโปรแกรมเปนสิ่งจําเปนสําหรับผูเขียนโปรแกรม เพราะตองใชเปนแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิดขอผิดพลาดการเขาไป วิเคราะหผังงานโปรแกรมจะทําไดงายกวาการเขาไปวิเคราะหตัวโปรแกรมโดยตรง ประโยชนของผังงาน 1. ใชแทนการจําลองความคิด ชวยใหเขาใจลําดับและความสัมพันธระหวางขั้นตอนในการทํางาน ตางๆ 2. ใช เ ปน สื่ อ กลางในการติ ดต อ ประสานความคิ ด ระหวา งผู ที่เ กี่ ยวข อ ง เชน นั กวิ เ คราะหร ะบบ (systems analyst) นักเขียนโปรแกรม(programmer) 3. ชวยในการทดสอบหรือทบทวนขั้นตอนการทํางาน เพื่อหาขอผิดพลาด
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-8-
ตารางที่ 1 แสดงสัญลักษณและความหมายของสัญลักษณ สัญลักษณ
ความหมาย การทํางานดวยมือ ( Manual Operation ) แทนจุดที่มี การทํางานดวยแรงคน
การนําขอมูลเขา-ออกโดยทั่วไป(General input/output) แทนจุดที่จะนําขอมูล เขาหรือออกจากระบบคอมพิวเตอรโดยไมระบุชนิดอุปกรณ แถบบันทึกขอมูล(Magnetic โปรแกรมดวยแถบบันทึกขอมูล
tape) แทนจุดที่จะนําขอมูลเขาหรือออกจาก
จานบันทึกขอมูล(Magnetic disk) แทนจุดที่จะนําขอมูลเขาหรือออกจากโปรแกรม ดวยจานบันทึกขอมูล
การปอนขอมูลเขาดวยมือ ( Manual Input ) แทนจุดที่จะนําขอมูลเขา ดวยมือ
การแสดงขอมูล ( Display ) แทนจุดที่จะนําขอมูลเขาดวยจอภาพ
การทําเอกสาร ( Document ) แทนจุดที่มีขอมูลเปนเอกสารหรือแสดงขอมูลดวย เครื่องพิมพ
การตัดสินใจ ( Decision ) แทนจุดที่จะตองเลือกปฏิบัติอยางใดอยางหนึ่ง
การปฏิบัติงาน ( Process) แทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
-9-
การเตรียมการ (Preparation) แทนจุดกําหนดชื่อขอมูลหรือคาเริ่มตนตางๆ
การเรียกโปรแกรมภายนอก (External subroutine) แทนจุดเรียกใชโปรแกรม ยอยที่ไมไดอยูในโปรแกรมนั้น
การเรียกโปรแกรมภายใน (Internal subroutine) แทนจุดเรียกใชโปรแกรมยอยที่ อยูในโปรแกรมนั้น
การเรียงขอมูล (Sort) แทนจุดที่มีการเรียงขอมูลใหมตามขอกําหนด
ทิศทาง (Flow line) แทนทิศทางขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกัน ตามหัวลูกศรชี้
หมายเหตุ (Annotation) แทนจุดที่แสดงรายละเอียดเพิ่มเติมหรือหมายเหตุของจุด ตางๆ ที่แสดงในผังงานดวยสัญลักษณไมชัดเจน
การติดตอทางไกล (Communication Link) แทนชวงที่มีการติดตอหรือการยาย ขอมูลดวยระบบติดตอทางไกล
จุดเชื่อมตอ (Connector) ดูงาย
แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อให
จุดเชื่อมตอหนากระดาษ (Off ผังงานที่อยูคนละหนากระดาษ
เริ่มตนและลงทาย (Terminal) โปรแกรมหลักและโปรแกรมยอย
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
page
Connector)
แทนจุดเชื่อมตอของ
แทนจุดเริ่มตนและลงทายของผังงานของ
ภาคเรียนที่ 1/2552
- 10 -
ตัวอยางที่ 5 การวางแผนไปโรงเรียน ¾ การจําลองความคิดดวยรหัสเทียม
เริ่มตน ตื่นนอน อาบน้ําแตงตัว ไปโรงเรียน
¾ การจําลองความคิดเปนสัญลักษณ เริ่มตน ตื่นนอน
จบ อาบน้ําแตงตัว ไปโรงเรียน จบ
ตัวอยางที่ 6 การคํานวณพื้นที่รูปวงกลม ¾ การจําลองความคิดดวยรหัสเทียม เริ่มตน รับคา radius คํานวณพื้นที่ดวยสูตร area= 22/7*radius*radius แสดงคา area จบ
¾ การจําลองความคิดเปนสัญลักษณ เริ่มตน รับคา radius area = 22/7 * radius * radius แสดงคา area
จบ
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 11 -
ตัวอยางที่ 7 การจําลองความคิดในการหาผลบวก 1,2,3,4,5,… จนถึง 20 ¾ การจําลองความคิดดวยรหัสเทียม
เริ่มตน 1. 2. 3. 4. 5.
กําหนดให N มีคาเริ่มตนเปน 0 กําหนดให K มีคาเริ่มตนเปน 1 นําคา K มารวมกับคา N เดิม ไดผลลัพธเทาไรเก็บไวที่ N นําคา 1 มารวมกับคา K เดิม ไดผลลัพธเทาไรเก็บไวที่ K เปรียบเทียบคา K กับ 20 ถา K นอยกวาหรือเทากับ 20 ใหวนกลับไปทําในขั้น 3 และ ทําคําสั่งถัดลงมาตามลําดับ แตถา K มากกวา 20 ใหแสดงคําตอบ
จบ ¾ การจําลองความคิดเปนสัญลักษณ เริ่มตน N=0 K=1
N=N+K K=K+1
K≤20
จริง
เท็จ แสดงคา N จบ
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 12 -
5.3 การเขียนโปรแกรม จากการศึกษาหลักการขั้นตอนการแกปญหา ในหัวขอ 5.1 และ 5.2 หลังจากที่เราสามารถวิเคราะหปญหา และสรางแบบจําลองความคิดเพื่อแสดงขั้นตอนในการแกปญหาแลว ขั้นตอนตอไปคือ การลงมือแกปญหาตามขั้นตอน ที่ไดออกแบบไว โดยใชเครื่องมือชวยในการแกปญหา ในที่นี้หากเครื่องมือที่นักเรียนเลือก คือ ภาษาคอมพิวเตอรซึ่ง ถือไดวาเปนขั้นตอนหนึ่งที่สําคัญในการแกปญหาดวยคอมพิวเตอร การเขียนโปรแกรม (programming) หมายถึง กระบวนการใชภาษาคอมพิวเตอรเพื่อกําหนดโครงสรางของ ข อ มู ล และกํ า หนดขั้ น ตอนวิ ธี เ พื่ อ ใช แ ก ป ญ หาตามที่ ไ ด อ อกแบบไว โ ดยอาศั ย หลั ก เกณฑ ก ารเขี ย นโปรแกรม คอมพิวเตอรของแตละภาษา กอนการเขียนโปรแกรม ผูพัฒนาโปรแกรมจะตองเลือกภาษาที่จะนํามาชวยใชงานโดยพิจารณาจากปจจัย ตางๆ ในการทํางาน เชน ลักษณะของปญหา ความถนัดของผูเขียนโปรแกรม สภาพแวดลอมในการทํางานของระบบ ค อ ม พิ ว เ ต อ ร เ ป น ต น เ นื่ อ ง จ า ก ใ น ป จ จุ บั น มี ภ า ษ า ค อ ม พิ ว เ ต อ ร ใ ห เ ลื อ ก ไ ด ห ล า ย ภ า ษ า เ ช น ภาษาปาสคาล ภาษาซี ภาษาจาวา ภาษาเดลฟาย เปนตน ถึงแมแตละภาษาจะมีรูปแบบและหลักการในการสรางงาน ที่ แ ตกต า งกั น แต ทุ ก ภาษาจะต อ งมี โ ครงสร า งควบคุ ม หลั ก ทั้ ง 3 แบบได แ ก โครงสร า งแบบลํ า ดั บ (sequential structure) โครงสรางแบบมีทางเลือก (selection structure) และโครงสรางแบบทําซ้ํา (repetition structure) 5.3.1) โครงสรางแบบลําดับ โครงสรางแบบลําดับ คือโครงสรางแสดงขั้นตอนการทํางานที่เปนไปตามลําดับกอนหลัง และแตละ ขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเทานั้น สามารถแสดงการทํางานของโครงสรางนี้โดยใชผังงานไดดังรูป คําสั่งที่ 1 คําสั่งที่ 2 คําสั่งที่ 3 …….
คําสั่งที่ n
รูปที่ 4 แสดงการทํางานของโครงสรางแบบลําดับ
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 13 -
5.3.2) โครงสรางแบบมีทางเลือก โครงสรางแบบมีทางเลือก คือโครงสรางที่มีเงื่อนไข ขั้นตอนการทํางานบางขั้นตอนตองมีการตัดสินใจ เพื่อเลือกวิธีการประมวลผลขั้นตอไป และจะมีบางขั้นตอนที่ไมไดรับการประมวลผล การตัดสินใจอาจมี 2 ทางหรือ มากกวาก็ได โครงสรางที่มีทางเลือกเพียง 2 ทางเราเรียกชื่อวา โครงสรางแบบ if…then…else… และโครงสรางที่มี ทางเลือกมากกวา 2 ทาง เราเรียกชื่อวาโครงสรางแบบ case ซึ่งสามารถแสดงการทํางานของโครงสรางนี้โดยใชผังงาน ดังรูป
เท็จ
เงื่อนไข จริง คําสั่ง
คําสั่ง
รูปที่ 5 แสดงการทํางานของโครงสราง if…then…else…
เงื่อนไข กรณีที่ 1
คําสั่ง
กรณีที่ 3
กรณีที่ 2
คําสั่ง
คําสั่ง
กรณีที่ n …..
คําสั่ง
รูปที่ 6 แสดงการทํางานของโครงสราง case
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 14 -
ตัวอยางที่ 8 แสดงผังงานที่จําลองขั้นตอนวิธีการเขียนและสงจดหมายใหอยูในรูปของสัญลักษณ เริ่มตน เขียนจดหมาย พับจดหมายใสซอง จาหนาซอง ปดซองจดหมาย
มีแสตมป
เท็จ
จริง ซื้อแสตมป
ติดแสตมป สงจดหมาย จบ
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 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
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 16 -
คําสั่ง …
คําสั่ง เงื่อนไข เท็จ
จริง
รูปที่ 7 แสดงการทํางานของการทําซ้ําแบบ for และแบบ while
คําสั่ง …
คําสั่ง เงื่อนไข เท็จ
จริง
รูปที่ 8 แสดงการทํางานของการทําซ้ําแบบ do…while โครงสรางควบคุมทั้ง 2 แบบที่กลาวมาขางตนก็คือ ขั้นตอนที่เราใชในการแกปญหานั้นเอง พิจารณา ตัวอยางที่ 10 เปนขั้นตอนการเลือกเครื่องมือและการออกแบบขั้นตอนวิธี คือ ขั้นตอนที่ 2 ในหัวขอ 5.1 เราเลือกสราง ผังงานมาจําลองขั้นตอนวิธีในการหาคาเฉลี่ยของจํานวน 5 จํานวน จากตัวอยางที่ 2 และในตัวอยางที่ 10 มีการแสดง โครงสรางควบคุมแบบลําดับและแบบทําซ้ําที่ใชในการแกปญหาดวย
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552
- 17 -
ตัวอยางที่ 10 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของ สัญลักษณ เริ่มตน กําหนดคาเริ่มตน sum=0
กําหนดคาเริ่มตน N=1
เพิ่มคาตัวนับจํานวน N=N+1
เพิ่มคาผลบวก sum=sum+data รับตัวเลขเปนขอมูลเขาทีละตัว เก็บในตัวแปรชื่อ data N≤5
เท็จ
จริง
คํานวณคาเฉลี่ยเก็บในตัวแปร A A=sum/5 แสดงคา A
จบ
แหลงที่มา หนังสือเรียนสาระการเรียนรูพื้นฐานเทคโนโลยีสารสนเทศ ชวงชั้นที่ 4 ชั้นมัธยมศึกษาปที่ 4-6 ตามหลักสูตรการศึกษา ขั้นพื้นฐาน พุทธศักราช 2544 รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน
ภาคเรียนที่ 1/2552