SlideShare a Scribd company logo
1 of 49
โครงสร้างแผนการจัดการเรียนรู้ รายชั่วโมง สาระการเรียนรู้พื้นฐาน เทคโนโลยีสารสนเทศ  ชั้นมัธยมศึกษาปีที่ 5 จัดทำโดย นางสาว นวลลออ   ถาวรโรจน์เสถียร เลขที่ 20 ชั้น ม.5 เสนอ อ.ฐิติพร   ปันติสวัสดิ์
โครงสร้างแผนการจัดการเรียนรู้ รายชั่วโมงสาระการเรียนรู้พื้นฐาน เทคโนโลยีสารสนเทศ ชั้นมัธยมศึกษาปีที่ 5หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสารการเรียนรู้ที่ 1วัตถุประสงค์ของการจัดการข้อมูล หน่วยข้อมูลและเขตข้อมูลคีย์ .การเรียนรู้ที่ 2 ชนิดข้อมูลและประเภทของแฟ้มข้อมูลการเรียนรู้ที่ 3 ลักษณะการประมวลผลข้อมูลการเรียนรู้ที่ 4 แฟ้มโปรแกรมและแฟ้มข้อมูลหน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูลการเรียนรู้ที่ 5 ชนิดของโครงสร้างข้อมูลการเรียนรู้ที่ 6 ลักษณะของข้อมูลการเรียนรู้ที่ 7 การเรียงลำดับข้อมูลการเรียนรู้ที่ 8 การค้นหาข้อมูล
หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสาร   การเรียนรู้ที่ 1วัตถุประสงค์ของการจัดการข้อมูล หน่วยข้อมูลและเขตข้อมูลคีย์ . วัตถุประสงค์ในการจัดการข้อมูล         วัตถุประสงค์ในการจัดการข้อมูล       1. การเก็บข้อมูล ต้องเก็บข้อมูลเพื่อให้สามารถนำกลับมาใช้ได้ในภายหลัง       2. การจัดข้อมูล ต้องจัดข้อมูลให้อยู่ในรูปแบบที่สามารถเรียกใช้งานได้อย่างมีประสิทธิภาพ       3. -การปรับปรุงข้อมูล ต้องปรับข้อมูลให้มีความถูกต้องสมบูรณ์อยู่เสมอ       4. การปกป้องข้อมูล ต้องปกป้องข้อมูลจากการทำลาย ลักลอบใช้ หรือแก้ไขโดยมิชอบ รวมทั้งปกป้องข้อมูลจากอุบัติเหตุที่อาจเกิดจากวินาศภัย หรือความบกพร่องภายในระบบคอมพิวเตอร์ หน่วยข้อมูล (DATA UNITS)
        หน่วยของข้อมูลคอมพิวเตอร์สามารถจัดเรียงเป็นลำดับชั้นเล็กไปขนาดใหญ่ได้ดังนี้        1.บิต (bit)          เลขฐาน 2 หนึ่งหลักซึ่งมีค่าเป็น 0 หรือ 1        2.ตัวอักษร (charecter)          กลุ่มของบิตสามารถแทนค่าตัวอักษรได้ ในชุดอักขระ ASCII 1 ไบต์ ( 8 บิต) แทนตัวอักษรตัว 1 ตัว เช่น 01000001 แทนตัวอักษร A ในปัจจุบันมีชุดอักขระที่ใช้เลขฐานสอง 16 บิต แทนค่าตัวอักษร คือ รหัส Unicode เช่น 0000 0000 1110 0110 แทนอักษรตัว ?         3.เขตข้อมูล (Field)          ซึ่งประกอบด้วยกลุ่มตัวอักษรที่แทนข้อเท็จจริง        4.ระเบียน (Record)          ระเบียน คือโครงสร้างข้อมูลที่แทนตัววัตถุชิ้นหนึ่ง เช่น ระเบียนข้อมูลนักศึกษาเลขทะเบียน 431999999        5.แฟ้ม (file)          คารางที่เป็นกลุ่มของระเบียนที่มีโครงสร้างเดียวกัน เช่น ตารางการสั่งซื้สินค้าของลูกค้า       6.ฐานข้อมูล (Database)          กลุ่มของตาราง (และความสัมพันธ์)         การเรียงลำดับชั้นของหน่วยข้อมูลดังนี้ เขตข้อมูลคีย์ (Key field) คือเขตข้อมูลที่ใช้สำหรับระบุระเบียนข้อมูลอย่างเฉพาะเจาะจงข้อมูลที่อยู่ในเขตข้อมูลนี้จะไม่ซ้ำกับระเบียนอื่น ๆ เช่น แฟ้มข้อมูลพนักงานอาจใช้เลขที่พนักงานเป็นตัวระบุระเบีย
การเรียนรู้ที่ 2 ชนิดข้อมูลและประเภทของแฟ้มข้อมูล ชนิดของข้อมูล ข้อมูลที่ต้องการจัดเก็บนั้นอาจจะมีรูปแบบได้หลายอย่าง รูปแบบสำคัญ ๆ ได้แก่        3.1 ข้อมูลแบบรูปแบบ (formatted data) เป็นข้อมูลที่รวมอักขระซึ่งอาจหมายถึงตัวอักษร ตัวเลข ซึ่งเป็นรูปแบบที่แน่นอน ในแต่ละระเบียน ทุกระเบียนที่อยู่ในแฟ้มข้อมูลจะมีรูปแบบที่เหมือนกันหมด ข้อมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่ออ่านข้อมูลออกมาอาจจะต้องนำรัหสนั้นมาตีความหมายอีกครั้ง เช่น แฟ้มข้อมูลประวัตินักศึกษา        3.2 ข้อมูลแบบข้อความ (text)เป็นข้อมูลที่เป็นอักขระในแบบข้อความ ซึงอาจหมายถึงตัวอักษร ตัวเลข สมการฯ แต่ไม่รวมภาพต่าง ๆ นำมารวมกันโดยไม่มีรูปแบบที่แน่นอนในแต่ละระเบียน เช่น ระบบการจัดเก็บข้อความต่าง ๆ ลักษณะการจัดเก็บแบบนี้จะไม่ต้องนำข้อมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกำหนดแล้วในข้อความ        3.3 ข้อมูลแบบภาพลักษณ์ (images) เป็นข้อมูลที่เป็นภาพ ซึ่งอาจเป็นภาพกราฟที่ถูกสร้างขึ้นจากข้อมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอร์สามารถเก็บภาพและจัดส่งภาพเหล่านี้ไปยังคอมพิวเตอร์อื่นได้ เหมือนกับการส่งข้อความ โดยคอมพิวเตอร์จะทำการแปลงภาพเหล่านี้ ซึ่งจะทำให้คอมพิวเตอร์สามารถที่จะปรับขยายภาพและเคลื่อนย้ายภาพเหล่านั้นได้เหมือนกับข้อมูลแบบข้อความ        3.4 ข้อมูลแบบเสียง (audio) เป็นข้อมูลที่เป็นเสียง ลักษณะของการจัดเก็บก็จะเหมือนกับการจัดเก็บข้อมูลแบบภาพ คือ คอมพิวเตอร์จะทำการแปลงเสียงเหล่านี้ให้คอมพิวเตอร์สามารถนำไปเก็บได้ ตัวอย่างได้แก่ การตรวจคลื่นหัวใจ จะเก็บเสียงเต้นของหัวใจ        3.5 ข้อมูลแบบภาพและเสียง (video) เป็นข้อมูลที่เป็นเสียงและรูปภาพ ที่ถูกจัดเก็บไว้ด้วยกัน เป็นการผสมผสานรูปภาพและเสียงเข้าด้วยกัน ลักษณะของการจัดเก็บข้อมูล คอมพิวเตอร์จะทำการแปลงเสียงและรูปภาพนี้ เช่นเดียวกับข้อมูลแบบเสียงและข้อมูลแบบภาพลักษณะซึ่งจะนำมารวมเก็บไว้ในแฟ้มข้อมูลเดียวกัน
   ประเภทของแฟ้มข้อมูล ประเภทของแฟ้มข้อมูลจำแนกตามลักษณะของการใช้งานได้ดังนี้        6.1แฟ้มข้อมูลหลัก (master file)แฟ้มข้อมูลหลักเป็นแฟ้มข้อมูลที่บรรจุข้อมูลพื้นฐานที่จำเป็นสำหรับระบบงาน และเป็นข้อมูลหลักที่เก็บไว้ใช้ประโยชน์ข้อมูลเฉพาะเรื่องไม่มีรายการเปลี่ยนแปลงในช่วงปัจจุบัน มีสภาพค่อนข้างคงที่ไม่เปลี่ยนแปลงหรือเคลื่อนไหวบ่อยแต่จะถูกเปลี่ยนแปลงเมื่อมีการสิ้นสุดของข้อมูล เป็นข้อมูลที่สำคัญที่เก็บไว้ใช้ประโยชน์ ตัวอย่าง เช่น แฟ้มข้อมูลหลักของนักศึกษาจะแสดงรายละเอียดของนักศึกษา ซึ่งมี ชื่อนามสกุล ที่อยู่ ผลการศึกษา แฟ้มข้อมูลหลักของลูกค้าในแต่ละระเบียนของแฟ้มข้อมูลนี้จะแสดงรายละเอียดของลูกค้า เช่น ชื่อสกุล ที่อยู่ หรือ ประเภทของลูกค้า        6.2 แฟ้มข้อมูลรายการเปลี่ยนแปลง (transaction file)แฟ้มข้อมูลรายการเปลี่ยนแปลงเป็นแฟ้มข้อมูลที่ประกอบด้วยระเบียนข้อมูลที่มีการเคลื่อนไหว ซึ่งจะถูกรวบรวมเป็นแฟ้มข้อมูลรายการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละงวดในส่วนที่เกี่ยวข้องกับข้อมูลนั้น แฟ้มข้อมูลรายการเปลี่ยนแปลงนี้จะนำไปปรับรายการในแฟ้มข้อมูลหลัก ให้ได้ยอดปัจจุบัน ตัวอย่างเช่น แฟ้มข้อมูลลงทะเบียนเรียนของนักศึกษา        6.3 แฟ้มข้อมูลตาราง (table file)แฟ้มข้อมูลตารางเป็นแฟ้มข้อมูลที่มีค่าคงที่ ซึ่งประกอบด้วยตารางที่เป็นข้อมูลหรือชุดของข้อมูลที่มีความเกี่ยวข้องกันและถูกจัดให้อยู่รวมกันอย่างมีระเบียบ โดยแฟ้มข้อมูลตารางนี้จะถูกใช้ในการประมวลผลกับแฟ้มข้อมูลอื่นเป็นประจำอยู่เสมอ เช่น ตารางอัตราภาษี ตารางราคาสินค้า ตัวอย่างเช่น ตารางราคาสินค้าของบริษัทขายอะไหล่เครื่องคอมพิวเตอร์ดังนี้             รหัสสินค้า      รายชื่อสินค้า   ราคา                  51              จอภาพ          4,500                  52              แป้นพิมพ์       1,200                  53              แรม 4 M        4,500                  54               แรม 8 M         7,000                  55              กระดาษต่อเนื่อง 500                   56              แฟ้มคอมพิวเตอร์ 200
       ในแฟ้มข้อมูลนี้จะประกอบด้วยระเบียนแฟ้มข้อมูลตารางของสินค้าที่มีฟิลด์ต่าง ๆ ได้แก่ รหัสสินค้า รายชื่อ สินค้า และราคาสินค้าต่อหน่วย แฟ้มข้อมูลตารางรายการสินค้า จะใช้ร่วมกับแฟ้มข้อมูลหลายแฟ้มข้อมูลในระบบสินค้า ได้แก่ แฟ้มข้อมูลคลังสินค้า (inventory master file) แฟ้มข้อมูลใบสั่งซื้อของลูกค้า (customer order master file) และแฟ้มข้อมูลรายการสิตค้าของฝ่ายผลิต (production master file) มีข้อควรสังเกตว่าแฟ้มข้อมูลตาราง แฟ้มข้อมูลรายการเปลี่ยนแปลง และแฟ้มข้อมูลหลัก ทั้ง 3 แฟ้ม จะมีฟิลด์ที่เกี่ยวกับตัวสินค้าร่วมกัน คือ ฟิลด์รหัสสินค้า (product code) ฟิลด์ร่วมกันนี้จะเป็นตัวเชื่องโยงระหว่างแฟ้มข้อมูลตารางกับฟ้มข้อมูลอื่น ๆ ทั้งหมดที่ต้องการจะใช้ค่าของฟิดล์รายชื่อสินค้า (product description) และราคาสินค้า (product price) จากแฟ้มข้อมูลตาราง การจัดแฟ้มข้อมูลแบบนี้จะทำให้ประหยัดเนื้อที่ในอุปกรณ์เก็บข้อมูลของแฟ้มข้อมูลหลัก กล่าวคือในแฟ้มข้อมูลหลักไม่ต้องมี 2 ฟิลด์ คือ ฟิลด์รายการสินค้าและฟิลด์ราคาสินค้า มีแต่เพียงฟิลด์รหัสสินค้าก็เพียงพอแล้ว เมื่อใดที่ต้องการใช้ฟิลด์รายการสินค้าในการแสดงผลก็อ่านค่าออกมาจากแฟ้มข้อมูลตารางได้ นอกจากนั้นยังเป็นการลดความซ้ำซ้อนของข้อมูลและเมื่อผู้ใช้ระบบต้องการเปลี่ยนแปลงรายการสินค้าหรือราคาสินค้าก็จะเปลี่ยนในแฟ้มข้อมูลตารางทีเดียว โดยไม่ต้องไปเปลี่ยนแปลงในแฟ้มข้อมูลอื่น         6.4 แฟ้มข้อมูลเรียงลำดับ (sort file)แฟ้มข้อมูลเรียงลำดับเป็นการจัดเรียงระเบียนที่จะบรรจุในแฟ้มข้อมูลนั้นใหม่ โดยเรียงตามลำดับค่าของฟิลด์ข้อมูลหรือค่าของข้อมูลค่าใดค่าหนึ่งในระเบียนนั้นก็ได้ เช่น จัดเรียงลำดับตาม วันเดือนปี ตามลำดับตัวอักขระเรียงลำดับจากมากไปหาน้อยหรือจากน้อยไปหามาก เป็นต้น        แฟ้มข้อมูลรายงาน (report file)เป็นแฟ้มข้อมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของรายงานที่ต้องการแล้วจัดเก็บไว้ในรูปของแฟ้มข้อมูล ตัวอย่าง เช่น แฟ้มข้อมูลรายงานควบคุมการปรับเปลี่ยนข้อมูลที่เกิดขึ้นในขณะปฏิบัติงานแต่ละวัน
การเรียนรู้ที่ 3 ลักษณะการประมวลผลข้อมูล ข้อมูลและการประมวลผลข้อมูล  ข้อมูล คือข้อเท็จจริงที่เราสนใจ ส่วน สารสนเทศ คือข้อมูลที่ผ่านการประมวลผลด้วยวิธีการที่เหมาะสมถูกต้อง จนได้รูปแบบผลลัพธ์ ตรงความต้องการของผู้ใช้  ข้อมูลที่จะนำมาประมวลผลให้เป็นสารสนเทศ จะต้องมีคุณสมบัติพื้นฐานดังต่อไปนี้ ความถูกต้อง หากมีการเก็บรวบรวมข้อมูลและข้อมูลเหล่านั้นเชื่อถือไม่ได้ จะทำให้เกิดผลเสียหายมาก ผู้ใช้จะไม่กล้าอ้างอิงหรือนำเอาไปใช้ประโยชน์ ซึ่งเป็นเหตุให้การตัดสินใจของผู้บริหารขาดความแม่นยำ และมีโอกาสผิดพลาดได้ โครงสร้างข้อมูลที่ออกแบบต้องคำนึงถึงกรรมวิธีการดำเนินงานเพื่อให้ได้ความถูกต้องแม่นยำมากที่สุด โดยปกติความผิดพลาดของการประมวลผลส่วนใหญ่ มาจากข้อมูลที่ไม่มีความถูกต้องซึ่งมีสาเหตุมาจากคนหรือเครื่องจักร การออกแบบระบบจึงต้องคำนึงถึงในเรื่องนี้ ความรวดเร็วและเป็นปัจจุบัน การได้มาของข้อมูลจำเป็นต้องให้ทันต่อความต้องการของผู้ใช้ มีการตอบสนองต่อผู้ใช้ได้เร็ว ตีความหมายสารสนเทศได้ทันต่อเหตุการณ์หรือความต้องการ มีการออกแบบระบบการเรียกค้นและรายงาน ตามความต้องการของผู้ใช้ ความสมบูรณ์ ความสมบูรณ์ของสารสนเทศขึ้นกับการรวบรวมและวิธีการทางปฏิบัติ ในการดำเนินการจัดทำสารสนเทศ ต้องสำรวจและสอบถามความต้องการของผู้ใช้ เพื่อให้ได้ข้อมูลที่มีความสมบูรณ์เหมาะสม ความชัดเจนกระทัดรัด การจัดเก็บข้อมูลต้องใช้พื้นที่ในการจัดเก็บข้อมูลมาก จึงจำเป็นต้องออกแบบโครงสร้างข้อมูลให้กระทัดรัด สื่อความหมายได้ มีการใช้รหัสหรือย่อข้อมูลให้เหมาะสม เพื่อที่จะจัดเก็บเข้าไว้ในระบบคอมพิวเตอร์ ความสอดคล้อง ความต้องการเป็นเรื่องสำคัญ ดังนั้นจึงต้องมีการสำรวจเพื่อหาความต้องการของหน่วยงานและองค์การ ดูสภาพการใช้ข้อมูล ความลึกหรือความกว้างของขอบเขตข้อมูล ที่สอดคล้องกับความต้องการ ในการนำข้อมูลไปใช้ประโยชน์ หรือการทำข้อมูลให้เป็นสารสนเทศ ที่จะนำไปใช้ประโยชน์ได้ จำเป็นต้องมีการประมวลผลข้อมูลก่อน การประมวลผลข้อมูล เป็นกระบวนการที่มีกระบวนการย่อยหลายอย่าง ประกอบกันคือ การรวบรวมข้อมูล การแยกแยะ การตรวจสอบความถูกต้อง การคำนวณ การจัดลำดับหรือการเรียงลำดับ การรายงานผล การสื่อสารข้อมูลหรือการแจกจ่ายข้อมูลนั้น การประมวลผลข้อมูล จึงเป็นกิจกรรมที่มีความสำคัญ เพราะข้อมูลที่มีอยู่ รอบๆ ตัวเรามีเป็นจำนวนมากในการใช้งานจึงต้องมีการประมวลผล เพื่อให้เกิดประโยชน์ กิจกรรมหลักของการให้ได้มาซึ่งสารสนเทศ จึงประกอบด้วยกิจกรรมการ เก็บรวบรวมข้อมูล ซึ่งต้องมีการตรวจสอบ ความถูกต้องด้วย กิจกรรมการประมวลผลซึ่งอาจจะเป็นการแบ่งแยกข้อมูล การจัดเรียงข้อมูล การคำนวณ และกิจกรรมการเก็บรักษาข้อมูลซึ่งอาจต้อง มีการทำสำเนา ทำรายงาน เพื่อแจกจ่าย 
การเรียนรู้ที่ 4 แฟ้มโปรแกรมและแฟ้มข้อมูล                           แฟ้มโปรแกรมและแฟ้มข้อมูล        ถ้าจะแบ่งประเภทของแฟ้มในคอมพิวเตอร์อีกนัยหนึ่ง อาจแบ่งเป็นแฟ้มโปรแกรม และ แฟ้มข้อมูล แฟ้มโปรแกรมประกอบด้วยชุดคำสั่งต่างๆ ที่ทำงานอย่างใดอย่างหนึ่งเช่น โปรแกรมประมวลคำ (word processor) ใช้สำหรับพิมพ์เอกสารและจัดรูปแบบข้อความ และโปรแกรมบีบอัดข้อมูล (compression utility) ใช้สำหรับบีบอัดข้อมูลที่มีขนาดเล็กลง เป็นต้น       แฟ้มที่จัดเก็บหรือบันทึกโดยโปรแกรมเหล่านี้ จัดเป็นประเภทแฟ้มข้อมูล ซึ่งตามปกติจะมีส่วนขยาย (file extension) เป็นตัวบอกประเภทเช่น เอกสารที่สร้างด้วยโปรแกรมประมวลคำ Microsoft Word จะมีส่วนขยายหลักเป็น .doc ส่วนแฟ้มข้อมูลที่สร้างด้วยโปรแกรมบีบอัดข้อมูล Winzipจะมีส่วนขยายเป็น .zip เป็นต้น ที่กล่าวว่าส่วนขยายหลักหมายความว่า โปรแกรมหนึ่งอาจสร้างแฟ้มข้อมูลที่มีส่วนขยายได้หลายหย่าง ตัวอย่างโปรแกรมลักษณะนี้ได้แก่ Microsoft Word2000 ซึ่งสามารถสร้างแฟ้มข้อมูลที่มีส่วนขยายเป็น .doc .htm .html .rtf .txt .mcwและ .wpsแต่ จะเป็นส่วนขยายหลักเป็น .doc       แฟ้มข้อมูลบางประเภทสร้างและเปิดด้วยโปรแกรมใดโปรแกรมหนึ่งโดยเฉพาะ เช่นแฟ้มที่สร้างด้วยโปรแกรมแต่งภาพ Adobe Photoshop ซึ่งมีส่วนขยายเป็น .psdในขณะที่แฟ้มข้อมูลบางประเภทเป็นประเภทที่มีรูปแบบมาตรฐานที่สามารถสร้างและเปิดได้โดยโปรแกรมต่างๆ เช่น ประเภทแฟ้ม Bitmap ( BMP) Graphics Interchange Format (GIF) และ Joint Photographic Experts Group (JPEG) สามารถสร้างและเปิดแก้ไขได้โดย Windows PaintBrush , Adobe Photoshop หรือ Microsoft Photo Editor ก็ได้ แฟ้มที่มีรูปแบบมาตรฐานเหล่านี้มีประโยชน์มากในการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมต่างๆ        แฟ้มโปรคแกรมที่ประกอบด้วยชุดคำสั่งที่ทำงานได้ ได้แก่ประเภท .exe , .com , .bat , .dll   
หน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูล การเรียนรู้ที่ 5 ชนิดของโครงสร้างข้อมูล    ประเภทของโครงสร้างข้อมูล        แบ่งออกเป็น 2 ประเภท คือ   
 โครงสร้างข้อมูลทางกายภาพ (Physical Data Structure)
   เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ แบ่งออกเป็น 2 ประเภท 1.ข้อมูลเบื้องต้น (Primitive Data Types)   - จำนวนเต็ม (Integer)   - จำนวนทศนิยม (Floating point)   - ข้อมูลบูลีน (Boolean)   - จำนวนจริง (Real)   - ข้อมูลอักขระ (Character) 2.ข้อมูลโครงสร้าง (Structure Data Types)   - แถวลำดับ (Array)   - ระเบียนข้อมูล (Record)   - แฟ้มข้อมูล (File)
- โครงสร้างข้อมูลทางตรรกะ (Logical Data Structure)
        เป็นโครงสร้างข้อมูลที่เกิดจากการจินตนาการของผู้ใช้ เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น แบ่งเป็น 2 ประเภท 1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Data Structure)         ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน     - ลิสต์ (List)     - สแตก (Stack)     - คิว (Queue)     - สตริง (String) 2. โครงสร้างข้อมูลแบบไม่เชิงเส้น (Non-Linear Data Structure)           ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว     - ทรี (Tree)   - กราฟ (Graph) 3. การดำเนินการกับโครงสร้างข้อมูล(Data Structure Operation)    วิธีดำเนินการกับข้อมูลที่นิยมใช้กันมากมี 4 แบบ คือ   1. การเข้าถึงเรคคอร์ด (Traversing)   2. การค้นหา (Searching)   3. การเพิ่ม (Inserting)   4. การลบ (Deleting)   ยังมีการจัดการกับข้อมูลอีก 2 อย่าง คือ   1. การเรียงข้อมูล (Sorting)   2. การรวมข้อมูล (Merging)   4. การแทนที่ข้อมูลในหน่วยความจำ
มีอยู่ 2 วิธี คือ การแทนที่ข้อมูลแบบสแตติก (Static Memory Representation)         เป็น การแทนที่ข้อมูลที่มีการจองเนื้อที่แบบคงที่แน่นอน ต้องมีการกำหนดขนาดก่อนการใช้งาน แต่มีข้อเสีย คือ ไม่สามารถปรับขนาดให้เพิ่มขึ้นหรือลดลงได้ โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบสแตติก คือแถวลำดับ (Array) การแทนทีข้อมูลแบบไดนามิก (Dynamic Memory Representation)        เป็น การแทนที่ข้อมูลที่ไม่ต้องจองเนื้อที่ ขนาดของเนื้อที่ยืดหยุ่นได้ ตามความต้องการของผู้ใช้  โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบไดนามิก คือ ตัวชี้หรือพอยเตอร์ (Pointer) 5. ลักษณะของโปรแกรมแบบที่มีโครงสร้างที่ดี 5.1 โครงสร้างโปรแกรมแบบคำสั่งตามลำดับ         เป็น โครงสร้างพื้นฐานที่ประกอบด้วยคำสั่งทั่วๆไป เป็นโครงสร้างที่มีลักษณะการทำงานแบบเรียงลำดับ คือ จะทำงานตั้งแต่ต้นจนจบโดยไม่มีการข้ามขั้นตอนใดๆ
5.2 โครงสร้างโปรแกรมแบบมีการตัดสินใจ (Decision)         มี การตรวจสอบเงื่อนไข เพื่อตัดสินใจว่าจะทำการประมวลผลส่วนใด โดยผลลัพธ์ของเงื่อนไขจะมีค่าของความเป็นไปได้อยู่ 2 ลักษณะ คือ จริงและเท็จ เท่านั้น 5.3 โครงสร้างโปรแกรมแบบเป็นวงจรปิด (Loop)         มีลักษณะการทำงานซ้ำๆกัน อยู่ในส่วนใดส่วนหนึ่งของโปรแกรม 6. อัลกอริทึม (Algorithm)        อัลกอรึทึม คือ วิธีการแก้ปัญหาต่างๆ อย่างมีระบบ มีลำดับขั้นตอนตั้งแต่ต้นจนได้ผลลัพธ์ สามารถเขียนได้หลายแบบ การเลือกใช้ต้องเลือกใช้ขั้นตอนวิธีที่เหมาะสม กระชับ และรัดกุม อัลกอริทึมที่นิยมใช้กันมาก ได้แก่ 1. อัลกอริทึมแบบแตกย่อย (Divide and conquer) 2. อัลกอริทึมแบบเคลื่อนที่ (Dynamic Programming) 3. อัลกอริทึมแบบทางเลือก (Greedy Algorithm)
การเขียนผังงาน (Flowchart)        Flow Chart เป็นการอธิบายขั้นตอนการประมวลผลโดยใช้สัญลักษณ์ในการแสดงความหมายหรือกำหนด ลำดับการทำงาน การใช้กรอบรูปสัญลักษณ์ที่สื่อความหมาย อธิบายขั้นตอนการทำงานของโปรแกรม การเขียนรหัสเทียม (Pseudo Code)        Pseudo Code การอธิบายขั้นตอนการประมวลผลโดยใช้วลีภาษาอังกฤษในการแสดงอธิบาย ใช้คำสั้นๆ กะทัดรัด อธิบายขั้นตอนการทำงานของโปรแกรม พัฒนาการของภาษาโปรแกรม - ภาษาเครื่อง (Machine Language) - ภาษาแอสเซมบลี (Assembly Language) - ภาษาระดับสูง (High Level Language) - ภาษายุคที่ 4  (Fourth Generation Language หรือ 4GL) การบำรุงรักษาโปรแกรม (Program Maintenance)         หมาย ถึง การแก้ไขข้อผิดพลาดที่พบระหว่างการทดสอบหรือระหว่างการใช้งาน ซึ่งอาจเป็นการเปลี่ยนข้อมูลที่ต้องการใช้ใหม่การปรับปรุงข้อมูล ให้ทันเหตุการณ์อยู่เสมอ การปรับเปลี่ยนโครงสร้างบนหน้าจอ เป็นต้น
การเรียนรู้ที่ 6 ลักษณะของข้อมูล ลักษณะของข้อมูลที่ดี             ลักษณะของข้อมูลที่ดี ข้อมูลที่ดีควรเป็นข้อมูลที่มีคุณลักษณะดังต่อไปนี้ •  ข้อมูลที่มีความถูกต้องและเชื่อถือได้ (accuracy) ข้อมูลจะมีความถูกต้องและเชื่อถืได้มากน้อยเพียงใดนั้น ขึ้นกับวิธีการที่ใช้ในการควบคุมข้อมูลนำเข้า และการควบคุมการประมวลผลการควบคุมข้อมูลนำเข้าเป็นการกระทำเพื่อให้เกิดความมั่นใจว่าข้อมูลนำเข้ามีความถูกต้องเชื่อถือได้ เพราะถ้าข้อมูลนำเข้าไม่มีความถูกต้องแล้วถึงแม้จะใช้วิธีการวิเคราะห์และประมวลผลข้อมูลที่ดีเพียงใด ผลลัพธ์ที่ได้ก็จะไม่มีความถูกต้อง หรือนำไปใช้ไม่ได้ ข้อมูลนำเข้าจะต้องเป็นข้อมูลที่ผ่านการตรวจสอบว่าถูกต้องแล้ว ข้อมูลบางอย่างอาจต้องแปลงให้อยู่ในรูปแบบที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้อย่างถูกต้อง ซึ่งอาจต้องพิมพ์ข้อมูลมาตรวจเช็คด้วยมือก่อน การประมวลผลถึงแม้ว่าจะมีการตรวจสอบข้อมูลนำเข้าแล้วก็ตาม ก็อาจทำให้ได้ข้อมูลที่ผิดพลาดได้ เช่น เกิดจากการเขียนโปรแกรมหรือใช้สูตรคำนวณผิดพลาดได้ ดังนั้นจึงควรกำหนดวิธีการควบคุมการประมวลผลซึ่งได้แก่ การตรวจเช็คยอดรวมที่ได้จากการประมวลผลแต่ละครั้ง หรือการตรวจสอบผลลัพธ์ที่ได้จากการประมวลผลด้วยเครื่องคอมพิวเตอร์กับข้อมูลสมมติที่มีการคำนวณด้วยว่ามีความถูกต้องตรงกันหรือไม่
•  ข้อมูลตรงตามความต้องการของผู้ใช้ (relevancy) ได้แก่ การเก็บเฉพาะข้อมูลที่ผู้ใช้ต้องการเท่านั้น ไม่ควร เก็บข้อมูลอื่น ๆ ที่ไม่จำเป็นหรือไม่เกี่ยวข้องกับการใช้งาน เพราะจะทำให้เสียเวลาและเสียเนื้อที่ในหน่วยเก็บข้อมูล แต่ทั้งนี้ข้อมูลที่เก็บจะต้องมีความครบถ้วนสมบูรณ์ด้วย •  ข้อมูลมีความทันสมัย (timeliness) ข้อมูลที่ดีนั้นนอกจากจะเป็นข้อมูลที่มีความถูกต้องเชื่อถือได้แล้วจะ ต้องเป็นข้อมูลที่ทันสมัย ทั้งนี้เพื่อให้ผู้ใช้สามารถนำเอาผลลัพธ์ที่ได้ไปใช้ได้ทันเวลา นั่นคือจะต้องเก็บข้อมูลได้รวดเร็วเพื่อทันความต้องการของผู้ใช้
การเรียนรู้ที่ 7 การเรียงลำดับข้อมูล การเรียงลำดับข้อมูล การเรียงลำดับข้อมูลเป็นเรื่องสำคัญมากเรื่องหนึ่งเนื่องจากทำให้ผู้ต้องการใช้ข้อมุลเช่น ผู้บริหาร,ผู้ปฏิบัติงาน (พนักงาน) สามารถทำความเข้าใจกับข้อมูลหรือทำการค้นหาข้อมูลได้ง่ายและเร็วยิ่งขึ้นตามที่ต้องการ ประเภทของการจัดการจัดเรียงข้อมูลในระบบคอมพิวเตอร์ แบ่งเป็น 2 ประเภทคือ   1. Internal Sorting คือ การเรียงลำดับข้อมูลโดยเก็บไว้ในหน่วยความจำหลัก และข้อมูลของสมาชิกจะถูกเก็บ อยู่ในโครงสร้างอะเรย์ 2. External Sorting คือ การเรียงลำดับข้อมูลโดยเก็บไว้ในหน่วยความจำสำรอง ข้อมูลส่วนใหญ่มีจำนวนมาก จึงไม่ สามารถเก็บไว้ในหน่วยความจำหลักได้ทั้งหมด 
ในหัวข้อการเรียงลำดับ นี้จะอธิบายวิธีการเรียงลำดับข้อมูลในแต่ละวิธีโดยสรุปอย่างย่อ ๆ เพื่อใช้เป็นแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไม่ได้กล่าวถึงวิธีการขั้นตอนในการจัดเรียงอย่างละเอียดแต่จะพยายามชี้ให้เห็นถึงจุดเด่นต่าง ๆ ของการจัด เรียงลำดับในแต่ละวิธี วิธีหรือชนิดของการเรียงลำดับ มีวิธีต่าง ๆ ที่มักจะได้พบโดยทั่วไปดังนี้ 1. SELECTION SORT 2. INSERTION SORT / LINEAR INSERTION SORT 3. BUBBLE SORT 4. SHELL SORT 5. BUCKET SORT /RADIX SORT  6. QUICK SORT 7. HEAP SORT / TREE SORT 1. การเรียงลำดับแบบเลือก (Selection Sort) เป็นวิธีที่ง่ายที่สุดในการเรียงลำดับข้อมูล โดยเริ่มจาก - หาตำแหน่งของข้อมูลที่มีค่าน้อยที่สุดแล้วสลับค่าของตำแหน่งข้อมูลนั้นกับค่าข้อมูลในตำแหน่ง A(1) จะได้ A(1) มีค่าน้อยที่สุด - หาตำแหน่งของข้อมูลที่มีค่าน้อยที่สุดในกลุ่ม A(2), A(3),....,A(n) แล้วทำกับสลับค่าข้อมูลในตำแหน่ง A(2) อย่างนี้เรื่อยไปจน กระทั่งไม่เกิน N-1 รอบ ก็จะได้ข้อมูลที่เรียงลำดับจากน้อยไปมาก 2. การเรียงลำดับแบบแทรก (Insertion Sort)
หลักการ คือ 1. อ่านข้อมุลที่ต้องการเรียงลำดับเข้ามาทีละตัวโดยเริ่มจากตัวแรกก่อน และหาตำแหน่งของข้อมูลที่ควรจะอยู่ 2. หาที่ว่างสำหรับข้อ 3. Insert หรือแทรกข้อมูล ณ ตำแหน่งในข้อ 3. การเรียงลำดับแบบบับเบิล (Bubble Sort) วิธัการเรียงลำดับแบบบับเบิลจะทำการเปรียบเทียบข้อมูลที่อยู่ในตำแหน่งที่ติดกัน ถ้าข้อมูลไม่อยู่ใลำดับที่ถูกต้อง ก็จะทำการสลับตำแหน่งของข้อมูลที่เปรียบเทียบโดยที่การเปรียบเทียบจะเริ่มที่ตำแหน่งที่ 1 กับตำแหน่งที่ 2 ก่อน ต่อไปนี้เทียบกับ ตำแหน่งที่ 2 และตำแหน่งที่ 3 จนถึงตำแหน่งที่จัดเรียงแล้ว จากนั้นจะกลับไปเริ่มต้นการเปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบร้อยหมดทุกตำแหน่ง ในวิธีแบบ Bubble Sort ค่าในการเปรียบเทียบที่น้อยที่สุดหรือมากที่สุด จะลอยขึ้นข้างบน เหมือนกับฟองอากาศ 4. การรียงลำดับแบบเชลล์(shell sort) เป็นรูปแบบของการ sort ข้อมูลโดยการนำเอาข้อดีของการค้นหาข้อมูลแบบ แทรกและแบบเลือกและหลีกเลี่ยง การเกิดปัญหาของทั้งแบบแทรกและแบบเลือก ซึ่งการเปรียบเทียบข้อมูลในการเรียงลำดับแบบแทรก โดยการเปรียบเทียบ ข้อมูลที่อยู่ไกลออกไป ซึ่งจะทำให้เราสามารถเรียงดับข้อมูลในตำแหน่งที่อยู่ไกลออกไปหลังจากนั้นก็จะเรียงลำดับข้อมูล ที่อยู่ใกล้กันเข้ามา(กว่าในครั้งแรก) และความห่างของข้อมูลที่เปรียบเทียบก็จะน้อยลงจนเหลือ 1 วิธีนี้คิดค้นเมื่อปี ค.ศ.1959 โดย ดี.แอล.เชลล์(D.L.SHELL) เรียกว่า การเรียงลำดับแบบเชลล์(shell sort)
5. การเรียงลำดับโดยการใช้ฐานเลข(radix sort) การเรียงลำดับแบบนี้การเรียงลำดับ จะอยู่บนพื้นฐานของการแทนตำแหน่งของตัวเลขที่ต้องการนำมาเรียงลำดับ จะเริ่มจากตัวที่มีเลขนัยสำคัญสูงที่สุด ดำเนินจนกระทั่งถึงตัวเลขที่มีเลขนัยสำคัญต่ำสุด การเรียงลำดับในวิธีนี้การเรียงลำดับ จะเรียงจากตัวเลขที่มีนัยสำคัญน้อยที่สุดก่อน เมื่อตัวเลขทั้งหมดถูกนำมาเรียงลำดับตามเลขนัยสำคัญที่สูงขึ้น ตัวเลขที่เหมือนกัน ในตำแหน่งน้น จะต่างกันในตำแหน่งของเลขนัยสำคัญที่น้อยกว่า การประมวลผลแบบนี้จะประมวลผลกับข้อมูลทั้งหมดได้ โดยที่ไม่ต้องมีการแบ่งข้อมูลแบบกลุ่มย่อย 6. การเรียงลำดับอย่างเร็ว(quick sort) ถูกสร้างและตั้งชื่อโดย ซี.เอ.อาร์.ฮาร์เวร์ (C.A.R HOARE) การเรียงลำดับอย่างเร็ว จะแบ่งข้อมูลเป็นสองกลุ่ม โดยใน การจัดเรียงจะเลือกข้อมุลตัวใดตัวหนึ่งออกมา ซึ่งจะเป็นตัวที่แบ่งข้อมูลออกเป็นสองกลุ่ม โดยกลุ่มแรกจะต้องมีข้อมูลน้อยกว่า ตัวแบ่ง และกลุ่มที่มีข้อมูลน้อยกว่าตัวแบ่ง และอีกกลุ่มจะมีข้อมูลที่มากกว่าตัวแบ่ง ซึ่งเราเรียกตัวแบ่งว่า ตัวหลัก(pivot) ในการเลือกตัวหลักจะมีอิสระในการเลือกข้อมูลตัวใดก็ได้ที่เราต้องการ การเรียงลำดับแบบเร็วเหมาะกับข้อมูลที่มีการเรียกซ้ำ 7.การเรียงลำดับฮีพ(heapsort) เป็นการเรียงลำดับที่อยู่บนพื้นฐานบนพื้นฐานของโครงสร้างแบบไบนารี จะดำเนินการ 2 ขั้นตอน คือ    1. การจัดข้อมูลในอะเรย์ให้สอดคล้องกับความต้องการของฮีพ   2. การขจัดหนือการเคลื่อนย้ายข้อมูลในตำแหน่งสูงสุดหรือตำแหน่งยอดของของฮีพออกไปและสนับสนุนข้อมูลข้อมูล ตัวอื่นไปแทนตำแหน่งนั้น  
การเรียนรู้ที่ 8 การค้นหาข้อมูล การค้นหาข้อมูล (searching) การค้นหาคําตอบ หรือการค้นหาข้อมูลในทางคอมพิวเตอร์มักจะกระทําบนโครงสร้างข้อมูลแบบต้นไม้ และกราฟ ทั้งนี้เพราะโครงสร้างข้อมูลในลักษณะนี้สามารถทําให้การค้นหาทําได้สะดวกและสามารถพลิกแพลงการค้นหาได้ง่าย ในความเป็นจริงแล้ว การค้นหาข้อมูลบางครั้งสามารถกระทําบนโครงสร้างข้อมูลชนิดอื่นก็ได้เช่น อาเรย์ แสตก และคิว แต่การจัดข้อมูลในโครงสร้างเช่นนี้ มีข้อจํากัดในการค้นหาข้อมูลมาก การค้นหาทําได้แบบเรียงลําดับ(Sequencial Search) เท่านั้น ซึ่งใช้ได้กับข้อมูลที่มีขนาดเล็ก ดังนั้นในการค้นหาข้อมูลที่มีขนาดใหญ่ ก่อนการค้นหา หรือระหว่างการค้นหา ข้อมูลที่จะถูกค้นจะต้องถูกจัดให้อยู่ในรูปแบบของต้นไม้ หรือกราฟเท่านั้น การค้นหาข้อมูลบนโครงสร้างต้นไม้และกราฟสามารถจําแนกได้ 2 แบบคือ การค้นหาแบบไบล์ด(Blind Search) และการค้นหาแบบฮิวริสติก(Heuristic Search)   การค้นหาแบบไบล์ด(Blind Search)        การค้นหาแบบไบล์ด(Blind search) เป็นการค้นหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง โดยอาศัยทิศทางเป็นตัวกําหนดการค้นหา ไม่ต้องมีข้อมูลอะไรมาช่วยเสริมการตัดสินใจว่าจะเดินทางต่อไปอย่างไร หรือกล่าวอย่างง่าย ๆ คือการจะหยิบข้อมูลใดมาช่วยในการค้นหาต่อไป ไม่ต้องอาศัยข้อมูลใด ๆ ทั้งสิ้น นอกจากทิศทางซึ่งเป็นรูปแบบตายตัว   การค้นหาแบบไบล์ดสามารถแบ่งย่อยได้ดังนี้ คือ การค้นหาทั้หมด  และการค้นหาบางส่วน      -  การค้นหาทั้งหมด(exhaustive search) คือ การค้นหาทั้งหมดของปริภูมิสถานะ      -  การค้นหาบางส่วน  (partial search)  การค้นหาเพียงบางส่วนของปริภูมิสถานะ ซึ่งในความเป็นจริงการค้นหาส่วนมากใช้การค้นหาเฉพาะบางส่วนเท่านั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ่ เท่าให้ไม่สามารถค้นหาได้ทั้งหมด ดังนั้นจึงมีความเป็นไปได้ว่าคำตอบที่ได้อาจไม่ใช่คำตอบที่ดีที่สุด การค้นหาแบบนี้สามารถแบ่งได้เป็น 2 ประเภทคือ การค้นหาแบบลึกก่อน(Depth first search) และการค้นหาแบบกว้างก่อน (Breadth first search)    
  การค้นหาแบบลึกก่อน(Depth first search)          การค้นหาแบบลึกก่อนเป็นการค้นหาที่กําหนดทิศทางจากรูปของโครงสร้างต้นไม้ ที่เริ่มต้นจากโหนดราก(Root node) ที่อยู่บนสุด แล้วเดินลงมาให้ลึกที่สุด เมื่อถึงโหนดล่างสุด(Terminal node) ให้ย้อนขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไม่ได้เดินผ่าน แล้วเริ่มเดินลงจนถึงโหนดลึกสุดอีก ทําเช่นนี้สลับไปเรื่อยจนพบโหนดที่ต้องการหาหรือสํารวจครบทุกโหนดแล้วตามรูปที่ 1 การค้นหาแบบลึกก่อนจะมีลําดับการเดินตามโหนดดังตัวเลขที่กํากับไว้ในแต่ละโหนด  
         ดังที่ได้กล่าวมาแล้วว่า โครงสร้างข้อมูลที่ใช้สําหรับการค้นหานี้สามารถใช้กับโครงสร้างกราฟได้ด้วย โดยอาศัยหลักการเดียวกัน แต่สําหรับการเดินทางบนกราฟนั้นจะไม่มีโหนดลึกสุดดังนั้นการเดินทางบนกราฟจะต้องปรับวิธีการเป็นดังนี้ โดยเริ่มจาก โหนดเริ่มต้น จากนั้นให้นําโหนดที่อยู่ติดกับโหนดที่กําลังสํารวจอยู่(ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก) มาเก็บไว้ในสแต็กเมื่อสํารวจโหนดนั้นเสร็จ ให้พอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงทั้งหมดที่ยังไม่ได้สํารวจมาต่อท้ายแสต็ก แล้วพอพตัวบนสุดออกมาสํารวจทําเช่นนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ต้องการ หรือสํารวจครบทุดโหนด  รูปที่ 2 โครงสร้างข้อมูลแบบกราฟ
  การสํารวจจะเริ่มต้นที่ A และนําโหนดข้างเคียง B และ C มาเก็บไว้ในแสต็ก เมื่อสํารวจ Aเสร็จพอพข้อมูลจากแสต็กออกมาได้ C ทําการสํารวจ C และนําโหนดข้างเคียงกับ C ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก Dและ F พุช(Push) ใส่แสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู่ เมื่อสํารวจ C เสร็จ พอพ F ออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก ซึ่งก็คือ G ดังนั้นข้อมูลในแสต็กจะเป็น B D G ทํ าเช่นนี้ไปเรื่อย ๆ จนจบการทํางานก็จะได้ลําดับการสํารวจคือ (A C F G H E D B) ตามตาราง 1 ดังต่อไปนี้     ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน   ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย    
  ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน           ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย     การค้นหาแบบกว้างก่อน (Breadth first search)        การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด   รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้       ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน           ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย     การค้นหาแบบกว้างก่อน (Breadth first search)        การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด   รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้      
        สําหรับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้ จะอาศัยโครงสร้างข้อมูลแบบคิว(Queue)มาช่วย และด้วยวิธีการเช่นเดียวกับการค้นหาแบบลึกก่อนคือ ให้เริ่มต้นสํารวจที่โหนดเริ่มต้น แล้วนําโหนดข้างเคียงเก็บไว้ในคิว เมื่อสํารวจโหนดเริ่มต้นเสร็จ ให้นําข้อมูลในคิวออกมาสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและไม่ได้อยู่ในคิวใส่คิวไว้ ทําเช่นนี้ไปเรื่อย ๆ จนพบโหนดที่ต้องการ หรือเมื่อสํารวจครบทุกโหนด   รูปที่ 4 โครงสร้างข้อมูลแบบกราฟ    
      การสํารวจเริ่มต้นที่ A นําโหนดข้างเคียง B C ไว้ในคิว เมื่อสํารวจ A เสร็จ นําข้อมูลในคิว คือ Bออกมาสํารวจ แล้วนําข้อมูลข้างเคียงคือ D E ใส่คิว ตอนนี้คิวจะมี B D E อยู่ แล้วนํา B ออกมาสํารวจทําเช่นนี้เรื่อย ๆ จะได้ลําดับการสํารวจข้อมูลคือ (A B C D E F G H)  ตามตารางที่ 2   ตาราง 2 ลําดับการค้นหาแบบกว้างก่อน
     เช่นเดียวกับการค้นหาแบบลึกก่อน การค้นหาแบบกว้างก่อนโดยใช้โครงสร้างข้อมูลคิวมาช่วยต้องมีการกําหนดโหนดเริ่มต้น และวิธีการนี้สามารถใช้ได้กับข้อมูลบนโครงสร้างแบบต้นไม้ด้วย   ตารางเปรียบเทียบ การค้นหาแนวลึกก่อนและแนวกว้างก่อน   การค้นหาแนวลึกก่อน การค้นหาแนวกว้างก่อน 1.ใช้หน่วยความจำน้อยกว่า เพราะว่าสถานะในเส้นทางค้นหาปัจจุบันเท่านั้นที่ถูกเก็บ(ในขณะใดๆ จะเก็บเส้นทางเดียว พอจะไปเส้นทางอื่นเส้นทางที่ผ่านมาก็ไม่จำเป็นต้องเก็บ) 1.ใช้หน่วยความจำมากเพราะต้องเก็บสถานะไว้ทุกตัวเพื่อหาเส้นทางจากสถานะเริ่มต้นไปหาคำตอบ 2. อาจจะติดเส้นทางที่ลึกมากโดยไม่พบคำตอบ เช่นในกรณีที่เส้นทางนั้นไม่มีคำตอบและเป็นเส้นทางที่ยาวไม่สิ้นสุด จะทำไม่สามารถไปเส้นทางอื่นได้ 2. จำไม่ติดเส้นทางที่ลึกมาก ๆ โดยไม่พบคำตอบ 3. ถ้าคำตอบอยู่ในระดับ n+1สถานะอื่นทุกตัวที่ระดับ 1ถึงระดับ n ไม่จำเป็นต้องถูกกระจายจนหมด 3. ถ้าคำตอบอยู่ในระดับn+1 สถานะทุกตัวที่ระดับ 1ถึงระดับ n จะต้องถูกกระจายจนหมด ทำให้มีสถานะที่ไม่จำเป็นในเส้นทางที่จะไปสู่คำตอบถูกกระจายออกด้วย 4. เมื่อพบคำตอบไม่สามารถรับประกันได้ว่าเส้นที่ได้เป็นเส้นทางที่สั้นที่สุดหรือไม่ 4. ถ้ามีคำตอบจะรับประกันได้ว่าจะพบคำตอบแน่ ๆ และจะได้เส้นทางสั้นที่สุดด้วย
การค้นหาแบบฮิวริสติก(Heuristic Search)            การค้นหาคําตอบอาศัยวิธีการทางฮิวริสติก (heuristic search) มีความความแตกต่างจากการค้นหาข้อมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยู่ที่การค้นหาข้อมูลธรรมดา ผู้ที่ทําการค้นข้อมูลจะต้องตรวจสอบข้อมูลทีละตัวทุกตัวจนครบ แต่ฮิวริสติกจะไม่ลงไปดู ข้อมูลทุกตัว วิธีการนี้จะเลือกได้คําตอบที่เหมาะสมให้กับการค้นหา ซึ่งมีข้อดีคือ สามารถทําการ ค้นหาคําตอบจาก ข้อมูลที่มีขนาดใหญ่มาก ๆ ได้ แต่มีข้อเสียคือคําตอบที่ได้เป็นเพียงคําตอบที่ดี เท่านั้นไม่แน่ว่าจะดีที่สุด แต่เนื่องจากว่าปัญหาในบางลักษณะนั้นใหญ่มาก และเป็นไปไม่ได้ที่จะทํา การค้นหาด้วยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเป็นสิ่งที่จําเป็นในเรื่องของฮิวริสติกนั้น นอกจากจะมีการค้นหาแบบฮิวริสติกแล้ว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ  ฮิวริสติกฟังก์ชัน (heuristic function) ซึ่งหมายถึงฟังก์ชันที่ทําหน้าที่ในการวัดขนาดของความเป็น ไปได้ในการแก้ปัญหาซึ่งจะแสดงด้วยตัวเลข   วิธีการดังกล่าวจะกระทําได้โดยการพิจารณาถึงวิธีการ (aspects) ต่าง ๆ ที่ใช้ในการแก้ปัญหา ณ  สถานะหนึ่งว่าจะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกําหนดเป็นนํ้าหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี นํ้าหนักเหล่านี้จะถูกแสดงด้วยตัวเลขที่กํากับไว้กับโหนดต่าง ๆ ในกระบวนการ ค้นหา และค่าเหล่านี้จะเป็นตัวที่ใช้ในการประมาณความเป็นไปได้ว่าเส้นทางที่ผ่านโหนดนั้นจะมีความเป็นไปได้ในการนําไปสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหน
จุดประสงค์ที่แท้จริงของฮิวริสติก ฟังก์ชันก็คือ การกํากับทิศทางของกระบวนการค้นหา เพื่อให้อยู่ในทิศทางที่ได้ประโยชน์สูงสุด โดยการบอกว่าเราควรเลือกเดินเส้นทางไหนก่อน ในกรณีที่มีเส้น ทางมากกว่าหนึ่งเส้นทางต้องเลือกกระบวนการค้นหาแบบฮิวริสติก โดยปกติแล้วจะต้องอาศัยฮิวริสติกฟังก์ชัน ทําให้การแก้ปัญหาหนึ่ง ๆ จะดีหรือไม่ ก็ขึ้นอยู่กับฮิวริสติกฟังก์ชันดังนั้นการค้นหาแบบนี้จึงไม่มีอะไรเป็นหลักประกันว่าจะได้สิ่งที่ไม่ดีออกมาด้วยเหตุนี้เอง เราจึงเรียกการ ค้นหาแบบฮิวริสติกนี้ว่า Weak Methods หรือจะกล่าวอีกนัยหนึ่งคือ Weak Methodsเป็นกระบวนการควบคุมโดยทั่วไป (general-purpose control stategies)     ซึ่งการค้นหาแบบนี้ สามารถแบ่งได้เป็น
การค้นหาแบบปีนเขา(Hill climbing)     ฟังก์ชันฮิวริสติกสามารถนำมาช่วยในกระบวนการค้นหาเพื่อให้ได้คำตอบอย่างรวดเร็วและมีประสิทธิภาพ วิธีการที่จะนำฟังก์ชันฮิวริสติกมาใช้มีหลายวิธีด้วยกันขึ้นอยู่กับว่าจะใช้ในลักษณะใด เช่นเลือกสถานะที่มีค่าฮิวริสติกดีขึ้น แล้วเดินไปยังสถานะนั้นเลยโดยไม่ต้องสนใจสถานะที่มีค่าฮิวริสติกแย่กว่าสถานะปัจจุบันหรือว่าจะเก็บสถานะทุกตัวไว้แม้ว่าค่าฮิวริสติกจะแย่ลงแล้วพิจารณาสถานะเหล่านี้ทีหลัง เป็นต้น ในส่วนต่อไปนี้จะกล่าวถึงอัลกอริทึมต่าง ๆ ที่นำฟังก์ชันฮิวริสติกมาช่วยในการค้นหาคำตอบ โดยเริ่มจากอัลกอริทึมปีนเข้า (Hill climbing algorithm)
การค้นหาแบบฮิลไคลบิง(Hill climbing) เป็นวิธีการค้นหาข้อมูลที่มีลักษณะคล้ายกับการปีนภูเขา การที่นักปีนภูเขาจะเดินทางไปถึงยอดภูเขา นักปีนเขาจะต้องมองก่อนว่ายอดเขาอยู่ที่ใด แล้วนักปีนเขาจะต้องพยายามไปจุดนั้นให้ได้ ลองนึกภาพของการปีนภูเขาโล้นที่มองเห็นแต่ยอด และนักปีเขากําลังปีนภูเขาอยู่เบื้องล่างที่มีเส้นทางเต็มไปหมด เพื่อที่จะเดินทางไปถึงยอดภูเขาโดยเร็วที่สุด นักปีน เขาจะมองไปที่ยอดเขาแล้วสังเกตว่าทิศทางใดที่เมื่อปีนแล้วจะยิ่งใกล้ยอดเขา และหลีกเลี่ยงทิศทางที่เมื่อไปแล้วจะทําให้ตัวเองห่างจากยอดเขา นักปีนเขาจะต้องทําเช่นนี้ไปเรื่อย ๆ จนกระทั่งถึงยอดเขา
ตัวอย่างการใช้ฟังก์ชันฮิวริสติก โดยอัลกอริทึมปีนเขาอย่างง่ายโดยปัญหาโลกของบล๊อก
รูปที่  6 การค้นหาแบบ Hill climbing
ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีค่าฮิวริสติกเท่ากับ h จากรู้จะเห็นได้ว่า เริ่มต้นจากสถานะที่ 1 ที่มีค่าฮิวริสติกเท่ากับ -1 อัลกอริทึมปีนเขาใช้ตัวกระทำการเพื่อสร้างสถานะลูกตัวแรกของสถานะที่ 1 แล้ววัดค่าฮิวริสติกได้ 0 ซึ่งมีค่าดีขึ้น ถ้าสังเกตจากรูปที่  จะพบว่าสถานะที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แต่ในกรณีของอัลกอริทึมปีนเขานี้ เมื่อได้สถานะลูกตัวแรกซึ่งมีค่าอิวริสติกดีขึ้น อัลกอริทึมจะไม่สร้างสถานะลูกที่เหลืออีก 2 ตัว และจะไม่มีการย้อนกลับมาที่สถานะลูกทั้ง 2 นี้ แม้ว่าหลังจากนี้อัลกอริทึมจะค้นไม่พบคำตอบกล่าวคือเป็นการตัดทางเลือกทิ้งไปเลย ซึ่งการทำเช่นนี้แม้ว่าจะมีโอกาสไม่พบคำตอบแต่ก็มีข้อดีที่เป็นการช่วยลดเวลาและปริภูมิที่ทำการค้นหาจะลดลงอย่างมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แล้วเริ่มสร้างสถานะลูกได้สถานะที่ 3 ที่มีค่าฮิวริสติก -1 ซึ่งแย่ลงในกรณีที่แย่ลงเช่นนี้ อัลกอริทึมจะไม่ไปยังสถานะลูกตัวนี้และสร้างสถานะลูกตัวต่อไปโดยใช้ตัวกระทำการที่เหลือได้สถานะที่ 4 มีค่าฮิวริสติกเท่ากับ -1 ไม่ดีขึ้นเช่นกันจึงสร้างสถานะลูกตัวถัดไป เป็นสถานะที่5 มีค่าฮิวริสติกเท่ากับ 1 เป็นค่าที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และค้นพบคำตอบในที่สุด           อัลกอริทึมปีนเขานี้จะมีประสิทธิภาพมากดังเช่นแสดงในตัวอย่างนี้ซึ่งกระจายสถานะทั้งสิ้นเพียง 6 ตัวแล้วพบคำตอบ เปรียบเทียบกับอัลกอริทึมการค้นหาแนวกว้างก่อนซึ่งใช้สถานะทั้งสิ้นถึง 11 ตัว อย่างไรก็ดีอัลกอริทึมนี้จะมีประสิทธิภาพมาก ถ้าใช้ฟังก์ชันฮิวริสติกที่ดีมาก ๆ ในกรณีที่ฟังก์ชันฮิวริสติกไม่ดีนัก อัลกอริทึมนี้ก็อาจหลงเส้นทางได้ และอาจไม่พบคำตอบแม้ว่าปริภูมิที่กำลังค้นหามีคำตอบอยู่ด้วยก็ตาม สาเหตุการหลงเส้นทางประการหนึ่งมาจากการเลือกสถานะลูก ซึ่งอัลกอริทึมจะไม่ได้พิจารณาสถานะลูกทุกตัวโดยเมื่อพบสถานะลูกตัวใดตัวหนึ่งที่ดีขึ้นก็จะเลือกเส้นทางนั้นทันที อัลกอริทึมนี้สามารถดัดแปลงเล็กน้อยให้พิจารณาสถานะลูกทุกตัวให้ครบก่อน แล้วเลือกสถานะลูกตัวที่มีค่าฮิวริสติกสูงสุด เมื่อทำเช่นนี้ก็จะทำให้อัลกอริทึมได้พิจารณาเส้นทางที่ดีที่สุด ณ ขณะหนึ่ง ๆ ได้ดีขึ้นเราเรียกอัลกอริทึมที่ดัดแปลงนี้ว่าอัลกอริทึมปีนเขาชันสุด (Steepest ascent hill climbing)
การค้นหาดีสุดก่อน(Best-first search)       เป็นกระบวนการค้นหาข้อมูลที่ได้นําเอาข้อดีของทั้งการค้นหาแบบลึกก่อน(Depth firstsearch) และการค้นหาแบบกว้างก่อน(Breadth first search) มารวมกันเป็นวิธีการเดียว โดยที่แต่ละขั้นของการค้นหาในโหนดลูกนั้น การค้นหาแบบดีที่ดีก่อนจะเลือกเอา โหนดที่ดีที่สุด (most promising)และการที่จะทราบว่าโหนดใดดีที่สุดนี้สามารถทําได้โดยอาศัยฮิวริสติกฟังก์ชัน ซึ่งฮิวริสติก ฟังก์ชันนี้จะทําหน้าที่เหมือนตัววัดผล และให้ผลของการวัดนี้ออกมาเป็นคะแนน รูปที่ 2.7 เป็นตัวอย่างของการค้นหาแบบดีที่สุดก่อน ขั้นตอนนี้เริ่มจากตอน 1 สร้างโหนดราก(root node) ในขั้นตอน 2สร้างโหนดลูกB และ C แล้วตรวจสอบโหนด B และ C ด้วยฮิวริสติกฟังก์ชัน ได้ผลออกมาเป็นคะแนนคือ 3 และ 1ตามลําดับ จากนั้นให้เลือกโหนด C เป็นโหนดต่อไปที่เราสนใจ เพราะมีค่าน้อยกว่า (หมายเหตุ ในการเลือกนี้จะเลือกค่ามากสุด หรือน้อยสุดก็ได้ ขึ้นอยู่กับลักษณะของปัญหา) แล้วสร้างโหนด ลูกให้กับโหนด C ในขั้นตอน 3 ได้โหนด D และ Eแล้วตรวจสอบคะแนนได้ 4 และ 6 ตามลําดับ จากนั้นทํ าการเปรียบเทียบค่าของโหนดท้ายสุด หรือเทอร์มินอล โหนด(terminal node) ทุกโหนด ว่าโหนด ใดมีค่าดีที่สุด ในที่นี้จะต้องเลือกโหนด B เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แล้วสร้างโหนด ลูกตามขั้นตอน 4 ได้ F และ G แล้วตรวจ สอบคะแนนได้ 6 และ 5 คะแนนตามลําดับทําเช่นนี้เรื่อย ๆ จนพบคําตอบหรือจนไม่สามารถ สร้างโหนดต่อไปได้อีก
รูปที่ 7 ขั้นตอนของการค้นหาแบบดีที่สุดก่อน
รูปที่ 8  การค้นหาแบบดีสุดก่อน
อัลกอริธึม: การค้นหาแบบดีที่สุดก่อน 1. เริ่มด้วย OPEN ที่มีเพียงโหนดเริ่มต้น 2. ทําจนกว่าจะพบเป้าหมาย หรือว่าไม่มีโหนดเหลืออยู่ใน OPEN      � เลือกโหนดที่ดีที่สุดใน OPEN      � สร้างโหนดลูกให้กับโหนดที่ดีที่สุดนั้น      � สําหรับโหนดลูกแต่ละตัวให้ทําดังต่อไปนี้           i) ถ้าโหนดนั้นยังไม่เคยถูกสร้างมาก่อนหน้านั้น ให้ตรวจสอบค่าของมันโดย                     ใช้ฮิวริสติกฟังชัน แล้วเพิ่มเข้าไปใน OPEN แล้วบันทึกว่าเป็นโหนดแม่          ii) ถ้าโหนดนั้นถูกสร้างมาก่อนหน้านี้แล้ว ให้เปลี่ยนโหนดแม่ของมัน ถ้าเส้น                    ทางใหม่ที่ได้ดีกว่าโหนดแม่ตัวเดิม ในกรณีนี้ ให้ปรับเปลี่ยนค่าตามเส้น                    ทางที่อาจจะเกิดขึ้น
การค้นหาแบบ Greedy (Greedy Algorithm)     กรีดีอัลกอริธึม เป็นการค้นหาแบบดีที่สุดก่อน(Best first search) ที่ง่ายที่สุด หลักการของการค้นหาแบบนี้คือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี 1. เลือกโหนดเริ่มต้นมาหนึ่งโหนด 2. ให้โหนดที่เลือกมานี้เป็นสถานะปัจจุบัน 3. ให้ทําตามขบวนการข้างล่างนี้จนกว่าจะไม่สามารถสร้างโหนดลูกได้อีก       3.1 สร้างสถานะใหม่ที่เป็นโหนดลูกที่เป็นไปได้ทั้งหมดจากสถานะปัจจุบัน       3.2 จากสถานะใหม่ที่สร้างขึ้นมาทั้งหมด ให้เลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว 4. กลับไปที่ขึ้นตอนที่ 2
ตัวอย่าง จากเรื่องการเดินทางของเซลแมนที่จะต้องเดินทางไปยังเมือง A B C D ซึ่งมีระยะทางตามตารางที่ 3 เราจะแก้ปัญหานี้ด้วยวิธีการของกรีดีบ้าง รูปที่ 9 การแก้ปัญหาการเดินทางของเซลแมนด้วยกรีดีอัลกอริธึม
จากรูปที่ 9 การแก้ปัญหาเริ่มจาก การเลือก A เป็นเมืองเริ่มแรก จากนั้นทําการสร้างโหนดลูกB C และ D หารระยะทางระหว่าง A ถึงเมืองเหล่านี้ได้ 20 30 และ 50 ตามลําดับ เลือก B เป็นเมืองที่จะเดินทางต่อมา จากนั้นสร้างโหนดลูกของB ได้ C และ D และได้ระยะทางเท่ากับ 15 และ 20 ตามลําดับ เลือก C เป็นเมืองที่จะเดินทางต่อไป จากนั้นสร้างโหนดลูกให้ C ได้ D มีค่าเท่ากับ 10 เลือกเดินมาที่ D เป็นเมืองสุดท้ายก่อนกลับไป A รวมระยะทางเท่ากับ 20 + 15 + 10 + 50 = 95 รูปที่ 10    ข้อมูลในรูปแบบกราฟ
ตาราง 3 การค้นหาแบบกรีดี
การค้นหาแบบ A*        การค้นหาแบบ A* เป็นอีกแบบของการค้นหาแบบดีที่สุดก่อน วิธีการเลือกโหนดที่จะใช้ในการดําเนินการต่อจะพิจารณาจากโหนดที่ดีที่สุด แต่ในกรณีของ A* นี้จะมีลักษณะพิเศษกว่าคือ ในส่วนของฮิวริสติกฟังก์ชัน ในกรณีของการค้นหาแบบดีที่สุดก่อนนั้น ค่าที่ได้จากฮิวริสติก ฟังก์ชัน จะเป็นค่าที่วัดจาก โหนดปัจจุบัน แต่ในกรณีของ A* ค่าของฮิวริสติก ฟังก์ชัน จะวัดจากค่า 2 ค่าคือ ค่าที่วัดจากโหนดปัจจุบันไปยังโหนดราก และจากโหนดปัจจุบันไปยังโหนดเป้าหมาย ถ้าเราให้ตัวแปร f แทนค่าของฮิวริสติก ฟังก์ชัน g เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะเริ่มต้นจนถึงสถานะปัจจุบัน h' เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะปัจจุบันถึงสถานะเป้าหมาย ดังนั้น       f = g + h’
อัลกอริทึม A* (A* Search)  เป็นการขยายอัลกอริทึมดีสุดก่อนโดยพิจารณาเพิ่มเติมถึงต้นทุนจากสถานะเริ่
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

More Related Content

What's hot

บทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนบทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนSrion Janeprapapong
 
รูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทรูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทAekapoj Poosathan
 
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กรบทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กรSanyawadee
 
เทคโนโลยีการค้นคืนสารสนเทศ
เทคโนโลยีการค้นคืนสารสนเทศเทคโนโลยีการค้นคืนสารสนเทศ
เทคโนโลยีการค้นคืนสารสนเทศSrion Janeprapapong
 
งานวิจัยระบบงานธุรการ
งานวิจัยระบบงานธุรการงานวิจัยระบบงานธุรการ
งานวิจัยระบบงานธุรการPin Ponpimol
 
แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3พงศธร ภักดี
 
แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1พงศธร ภักดี
 
โครงงานเบื้องต้น
โครงงานเบื้องต้นโครงงานเบื้องต้น
โครงงานเบื้องต้นPat Pholla
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นtechno UCH
 
วิธีการสืบค้นและเทคนิคการค้นคืน
วิธีการสืบค้นและเทคนิคการค้นคืนวิธีการสืบค้นและเทคนิคการค้นคืน
วิธีการสืบค้นและเทคนิคการค้นคืนSrion Janeprapapong
 
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์ เพื่อให้บริ...
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์   เพื่อให้บริ...การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์   เพื่อให้บริ...
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์ เพื่อให้บริ...Srion Janeprapapong
 
หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15sangkom
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์Nattanan Rassameepak
 
รูปเล่มโครงงานคอมพิวเตอร์
รูปเล่มโครงงานคอมพิวเตอร์รูปเล่มโครงงานคอมพิวเตอร์
รูปเล่มโครงงานคอมพิวเตอร์krunueng1
 
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัย
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัยการสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัย
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัยChantana Papattha
 

What's hot (19)

บทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืนบทที่ 3 ฐานข้อมูลและการค้นคืน
บทที่ 3 ฐานข้อมูลและการค้นคืน
 
รูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทรูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บท
 
คอมมม
คอมมมคอมมม
คอมมม
 
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กรบทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
 
เทคโนโลยีการค้นคืนสารสนเทศ
เทคโนโลยีการค้นคืนสารสนเทศเทคโนโลยีการค้นคืนสารสนเทศ
เทคโนโลยีการค้นคืนสารสนเทศ
 
งานวิจัยระบบงานธุรการ
งานวิจัยระบบงานธุรการงานวิจัยระบบงานธุรการ
งานวิจัยระบบงานธุรการ
 
แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3แผนการสอน ระบบเครือข่าย ม.3
แผนการสอน ระบบเครือข่าย ม.3
 
แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1แผนการสอน ระบบปฏิบัติการ Windows ม.1
แผนการสอน ระบบปฏิบัติการ Windows ม.1
 
Unit03
Unit03Unit03
Unit03
 
โครงงานเบื้องต้น
โครงงานเบื้องต้นโครงงานเบื้องต้น
โครงงานเบื้องต้น
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้น
 
วิธีการสืบค้นและเทคนิคการค้นคืน
วิธีการสืบค้นและเทคนิคการค้นคืนวิธีการสืบค้นและเทคนิคการค้นคืน
วิธีการสืบค้นและเทคนิคการค้นคืน
 
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์ เพื่อให้บริ...
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์   เพื่อให้บริ...การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์   เพื่อให้บริ...
การสำรวจและรวบรวม Reference Resources ที่เป็นสื่ออิเล็กทรอนิกส์ เพื่อให้บริ...
 
Book st chapter1
Book st chapter1Book st chapter1
Book st chapter1
 
หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
รูปเล่มโครงงานคอมพิวเตอร์
รูปเล่มโครงงานคอมพิวเตอร์รูปเล่มโครงงานคอมพิวเตอร์
รูปเล่มโครงงานคอมพิวเตอร์
 
it-06-50
it-06-50it-06-50
it-06-50
 
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัย
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัยการสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัย
การสืบค้นข้อมูลผ่านเครือข่ายอินเตอร์เน็ตเพื่องานวิจัย
 

Viewers also liked

what should startups look for in investors, other than money?
what should startups look for in investors, other than money?what should startups look for in investors, other than money?
what should startups look for in investors, other than money?lenidot
 
Sladen Legal Brandbook
Sladen Legal BrandbookSladen Legal Brandbook
Sladen Legal BrandbookSladen Legal
 
Spn zona comercial_ds_178-2012
Spn zona comercial_ds_178-2012Spn zona comercial_ds_178-2012
Spn zona comercial_ds_178-2012sd sd
 
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...A digitális állampolgárság kompetenciarendszerének szerepe a közösség...
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...Dr. Ollé János
 
Escena del enterramiento moche
Escena del enterramiento mocheEscena del enterramiento moche
Escena del enterramiento mocheoswalsg
 
Antal csaba eu8 jvf - webkettő
Antal csaba   eu8 jvf - webkettőAntal csaba   eu8 jvf - webkettő
Antal csaba eu8 jvf - webkettőCsaba Antal
 
Návay Lajos Általános Iskola
Návay Lajos Általános Iskola Návay Lajos Általános Iskola
Návay Lajos Általános Iskola Venczel István
 
Drupal vs seo cms 2012.10.10 lukács krisztián
Drupal vs seo cms 2012.10.10 lukács krisztiánDrupal vs seo cms 2012.10.10 lukács krisztián
Drupal vs seo cms 2012.10.10 lukács krisztiánKrisztian Lukacs
 
Elektronikus médiumok és tananyagok
Elektronikus médiumok és tananyagokElektronikus médiumok és tananyagok
Elektronikus médiumok és tananyagokBPEDI
 
Östafrikakursen Presentation 2004
Östafrikakursen Presentation 2004Östafrikakursen Presentation 2004
Östafrikakursen Presentation 2004Stefan Woldekidan
 
asam7953 - Cassettes
asam7953 - Cassettesasam7953 - Cassettes
asam7953 - Cassettesasam7953
 
E portfolió a felsőoktatásban
E portfolió a felsőoktatásbanE portfolió a felsőoktatásban
E portfolió a felsőoktatásbanPapp Gyula
 
Web2-es képzés kérdőívek összesítése
Web2-es képzés kérdőívek összesítéseWeb2-es képzés kérdőívek összesítése
Web2-es képzés kérdőívek összesítésebara1
 
A jövő hackerei
A jövő hackereiA jövő hackerei
A jövő hackereipappet
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
портфолио чернобровкина
портфолио чернобровкинапортфолио чернобровкина
портфолио чернобровкинаgagrinaav
 
Pediatrics Pwrpt Cassie Swanson
Pediatrics Pwrpt Cassie SwansonPediatrics Pwrpt Cassie Swanson
Pediatrics Pwrpt Cassie SwansonCassie
 

Viewers also liked (20)

what should startups look for in investors, other than money?
what should startups look for in investors, other than money?what should startups look for in investors, other than money?
what should startups look for in investors, other than money?
 
Sladen Legal Brandbook
Sladen Legal BrandbookSladen Legal Brandbook
Sladen Legal Brandbook
 
Spn zona comercial_ds_178-2012
Spn zona comercial_ds_178-2012Spn zona comercial_ds_178-2012
Spn zona comercial_ds_178-2012
 
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...A digitális állampolgárság kompetenciarendszerének szerepe a közösség...
A digitális állampolgárság kompetenciarendszerének szerepe a közösség...
 
Escena del enterramiento moche
Escena del enterramiento mocheEscena del enterramiento moche
Escena del enterramiento moche
 
Foo yearbook!.
Foo yearbook!.Foo yearbook!.
Foo yearbook!.
 
Antal csaba eu8 jvf - webkettő
Antal csaba   eu8 jvf - webkettőAntal csaba   eu8 jvf - webkettő
Antal csaba eu8 jvf - webkettő
 
Návay Lajos Általános Iskola
Návay Lajos Általános Iskola Návay Lajos Általános Iskola
Návay Lajos Általános Iskola
 
Drupal vs seo cms 2012.10.10 lukács krisztián
Drupal vs seo cms 2012.10.10 lukács krisztiánDrupal vs seo cms 2012.10.10 lukács krisztián
Drupal vs seo cms 2012.10.10 lukács krisztián
 
Elektronikus médiumok és tananyagok
Elektronikus médiumok és tananyagokElektronikus médiumok és tananyagok
Elektronikus médiumok és tananyagok
 
Östafrikakursen Presentation 2004
Östafrikakursen Presentation 2004Östafrikakursen Presentation 2004
Östafrikakursen Presentation 2004
 
asam7953 - Cassettes
asam7953 - Cassettesasam7953 - Cassettes
asam7953 - Cassettes
 
E portfolió a felsőoktatásban
E portfolió a felsőoktatásbanE portfolió a felsőoktatásban
E portfolió a felsőoktatásban
 
Web2-es képzés kérdőívek összesítése
Web2-es képzés kérdőívek összesítéseWeb2-es képzés kérdőívek összesítése
Web2-es képzés kérdőívek összesítése
 
A jövő hackerei
A jövő hackereiA jövő hackerei
A jövő hackerei
 
Info 1.1
Info 1.1Info 1.1
Info 1.1
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
Presentation1
Presentation1Presentation1
Presentation1
 
портфолио чернобровкина
портфолио чернобровкинапортфолио чернобровкина
портфолио чернобровкина
 
Pediatrics Pwrpt Cassie Swanson
Pediatrics Pwrpt Cassie SwansonPediatrics Pwrpt Cassie Swanson
Pediatrics Pwrpt Cassie Swanson
 

Similar to นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560
เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560
เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560daykrm
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5miwmilk
 
นางสาวมลทิรา เอกกุล
นางสาวมลทิรา  เอกกุลนางสาวมลทิรา  เอกกุล
นางสาวมลทิรา เอกกุลmiwmilk
 
นางสาว มลทิรา เอกกุล ม.5
นางสาว มลทิรา   เอกกุล ม.5นางสาว มลทิรา   เอกกุล ม.5
นางสาว มลทิรา เอกกุล ม.5miwmilk
 
แนวคิดเกี่ยวกับระบบสารสนเทศ
แนวคิดเกี่ยวกับระบบสารสนเทศแนวคิดเกี่ยวกับระบบสารสนเทศ
แนวคิดเกี่ยวกับระบบสารสนเทศJinda Charoenphol
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูลMareeyalosocity
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์Mrpopovic Popovic
 
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศ
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศกระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศ
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศsupimon1956
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comlovelovejung
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comLuckfon Fonew
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comlovelovejung
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6ratiporn555
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6niramon_gam
 

Similar to นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5 (20)

เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560
เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560
เปรียบเทียบหลักสูตร 2551 กับ ปรับปรุง 2560
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5
 
นางสาวมลทิรา เอกกุล
นางสาวมลทิรา  เอกกุลนางสาวมลทิรา  เอกกุล
นางสาวมลทิรา เอกกุล
 
นางสาว มลทิรา เอกกุล ม.5
นางสาว มลทิรา   เอกกุล ม.5นางสาว มลทิรา   เอกกุล ม.5
นางสาว มลทิรา เอกกุล ม.5
 
Chapter1
Chapter1Chapter1
Chapter1
 
แนวคิดเกี่ยวกับระบบสารสนเทศ
แนวคิดเกี่ยวกับระบบสารสนเทศแนวคิดเกี่ยวกับระบบสารสนเทศ
แนวคิดเกี่ยวกับระบบสารสนเทศ
 
บทที่่ 1
บทที่่ 1บทที่่ 1
บทที่่ 1
 
Slide Chapter1
Slide Chapter1Slide Chapter1
Slide Chapter1
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูล
 
Mai
MaiMai
Mai
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์
เทอม 1 คาบ 5 การจัดเก็บข้อมูลในคอมพิวเตอร์
 
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศ
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศกระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศ
กระบวนการวิเคราะห์และกำหนดความต้องการสารสนเทศ
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
 
Database
DatabaseDatabase
Database
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6
 

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

  • 1. โครงสร้างแผนการจัดการเรียนรู้ รายชั่วโมง สาระการเรียนรู้พื้นฐาน เทคโนโลยีสารสนเทศ ชั้นมัธยมศึกษาปีที่ 5 จัดทำโดย นางสาว นวลลออ ถาวรโรจน์เสถียร เลขที่ 20 ชั้น ม.5 เสนอ อ.ฐิติพร ปันติสวัสดิ์
  • 2. โครงสร้างแผนการจัดการเรียนรู้ รายชั่วโมงสาระการเรียนรู้พื้นฐาน เทคโนโลยีสารสนเทศ ชั้นมัธยมศึกษาปีที่ 5หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสารการเรียนรู้ที่ 1วัตถุประสงค์ของการจัดการข้อมูล หน่วยข้อมูลและเขตข้อมูลคีย์ .การเรียนรู้ที่ 2 ชนิดข้อมูลและประเภทของแฟ้มข้อมูลการเรียนรู้ที่ 3 ลักษณะการประมวลผลข้อมูลการเรียนรู้ที่ 4 แฟ้มโปรแกรมและแฟ้มข้อมูลหน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูลการเรียนรู้ที่ 5 ชนิดของโครงสร้างข้อมูลการเรียนรู้ที่ 6 ลักษณะของข้อมูลการเรียนรู้ที่ 7 การเรียงลำดับข้อมูลการเรียนรู้ที่ 8 การค้นหาข้อมูล
  • 3. หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสาร   การเรียนรู้ที่ 1วัตถุประสงค์ของการจัดการข้อมูล หน่วยข้อมูลและเขตข้อมูลคีย์ . วัตถุประสงค์ในการจัดการข้อมูล         วัตถุประสงค์ในการจัดการข้อมูล       1. การเก็บข้อมูล ต้องเก็บข้อมูลเพื่อให้สามารถนำกลับมาใช้ได้ในภายหลัง       2. การจัดข้อมูล ต้องจัดข้อมูลให้อยู่ในรูปแบบที่สามารถเรียกใช้งานได้อย่างมีประสิทธิภาพ       3. -การปรับปรุงข้อมูล ต้องปรับข้อมูลให้มีความถูกต้องสมบูรณ์อยู่เสมอ       4. การปกป้องข้อมูล ต้องปกป้องข้อมูลจากการทำลาย ลักลอบใช้ หรือแก้ไขโดยมิชอบ รวมทั้งปกป้องข้อมูลจากอุบัติเหตุที่อาจเกิดจากวินาศภัย หรือความบกพร่องภายในระบบคอมพิวเตอร์ หน่วยข้อมูล (DATA UNITS)
  • 4.         หน่วยของข้อมูลคอมพิวเตอร์สามารถจัดเรียงเป็นลำดับชั้นเล็กไปขนาดใหญ่ได้ดังนี้        1.บิต (bit)          เลขฐาน 2 หนึ่งหลักซึ่งมีค่าเป็น 0 หรือ 1        2.ตัวอักษร (charecter)          กลุ่มของบิตสามารถแทนค่าตัวอักษรได้ ในชุดอักขระ ASCII 1 ไบต์ ( 8 บิต) แทนตัวอักษรตัว 1 ตัว เช่น 01000001 แทนตัวอักษร A ในปัจจุบันมีชุดอักขระที่ใช้เลขฐานสอง 16 บิต แทนค่าตัวอักษร คือ รหัส Unicode เช่น 0000 0000 1110 0110 แทนอักษรตัว ?         3.เขตข้อมูล (Field)          ซึ่งประกอบด้วยกลุ่มตัวอักษรที่แทนข้อเท็จจริง        4.ระเบียน (Record)          ระเบียน คือโครงสร้างข้อมูลที่แทนตัววัตถุชิ้นหนึ่ง เช่น ระเบียนข้อมูลนักศึกษาเลขทะเบียน 431999999        5.แฟ้ม (file)          คารางที่เป็นกลุ่มของระเบียนที่มีโครงสร้างเดียวกัน เช่น ตารางการสั่งซื้สินค้าของลูกค้า       6.ฐานข้อมูล (Database)          กลุ่มของตาราง (และความสัมพันธ์)         การเรียงลำดับชั้นของหน่วยข้อมูลดังนี้ เขตข้อมูลคีย์ (Key field) คือเขตข้อมูลที่ใช้สำหรับระบุระเบียนข้อมูลอย่างเฉพาะเจาะจงข้อมูลที่อยู่ในเขตข้อมูลนี้จะไม่ซ้ำกับระเบียนอื่น ๆ เช่น แฟ้มข้อมูลพนักงานอาจใช้เลขที่พนักงานเป็นตัวระบุระเบีย
  • 5. การเรียนรู้ที่ 2 ชนิดข้อมูลและประเภทของแฟ้มข้อมูล ชนิดของข้อมูล ข้อมูลที่ต้องการจัดเก็บนั้นอาจจะมีรูปแบบได้หลายอย่าง รูปแบบสำคัญ ๆ ได้แก่        3.1 ข้อมูลแบบรูปแบบ (formatted data) เป็นข้อมูลที่รวมอักขระซึ่งอาจหมายถึงตัวอักษร ตัวเลข ซึ่งเป็นรูปแบบที่แน่นอน ในแต่ละระเบียน ทุกระเบียนที่อยู่ในแฟ้มข้อมูลจะมีรูปแบบที่เหมือนกันหมด ข้อมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่ออ่านข้อมูลออกมาอาจจะต้องนำรัหสนั้นมาตีความหมายอีกครั้ง เช่น แฟ้มข้อมูลประวัตินักศึกษา        3.2 ข้อมูลแบบข้อความ (text)เป็นข้อมูลที่เป็นอักขระในแบบข้อความ ซึงอาจหมายถึงตัวอักษร ตัวเลข สมการฯ แต่ไม่รวมภาพต่าง ๆ นำมารวมกันโดยไม่มีรูปแบบที่แน่นอนในแต่ละระเบียน เช่น ระบบการจัดเก็บข้อความต่าง ๆ ลักษณะการจัดเก็บแบบนี้จะไม่ต้องนำข้อมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกำหนดแล้วในข้อความ        3.3 ข้อมูลแบบภาพลักษณ์ (images) เป็นข้อมูลที่เป็นภาพ ซึ่งอาจเป็นภาพกราฟที่ถูกสร้างขึ้นจากข้อมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอร์สามารถเก็บภาพและจัดส่งภาพเหล่านี้ไปยังคอมพิวเตอร์อื่นได้ เหมือนกับการส่งข้อความ โดยคอมพิวเตอร์จะทำการแปลงภาพเหล่านี้ ซึ่งจะทำให้คอมพิวเตอร์สามารถที่จะปรับขยายภาพและเคลื่อนย้ายภาพเหล่านั้นได้เหมือนกับข้อมูลแบบข้อความ        3.4 ข้อมูลแบบเสียง (audio) เป็นข้อมูลที่เป็นเสียง ลักษณะของการจัดเก็บก็จะเหมือนกับการจัดเก็บข้อมูลแบบภาพ คือ คอมพิวเตอร์จะทำการแปลงเสียงเหล่านี้ให้คอมพิวเตอร์สามารถนำไปเก็บได้ ตัวอย่างได้แก่ การตรวจคลื่นหัวใจ จะเก็บเสียงเต้นของหัวใจ        3.5 ข้อมูลแบบภาพและเสียง (video) เป็นข้อมูลที่เป็นเสียงและรูปภาพ ที่ถูกจัดเก็บไว้ด้วยกัน เป็นการผสมผสานรูปภาพและเสียงเข้าด้วยกัน ลักษณะของการจัดเก็บข้อมูล คอมพิวเตอร์จะทำการแปลงเสียงและรูปภาพนี้ เช่นเดียวกับข้อมูลแบบเสียงและข้อมูลแบบภาพลักษณะซึ่งจะนำมารวมเก็บไว้ในแฟ้มข้อมูลเดียวกัน
  • 6.    ประเภทของแฟ้มข้อมูล ประเภทของแฟ้มข้อมูลจำแนกตามลักษณะของการใช้งานได้ดังนี้        6.1แฟ้มข้อมูลหลัก (master file)แฟ้มข้อมูลหลักเป็นแฟ้มข้อมูลที่บรรจุข้อมูลพื้นฐานที่จำเป็นสำหรับระบบงาน และเป็นข้อมูลหลักที่เก็บไว้ใช้ประโยชน์ข้อมูลเฉพาะเรื่องไม่มีรายการเปลี่ยนแปลงในช่วงปัจจุบัน มีสภาพค่อนข้างคงที่ไม่เปลี่ยนแปลงหรือเคลื่อนไหวบ่อยแต่จะถูกเปลี่ยนแปลงเมื่อมีการสิ้นสุดของข้อมูล เป็นข้อมูลที่สำคัญที่เก็บไว้ใช้ประโยชน์ ตัวอย่าง เช่น แฟ้มข้อมูลหลักของนักศึกษาจะแสดงรายละเอียดของนักศึกษา ซึ่งมี ชื่อนามสกุล ที่อยู่ ผลการศึกษา แฟ้มข้อมูลหลักของลูกค้าในแต่ละระเบียนของแฟ้มข้อมูลนี้จะแสดงรายละเอียดของลูกค้า เช่น ชื่อสกุล ที่อยู่ หรือ ประเภทของลูกค้า        6.2 แฟ้มข้อมูลรายการเปลี่ยนแปลง (transaction file)แฟ้มข้อมูลรายการเปลี่ยนแปลงเป็นแฟ้มข้อมูลที่ประกอบด้วยระเบียนข้อมูลที่มีการเคลื่อนไหว ซึ่งจะถูกรวบรวมเป็นแฟ้มข้อมูลรายการเปลี่ยนแปลงที่เกิดขึ้นในแต่ละงวดในส่วนที่เกี่ยวข้องกับข้อมูลนั้น แฟ้มข้อมูลรายการเปลี่ยนแปลงนี้จะนำไปปรับรายการในแฟ้มข้อมูลหลัก ให้ได้ยอดปัจจุบัน ตัวอย่างเช่น แฟ้มข้อมูลลงทะเบียนเรียนของนักศึกษา        6.3 แฟ้มข้อมูลตาราง (table file)แฟ้มข้อมูลตารางเป็นแฟ้มข้อมูลที่มีค่าคงที่ ซึ่งประกอบด้วยตารางที่เป็นข้อมูลหรือชุดของข้อมูลที่มีความเกี่ยวข้องกันและถูกจัดให้อยู่รวมกันอย่างมีระเบียบ โดยแฟ้มข้อมูลตารางนี้จะถูกใช้ในการประมวลผลกับแฟ้มข้อมูลอื่นเป็นประจำอยู่เสมอ เช่น ตารางอัตราภาษี ตารางราคาสินค้า ตัวอย่างเช่น ตารางราคาสินค้าของบริษัทขายอะไหล่เครื่องคอมพิวเตอร์ดังนี้             รหัสสินค้า      รายชื่อสินค้า   ราคา                  51              จอภาพ          4,500                  52              แป้นพิมพ์       1,200                  53              แรม 4 M        4,500                  54               แรม 8 M         7,000                  55              กระดาษต่อเนื่อง 500                   56              แฟ้มคอมพิวเตอร์ 200
  • 7.        ในแฟ้มข้อมูลนี้จะประกอบด้วยระเบียนแฟ้มข้อมูลตารางของสินค้าที่มีฟิลด์ต่าง ๆ ได้แก่ รหัสสินค้า รายชื่อ สินค้า และราคาสินค้าต่อหน่วย แฟ้มข้อมูลตารางรายการสินค้า จะใช้ร่วมกับแฟ้มข้อมูลหลายแฟ้มข้อมูลในระบบสินค้า ได้แก่ แฟ้มข้อมูลคลังสินค้า (inventory master file) แฟ้มข้อมูลใบสั่งซื้อของลูกค้า (customer order master file) และแฟ้มข้อมูลรายการสิตค้าของฝ่ายผลิต (production master file) มีข้อควรสังเกตว่าแฟ้มข้อมูลตาราง แฟ้มข้อมูลรายการเปลี่ยนแปลง และแฟ้มข้อมูลหลัก ทั้ง 3 แฟ้ม จะมีฟิลด์ที่เกี่ยวกับตัวสินค้าร่วมกัน คือ ฟิลด์รหัสสินค้า (product code) ฟิลด์ร่วมกันนี้จะเป็นตัวเชื่องโยงระหว่างแฟ้มข้อมูลตารางกับฟ้มข้อมูลอื่น ๆ ทั้งหมดที่ต้องการจะใช้ค่าของฟิดล์รายชื่อสินค้า (product description) และราคาสินค้า (product price) จากแฟ้มข้อมูลตาราง การจัดแฟ้มข้อมูลแบบนี้จะทำให้ประหยัดเนื้อที่ในอุปกรณ์เก็บข้อมูลของแฟ้มข้อมูลหลัก กล่าวคือในแฟ้มข้อมูลหลักไม่ต้องมี 2 ฟิลด์ คือ ฟิลด์รายการสินค้าและฟิลด์ราคาสินค้า มีแต่เพียงฟิลด์รหัสสินค้าก็เพียงพอแล้ว เมื่อใดที่ต้องการใช้ฟิลด์รายการสินค้าในการแสดงผลก็อ่านค่าออกมาจากแฟ้มข้อมูลตารางได้ นอกจากนั้นยังเป็นการลดความซ้ำซ้อนของข้อมูลและเมื่อผู้ใช้ระบบต้องการเปลี่ยนแปลงรายการสินค้าหรือราคาสินค้าก็จะเปลี่ยนในแฟ้มข้อมูลตารางทีเดียว โดยไม่ต้องไปเปลี่ยนแปลงในแฟ้มข้อมูลอื่น         6.4 แฟ้มข้อมูลเรียงลำดับ (sort file)แฟ้มข้อมูลเรียงลำดับเป็นการจัดเรียงระเบียนที่จะบรรจุในแฟ้มข้อมูลนั้นใหม่ โดยเรียงตามลำดับค่าของฟิลด์ข้อมูลหรือค่าของข้อมูลค่าใดค่าหนึ่งในระเบียนนั้นก็ได้ เช่น จัดเรียงลำดับตาม วันเดือนปี ตามลำดับตัวอักขระเรียงลำดับจากมากไปหาน้อยหรือจากน้อยไปหามาก เป็นต้น        แฟ้มข้อมูลรายงาน (report file)เป็นแฟ้มข้อมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของรายงานที่ต้องการแล้วจัดเก็บไว้ในรูปของแฟ้มข้อมูล ตัวอย่าง เช่น แฟ้มข้อมูลรายงานควบคุมการปรับเปลี่ยนข้อมูลที่เกิดขึ้นในขณะปฏิบัติงานแต่ละวัน
  • 8. การเรียนรู้ที่ 3 ลักษณะการประมวลผลข้อมูล ข้อมูลและการประมวลผลข้อมูล ข้อมูล คือข้อเท็จจริงที่เราสนใจ ส่วน สารสนเทศ คือข้อมูลที่ผ่านการประมวลผลด้วยวิธีการที่เหมาะสมถูกต้อง จนได้รูปแบบผลลัพธ์ ตรงความต้องการของผู้ใช้  ข้อมูลที่จะนำมาประมวลผลให้เป็นสารสนเทศ จะต้องมีคุณสมบัติพื้นฐานดังต่อไปนี้ ความถูกต้อง หากมีการเก็บรวบรวมข้อมูลและข้อมูลเหล่านั้นเชื่อถือไม่ได้ จะทำให้เกิดผลเสียหายมาก ผู้ใช้จะไม่กล้าอ้างอิงหรือนำเอาไปใช้ประโยชน์ ซึ่งเป็นเหตุให้การตัดสินใจของผู้บริหารขาดความแม่นยำ และมีโอกาสผิดพลาดได้ โครงสร้างข้อมูลที่ออกแบบต้องคำนึงถึงกรรมวิธีการดำเนินงานเพื่อให้ได้ความถูกต้องแม่นยำมากที่สุด โดยปกติความผิดพลาดของการประมวลผลส่วนใหญ่ มาจากข้อมูลที่ไม่มีความถูกต้องซึ่งมีสาเหตุมาจากคนหรือเครื่องจักร การออกแบบระบบจึงต้องคำนึงถึงในเรื่องนี้ ความรวดเร็วและเป็นปัจจุบัน การได้มาของข้อมูลจำเป็นต้องให้ทันต่อความต้องการของผู้ใช้ มีการตอบสนองต่อผู้ใช้ได้เร็ว ตีความหมายสารสนเทศได้ทันต่อเหตุการณ์หรือความต้องการ มีการออกแบบระบบการเรียกค้นและรายงาน ตามความต้องการของผู้ใช้ ความสมบูรณ์ ความสมบูรณ์ของสารสนเทศขึ้นกับการรวบรวมและวิธีการทางปฏิบัติ ในการดำเนินการจัดทำสารสนเทศ ต้องสำรวจและสอบถามความต้องการของผู้ใช้ เพื่อให้ได้ข้อมูลที่มีความสมบูรณ์เหมาะสม ความชัดเจนกระทัดรัด การจัดเก็บข้อมูลต้องใช้พื้นที่ในการจัดเก็บข้อมูลมาก จึงจำเป็นต้องออกแบบโครงสร้างข้อมูลให้กระทัดรัด สื่อความหมายได้ มีการใช้รหัสหรือย่อข้อมูลให้เหมาะสม เพื่อที่จะจัดเก็บเข้าไว้ในระบบคอมพิวเตอร์ ความสอดคล้อง ความต้องการเป็นเรื่องสำคัญ ดังนั้นจึงต้องมีการสำรวจเพื่อหาความต้องการของหน่วยงานและองค์การ ดูสภาพการใช้ข้อมูล ความลึกหรือความกว้างของขอบเขตข้อมูล ที่สอดคล้องกับความต้องการ ในการนำข้อมูลไปใช้ประโยชน์ หรือการทำข้อมูลให้เป็นสารสนเทศ ที่จะนำไปใช้ประโยชน์ได้ จำเป็นต้องมีการประมวลผลข้อมูลก่อน การประมวลผลข้อมูล เป็นกระบวนการที่มีกระบวนการย่อยหลายอย่าง ประกอบกันคือ การรวบรวมข้อมูล การแยกแยะ การตรวจสอบความถูกต้อง การคำนวณ การจัดลำดับหรือการเรียงลำดับ การรายงานผล การสื่อสารข้อมูลหรือการแจกจ่ายข้อมูลนั้น การประมวลผลข้อมูล จึงเป็นกิจกรรมที่มีความสำคัญ เพราะข้อมูลที่มีอยู่ รอบๆ ตัวเรามีเป็นจำนวนมากในการใช้งานจึงต้องมีการประมวลผล เพื่อให้เกิดประโยชน์ กิจกรรมหลักของการให้ได้มาซึ่งสารสนเทศ จึงประกอบด้วยกิจกรรมการ เก็บรวบรวมข้อมูล ซึ่งต้องมีการตรวจสอบ ความถูกต้องด้วย กิจกรรมการประมวลผลซึ่งอาจจะเป็นการแบ่งแยกข้อมูล การจัดเรียงข้อมูล การคำนวณ และกิจกรรมการเก็บรักษาข้อมูลซึ่งอาจต้อง มีการทำสำเนา ทำรายงาน เพื่อแจกจ่าย 
  • 9. การเรียนรู้ที่ 4 แฟ้มโปรแกรมและแฟ้มข้อมูล                           แฟ้มโปรแกรมและแฟ้มข้อมูล        ถ้าจะแบ่งประเภทของแฟ้มในคอมพิวเตอร์อีกนัยหนึ่ง อาจแบ่งเป็นแฟ้มโปรแกรม และ แฟ้มข้อมูล แฟ้มโปรแกรมประกอบด้วยชุดคำสั่งต่างๆ ที่ทำงานอย่างใดอย่างหนึ่งเช่น โปรแกรมประมวลคำ (word processor) ใช้สำหรับพิมพ์เอกสารและจัดรูปแบบข้อความ และโปรแกรมบีบอัดข้อมูล (compression utility) ใช้สำหรับบีบอัดข้อมูลที่มีขนาดเล็กลง เป็นต้น       แฟ้มที่จัดเก็บหรือบันทึกโดยโปรแกรมเหล่านี้ จัดเป็นประเภทแฟ้มข้อมูล ซึ่งตามปกติจะมีส่วนขยาย (file extension) เป็นตัวบอกประเภทเช่น เอกสารที่สร้างด้วยโปรแกรมประมวลคำ Microsoft Word จะมีส่วนขยายหลักเป็น .doc ส่วนแฟ้มข้อมูลที่สร้างด้วยโปรแกรมบีบอัดข้อมูล Winzipจะมีส่วนขยายเป็น .zip เป็นต้น ที่กล่าวว่าส่วนขยายหลักหมายความว่า โปรแกรมหนึ่งอาจสร้างแฟ้มข้อมูลที่มีส่วนขยายได้หลายหย่าง ตัวอย่างโปรแกรมลักษณะนี้ได้แก่ Microsoft Word2000 ซึ่งสามารถสร้างแฟ้มข้อมูลที่มีส่วนขยายเป็น .doc .htm .html .rtf .txt .mcwและ .wpsแต่ จะเป็นส่วนขยายหลักเป็น .doc       แฟ้มข้อมูลบางประเภทสร้างและเปิดด้วยโปรแกรมใดโปรแกรมหนึ่งโดยเฉพาะ เช่นแฟ้มที่สร้างด้วยโปรแกรมแต่งภาพ Adobe Photoshop ซึ่งมีส่วนขยายเป็น .psdในขณะที่แฟ้มข้อมูลบางประเภทเป็นประเภทที่มีรูปแบบมาตรฐานที่สามารถสร้างและเปิดได้โดยโปรแกรมต่างๆ เช่น ประเภทแฟ้ม Bitmap ( BMP) Graphics Interchange Format (GIF) และ Joint Photographic Experts Group (JPEG) สามารถสร้างและเปิดแก้ไขได้โดย Windows PaintBrush , Adobe Photoshop หรือ Microsoft Photo Editor ก็ได้ แฟ้มที่มีรูปแบบมาตรฐานเหล่านี้มีประโยชน์มากในการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมต่างๆ        แฟ้มโปรคแกรมที่ประกอบด้วยชุดคำสั่งที่ทำงานได้ ได้แก่ประเภท .exe , .com , .bat , .dll   
  • 10. หน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูล การเรียนรู้ที่ 5 ชนิดของโครงสร้างข้อมูล    ประเภทของโครงสร้างข้อมูล        แบ่งออกเป็น 2 ประเภท คือ   
  • 12.    เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ แบ่งออกเป็น 2 ประเภท 1.ข้อมูลเบื้องต้น (Primitive Data Types)   - จำนวนเต็ม (Integer)   - จำนวนทศนิยม (Floating point)   - ข้อมูลบูลีน (Boolean)   - จำนวนจริง (Real)   - ข้อมูลอักขระ (Character) 2.ข้อมูลโครงสร้าง (Structure Data Types)   - แถวลำดับ (Array)   - ระเบียนข้อมูล (Record)   - แฟ้มข้อมูล (File)
  • 14.         เป็นโครงสร้างข้อมูลที่เกิดจากการจินตนาการของผู้ใช้ เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น แบ่งเป็น 2 ประเภท 1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Data Structure)         ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน     - ลิสต์ (List)     - สแตก (Stack)     - คิว (Queue)     - สตริง (String) 2. โครงสร้างข้อมูลแบบไม่เชิงเส้น (Non-Linear Data Structure)           ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว     - ทรี (Tree) - กราฟ (Graph) 3. การดำเนินการกับโครงสร้างข้อมูล(Data Structure Operation)    วิธีดำเนินการกับข้อมูลที่นิยมใช้กันมากมี 4 แบบ คือ   1. การเข้าถึงเรคคอร์ด (Traversing)   2. การค้นหา (Searching)   3. การเพิ่ม (Inserting)   4. การลบ (Deleting)   ยังมีการจัดการกับข้อมูลอีก 2 อย่าง คือ   1. การเรียงข้อมูล (Sorting)   2. การรวมข้อมูล (Merging)   4. การแทนที่ข้อมูลในหน่วยความจำ
  • 15. มีอยู่ 2 วิธี คือ การแทนที่ข้อมูลแบบสแตติก (Static Memory Representation)         เป็น การแทนที่ข้อมูลที่มีการจองเนื้อที่แบบคงที่แน่นอน ต้องมีการกำหนดขนาดก่อนการใช้งาน แต่มีข้อเสีย คือ ไม่สามารถปรับขนาดให้เพิ่มขึ้นหรือลดลงได้ โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบสแตติก คือแถวลำดับ (Array) การแทนทีข้อมูลแบบไดนามิก (Dynamic Memory Representation)        เป็น การแทนที่ข้อมูลที่ไม่ต้องจองเนื้อที่ ขนาดของเนื้อที่ยืดหยุ่นได้ ตามความต้องการของผู้ใช้  โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบไดนามิก คือ ตัวชี้หรือพอยเตอร์ (Pointer) 5. ลักษณะของโปรแกรมแบบที่มีโครงสร้างที่ดี 5.1 โครงสร้างโปรแกรมแบบคำสั่งตามลำดับ         เป็น โครงสร้างพื้นฐานที่ประกอบด้วยคำสั่งทั่วๆไป เป็นโครงสร้างที่มีลักษณะการทำงานแบบเรียงลำดับ คือ จะทำงานตั้งแต่ต้นจนจบโดยไม่มีการข้ามขั้นตอนใดๆ
  • 16. 5.2 โครงสร้างโปรแกรมแบบมีการตัดสินใจ (Decision)         มี การตรวจสอบเงื่อนไข เพื่อตัดสินใจว่าจะทำการประมวลผลส่วนใด โดยผลลัพธ์ของเงื่อนไขจะมีค่าของความเป็นไปได้อยู่ 2 ลักษณะ คือ จริงและเท็จ เท่านั้น 5.3 โครงสร้างโปรแกรมแบบเป็นวงจรปิด (Loop)         มีลักษณะการทำงานซ้ำๆกัน อยู่ในส่วนใดส่วนหนึ่งของโปรแกรม 6. อัลกอริทึม (Algorithm)        อัลกอรึทึม คือ วิธีการแก้ปัญหาต่างๆ อย่างมีระบบ มีลำดับขั้นตอนตั้งแต่ต้นจนได้ผลลัพธ์ สามารถเขียนได้หลายแบบ การเลือกใช้ต้องเลือกใช้ขั้นตอนวิธีที่เหมาะสม กระชับ และรัดกุม อัลกอริทึมที่นิยมใช้กันมาก ได้แก่ 1. อัลกอริทึมแบบแตกย่อย (Divide and conquer) 2. อัลกอริทึมแบบเคลื่อนที่ (Dynamic Programming) 3. อัลกอริทึมแบบทางเลือก (Greedy Algorithm)
  • 17. การเขียนผังงาน (Flowchart)        Flow Chart เป็นการอธิบายขั้นตอนการประมวลผลโดยใช้สัญลักษณ์ในการแสดงความหมายหรือกำหนด ลำดับการทำงาน การใช้กรอบรูปสัญลักษณ์ที่สื่อความหมาย อธิบายขั้นตอนการทำงานของโปรแกรม การเขียนรหัสเทียม (Pseudo Code)        Pseudo Code การอธิบายขั้นตอนการประมวลผลโดยใช้วลีภาษาอังกฤษในการแสดงอธิบาย ใช้คำสั้นๆ กะทัดรัด อธิบายขั้นตอนการทำงานของโปรแกรม พัฒนาการของภาษาโปรแกรม - ภาษาเครื่อง (Machine Language) - ภาษาแอสเซมบลี (Assembly Language) - ภาษาระดับสูง (High Level Language) - ภาษายุคที่ 4  (Fourth Generation Language หรือ 4GL) การบำรุงรักษาโปรแกรม (Program Maintenance)         หมาย ถึง การแก้ไขข้อผิดพลาดที่พบระหว่างการทดสอบหรือระหว่างการใช้งาน ซึ่งอาจเป็นการเปลี่ยนข้อมูลที่ต้องการใช้ใหม่การปรับปรุงข้อมูล ให้ทันเหตุการณ์อยู่เสมอ การปรับเปลี่ยนโครงสร้างบนหน้าจอ เป็นต้น
  • 18. การเรียนรู้ที่ 6 ลักษณะของข้อมูล ลักษณะของข้อมูลที่ดี             ลักษณะของข้อมูลที่ดี ข้อมูลที่ดีควรเป็นข้อมูลที่มีคุณลักษณะดังต่อไปนี้ •  ข้อมูลที่มีความถูกต้องและเชื่อถือได้ (accuracy) ข้อมูลจะมีความถูกต้องและเชื่อถืได้มากน้อยเพียงใดนั้น ขึ้นกับวิธีการที่ใช้ในการควบคุมข้อมูลนำเข้า และการควบคุมการประมวลผลการควบคุมข้อมูลนำเข้าเป็นการกระทำเพื่อให้เกิดความมั่นใจว่าข้อมูลนำเข้ามีความถูกต้องเชื่อถือได้ เพราะถ้าข้อมูลนำเข้าไม่มีความถูกต้องแล้วถึงแม้จะใช้วิธีการวิเคราะห์และประมวลผลข้อมูลที่ดีเพียงใด ผลลัพธ์ที่ได้ก็จะไม่มีความถูกต้อง หรือนำไปใช้ไม่ได้ ข้อมูลนำเข้าจะต้องเป็นข้อมูลที่ผ่านการตรวจสอบว่าถูกต้องแล้ว ข้อมูลบางอย่างอาจต้องแปลงให้อยู่ในรูปแบบที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้อย่างถูกต้อง ซึ่งอาจต้องพิมพ์ข้อมูลมาตรวจเช็คด้วยมือก่อน การประมวลผลถึงแม้ว่าจะมีการตรวจสอบข้อมูลนำเข้าแล้วก็ตาม ก็อาจทำให้ได้ข้อมูลที่ผิดพลาดได้ เช่น เกิดจากการเขียนโปรแกรมหรือใช้สูตรคำนวณผิดพลาดได้ ดังนั้นจึงควรกำหนดวิธีการควบคุมการประมวลผลซึ่งได้แก่ การตรวจเช็คยอดรวมที่ได้จากการประมวลผลแต่ละครั้ง หรือการตรวจสอบผลลัพธ์ที่ได้จากการประมวลผลด้วยเครื่องคอมพิวเตอร์กับข้อมูลสมมติที่มีการคำนวณด้วยว่ามีความถูกต้องตรงกันหรือไม่
  • 19. •  ข้อมูลตรงตามความต้องการของผู้ใช้ (relevancy) ได้แก่ การเก็บเฉพาะข้อมูลที่ผู้ใช้ต้องการเท่านั้น ไม่ควร เก็บข้อมูลอื่น ๆ ที่ไม่จำเป็นหรือไม่เกี่ยวข้องกับการใช้งาน เพราะจะทำให้เสียเวลาและเสียเนื้อที่ในหน่วยเก็บข้อมูล แต่ทั้งนี้ข้อมูลที่เก็บจะต้องมีความครบถ้วนสมบูรณ์ด้วย •  ข้อมูลมีความทันสมัย (timeliness) ข้อมูลที่ดีนั้นนอกจากจะเป็นข้อมูลที่มีความถูกต้องเชื่อถือได้แล้วจะ ต้องเป็นข้อมูลที่ทันสมัย ทั้งนี้เพื่อให้ผู้ใช้สามารถนำเอาผลลัพธ์ที่ได้ไปใช้ได้ทันเวลา นั่นคือจะต้องเก็บข้อมูลได้รวดเร็วเพื่อทันความต้องการของผู้ใช้
  • 20. การเรียนรู้ที่ 7 การเรียงลำดับข้อมูล การเรียงลำดับข้อมูล การเรียงลำดับข้อมูลเป็นเรื่องสำคัญมากเรื่องหนึ่งเนื่องจากทำให้ผู้ต้องการใช้ข้อมุลเช่น ผู้บริหาร,ผู้ปฏิบัติงาน (พนักงาน) สามารถทำความเข้าใจกับข้อมูลหรือทำการค้นหาข้อมูลได้ง่ายและเร็วยิ่งขึ้นตามที่ต้องการ ประเภทของการจัดการจัดเรียงข้อมูลในระบบคอมพิวเตอร์ แบ่งเป็น 2 ประเภทคือ   1. Internal Sorting คือ การเรียงลำดับข้อมูลโดยเก็บไว้ในหน่วยความจำหลัก และข้อมูลของสมาชิกจะถูกเก็บ อยู่ในโครงสร้างอะเรย์ 2. External Sorting คือ การเรียงลำดับข้อมูลโดยเก็บไว้ในหน่วยความจำสำรอง ข้อมูลส่วนใหญ่มีจำนวนมาก จึงไม่ สามารถเก็บไว้ในหน่วยความจำหลักได้ทั้งหมด 
  • 21. ในหัวข้อการเรียงลำดับ นี้จะอธิบายวิธีการเรียงลำดับข้อมูลในแต่ละวิธีโดยสรุปอย่างย่อ ๆ เพื่อใช้เป็นแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไม่ได้กล่าวถึงวิธีการขั้นตอนในการจัดเรียงอย่างละเอียดแต่จะพยายามชี้ให้เห็นถึงจุดเด่นต่าง ๆ ของการจัด เรียงลำดับในแต่ละวิธี วิธีหรือชนิดของการเรียงลำดับ มีวิธีต่าง ๆ ที่มักจะได้พบโดยทั่วไปดังนี้ 1. SELECTION SORT 2. INSERTION SORT / LINEAR INSERTION SORT 3. BUBBLE SORT 4. SHELL SORT 5. BUCKET SORT /RADIX SORT  6. QUICK SORT 7. HEAP SORT / TREE SORT 1. การเรียงลำดับแบบเลือก (Selection Sort) เป็นวิธีที่ง่ายที่สุดในการเรียงลำดับข้อมูล โดยเริ่มจาก - หาตำแหน่งของข้อมูลที่มีค่าน้อยที่สุดแล้วสลับค่าของตำแหน่งข้อมูลนั้นกับค่าข้อมูลในตำแหน่ง A(1) จะได้ A(1) มีค่าน้อยที่สุด - หาตำแหน่งของข้อมูลที่มีค่าน้อยที่สุดในกลุ่ม A(2), A(3),....,A(n) แล้วทำกับสลับค่าข้อมูลในตำแหน่ง A(2) อย่างนี้เรื่อยไปจน กระทั่งไม่เกิน N-1 รอบ ก็จะได้ข้อมูลที่เรียงลำดับจากน้อยไปมาก 2. การเรียงลำดับแบบแทรก (Insertion Sort)
  • 22. หลักการ คือ 1. อ่านข้อมุลที่ต้องการเรียงลำดับเข้ามาทีละตัวโดยเริ่มจากตัวแรกก่อน และหาตำแหน่งของข้อมูลที่ควรจะอยู่ 2. หาที่ว่างสำหรับข้อ 3. Insert หรือแทรกข้อมูล ณ ตำแหน่งในข้อ 3. การเรียงลำดับแบบบับเบิล (Bubble Sort) วิธัการเรียงลำดับแบบบับเบิลจะทำการเปรียบเทียบข้อมูลที่อยู่ในตำแหน่งที่ติดกัน ถ้าข้อมูลไม่อยู่ใลำดับที่ถูกต้อง ก็จะทำการสลับตำแหน่งของข้อมูลที่เปรียบเทียบโดยที่การเปรียบเทียบจะเริ่มที่ตำแหน่งที่ 1 กับตำแหน่งที่ 2 ก่อน ต่อไปนี้เทียบกับ ตำแหน่งที่ 2 และตำแหน่งที่ 3 จนถึงตำแหน่งที่จัดเรียงแล้ว จากนั้นจะกลับไปเริ่มต้นการเปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบร้อยหมดทุกตำแหน่ง ในวิธีแบบ Bubble Sort ค่าในการเปรียบเทียบที่น้อยที่สุดหรือมากที่สุด จะลอยขึ้นข้างบน เหมือนกับฟองอากาศ 4. การรียงลำดับแบบเชลล์(shell sort) เป็นรูปแบบของการ sort ข้อมูลโดยการนำเอาข้อดีของการค้นหาข้อมูลแบบ แทรกและแบบเลือกและหลีกเลี่ยง การเกิดปัญหาของทั้งแบบแทรกและแบบเลือก ซึ่งการเปรียบเทียบข้อมูลในการเรียงลำดับแบบแทรก โดยการเปรียบเทียบ ข้อมูลที่อยู่ไกลออกไป ซึ่งจะทำให้เราสามารถเรียงดับข้อมูลในตำแหน่งที่อยู่ไกลออกไปหลังจากนั้นก็จะเรียงลำดับข้อมูล ที่อยู่ใกล้กันเข้ามา(กว่าในครั้งแรก) และความห่างของข้อมูลที่เปรียบเทียบก็จะน้อยลงจนเหลือ 1 วิธีนี้คิดค้นเมื่อปี ค.ศ.1959 โดย ดี.แอล.เชลล์(D.L.SHELL) เรียกว่า การเรียงลำดับแบบเชลล์(shell sort)
  • 23. 5. การเรียงลำดับโดยการใช้ฐานเลข(radix sort) การเรียงลำดับแบบนี้การเรียงลำดับ จะอยู่บนพื้นฐานของการแทนตำแหน่งของตัวเลขที่ต้องการนำมาเรียงลำดับ จะเริ่มจากตัวที่มีเลขนัยสำคัญสูงที่สุด ดำเนินจนกระทั่งถึงตัวเลขที่มีเลขนัยสำคัญต่ำสุด การเรียงลำดับในวิธีนี้การเรียงลำดับ จะเรียงจากตัวเลขที่มีนัยสำคัญน้อยที่สุดก่อน เมื่อตัวเลขทั้งหมดถูกนำมาเรียงลำดับตามเลขนัยสำคัญที่สูงขึ้น ตัวเลขที่เหมือนกัน ในตำแหน่งน้น จะต่างกันในตำแหน่งของเลขนัยสำคัญที่น้อยกว่า การประมวลผลแบบนี้จะประมวลผลกับข้อมูลทั้งหมดได้ โดยที่ไม่ต้องมีการแบ่งข้อมูลแบบกลุ่มย่อย 6. การเรียงลำดับอย่างเร็ว(quick sort) ถูกสร้างและตั้งชื่อโดย ซี.เอ.อาร์.ฮาร์เวร์ (C.A.R HOARE) การเรียงลำดับอย่างเร็ว จะแบ่งข้อมูลเป็นสองกลุ่ม โดยใน การจัดเรียงจะเลือกข้อมุลตัวใดตัวหนึ่งออกมา ซึ่งจะเป็นตัวที่แบ่งข้อมูลออกเป็นสองกลุ่ม โดยกลุ่มแรกจะต้องมีข้อมูลน้อยกว่า ตัวแบ่ง และกลุ่มที่มีข้อมูลน้อยกว่าตัวแบ่ง และอีกกลุ่มจะมีข้อมูลที่มากกว่าตัวแบ่ง ซึ่งเราเรียกตัวแบ่งว่า ตัวหลัก(pivot) ในการเลือกตัวหลักจะมีอิสระในการเลือกข้อมูลตัวใดก็ได้ที่เราต้องการ การเรียงลำดับแบบเร็วเหมาะกับข้อมูลที่มีการเรียกซ้ำ 7.การเรียงลำดับฮีพ(heapsort) เป็นการเรียงลำดับที่อยู่บนพื้นฐานบนพื้นฐานของโครงสร้างแบบไบนารี จะดำเนินการ 2 ขั้นตอน คือ   1. การจัดข้อมูลในอะเรย์ให้สอดคล้องกับความต้องการของฮีพ  2. การขจัดหนือการเคลื่อนย้ายข้อมูลในตำแหน่งสูงสุดหรือตำแหน่งยอดของของฮีพออกไปและสนับสนุนข้อมูลข้อมูล ตัวอื่นไปแทนตำแหน่งนั้น  
  • 24. การเรียนรู้ที่ 8 การค้นหาข้อมูล การค้นหาข้อมูล (searching) การค้นหาคําตอบ หรือการค้นหาข้อมูลในทางคอมพิวเตอร์มักจะกระทําบนโครงสร้างข้อมูลแบบต้นไม้ และกราฟ ทั้งนี้เพราะโครงสร้างข้อมูลในลักษณะนี้สามารถทําให้การค้นหาทําได้สะดวกและสามารถพลิกแพลงการค้นหาได้ง่าย ในความเป็นจริงแล้ว การค้นหาข้อมูลบางครั้งสามารถกระทําบนโครงสร้างข้อมูลชนิดอื่นก็ได้เช่น อาเรย์ แสตก และคิว แต่การจัดข้อมูลในโครงสร้างเช่นนี้ มีข้อจํากัดในการค้นหาข้อมูลมาก การค้นหาทําได้แบบเรียงลําดับ(Sequencial Search) เท่านั้น ซึ่งใช้ได้กับข้อมูลที่มีขนาดเล็ก ดังนั้นในการค้นหาข้อมูลที่มีขนาดใหญ่ ก่อนการค้นหา หรือระหว่างการค้นหา ข้อมูลที่จะถูกค้นจะต้องถูกจัดให้อยู่ในรูปแบบของต้นไม้ หรือกราฟเท่านั้น การค้นหาข้อมูลบนโครงสร้างต้นไม้และกราฟสามารถจําแนกได้ 2 แบบคือ การค้นหาแบบไบล์ด(Blind Search) และการค้นหาแบบฮิวริสติก(Heuristic Search)   การค้นหาแบบไบล์ด(Blind Search)        การค้นหาแบบไบล์ด(Blind search) เป็นการค้นหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง โดยอาศัยทิศทางเป็นตัวกําหนดการค้นหา ไม่ต้องมีข้อมูลอะไรมาช่วยเสริมการตัดสินใจว่าจะเดินทางต่อไปอย่างไร หรือกล่าวอย่างง่าย ๆ คือการจะหยิบข้อมูลใดมาช่วยในการค้นหาต่อไป ไม่ต้องอาศัยข้อมูลใด ๆ ทั้งสิ้น นอกจากทิศทางซึ่งเป็นรูปแบบตายตัว   การค้นหาแบบไบล์ดสามารถแบ่งย่อยได้ดังนี้ คือ การค้นหาทั้หมด  และการค้นหาบางส่วน      -  การค้นหาทั้งหมด(exhaustive search) คือ การค้นหาทั้งหมดของปริภูมิสถานะ      -  การค้นหาบางส่วน  (partial search)  การค้นหาเพียงบางส่วนของปริภูมิสถานะ ซึ่งในความเป็นจริงการค้นหาส่วนมากใช้การค้นหาเฉพาะบางส่วนเท่านั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ่ เท่าให้ไม่สามารถค้นหาได้ทั้งหมด ดังนั้นจึงมีความเป็นไปได้ว่าคำตอบที่ได้อาจไม่ใช่คำตอบที่ดีที่สุด การค้นหาแบบนี้สามารถแบ่งได้เป็น 2 ประเภทคือ การค้นหาแบบลึกก่อน(Depth first search) และการค้นหาแบบกว้างก่อน (Breadth first search)    
  • 25.   การค้นหาแบบลึกก่อน(Depth first search)          การค้นหาแบบลึกก่อนเป็นการค้นหาที่กําหนดทิศทางจากรูปของโครงสร้างต้นไม้ ที่เริ่มต้นจากโหนดราก(Root node) ที่อยู่บนสุด แล้วเดินลงมาให้ลึกที่สุด เมื่อถึงโหนดล่างสุด(Terminal node) ให้ย้อนขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไม่ได้เดินผ่าน แล้วเริ่มเดินลงจนถึงโหนดลึกสุดอีก ทําเช่นนี้สลับไปเรื่อยจนพบโหนดที่ต้องการหาหรือสํารวจครบทุกโหนดแล้วตามรูปที่ 1 การค้นหาแบบลึกก่อนจะมีลําดับการเดินตามโหนดดังตัวเลขที่กํากับไว้ในแต่ละโหนด  
  • 26.          ดังที่ได้กล่าวมาแล้วว่า โครงสร้างข้อมูลที่ใช้สําหรับการค้นหานี้สามารถใช้กับโครงสร้างกราฟได้ด้วย โดยอาศัยหลักการเดียวกัน แต่สําหรับการเดินทางบนกราฟนั้นจะไม่มีโหนดลึกสุดดังนั้นการเดินทางบนกราฟจะต้องปรับวิธีการเป็นดังนี้ โดยเริ่มจาก โหนดเริ่มต้น จากนั้นให้นําโหนดที่อยู่ติดกับโหนดที่กําลังสํารวจอยู่(ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก) มาเก็บไว้ในสแต็กเมื่อสํารวจโหนดนั้นเสร็จ ให้พอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงทั้งหมดที่ยังไม่ได้สํารวจมาต่อท้ายแสต็ก แล้วพอพตัวบนสุดออกมาสํารวจทําเช่นนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ต้องการ หรือสํารวจครบทุดโหนด  รูปที่ 2 โครงสร้างข้อมูลแบบกราฟ
  • 27.   การสํารวจจะเริ่มต้นที่ A และนําโหนดข้างเคียง B และ C มาเก็บไว้ในแสต็ก เมื่อสํารวจ Aเสร็จพอพข้อมูลจากแสต็กออกมาได้ C ทําการสํารวจ C และนําโหนดข้างเคียงกับ C ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก Dและ F พุช(Push) ใส่แสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู่ เมื่อสํารวจ C เสร็จ พอพ F ออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก ซึ่งก็คือ G ดังนั้นข้อมูลในแสต็กจะเป็น B D G ทํ าเช่นนี้ไปเรื่อย ๆ จนจบการทํางานก็จะได้ลําดับการสํารวจคือ (A C F G H E D B) ตามตาราง 1 ดังต่อไปนี้     ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน   ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย    
  • 28.   ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน           ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย     การค้นหาแบบกว้างก่อน (Breadth first search)        การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด   รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้       ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน           ในการค้นหาข้อมูลแบบนี้บนโครงสร้างของกราฟ มีข้อที่น่าสังเกตุคือ โหนดที่เริ่มต้นการสํารวจจะต้องมีการกําหนดมาให้ว่าโหนดใดเป็นโหนดเริ่มต้น และข้อสังเกตุอีกประการหนึ่งคือวิธีการค้นหาแบบลึกก่อนที่ใช้สําหรับโครงสร้างข้อมูลแบบกราฟ สามารถใช้กับโครงสร้างข้อมูลแบบต้นไม้ได้ด้วย     การค้นหาแบบกว้างก่อน (Breadth first search)        การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด   รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้      
  • 29.         สําหรับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้ จะอาศัยโครงสร้างข้อมูลแบบคิว(Queue)มาช่วย และด้วยวิธีการเช่นเดียวกับการค้นหาแบบลึกก่อนคือ ให้เริ่มต้นสํารวจที่โหนดเริ่มต้น แล้วนําโหนดข้างเคียงเก็บไว้ในคิว เมื่อสํารวจโหนดเริ่มต้นเสร็จ ให้นําข้อมูลในคิวออกมาสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและไม่ได้อยู่ในคิวใส่คิวไว้ ทําเช่นนี้ไปเรื่อย ๆ จนพบโหนดที่ต้องการ หรือเมื่อสํารวจครบทุกโหนด   รูปที่ 4 โครงสร้างข้อมูลแบบกราฟ    
  • 30.       การสํารวจเริ่มต้นที่ A นําโหนดข้างเคียง B C ไว้ในคิว เมื่อสํารวจ A เสร็จ นําข้อมูลในคิว คือ Bออกมาสํารวจ แล้วนําข้อมูลข้างเคียงคือ D E ใส่คิว ตอนนี้คิวจะมี B D E อยู่ แล้วนํา B ออกมาสํารวจทําเช่นนี้เรื่อย ๆ จะได้ลําดับการสํารวจข้อมูลคือ (A B C D E F G H)  ตามตารางที่ 2   ตาราง 2 ลําดับการค้นหาแบบกว้างก่อน
  • 31.      เช่นเดียวกับการค้นหาแบบลึกก่อน การค้นหาแบบกว้างก่อนโดยใช้โครงสร้างข้อมูลคิวมาช่วยต้องมีการกําหนดโหนดเริ่มต้น และวิธีการนี้สามารถใช้ได้กับข้อมูลบนโครงสร้างแบบต้นไม้ด้วย   ตารางเปรียบเทียบ การค้นหาแนวลึกก่อนและแนวกว้างก่อน   การค้นหาแนวลึกก่อน การค้นหาแนวกว้างก่อน 1.ใช้หน่วยความจำน้อยกว่า เพราะว่าสถานะในเส้นทางค้นหาปัจจุบันเท่านั้นที่ถูกเก็บ(ในขณะใดๆ จะเก็บเส้นทางเดียว พอจะไปเส้นทางอื่นเส้นทางที่ผ่านมาก็ไม่จำเป็นต้องเก็บ) 1.ใช้หน่วยความจำมากเพราะต้องเก็บสถานะไว้ทุกตัวเพื่อหาเส้นทางจากสถานะเริ่มต้นไปหาคำตอบ 2. อาจจะติดเส้นทางที่ลึกมากโดยไม่พบคำตอบ เช่นในกรณีที่เส้นทางนั้นไม่มีคำตอบและเป็นเส้นทางที่ยาวไม่สิ้นสุด จะทำไม่สามารถไปเส้นทางอื่นได้ 2. จำไม่ติดเส้นทางที่ลึกมาก ๆ โดยไม่พบคำตอบ 3. ถ้าคำตอบอยู่ในระดับ n+1สถานะอื่นทุกตัวที่ระดับ 1ถึงระดับ n ไม่จำเป็นต้องถูกกระจายจนหมด 3. ถ้าคำตอบอยู่ในระดับn+1 สถานะทุกตัวที่ระดับ 1ถึงระดับ n จะต้องถูกกระจายจนหมด ทำให้มีสถานะที่ไม่จำเป็นในเส้นทางที่จะไปสู่คำตอบถูกกระจายออกด้วย 4. เมื่อพบคำตอบไม่สามารถรับประกันได้ว่าเส้นที่ได้เป็นเส้นทางที่สั้นที่สุดหรือไม่ 4. ถ้ามีคำตอบจะรับประกันได้ว่าจะพบคำตอบแน่ ๆ และจะได้เส้นทางสั้นที่สุดด้วย
  • 32. การค้นหาแบบฮิวริสติก(Heuristic Search)            การค้นหาคําตอบอาศัยวิธีการทางฮิวริสติก (heuristic search) มีความความแตกต่างจากการค้นหาข้อมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยู่ที่การค้นหาข้อมูลธรรมดา ผู้ที่ทําการค้นข้อมูลจะต้องตรวจสอบข้อมูลทีละตัวทุกตัวจนครบ แต่ฮิวริสติกจะไม่ลงไปดู ข้อมูลทุกตัว วิธีการนี้จะเลือกได้คําตอบที่เหมาะสมให้กับการค้นหา ซึ่งมีข้อดีคือ สามารถทําการ ค้นหาคําตอบจาก ข้อมูลที่มีขนาดใหญ่มาก ๆ ได้ แต่มีข้อเสียคือคําตอบที่ได้เป็นเพียงคําตอบที่ดี เท่านั้นไม่แน่ว่าจะดีที่สุด แต่เนื่องจากว่าปัญหาในบางลักษณะนั้นใหญ่มาก และเป็นไปไม่ได้ที่จะทํา การค้นหาด้วยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเป็นสิ่งที่จําเป็นในเรื่องของฮิวริสติกนั้น นอกจากจะมีการค้นหาแบบฮิวริสติกแล้ว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ  ฮิวริสติกฟังก์ชัน (heuristic function) ซึ่งหมายถึงฟังก์ชันที่ทําหน้าที่ในการวัดขนาดของความเป็น ไปได้ในการแก้ปัญหาซึ่งจะแสดงด้วยตัวเลข   วิธีการดังกล่าวจะกระทําได้โดยการพิจารณาถึงวิธีการ (aspects) ต่าง ๆ ที่ใช้ในการแก้ปัญหา ณ  สถานะหนึ่งว่าจะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกําหนดเป็นนํ้าหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี นํ้าหนักเหล่านี้จะถูกแสดงด้วยตัวเลขที่กํากับไว้กับโหนดต่าง ๆ ในกระบวนการ ค้นหา และค่าเหล่านี้จะเป็นตัวที่ใช้ในการประมาณความเป็นไปได้ว่าเส้นทางที่ผ่านโหนดนั้นจะมีความเป็นไปได้ในการนําไปสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหน
  • 33. จุดประสงค์ที่แท้จริงของฮิวริสติก ฟังก์ชันก็คือ การกํากับทิศทางของกระบวนการค้นหา เพื่อให้อยู่ในทิศทางที่ได้ประโยชน์สูงสุด โดยการบอกว่าเราควรเลือกเดินเส้นทางไหนก่อน ในกรณีที่มีเส้น ทางมากกว่าหนึ่งเส้นทางต้องเลือกกระบวนการค้นหาแบบฮิวริสติก โดยปกติแล้วจะต้องอาศัยฮิวริสติกฟังก์ชัน ทําให้การแก้ปัญหาหนึ่ง ๆ จะดีหรือไม่ ก็ขึ้นอยู่กับฮิวริสติกฟังก์ชันดังนั้นการค้นหาแบบนี้จึงไม่มีอะไรเป็นหลักประกันว่าจะได้สิ่งที่ไม่ดีออกมาด้วยเหตุนี้เอง เราจึงเรียกการ ค้นหาแบบฮิวริสติกนี้ว่า Weak Methods หรือจะกล่าวอีกนัยหนึ่งคือ Weak Methodsเป็นกระบวนการควบคุมโดยทั่วไป (general-purpose control stategies)     ซึ่งการค้นหาแบบนี้ สามารถแบ่งได้เป็น
  • 34. การค้นหาแบบปีนเขา(Hill climbing)     ฟังก์ชันฮิวริสติกสามารถนำมาช่วยในกระบวนการค้นหาเพื่อให้ได้คำตอบอย่างรวดเร็วและมีประสิทธิภาพ วิธีการที่จะนำฟังก์ชันฮิวริสติกมาใช้มีหลายวิธีด้วยกันขึ้นอยู่กับว่าจะใช้ในลักษณะใด เช่นเลือกสถานะที่มีค่าฮิวริสติกดีขึ้น แล้วเดินไปยังสถานะนั้นเลยโดยไม่ต้องสนใจสถานะที่มีค่าฮิวริสติกแย่กว่าสถานะปัจจุบันหรือว่าจะเก็บสถานะทุกตัวไว้แม้ว่าค่าฮิวริสติกจะแย่ลงแล้วพิจารณาสถานะเหล่านี้ทีหลัง เป็นต้น ในส่วนต่อไปนี้จะกล่าวถึงอัลกอริทึมต่าง ๆ ที่นำฟังก์ชันฮิวริสติกมาช่วยในการค้นหาคำตอบ โดยเริ่มจากอัลกอริทึมปีนเข้า (Hill climbing algorithm)
  • 35. การค้นหาแบบฮิลไคลบิง(Hill climbing) เป็นวิธีการค้นหาข้อมูลที่มีลักษณะคล้ายกับการปีนภูเขา การที่นักปีนภูเขาจะเดินทางไปถึงยอดภูเขา นักปีนเขาจะต้องมองก่อนว่ายอดเขาอยู่ที่ใด แล้วนักปีนเขาจะต้องพยายามไปจุดนั้นให้ได้ ลองนึกภาพของการปีนภูเขาโล้นที่มองเห็นแต่ยอด และนักปีเขากําลังปีนภูเขาอยู่เบื้องล่างที่มีเส้นทางเต็มไปหมด เพื่อที่จะเดินทางไปถึงยอดภูเขาโดยเร็วที่สุด นักปีน เขาจะมองไปที่ยอดเขาแล้วสังเกตว่าทิศทางใดที่เมื่อปีนแล้วจะยิ่งใกล้ยอดเขา และหลีกเลี่ยงทิศทางที่เมื่อไปแล้วจะทําให้ตัวเองห่างจากยอดเขา นักปีนเขาจะต้องทําเช่นนี้ไปเรื่อย ๆ จนกระทั่งถึงยอดเขา
  • 38. ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีค่าฮิวริสติกเท่ากับ h จากรู้จะเห็นได้ว่า เริ่มต้นจากสถานะที่ 1 ที่มีค่าฮิวริสติกเท่ากับ -1 อัลกอริทึมปีนเขาใช้ตัวกระทำการเพื่อสร้างสถานะลูกตัวแรกของสถานะที่ 1 แล้ววัดค่าฮิวริสติกได้ 0 ซึ่งมีค่าดีขึ้น ถ้าสังเกตจากรูปที่  จะพบว่าสถานะที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แต่ในกรณีของอัลกอริทึมปีนเขานี้ เมื่อได้สถานะลูกตัวแรกซึ่งมีค่าอิวริสติกดีขึ้น อัลกอริทึมจะไม่สร้างสถานะลูกที่เหลืออีก 2 ตัว และจะไม่มีการย้อนกลับมาที่สถานะลูกทั้ง 2 นี้ แม้ว่าหลังจากนี้อัลกอริทึมจะค้นไม่พบคำตอบกล่าวคือเป็นการตัดทางเลือกทิ้งไปเลย ซึ่งการทำเช่นนี้แม้ว่าจะมีโอกาสไม่พบคำตอบแต่ก็มีข้อดีที่เป็นการช่วยลดเวลาและปริภูมิที่ทำการค้นหาจะลดลงอย่างมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แล้วเริ่มสร้างสถานะลูกได้สถานะที่ 3 ที่มีค่าฮิวริสติก -1 ซึ่งแย่ลงในกรณีที่แย่ลงเช่นนี้ อัลกอริทึมจะไม่ไปยังสถานะลูกตัวนี้และสร้างสถานะลูกตัวต่อไปโดยใช้ตัวกระทำการที่เหลือได้สถานะที่ 4 มีค่าฮิวริสติกเท่ากับ -1 ไม่ดีขึ้นเช่นกันจึงสร้างสถานะลูกตัวถัดไป เป็นสถานะที่5 มีค่าฮิวริสติกเท่ากับ 1 เป็นค่าที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และค้นพบคำตอบในที่สุด           อัลกอริทึมปีนเขานี้จะมีประสิทธิภาพมากดังเช่นแสดงในตัวอย่างนี้ซึ่งกระจายสถานะทั้งสิ้นเพียง 6 ตัวแล้วพบคำตอบ เปรียบเทียบกับอัลกอริทึมการค้นหาแนวกว้างก่อนซึ่งใช้สถานะทั้งสิ้นถึง 11 ตัว อย่างไรก็ดีอัลกอริทึมนี้จะมีประสิทธิภาพมาก ถ้าใช้ฟังก์ชันฮิวริสติกที่ดีมาก ๆ ในกรณีที่ฟังก์ชันฮิวริสติกไม่ดีนัก อัลกอริทึมนี้ก็อาจหลงเส้นทางได้ และอาจไม่พบคำตอบแม้ว่าปริภูมิที่กำลังค้นหามีคำตอบอยู่ด้วยก็ตาม สาเหตุการหลงเส้นทางประการหนึ่งมาจากการเลือกสถานะลูก ซึ่งอัลกอริทึมจะไม่ได้พิจารณาสถานะลูกทุกตัวโดยเมื่อพบสถานะลูกตัวใดตัวหนึ่งที่ดีขึ้นก็จะเลือกเส้นทางนั้นทันที อัลกอริทึมนี้สามารถดัดแปลงเล็กน้อยให้พิจารณาสถานะลูกทุกตัวให้ครบก่อน แล้วเลือกสถานะลูกตัวที่มีค่าฮิวริสติกสูงสุด เมื่อทำเช่นนี้ก็จะทำให้อัลกอริทึมได้พิจารณาเส้นทางที่ดีที่สุด ณ ขณะหนึ่ง ๆ ได้ดีขึ้นเราเรียกอัลกอริทึมที่ดัดแปลงนี้ว่าอัลกอริทึมปีนเขาชันสุด (Steepest ascent hill climbing)
  • 39. การค้นหาดีสุดก่อน(Best-first search)       เป็นกระบวนการค้นหาข้อมูลที่ได้นําเอาข้อดีของทั้งการค้นหาแบบลึกก่อน(Depth firstsearch) และการค้นหาแบบกว้างก่อน(Breadth first search) มารวมกันเป็นวิธีการเดียว โดยที่แต่ละขั้นของการค้นหาในโหนดลูกนั้น การค้นหาแบบดีที่ดีก่อนจะเลือกเอา โหนดที่ดีที่สุด (most promising)และการที่จะทราบว่าโหนดใดดีที่สุดนี้สามารถทําได้โดยอาศัยฮิวริสติกฟังก์ชัน ซึ่งฮิวริสติก ฟังก์ชันนี้จะทําหน้าที่เหมือนตัววัดผล และให้ผลของการวัดนี้ออกมาเป็นคะแนน รูปที่ 2.7 เป็นตัวอย่างของการค้นหาแบบดีที่สุดก่อน ขั้นตอนนี้เริ่มจากตอน 1 สร้างโหนดราก(root node) ในขั้นตอน 2สร้างโหนดลูกB และ C แล้วตรวจสอบโหนด B และ C ด้วยฮิวริสติกฟังก์ชัน ได้ผลออกมาเป็นคะแนนคือ 3 และ 1ตามลําดับ จากนั้นให้เลือกโหนด C เป็นโหนดต่อไปที่เราสนใจ เพราะมีค่าน้อยกว่า (หมายเหตุ ในการเลือกนี้จะเลือกค่ามากสุด หรือน้อยสุดก็ได้ ขึ้นอยู่กับลักษณะของปัญหา) แล้วสร้างโหนด ลูกให้กับโหนด C ในขั้นตอน 3 ได้โหนด D และ Eแล้วตรวจสอบคะแนนได้ 4 และ 6 ตามลําดับ จากนั้นทํ าการเปรียบเทียบค่าของโหนดท้ายสุด หรือเทอร์มินอล โหนด(terminal node) ทุกโหนด ว่าโหนด ใดมีค่าดีที่สุด ในที่นี้จะต้องเลือกโหนด B เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แล้วสร้างโหนด ลูกตามขั้นตอน 4 ได้ F และ G แล้วตรวจ สอบคะแนนได้ 6 และ 5 คะแนนตามลําดับทําเช่นนี้เรื่อย ๆ จนพบคําตอบหรือจนไม่สามารถ สร้างโหนดต่อไปได้อีก
  • 42. อัลกอริธึม: การค้นหาแบบดีที่สุดก่อน 1. เริ่มด้วย OPEN ที่มีเพียงโหนดเริ่มต้น 2. ทําจนกว่าจะพบเป้าหมาย หรือว่าไม่มีโหนดเหลืออยู่ใน OPEN      � เลือกโหนดที่ดีที่สุดใน OPEN      � สร้างโหนดลูกให้กับโหนดที่ดีที่สุดนั้น      � สําหรับโหนดลูกแต่ละตัวให้ทําดังต่อไปนี้           i) ถ้าโหนดนั้นยังไม่เคยถูกสร้างมาก่อนหน้านั้น ให้ตรวจสอบค่าของมันโดย                     ใช้ฮิวริสติกฟังชัน แล้วเพิ่มเข้าไปใน OPEN แล้วบันทึกว่าเป็นโหนดแม่          ii) ถ้าโหนดนั้นถูกสร้างมาก่อนหน้านี้แล้ว ให้เปลี่ยนโหนดแม่ของมัน ถ้าเส้น                    ทางใหม่ที่ได้ดีกว่าโหนดแม่ตัวเดิม ในกรณีนี้ ให้ปรับเปลี่ยนค่าตามเส้น                    ทางที่อาจจะเกิดขึ้น
  • 43. การค้นหาแบบ Greedy (Greedy Algorithm)     กรีดีอัลกอริธึม เป็นการค้นหาแบบดีที่สุดก่อน(Best first search) ที่ง่ายที่สุด หลักการของการค้นหาแบบนี้คือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี 1. เลือกโหนดเริ่มต้นมาหนึ่งโหนด 2. ให้โหนดที่เลือกมานี้เป็นสถานะปัจจุบัน 3. ให้ทําตามขบวนการข้างล่างนี้จนกว่าจะไม่สามารถสร้างโหนดลูกได้อีก       3.1 สร้างสถานะใหม่ที่เป็นโหนดลูกที่เป็นไปได้ทั้งหมดจากสถานะปัจจุบัน       3.2 จากสถานะใหม่ที่สร้างขึ้นมาทั้งหมด ให้เลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว 4. กลับไปที่ขึ้นตอนที่ 2
  • 44. ตัวอย่าง จากเรื่องการเดินทางของเซลแมนที่จะต้องเดินทางไปยังเมือง A B C D ซึ่งมีระยะทางตามตารางที่ 3 เราจะแก้ปัญหานี้ด้วยวิธีการของกรีดีบ้าง รูปที่ 9 การแก้ปัญหาการเดินทางของเซลแมนด้วยกรีดีอัลกอริธึม
  • 45. จากรูปที่ 9 การแก้ปัญหาเริ่มจาก การเลือก A เป็นเมืองเริ่มแรก จากนั้นทําการสร้างโหนดลูกB C และ D หารระยะทางระหว่าง A ถึงเมืองเหล่านี้ได้ 20 30 และ 50 ตามลําดับ เลือก B เป็นเมืองที่จะเดินทางต่อมา จากนั้นสร้างโหนดลูกของB ได้ C และ D และได้ระยะทางเท่ากับ 15 และ 20 ตามลําดับ เลือก C เป็นเมืองที่จะเดินทางต่อไป จากนั้นสร้างโหนดลูกให้ C ได้ D มีค่าเท่ากับ 10 เลือกเดินมาที่ D เป็นเมืองสุดท้ายก่อนกลับไป A รวมระยะทางเท่ากับ 20 + 15 + 10 + 50 = 95 รูปที่ 10    ข้อมูลในรูปแบบกราฟ
  • 47. การค้นหาแบบ A*        การค้นหาแบบ A* เป็นอีกแบบของการค้นหาแบบดีที่สุดก่อน วิธีการเลือกโหนดที่จะใช้ในการดําเนินการต่อจะพิจารณาจากโหนดที่ดีที่สุด แต่ในกรณีของ A* นี้จะมีลักษณะพิเศษกว่าคือ ในส่วนของฮิวริสติกฟังก์ชัน ในกรณีของการค้นหาแบบดีที่สุดก่อนนั้น ค่าที่ได้จากฮิวริสติก ฟังก์ชัน จะเป็นค่าที่วัดจาก โหนดปัจจุบัน แต่ในกรณีของ A* ค่าของฮิวริสติก ฟังก์ชัน จะวัดจากค่า 2 ค่าคือ ค่าที่วัดจากโหนดปัจจุบันไปยังโหนดราก และจากโหนดปัจจุบันไปยังโหนดเป้าหมาย ถ้าเราให้ตัวแปร f แทนค่าของฮิวริสติก ฟังก์ชัน g เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะเริ่มต้นจนถึงสถานะปัจจุบัน h' เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะปัจจุบันถึงสถานะเป้าหมาย ดังนั้น       f = g + h’