Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ch1

17 views

Published on

c++

Published in: Education
  • Be the first to comment

  • Be the first to like this

Ch1

  1. 1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 รูปแบบหลายทางเลือก คําสั่ง เงื่อนไข เท็จ จริง คําสั่ง
  13. 13. M W ITSM ahidolW ittayanusorn School M W ITS สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์ - 13 - รูปที่ 6 แสดงการทํางานของโครงสราง switch ตัวอยางที่ 8 ผังงานที่จําลองขั้นตอนวิธีการเขียนและสงจดหมายใหอยูในรูปของสัญลักษณ โครงสรางแบบมี ทางเลือก if เริ่มตน จบ เขียนจดหมาย พับจดหมายใสซอง จาหนาซอง ปดซองจดหมาย ไมมีแสตมป เท็จ จริง ซื้อแสตมป ติดแสตมป สงจดหมาย เงื่อนไข ….. กรณีที่ 1 กรณีที่ 2 กรณีที่ 3 กรณีที่ n คําสั่ง คําสั่ง คําสั่งคําสั่ง
  14. 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. 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
  16. 16. M W ITSM ahidolW ittayanusorn School M W ITS สาขาวิชาวิทยาการคอมพิวเตอร์ โรงเรียนมหิดลวิทยานุสรณ์ - 16 - ตัวอยางที่ 10 แสดงผังงานที่จําลองขั้นตอนวิธีการหาคาเฉลี่ยของจํานวนเต็ม 5 จํานวน ใหอยูในรูปของสัญลักษณ โครงสราง แบบทําซ้ํา เริ่มตน จบ sum=0 N=1 จริง เท็จ Sum = SUM+DATA data N=N+1 N ≤ 5 A=SUM / (N-1) A รับคา แสดงผล

×