วันพุธที่ 3 กันยายน พ.ศ. 2551

หลักการแก้ปัยหากับภาษาคอมพิวเตอร์

6.1 หลักการแก้ปัญหา

ในชีวิตประจำวันทุกคนต้องเคยพบกับปัญหาต่างๆ ไม่ว่าจะเป็นปัญหาด้านการเรียน การงาน การเงิน หรือแม้แต่การเล่นเกม เมื่อพบกับปัญหา แต่ละคนมีวิธีที่จะจัดการหรือแก้ปัญหาเหล่านั้นแตกต่างกันไป ซึ่งแต่ละวิธีการอาจให้ผลลัพธ์ที่เหมือนหรือแตกต่างกันเล็กน้อย ทั้งนี้ขึ้นอยู่กับความรู้ ความสามารถ และประสบการณ์ของบุคคลผู้นั้น อย่างไรก็ตาม หากเรานำวิธีการแก้ปัญหาต่างวิธีนั้นมาวิเคราะห์ให้ดี จะพบว่าสามารถสรุปวิธีการเหล่านั้นเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และบางครั้งต้องอาศัยการเรียนรู้ในนระดับสูงเพื่อแก้ปํญหาบางอย่างให้สมบูรณ์แบบ แต่ก่อนที่เราจะศึกษาต่อไป ลองพิจารณาปัญหาต่อไปนี้
เกมทายใจคือเกมให้ผู้เล่นทายตัวเลข 3 ตัว ในการเล่นเกมต้องใช้ผู้เล่น 2 คน คนที่หนึ่งคือ ผู้กำหนด เป็นคนกำหนดเลข 3 ตัวที่ไม่ซ้ำกันโดยเลือกจากกลุ่มตัวเลข 1-9 และอีกคนหนึ่งคือผู้ทาย เป็นผู้ทายตัวเลข 3 ตัวที่ไม่ซ้ำกันที่ผู้กำหนดให้กำหนดไว้แล้ว หลังจากที่ผู้ทายทายเลขแต่ละครั้ง ผู้กำหนดต้องให้รายละเอียดว่าตัวเลขที่ทายมานั้นถูกต้องกี่ตัว และในกรณีที่ตัวเลขที่ทายมาถูกตำแหน่งด้วยก็ต้องบอกว่าถูกตำแหน่งกี่ตัว เช่น ถ้าตัวเลขที่กำหนดไว้เป็น 815 และผู้ทายทายว่า 123 ผู้กำหนดต้องแจ้งว่าตัวเลขที่ทายนั้นถูก 1 ตัว และไม่มีตัวใดถูกตำแหน่ง




6.2 การจำลองความคิด


ขั้นตอนที่สำคัญในการแก้ปัญหาคือการวางแผน การวางแผนที่ดีจะช่วยให้การแก้ปัญหาเป็นไปได้โดยง่าย ผู้ที่สามารถวางแผนในการแก้ปัญหาได้ดีนอกจากจะต้องใช้ประสบการณ์ ความรู้ และความมีเหตุผลแล้ว ยังควรรู้จักวางแผนให้เป็นขั้นตอนอย่างเป็นระเบียบด้วย การจำลองความคิดเป็นส่วนหนึ่งในขั้นตอนที่สองของการแก้ปัญหา การจำลองความคิดออกมาในลักษณะเป็นข้อความ หรือเป็นแผนภาพจะช่วยให้สามารถแก้ปัญหาได้ดีโดยเฉพาะปัญหาที่ยุ่งยากซับซ้อน การวางแผนจะเป็นแนวทางในการดำเนินการแก้ปัญหาต่อไป อีกทั้งเป็นการแสดงแบบเพื่อให้ผู้ที่เกี่ยวข้องได้เข้าใจ และสามารถปฏิบัติตามในแนวทางเดียวกัน ทั้งนี้ก็ด้วยวัตถุประสงค์อย่างเดียวกับกลุ่มกิจการก่อสร้าง ซึ่งจำเป็นต้องมีแบบแปลนเป็นเครื่องมือติดต่อสื่อสารระหว่างผู้ออกแบบและผู้ก่อสร้าง
แบบแปลนเหล่านั้นจะอยู่ในรูปลักษณะของการวาดภาพหรือแสดงเครื่องหมายซึ่งเป็นที่เข้าใจกันระหว่างผู้เกี่ยวข้อง แบบแปลนจะต้องจัดทำให้เสร็จก่อนที่จะลงมือก่อสร้าง โดยผ่านการตรวจสอบทบทวนและพิจารณาจากผู้เกี่ยวข้องหลายฝ่าย เมื่อเห็นว่าเป็นที่ถูกต้องและพอใจของทุกฝ่ายแล้ว จึงก่อสร้างตามแบบนั้น แต่ถ้ายังไม่เป็นที่พอใจ ก็จะพิจารณาแก้ไขแบบแปลนส่วนนั้น ๆ เสียก่อนจะได้ไม่ต้องรื้อถอนหรือทุบทิ้งภายหลัง และเมื่อต้องการซ่อมแซมหรือต่อเติมก็นำเอาแบบแปลนเดิมมาตรวจสอบและเพิ่มแบบแปลนในส่วนนั้นได้โดยง่าย การใช้แบบแปลนจึงเป็นสิ่งที่จำเป็นระหว่างช่างก่อสร้าง ผู้ออกแบบและผู้เกี่ยวข้องอื่น ๆ เป็นอย่างมาก เพราะประหยัดเวลา ค่าใช้จ่ายและเข้าใจง่าย เมื่อสรุปรวมแล้วแบบแปลนเหล่านั้นก็คือข้อตกลงให้สร้างอาคารของผู้จ้างกับผู้รับจ้างที่อยู่ในรูปแบบกะทัดรัด แทนที่จะเขียนเป็นข้อความที่เป็นลายลักษณ์อักษรอย่างยืดยาว และยังเป็นเครื่องมือให้ช่างใช้ในการก่อสร้างอีกด้วย



6.3 การเขียนโปรแกรม


จากการศึกษาหลักการขั้นตอนการแก้ปัญหาในหัวข้อ 6.1 และ 6.2 ที่ผ่านมา หลังจากที่เราสามารถวิเคราะห์ปัญหา และสร้างแบบจำลองความคิดเพื่อแสดงขั้นตอนในการแก้ปัญหาแล้ว ขั้นตอนต่อไปคือการลงมือแก้ปัญหาตามขั้นตอนที่ออกแบบไว้ โดยใช้เครื่องมือช่วยในการแก้ปัญหาในที่นี้หากเครื่องมือที่นักเรียนเลือกคือ ภาษาคอมพิวเตอร์ ขั้นตอนในการลงมือแก้ปัญหาก็คือ ขั้นตอนของการเขียนโปรแกรมคอมพิวเตอร์ ซึ่งถือได้ว่าเป็นขั้นตอนหนึ่งที่สำคัญในการแก้ปัญหาด้วยคอมพิวเตอร์


การเขียนโปรแกรม หมายถึง กระบวนการใช้ ภาษาคอมพิวเตอร์ เพื่อกำหนดโครงสร้างของข้อมูล และกำหนดขั้นตอนวิธีเพื่อใช้แก้ปัญหาตามที่ได้ออกแบบไว้ โดยอาศัยหลักเกณฑ์ การเขียนโปรแกรม คอมพิวเตอร์แต่ละภาษา



6.4 การแก้ปัญหากับภาษาปาสคาล


Blaise Pascal

นักเรียนคงเคยได้ยินคำว่า ภาษาคอมพิวเตอร์ มาบ้างแล้ว ในที่นี้จะได้กล่าวถึง ความหมายของคำว่า ภาษาคอมพิวเตอร์ให้ชัดเจนอีกครั้ง ภาษาคอมพิวเตอร์ หมายถึงสื่อที่ผู้เขียนโปรแกรมสามารถใช้ติดต่อกับเครื่องคอมพิวเตอร์ เพื่อให้เกิดการทำงานตามวัตถุประสงค์ที่ต้องการ ตามความหมายของ การเขียนโปรแกรม ที่ศึกษาในหัวข้อที่แล้ว ภาษาคอมพิวเตอร์คือสื่อที่ใช้สร้างโปรแกรม ซึ่งหมายถึง ชุดคำสั่งที่ใช้สำหรับสั่งให้คอมพิวเตอร์ทำงาน เพื่อให้ได้ผลลัพธ์ที่ต้องการ โดยอาศัยข้อมูลที่กำหนดให้ ซึ่งในที่นี้ผลลัพธ์ก็เปรียบได้กับคำตอบหรือข้อมูลออกของปัญหา ในขณะที่ข้อมูลที่กำหนดก็คือเงื่อนไข หรือข้อมูลของปัญหาซึ่งผู้แก้ปัญหาได้วิเคราะห์ไว้



6.5 การโปรแกรมแบบเชิงวัตถุ




การโปรแกรมแบบเชิงวัตถุ เป็นเทคนิคการเขียนโปรแกรมที่ได้รับการพัฒนาขึ้นในช่วงปี 1900 แนวคิดและหลักการในการเขียนโปรแกรมแบบนี้แตกต่างจากหลักการเขียนโปรแกรมในอดีต คือ จะเน้นความคิดเชิงวัตถุ (object) ที่สร้างขึ้นใช้งานในโปรแกรม โดยคำว่า "วัตถุ" ในที่นี้คือ ส่วนย่อยๆ ของโปรแกรมที่ผู้พัฒนาโปรแกรมสร้างขึ้นเพื่อทำงานเฉพาะอย่าง แล้วจึงนำวัตถุย่อยๆ เหล่านั้นมาประกอบกันเป็นโปรแกรมใหญ่ อีกทั้งวัตถุที่สร้างขึ้นมาแล้วสามารถนำกลับไปใช้กับโปรแกรมอื่นได้อีก โดยบางครั้งผู้เขียนโปรแกรมไม่จำเป็นต้องสร้างวัตถุเองทุกชิ้น สามารถนำวัตถุที่ผู้อื่นสร้างไว้มาใช้ใหม่ได้ เพียงแค่รู้ว่าวัตถุนั้นทำหน้าที่และเรียกใช้งานอย่างไร ทำให้

โปรแกรมเมอร์ที่เขียนโปรแกรมประเภทนี้สามารถปรับปรุงเปลี่ยนแปลงโปรแกรมได้สะดวก การเขียนโปรแกรมแบบนี้จึงเข้ามาแทนที่การเขียนโปรแกรมแบบโครงสร้างอย่างรวดเร็ว โดยเฉพาะอย่างยิ่งกับงานที่เกี่ยวข้องกับอินเทอร์เน็ต นอกจากนี้ การโปรแกรมแบบเชิงวัตถุยังสามารถทำงานกับข้อมูลได้หลายรูปแบบ ทั้งที่เป็นรูปภาพ (image) วีดิทัศน์ (video) หรือเสียง (sound) ตัวอย่าง ภาษาคอมพิวเตอร์ที่ใช้เทคนิคการโปรแกรมเชิงวัตถุ เช่น ภาษาจาวา ภาษาซีชาร์ป เป็นต้น



6.6 การโปรแกรมแบบจินตภาพ



ถึงแม้ว่าหลักการเขียนโปรแกรมเชิงวัตถุซึ่งกำลังได้รับความนิยมจากผู้เขียนโปรแกรม ในการพัฒนาซอฟต์แวร์ที่ทำงานบนวินโดวส์จะมีหลักการที่เข้าใจได้ไม่ยาก และสามารถพัฒนาโปรแกรมได้สะดวก แต่ก็ยังเป็นการพัฒนาโปรแกรมที่ผู้เขียนโปรแกรมต้องลงมือสร้างส่วนของโปรแกรมเองหลายส่วน ต้องมีความรู้ความชำนาญในการสร้างซอฟต์แวร์สูง อีกทั้งต้องใช้เวลาค่อนข้างมากในการพัฒนาโปรแกรม แก้ไขโปรแกรมให้มีความถูกต้อง ซึ่งอาจทำให้ผู้ที่เพิ่งเริ่มต้นเรียนรู้การพัฒนาโปรแกรมคอมพิวเตอร์เกิดความท้อแท้ในการเขียนโปรแกรมได้ จึงได้มีการพัฒนาหลักการเขียนโปรแกรมแบบใหม่ที่นำ หลักการของการเขียนโปรแกรมแบบเชิงวัตถุมาใช้ และทำให้การเขียนโปรแกรมง่ายขึ้น มีอุปกรณ์ที่ช่วยอำนวยความสะดวกให้แก่ผู้พัฒนาซอฟต์แวร์มากขึ้น โดยที่ผู้พัฒนาโปรแกรมไม่ต้องใช้ความรู้ที่ลึกซึ้งในการสร้างงาน อีกทั้งสามารถเห็นผลงานของตนได้ตั้งแต่ขณะที่กำลังสร้าง หลักการเขียนโปรแกรมที่ว่านี้ คือการเขียนโปรแกรมแบบจินตภาพ (visual programming

ไม่มีความคิดเห็น: