หลักการแก้ปัญหาด้วยระบบของคอมพิวเตอร์
ในชีวิตประจำวันทุกคนต้องเคยพบกับปัญหาต่างๆ ไม่ว่าจะเป็นปัญหาด้านการเรียน การงานการเงิน หรือแม้แต่ในการเล่นเกม จนอาจกล่าวได้ว่าการแก้ปัญหาเป็นกิจกรรมพื้นฐานอย่างหนึ่งของมนุษย์ เมื่อพบกับปัญหาแต่ละคนมีวิธีที่จะจัดการหรือแก้ปัญหาเหล่านั้นแตกต่างกันไป ซึ่งแต่ละวิธีการอาจเหมือนหรือแตกต่างกัน ทั้งนี้ขึ้นอยู่กับความรู้ ความสามารถ และประสบการณ์ของแต่ละบุคคลอย่างไรก็ตาม เมื่อได้มีการนำวิธีการแก้ปัญหาต่างๆ มาวิเคราะห์ จะพบว่าวิธีการเหล่านี้สามารถสรุปเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และปัญหาบางลักษณะอาจต้องอาศัยความรู้ในระดับสูงเพื่อแก้ไขได้อย่างสมบูรณ์แบบ ในบทนี้ผู้เรียนจะได้ศึกษาเกี่ยวกับหลักและวิธีการแก้ปัญหาด้วยคอมพิวเตอร์ และการนำภาษาโปรแกรมคอมพิวเตอร์และเครื่องมือต่างๆ มาช่วยในการแก้ปัญหา
โดยทั่งไปการแก้ปัญหาหนึ่งอาจทำได้หลายวิธี ตัวอย่างเช่น ปัญหาจากการเล่นเกมทายใจในตัวอย่างที่ 6.1 ต่อไปนี้ก็สามารถแก้ได้หลายวิธีเช่นกัน เพียงแต่ว่าแต่ละวิธีที่แตกต่างกันจะทำให้ผูเล่นเกมแก้ปัญหาได้ช้าเร็วไม่เท่ากัน
ตัวอย่างที่ 6.1 เกมทายใจ
เกมทายใจคือเกมที่จะให้ผู้เล่นทายตัวเลข 3 ตัวโดยต้องทายถูกตัวเลขและตำแหน่งซึ่งต้องใช้ผู้เล่น 2 คน ผู้เล่นคนที่หนึ่งกำหนดตัวเลข 3 ตัวที่ไม่ซ้ำกันโดยเลือกจาตัวเลข 1-9 และผู้เล่นคนที่หนึ่งต้องแจ้งผลการทายว่าตัวเลขที่ทายมานั้นถูกต้องกี่ตัว และถูกต้องกี่ตำแหน่ง ตัวอย่างเช่น ถ้าตัวเลขที่กำหนดไว้เป็น 8 1 5 และผู้เล่นคนที่สองทายว่า 1 2 3 ผู้เล่นคนที่หนึ่งต้องแจ้งว่าตัวเลขที่ทายนั้นถูกเพียงตัวเดียวและไม่มีตัวใดถูกตำแหน่ง
จะเห็นได้ว่าในครั้งแรกๆ ของการทาย ผู้ทายจะใช้วิธีลองผิดลองถูกโดยการสุ่มตัวเลข 1-9 สำหรับเลขทั้ง 3 ตัว โดยไม่ให้มีตัวเลขซ้ำกัน ซึ้งเมื่อผู้กำหนดให้รายละเอียดเกี่ยวกับจำนวนตัวเลขและจำนวนตำแหน่งที่ถูกต้องแล้ว ผู้ทายก็สามารถแยกตัวเลขที่ไม่ถูกต้องทั้งค่าของตัวเลขและตำแหน่ง ออกจากการทายคำตอบของปัญหาในครั้งถัดๆไป การใช้เหตุผลเพื่อแยกตัวเลขที่ไม่ต้องการอะไรการทายแต่ละครั้งนี้ จะช่วยให้ผู้ทายสามารถค้นพบคำตอบของปัญหาได้ในที่สุด
การแก้ปัญหาโดยใช้รูปแบบของการใช้เหตุผลประกอบกับการแยกคำตอบที่ไม่ต้องการ จะขึ้นอยู่กับเงื่อนไขของปัญหา ในบางปัญหาวิธีการนี้อาจไม่สามารถหาคำตอบสุดท้ายได้ แต่อาจช่วยจำกัดจำนวนคำตอบที่เป็นไปได้ให้น้อยลง นอกจากวิธีการแก้ปัญหาที่ยกตัวอย่างมาซึ่งได้แก่ การลองผิดลองถูก การใช้เหตุผลและการใช้วิธีแยกคำตอบที่ไม่ต้องการ ยังมีวิธีการแก้ปัญหาอีกมากมายที่สามารถเลือกใช้ให้เหมาะสมกับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง อย่างไรก็ตาม เมื่อพิจารณาในภาพรวมจะพบว่า วิธีการเหล่านี้ล้วนมีขั้นตอนหลักที่คล้ายคลึงกัน ซึ่งประกอบด้วย 4 ขั้นตอน ดังรูปที่ 6.1
จะเห็นได้ว่าในครั้งแรกๆ ของการทาย ผู้ทายจะใช้วิธีลองผิดลองถูกโดยการสุ่มตัวเลข 1-9 สำหรับเลขทั้ง 3 ตัว โดยไม่ให้มีตัวเลขซ้ำกัน ซึ้งเมื่อผู้กำหนดให้รายละเอียดเกี่ยวกับจำนวนตัวเลขและจำนวนตำแหน่งที่ถูกต้องแล้ว ผู้ทายก็สามารถแยกตัวเลขที่ไม่ถูกต้องทั้งค่าของตัวเลขและตำแหน่ง ออกจากการทายคำตอบของปัญหาในครั้งถัดๆไป การใช้เหตุผลเพื่อแยกตัวเลขที่ไม่ต้องการอะไรการทายแต่ละครั้งนี้ จะช่วยให้ผู้ทายสามารถค้นพบคำตอบของปัญหาได้ในที่สุด
การแก้ปัญหาโดยใช้รูปแบบของการใช้เหตุผลประกอบกับการแยกคำตอบที่ไม่ต้องการ จะขึ้นอยู่กับเงื่อนไขของปัญหา ในบางปัญหาวิธีการนี้อาจไม่สามารถหาคำตอบสุดท้ายได้ แต่อาจช่วยจำกัดจำนวนคำตอบที่เป็นไปได้ให้น้อยลง นอกจากวิธีการแก้ปัญหาที่ยกตัวอย่างมาซึ่งได้แก่ การลองผิดลองถูก การใช้เหตุผลและการใช้วิธีแยกคำตอบที่ไม่ต้องการ ยังมีวิธีการแก้ปัญหาอีกมากมายที่สามารถเลือกใช้ให้เหมาะสมกับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง อย่างไรก็ตาม เมื่อพิจารณาในภาพรวมจะพบว่า วิธีการเหล่านี้ล้วนมีขั้นตอนหลักที่คล้ายคลึงกัน ซึ่งประกอบด้วย 4 ขั้นตอน ดังรูปที่
จากตารางรหัสตัวอย่างเสียงของ BIOS ซึ่งเป็น ยี่ห้อที่นิยมใช้โดยทั่วไปในเครื่องที่เป็นแบบ Home User ส่วนยี่ห้ออื่นๆ เช่น BIOS Phoenix จะมีใช้ในเครื่องประเภทแบรนด์เนม เป็นส่วนใหญ่ ในส่วนของรหัสเสียงก็ใกล้เคียงกัน ทั้งนี้ผู้ใช้ หรือผู้ดูแลระบบจะต้องใช้การสังเกตเอาเอง
การโหลด MBR และตรวจสอบความถูกต้องของตารางพาร์ติชัน
ขั้นตอนนี้จะกระทำต่อเนื่องจากการตรวจสอบฮาร์ดแวร์เรียบร้อยแล้ว มันจะทำการค้นหาพาร์ติชันที่บู้ตได้ของดิสก์ไดรว์ ในขั้นตอนการทำงานนี้ ถ้ามีปัญหาเกิดขึ้นจะมีข้อความแสดงความผิดพลาดขึ้นมาข้อความใดข้อความหนึ่งดังนี้ Invalid partition table, Error Loading Operating system หรือ Missing operating system การวิเคราะห์ให้ดูตามผังการทำงานของ MBR
โครงสร้างของ MBR
การโหลด MBR และตรวจสอบความถูกต้องของตารางพาร์ติชัน
ขั้นตอนนี้จะกระทำต่อเนื่องจากการตรวจสอบฮาร์ดแวร์เรียบร้อยแล้ว มันจะทำการค้นหาพาร์ติชันที่บู้ตได้ของดิสก์ไดรว์ ในขั้นตอนการทำงานนี้ ถ้ามีปัญหาเกิดขึ้นจะมีข้อความแสดงความผิดพลาดขึ้นมาข้อความใดข้อความหนึ่งดังนี้ Invalid partition table, Error Loading Operating system หรือ Missing operating system การวิเคราะห์ให้ดูตามผังการทำงานของ MBR
โครงสร้างของ MBR
สำหรับปัญหาทีมีขั้นตอนในการแก้ปัญหาอย่างซับซ้อน หรือต้องมีการแก้ปัญหาในลักษณะเดิมซ้ำอีกหลายครั้ง จำเป็นต้องใช้คอมพิวเตอร์เป็นอุปกรณ์ในการแก้ปัญหา โดยเขียนโปรแกรมเพื่อรับข้อมูลเข้าไปประมวลผล และยังต้องเลือกว่าจะใช้โปรแกรมคอมพิวเตอร์ภาษาใด ซึ้งขึ้นอยู่กับความคุ้นเคยในการใช้งานของผู้เขียนโปรแกรม และลักษณะเฉพาะของแต่ละภาษาที่เหมาะสมกับปัญหานั้นๆ
ในการแก้ปัญหาโดยใช้คอมพิวเตอร์นั้น การออกแบบวิธีแก้ปัญหาอย่างเป็นขั้นตอนและง่ายต่อการทำความเข้าใจสำคัญมาก เพราะจะทำให้สามารถเขียนโปรแกรมจากขั้นตอนที่ได้ออกแบบไว้อย่างง่ายดาย เครื่องมือที่ใช้เพื่อการออกแบบขั้นตอนวิธี เช่น รหัสลำลอง)ซึ่งเป็นการจำลองขั้นตอนวิธีแก้ปัญหา โดยการอธิบายด้วยคำพูดที่เข้าใจได้ง่ายเป็นขั้นๆหรือผังงาน (flowchart) ซึ่งเป็นการใช้สัญลักษณ์ในการแสดงรายละเอียดและลำดับของแต่ละขั้นตอนที่ใช้แก้ปัญหา ข้อดีอีกประการหนึ่งของการใช้เครื่องมือเหล่านี้ช่วยในการออกแบบวิแก้ปัญหาคือ จะทำให้สามารถตรวจสอบความถูกต้อง หาจุดผิดพลาด และแก้ไขขั้นตอนในการแก้ปัญหาที่ซับซ้อนได้รวดเร็ว นักเขียนโปรแกรมจึงควรฝึกฝนการใช้งานเครื่องมือเหล่านี้ให้เชี่ยวชาญ ตัวอย่างการเขียนรหัสลำลองและผังงาน ดังรูปที่ 6.5
ตัวอย่างรหัสลำลองและผังงาน
แนวทางการแก้ปัญหา
ปัญหาที่เกิดขึ้นกับเครื่องคอมพิวเตอร์ จะเป็นตัวชี้ให้เห็นถึงตำแหน่งที่บรรจุข้อมูลสำคัญๆ ในเครื่องคอมพิวเตอร์ และแต่ละส่วนมีผลถึงกัน ถ้าส่วนใดส่วนหนึ่งถูกลบหรือเสียไป จะทำให้ส่วนอื่นๆ ไม่สามารถที่จะทำงานต่อไปได้ เช่นถ้าหากตารางพาร์ติชันเสียหาย เราก็จะไม่อาจเข้าสู่ระบบได้แม้ว่าส่วนที่เป็น FAT จะยังสมบูรณ์ดีอยู่
ปัญหาที่เกิดขึ้นกับเครื่องคอมพิวเตอร์ จะเป็นตัวชี้ให้เห็นถึงตำแหน่งที่บรรจุข้อมูลสำคัญๆ ในเครื่องคอมพิวเตอร์ และแต่ละส่วนมีผลถึงกัน ถ้าส่วนใดส่วนหนึ่งถูกลบหรือเสียไป จะทำให้ส่วนอื่นๆ ไม่สามารถที่จะทำงานต่อไปได้ เช่นถ้าหากตารางพาร์ติชันเสียหาย เราก็จะไม่อาจเข้าสู่ระบบได้แม้ว่าส่วนที่เป็น FAT จะยังสมบูรณ์ดีอยู่
องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาแสดงได้ดังนี้
จากรายละเอียดของปัญหา สามารถเขียนเป็นขั้นตอนของรหัสลำลองได้ดังนี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น