จัดทำโดย นำงสำวยลพกั ตร์ ขำวดี ม.4/1 เลขที่ 24
อลั กอรทิ ึม คืออะไร ขนั้ ตอนวธิ ี หรือ อัลกอรทิ ึม (องั กฤษ: algorithm) หมำยถึง ลำดับขัน้ ตอนใน กำรแก้ปญั หำ หรือกระบวนกำรแก้ปญั หำที่สำมำรถอธิบำยออกมำเป็น ขั้นตอนที่ชัดเจน เมื่อนำเข้ำอะไรแล้วจะตอ้ งไดผ้ ลลพั ธ์เช่นไร กระบวนกำรนจ้ี ะ ประกอบด้วย วธิ ีกำรเปน็ ขน้ั ๆ และมีส่วนท่ีตอ้ งทำแบบวนซำ้ อีก จนกระทั่ง เสรจ็ สิ้นกำรทำงำน ขั้นตอนวธิ มี บี ทบำทสำคัญเพรำะนอกจำกจะมขี ั้นตอนวิธีในกำรคำนวณทำง คณิตศำสตร์แลว้ ยังมขี ้ันตอนวิธีอ่ืนๆ ที่สำมำรถพบได้ในชีวติ ประจำวัน เชน่ กำรเขำ้ เวบ็ ไซตเ์ พื่อซ้อื ของออนไลน์ จะเหน็ วำ่ มีกำรแนะนำสินคำ้ ที่ตรงตำม ควำมต้องกำร , กำรออกแบบวงจรไฟฟำ้ , กำรทำงำนเครอื่ งจักรกล , หรอื แม้กระท่ังปัญหำในธรรมชำติ เชน่ วธิ ีของสมองมนษุ ย์ในกำรคิดเลข หรือ วธิ กี ำรขนอำหำรของแมลง อลั ควำริชมี (al-Khwarizmi) คอื ใคร อัลควำรชิ มี (al-Khwarizmi) หรือ มูฮมั หมดั อิบนุ มซู ำ (Muhammad Ibn Musa) นกั คณติ ศำสตร์ นกั ดำรำศำสตรช์ ำวเปอรเ์ ซยี เปน็ ผคู้ ดิ คน้ วิชำ พชี คณติ (Algebra) และอัลกอรทิ ึม (algorithm) ซึ่งหนงั สือของเขำได้รับกำร แปลเปน็ ภำษำละตินในครสิ ตศวรรษท่ี 12 และช่วยเชื่อมโยงคณิตศำสตรข์ อง ฮนิ ดู อำหรบั และกรีกเขำ้ ด้วยกนั และเปน็ พื้นฐำนกำรพฒั นำคณิตศำสตรใ์ น ยุโรปในเวลำตอ่ มำ ผลงำนของอลั ควำรชิ มี (al-Khwarizmi) ได้แก่ 1) เขียนตำรำช่ือ กิตำบ ซรู อต อลั อัรฎ (Kitab Surat al Aeb) เปน็ ตำรำ เก่ียวกับแผนที่เลม่ แรกในครศิ ตวรรษท่ี 9 2) เขยี นตำรำพชี คณิตที่ช่ือ หิซำบ อัล ญับร วะ อลั มกุ อบะละฮ (Hisab al Jabr we al Muqabalah) หรือ (Algebra) ท่ีหมำยถึง กำรคนื คำ่ (Restoring) ซ่ึงเป็นกระบวนกำรที่ทำให้คำ่ ท้ังสองข้ำงของสมกำรมีค่ำเท่ำกนั เปน็ ต้น
คณุ สมบตั ขิ องอลั กอริทมึ ในกำรออกแบบอัลกอรทิ มึ เพื่อใช้แกป้ ัญหำจะมคี วำมแตกตำ่ งกันออกไป ข้ึนอยกู่ ับปญั หำและต้องออกแบบใหม้ คี วำมยืดหยุ่นตำมปัญหำนน้ั หลกั กำร เขียนอลั กอรทิ มึ ที่ดี ต้องมีคุณสมบัติ ดังน้ี 1. เป็นกระบวนวธิ ีกำรท่ีสร้ำงขน้ึ จำกกฎเกณฑ์ : เน่ืองจำกอัลกอรทิ มึ จัดเปน็ รูปแบบหน่ึงของกำรแกป้ ญั หำ และกระบวนวธิ กี ำรก็คือกล่มุ ของข้ันตอนที่อยู่ รวมกันเพ่ือใช้แก้ปญั หำตำ่ ง ๆ เพื่อใหไ้ ด้ผลลพั ธ์ที่ถูกตอ้ ง ดังนั้นจึง จำเป็นต้องมกี ฎเกณฑ์ที่ใชใ้ นกำรสร้ำงกระบวนวิธกี ำรเหล่ำนนั้ ซึ่งอำจจะอยู่ ในรูปแบบประโยคภำษำมนษุ ยภ์ ำษำใดภำษำหนึ่ง รปู แบบสัญลกั ษณ์ หรือ รูปแบบรหสั จำลองก็ได้ 2. กำรเขียนอลั กอริทมึ ต้องไม่คลมุ เครือ : รูปแบบของกำรเขยี นอัลกอรทิ มึ จะตอ้ งมรี ะบบ ระเบียบ อ่ำนแล้วไม่ทำใหเ้ กิดควำม สับสนกลำ่ วคือ จะต้อง เปน็ สิ่งท่ีเขำ้ ใจตรงกัน และควรหลีกเลี่ยงคำท่ีทำใหเ้ กดิ ควำมเข้ำใจผดิ หรือ ไม่ ควรใชค้ ำที่มหี ลำยควำมหมำย ซง่ึ กำรแสดงขนั้ ตอนแต่ละขน้ั ตอนจะต้อง อธิบำยใหส้ ้นั กะทดั รดั และชดั เจน โดยค่ำของกำรนำข้อมูลเข้ำในแตล่ ะ ขน้ั ตอนจะต้องนำไปประมวลผลเพื่อสง่ ผลทำให้เกดิ ค่ำของผลลพั ธ์ท่ี เหมอื นกนั 3. ตอ้ งมีลำดับขั้นตอนที่ชดั เจน : ในกำรประมวลผลชดุ คำสั่งตำ่ ง ๆ ที่ถกู กำหนดด้วยกฎเกณฑใ์ นกำรแกป้ ัญหำของ อัลกอรทิ ึม จะต้องประมวลผล เปน็ ลำดบั ตำมขัน้ ตอน เพรำะกำรแกป้ ัญหำด้วยคอมพิวเตอร์จะต้อง มีลำดับ ขน้ั ตอนที่แนน่ อน ซึ่งแต่ละขั้นตอนของอัลกอริทึมจะต้องทำหน้ำที่อย่ำง ชดั เจนและตอ่ เนื่องโดยกำรเร่ิมตน้ ทำงำนแต่ละข้นั ตอนมีกำรรับและส่งข้อมูล ตอ่ เน่ืองกันไปจนสิ้นสดุ กำรทำงำน ถ้ำขัน้ ตอนไม่ดีอำจจะทำให้กำร ประมวลผลผดิ พลำดได้
4. กระบวนวิธีกำรต้องใหผ้ ลลพั ธ์ตำมท่ีกำหนดในปญั หำ : กระบวนวธิ กี ำร ตอ้ งให้ผลลัพธ์ตำมท่ีกำหนดในปัญหำกล่ำวคอื กลุม่ ของข้ันตอนต่ำง ๆ ที่ กำหนดไว้จะตอ้ งใชง้ ำนท่ัวไปไดส้ ำหรบั ทกุ ๆ กรณี และจะต้องมผี ลลัพธท์ ่ี ถูกตอ้ งตรงตำมท่ีกำหนดในปญั หำนั้น ๆ ถงึ แม้บำงครัง้ อำจจะไดผ้ ลลพั ธ์ท่ี ไมต่ รงกบั ปญั หำกำหนดไว้ จึงถอื ไดว้ ่ำกระบวนกำรนนั้ เป็นอัลกอริทมึ ที่ไมด่ ี นำไปใชไ้ ม่ได้ 5. อัลกอรทิ ึมต้องมีจุดสดุ ท้ำยของกำรทำงำน : คุณสมบตั ิอกี ข้อหนึ่งท่ี สำคัญคืออัลกอริทึมต้องมจี ุดสดุ ท้ำยของกำรทำงำน เนื่องจำกเครอ่ื ง คอมพิวเตอร์ไมส่ ำมำรถประมวลผลไปเรื่อย ๆ (infinite) โดยต้องมีจุด สุดท้ำยของกำรทำงำนเชน่ กำรบวกเลขจำนวนเต็มครงั้ ละหนงึ่ คำ่ ไปเรื่อย ๆ ในที่นี่จะไมเ่ ปน็ อลั กอรทิ มึ เน่ืองจำกไมไ่ ด้ บอกจดุ สดุ ท้ำยของตัวเลขจำนวน เตม็ ดังน้ันจึงเปน็ ขัน้ ตอนกำรทำงำนท่ีไม่มจี ดุ ส้นิ สุด จดุ ประสงคก์ ำรเขียนอลั กอริทมึ อลั กอริทมึ หรือข้นั ตอนวธิ ีกำรแก้ปัญหำ เปน็ กำรจดั ลำดบั ควำมคิดเปน็ ขน้ั ตอนต่ำงๆ เพ่ือแกไ้ ขปญั หำในขนั้ ตอนกำรเขียนโปรแกรมที่สอดคล้อง กรรมวิธีแก้ปญั หำที่กำหนดไว้ กำรเขยี นอลั กอรทิ ึมจงึ เป็นกำรแสดงลำดับ กำรทำงำนตำมคุณสมบัติด้ำนกำรประมวลผลของคอมพวิ เตอร์ ท่ีพรอ้ มจะ นำไปแปลงเปน็ ลำดับคำสั่งให้คอมพิวเตอรท์ ำงำน กำรเขยี นโปรแกรม คอมพิวเตอรด์ ้วยภำษำท่ีเหมำะสม เพ่ือสงั่ ให้คอมพวิ เตอรท์ ำงำนตำม อัลกอรทิ มึ ท่ีกำหนดไว้ และกำรเขยี นอัลกอริทมึ ออกมำให้ตรวจสอบควำม ถกู ตอ้ งไดค้ รบถว้ นข้นึ
กำรแยกส่วนประกอบและกำรยอ่ ยปัญหำ (Decomposition) กำรแยกส่วนประกอบเปน็ วธิ ีคิดรูปแบบหนงึ่ ของแนวคดิ เชงิ คำนวณ เปน็ กำร พิจำรณำเพ่ือแบ่งปัญหำหรอื งำนออกเป็นส่วนยอ่ ย ทำให้สำมำรถจัดกำรกับ ปญั หำหรอื งำนไดง้ ำ่ ยขน้ึ กำรแบ่งส่วนประกอบของวตั ถุนัน้ สำมำรถพจิ ำรณำให้ละเอยี ดยอ่ ยลงไปอีก ไดอ้ กี หลำยระดบั แต่ไม่ควรแยกย่อยรำยละเอียดให้มำกเกนิ ควำมจำเปน็ ทัง้ น้ี ข้นึ อยู่กบั บริบทท่ีตอ้ งกำรและสนใจ กำรแยกสว่ นประกอบอำจเปน็ ขัน้ ตอนแรกของกำรพัฒนำนวัตกรรม เนื่องจำกทำใหเ้ หน็ หนำ้ ท่ีกำรทำงำนของแต่ละสว่ นประกอบย่อยอยำ่ งชัดเจน เม่ือพิจำรณำสว่ นประกอบยอ่ ยตำ่ งๆ ในแบบท่ีเป็นอิสระต่อกนั แลว้ สำมำรถ นำไปประยุกตใ์ ช้ในบรบิ ทอื่นๆได้ กำรแยกสว่ นประกอบนั้น ไม่ไดท้ ำเฉพำะกบั วตั ถุหรือสิ่งของเท่ำน้ัน แต่ยังสำมำรถทำไดก้ บั กระบวนกำร และขน้ั ตอนวิธีดว้ ย เช่น กำรเดนิ ทำงมำโรงเรยี น อำจเดนิ ทำงด้วยกำรเดินเท้ำ กำรเดนิ ทำงด้วย รถจักรยำน หรือกเดนิ ทำงด้วยรถจักรยำนยนต์ กำรหำรูปแบบ (Pattern recognition) กำรหำรูปแบบ เป็นทักษะกำรหำควำมสมั พันธท์ ่ีเก่ียวขอ้ ง แนวโนม้ และ ลักษณะทั่วไปของส่ิงตำ่ งๆ โดยท่ัวไปแลว้ ควรจะเรมิ่ พิจำรณำปญั หำหรอื สิ่งท่ี สนใจ จำกน้ันอำจใช้ทกั ษะกำรแยกส่วนประกอบทำใหไ้ ด้องค์ประกอบภำยใน อ่ืนๆ แลว้ จงึ ใชท้ ักษะกำรหำรปู แบบเพื่อสร้ำงควำมเขำ้ ใจระหว่ำงองคป์ ระกอบ เหล่ำน้นั
กำรหำรปู แบบอกี ประเภทหนงึ่ เปน็ กำรหำรูปแบบท่ีเหมือนและแตกต่ำงกัน ระหวำ่ งสิ่งของตำ่ งๆ ท่ีสนใจหลำยช้ิน กำรพจิ ำรณำรปู แบบน้ีจะช่วยระบุ องคป์ ระกอบสำคัญรว่ มกนั ของส่ิงของเหลำ่ นน้ั ได้ ซึ่งจะเปน็ พน้ื ฐำนในกำร สร้ำงควำมเขำ้ ใจเชิงนำมธรรม เชน่ เมำส์ จะเห็นว่ำเมำสน์ ัน้ มีรูปลักษณ์ ภำยนอกที่แตกต่ำงกนั ออกไป แตส่ ังเกตไดว้ ำ่ รูปแบบกำรใชง้ ำนน้นั เหมอื นกนั คือ สำมำรถบังคบั ตำแหน่งตวั ชี้ไดโ้ ดยกำรขยับเมำส์ และใช้กด หรือสัมผัสบนปมุ่ เมำสเ์ พื่อกระทำกำรส่ิงใดสิ่งหนงึ่ ตำมที่โปรแกรมไว้ ตัวอยำ่ งวิธีกำรแกป้ ญั หำโดยกำรหำรปู แบบ สถำนกำรณ์ โรงเรียนแหง่ หนงึ่ มีนกั เรยี นชน้ั ม.4 จำนวน 100 คน ครไู ด้นำสมดุ กำรบำ้ น ของนักเรยี นมำตรวจ และต้องกำรส่งสมุดกำรบำ้ นคนื นักเรียน โดยให้ นักเรยี นมำหยบิ สมุดกำรบำ้ นของตนเอง ดังนัน้ นกั เรยี นจึงต้องคน้ หำสมดุ กำรบ้ำนของตนเองจำกกองสมดุ กำรบ้ำนทง้ั หมดกำรหำรปู แบบเพื่อ แก้ปญั หำ อำจเริ่มจำกกำรพิจำรณำสมุดกำรบ้ำนเลม่ ที่อยู่บนสดุ ถำ้ พบวำ่ เปน็ สมุด กำรบ้ำนของตนเอง กส็ ำมำรถหยิบไปได้เลย แล้วจบกระบวนกำรค้นหำ แต่ถำ้ ไม่ใช่ ก็ต้องคน้ หำในกองสมุดกำรบำ้ นที่เหลือต่อไปอกี 99 เลม่ และถำ้ ยงั ค้นหำสมดุ กำรบ้ำนของตนเองไมพ่ บ ก็ต้องคน้ หำในกองสมุดกำรบ้ำนที่ เหลือต่อไปอกี 98 เลม่ ไปเรื่อย ๆ
บทท่ี2กำรแก้ปญั หำ กำรแก้ปัญหำด้วยคอมพิวเตอร์ ปัญหำท่ีสำมำรถแกไ้ ขดว้ ยคอมพิวเตอร์ไมจ่ ำเป็นต้องเปน็ ปญั หำทำง คณิตศำสตร์เสมอไป ซ่ึงอำจเป็นปญั หำตำ่ งๆ ในชีวติ ประจำวนั กไ็ ด้ อยำ่ งไร ก็ตำม โปรแกรมคอมพิวเตอร์ต้องระบุขัน้ ตอนกำรทำงำน รวมถงึ เง่ือนไขต่ำง ๆ ที่ชัดเจน ดังน้ันกอ่ นจะแกป้ ัญหำดว้ ยคอมพวิ เตอร์ จงึ ควรทำควำมเข้ำใจ กบั ปญั หำและควำมต้องกำรใหช้ ดั เจน แล้วจงึ พฒั นำข้ันตอนวธิ ีที่สำมำรถใช้ งำนได้ ข้อมูล ข้อมลู หมำยถึง ขำ่ วสำร เอกสำร ข้อเท็จจรงิ เกี่ยวกับบคุ คล สิ่งของหรือ เหตกุ ำรณ์ท่ีมอี ยใู่ นรปู ของตวั เลข ภำษำ ภำพ สญั ลกั ษณต์ ่ำงๆ ท่ีมี ควำมหมำยเฉพำะตวั ซ่ึงยงั ไม่มกี ำรประมวลไมเ่ กี่ยวกับกำรนำไปใช้ไดอ้ ยำ่ งมี ประสิทธิภำพ (ไพโรจน์ คชชำ, 2542) เงื่อนไขท่ีชัดเจน เง่ือนไข หมำยถงึ ข้อแม้, ข้อจำกัด หรือข้อตกลง เง่ือนไขที่ชดั เจน คือกำรระบุ สิ่งต่ำงๆ ท่ีจำเป็นสำหรับกำรตัดสินใจอยำ่ งใดอย่ำงหนึ่ง เพื่อให้ คอมพวิ เตอร์สำมำรถทำงำนตำมท่ีต้องกำร ตัวอย่ำงกำรแก้ปัญหำด้วยคอมพิวเตอร์ สถำนกำรณ์ “ขณะน้เี ปน็ เวลำบำ่ ยแล้ว นักเรียนเรม่ิ หวิ ขนมหวำน จงึ สั่งใหค้ อมพวิ เตอร์ เลือกขนมหวำนท่ีเหมำะสมใหห้ น่อย” จำกตัวอยำ่ งดงั กล่ำว นกั เรียนจะเห็นว่ำ กำรแก้ปญั หำด้วยคอมพวิ เตอร์ ไม่จำเปน็ ตอ้ งแกไ้ ขเฉพำะปัญหำทำง
คณิตศำสตร์เพยี งอย่ำงเดยี ว ซ่ึงกำรแกป้ ัญหำดว้ ยคอมพิวเตอร์ จำเป็น อยำ่ งยิ่งที่จะต้องมีข้อมูลและเง่ือนไขในกำรตัดสนิ ใจที่ชัดเจน กำรแกป้ ัญหำ 1. สรำ้ งตำรำงกำหนดเง่ือนไขกำรเลือกขนมหวำน ตำรำง เง่ือนไขกำรเลือกอำหำร เง่ือนไข คำอธบิ ำย เลอื กประเภทเปน็ เง่ือนไขที่ใชใ้ นกำรตรวจสอบ “ขนมหวำน” – ประเภทอำหำรถกู ต้อง จำกน้ันเลือกมำ หนง่ึ อยำ่ ง – ได้อำหำรหนง่ึ อยำ่ ง เลือกประเภทเป็น เงื่อนไขท่ีใชใ้ นกำรตรวจสอบ “ขนมหวำน” – ประเภทอำหำรถูกต้อง รำคำไม่เกิน 30 บำท และเป็นที่ – รำคำไมเ่ กิน 30 บำท นยิ ม – ควำมนิยมสูงสดุ เลอื กประเภทเป็น เง่ือนไขท่ีใชใ้ นกำรตรวจสอบ “ขนมหวำน” และ – ประเภทอำหำรถูกต้อง มีคะแนนสูงสุดที่ คำนวณจำก – คะแนนจำกกำรคำนวณคณุ ภำพและควำมนิยม (0.6 x คะแนน สงู สดุ คณุ ภำพ) + (0.4 x คะแนน ควำมนิยม)
2. แยกส่วนประกอบและย่อยปัญหำ นอกจำกข้อมลู และเง่ือนไขที่ชัดเจนแลว้ กำรจะพัฒนำโปรแกรมจำเป็นตอ้ งมขี ้นั ตอนในกำรแกป้ ญั หำที่ชดั เจนด้วย ตำรำง ข้อมูลรำยกำรอำหำร รำยกำรอำหำร ประเภท คุณภำพ ควำมนยิ ม รำคำ ข้ำวผัดกระ 30 เพรำ อำหำร 8 10 หลัก 25 ข้ำวไข่เจียว อำหำร 6 8 30 ขำ้ วผดั ไข่ หลัก 25 ไอศกรีม 20 ขนมปงั สังขยำ อำหำร 7 6 40 พุดดิง้ หลกั ขนมหวำน 9 10 ขนมหวำน 10 7 ขนมหวำน 8 7 3. หำรูปแบบ ถำ้ นักเรยี นต้องกำรค้นหำรำยกำรขนมหวำน โดยเลือกท่ีมี คะแนนที่คำนวณจำก (0.6 x คะแนนคุณภำพ) + (0.4 x คะแนนควำมนยิ ม) สูงที่สุด สำมำรถแบง่ ขัน้ ตอนกำรทำงำนไดด้ ังน้ี 1) เลอื กรำยกำรอำหำร ทงั้ หมดท่ีเป็นขนมหวำน, 2) จำกรำยกำรขนมหวำน คำนวณคะแนนของ อำหำรแต่ละชนิดตำมเงื่อนไข, 3) จำกรำยกำรขนมหวำนที่ได้คำนวณคะแนน ของอำหำรแล้ว เลือกอำหำรที่มีคะแนนสูงสุด
ตำรำงแสดงขัน้ ตอนท่ี 1 เลอื กรำยกำรอำหำรทั้งหมดท่ีเป็นขนมหวำน รำยกำรอำหำร ประเภท คณุ ภำพ ควำมนยิ ม รำคำ ข้ำวผดั กระ อำหำร 8 10 30 เพรำ หลัก ขำ้ วไข่เจียว อำหำร 6 8 25 หลัก ขำ้ วผัดไข่ อำหำร 7 6 30 หลกั ไอศกรมี ขนมหวำน 9 10 25 ขนมปงั สังขยำ ขนมหวำน 10 7 20 พดุ ดง้ิ ขนมหวำน 8 7 40 4. คำนวณคะแนนของอำหำรแต่ละชนิดตำมเงื่อนไข ตำรำงแสดงขนั้ ตอนที่ 2 จำกรำยกำรขนมหวำน คำนวณคะแนนของอำหำรแต่ ละชนดิ ตำมเง่ือนไข รำยกำร ควำม คะแนนสำหรบั เลือก อำหำร อำหำร ประเภท คุณภำพ นยิ ม รำคำ ขนม 9 10 25 (0.6×9)+(0.4×10)=9.4 ไอศกรีม หวำน ขนมปงั ขนม สงั ขยำ หวำน 10 7 20 8.8
พุดด้ิง ขนม 8 7 40 7.6 หวำน 5. สรุปนกั เรยี นจะไดร้ ับประทำนขนมหวำนคือ ไอศกรมี ตำรำงแสดงข้นั ตอนท่ี 3 จำกรำยกำรขนมหวำนที่ไดค้ ำนวณคะแนนของ อำหำรแล้ว เลือกอำหำรที่มีคะแนนสูงสดุ รำยกำร ประเภท ควำม คะแนนสำหรบั อำหำร คณุ ภำพ นยิ ม รำคำ เลอื กอำหำร ไอศกรีม ขนม 10 หวำน 9 กำรระบุขอ้ มูลเข้ำ ข้อมลู ออก และเง่ือนไขของปญั หำ กำรแกไ้ ขปัญหำด้วยคอมพิวเตอร์นั้น กอ่ นท่ีจะระบขุ ้นั ตอนวธิ ที ่ีชดั เจนได้ จะตอ้ งวเิ ครำะห์และทำควำมเข้ำใจกับปญั หำเพ่ือใหท้ รำบว่ำมขี อ้ มูลอะไรบ้ำงที่ สำมำรถใชใ้ นกำรประมวลผลได้ มีเง่ือนไขต่ำง ๆ อยำ่ งไร ผลลัพธท์ ่ีตอ้ งกำร คืออะไร โดยจะแบ่งขอ้ มูลท่ีเก่ียวกบั กำรทำงำนออกเป็นสองส่วน คอื ขอ้ มลู เขำ้ (input) เปน็ ขอ้ มลู ท่ีใชเ้ พ่ือประมวลผล และขอ้ มูลออก (output) เป็น ขอ้ มลู ผลลพั ธท์ ่ีต้องกำร
นอกจำกจะระบวุ ่ำคืออะไรแล้ว ยงั อำจระบเุ งื่อนไขเพ่ิมเตมิ ได้อกี เช่น ข้อมลู เข้ำ อำจมีกำรระบุขอบเขตหรือเง่ือนไข หรอื ขอ้ มูลออกอำจมกี ำรระบคุ ณุ สมบตั ิท่ี ต้องกำร กำรวิเครำะห์นเ้ี ปน็ กำรระบขุ อ้ กำหนดต่ำงๆ ท่ีเก่ียวข้องกับปัญหำ ใหช้ ัดเจน ซึ่งจำเป็นตอ่ กำรออกแบบขัน้ ตอนวิธีที่ถูกตอ้ ง ตวั อย่ำงสถำนกำรณ์ สถำนกำรณ์ ครูไดต้ รวจขอ้ สอบของนักเรยี นชั้นมัธยมศกึ ษำปีที่ 4 จำนวน 40 คน หำก ตอ้ งกำรหำคะแนนสูงสุด ต่ำสดุ และคะแนนเฉลี่ยของนักเรยี นทกุ คน ให้ นักเรียนระบุข้อมูลเข้ำและข้อมูลออก กำรระบุขอ้ มูลเข้ำ และข้อมูลออก ข้อมลู เข้ำ : คะแนนสอบของนักเรียนช้นั มธั ยมศกึ ษำปีที่ 4 จำนวน 40 คน ข้อมูลออก : คะแนนสงู สุด ต่ำสดุ และคะแนนเฉล่ีย กำรออกแบบข้นั ตอนวธิ ี ทักษะกำรคิดเชิงคำนวณ เชน่ กำรแยกสว่ นประกอบและกำรย่อยปัญหำ กำร หำรปู แบบ และกำรคิดเชิงนำมธรรม สำมำรถนำมำใชใ้ นกำรออกแบบ ขั้นตอนวธิ เี พื่อแกป้ ัญหำต่ำงๆ กำรออกแบบน้ไี ม่มีขัน้ ตอนที่ตำยตวั จำเป็นต้องอำศัยประสบกำรณ์ และกำรฝึกฝน ตวั อยำ่ งสถำนกำรณ์ สถำนกำรณ์ ครูได้ตรวจข้อสอบของนักเรียนช้ันมธั ยมศึกษำปที ่ี 4 จำนวน 40 คน หำก ต้องกำรหำคะแนนสงู สดุ ต่ำสุด และคะแนนเฉล่ียของนักเรยี นทุกคน ให้ นกั เรียนเขยี นขัน้ ตอนวธิ ใี นกำรหำคะแนนเฉลี่ยของนกั เรียนทุกคน กำรระบขุ อ้ มูลเข้ำ และข้อมลู ออก เนื่องจำกปัญหำน้ีสำมำรถแบง่ ไดเ้ ป็น 3 สว่ น คือ คะแนนสงู สดุ ต่ำสุด และ คะแนนเฉล่ีย เรำควรเรม่ิ พิจำรณำอยำ่ งใดอยำ่ งหนึ่งก่อน ในที่น้จี ะเรม่ิ จำก
คะแนนสงู สดุ กอ่ น ในกำรออกแบบนน้ั จะเริ่มจำกกำรหำคำ่ สงู สุดของข้อมูล โดยสำมำรถเขยี นขน้ั ตอนได้ดงั น้ี ข้ันตอนวธิ ี : หำค่ำสูงสดุ ของขอ้ มลู ขอ้ มูลเข้ำ : คะแนนสอบของนกั เรียนชั้นมธั ยมศึกษำปที ่ี 4 จำนวน 40 คน ขอ้ มูลออก : คะแนนสูงสุด กำรสรำ้ งเงื่อนไขอย่ำงงำ่ ย กำรออกแบบเง่ือนไขท่ีถกู ตอ้ งและชัดเจน จะเปน็ ปจั จัยสำคัญของกำร ออกแบบขนั้ ตอนวธิ ี ซ่ึงเงื่อนไขท่ีกำหนดอำจเป็นเงื่อนไขอย่ำงง่ำยหรือ เง่ือนไขท่ีซับซ้อน โดยเง่ือนไขอย่ำงงำ่ ย มกั จะเปน็ กำรเปรียบเทยี บ “มำกกว่ำ” “นอ้ ยกว่ำ” หรือ “ไม่เทำ่ กัน” กำรสรำ้ งเง่ือนไขดว้ ยตัวดำเนินกำรตรรกะ เง่ือนไขบำงเง่ือนไขอำจประกอบดว้ ยเง่ือนไขยอ่ ยหลำยเงื่อนไข และแต่ละ เงื่อนไขมักเชื่อมดว้ ยตวั ดำเนินกำรตรรกะ “และ : AND” , “หรอื : OR” แลว้ ก็ “นิเสธ : NOT” กำรทำซำ้ ในรำยกำร กำรทำซ้ำในรำยกำรจะต้องพจิ ำรณำขอ้ มลู ในรำยกำรจนครบทกุ ตัว ซ่ึงเป็น รูปแบบหน่ึงของกำรเขียนข้นั ตอนวธิ เี พ่ือพจิ ำรณำขอ้ มูลจนครบทุกตัว ตัวอยำ่ งสถำนกำรณ์ สถำนกำรณ์ ถ้ำนักเรยี นมีเงนิ X บำท และมีรำยกำรรำคำสินคำ้ A ใหน้ กั เรียนเขียน ขน้ั ตอนวธิ ีนับจำนวนสนิ ค้ำท่ีมำรำคำไม่เกิน X บำท กำรเขียนข้นั ตอนวธิ ี ข้ันตอนวิธี : หำจำนวนสินค้ำที่มีรำคำไมเ่ กนิ X บำท ขอ้ มลู เขำ้ : รำคำสินคำ้ ในรำยกำร A ข้อมูลออก : จำนวนสนิ คำ้ ที่มีรำคำไม่เกิน X บำท
1) ให้ตวั แปร count <– 0 2) พิจำรณำข้อมลู รำคำสินค้ำในรำยกำร A ทลี ะจำนวนจนครบ 2.1) ให้ y แทนข้อมลู รำคำสนิ ค้ำท่ีพจิ ำรณำอยู่ 2.2) ถ้ำ y นอ้ ยกว่ำหรือเทำ่ กบั X แลว้ ให้ count <– count+1 3) คือค่ำจำนวนสนิ ค้ำเท่ำกับ count กำรทำซำ้ ดว้ ยเงื่อนไข กำรทำซำ้ ดว้ ยเงื่อนไข เป็นกำรทำซำ้ ในข้ันตอนใดขน้ั ตอนหนง่ึ ตำมที่มีกำร กำหนดไว้ ตวั อยำ่ งสถำนกำรณ์ สถำนกำรณ์ ถำ้ ตอ้ งกำรประมำณค่ำของรำกที่สองของ 10 ที่เป็นเลขทศนยิ ม 3 ตำแหนง่ นักเรียนจะมกี ำรเขียนขั้นตอนวิธีอย่ำงไร กำรเขยี นข้นั ตอนวิธี ขั้นตอนวิธี : ประมำณคำ่ ของรำกที่สองของ 10 ที่เปน็ เลขทศนยิ ม 3 ตำแหน่ง ข้อมูลเขำ้ : – ข้อมูลออก : ค่ำประมำณคำ่ ของรำกที่สองของ 10 ที่เปน็ เลขทศนยิ ม 3 ตำแหน่ง 1) ให้ X <– 0 2) ให้ Y <– 0 (เกบ็ คำ่ ประมำณที่ดที ่ีสุด) 3) ทำซำ้ เมื่อ X<= 10 3.1) ถำ้ |X2 – 10| < |Y2 – 10| แลว้ Y <– X 3.2) X <– X + 0.001 4) คนื คำ่ Y และจบกำรทำงำน
Search
Read the Text Version
- 1 - 19
Pages: