วันอังคารที่ 13 ตุลาคม พ.ศ. 2552

ลูกแรดเตรียมพร้อมล่าเหยื่อ

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

วันอังคารที่ 15 กันยายน พ.ศ. 2552

DHT ครั้งที่11-15/09/2552

Sorting
-การเรียงลำดับแบบเร็ว (quick sort)
-การเรียงลำดับแบบแทรก (insertion sort)
-การเรียงลำดับแบบฐาน (radix sort)
เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก
1. เริ่มพิจารณาจากหลักที่มีค่าน้อยที่สุดก่อน นั่นคือถ้าข้อมูลเป็นเลขจำนวนเต็มจะพิจารณาหลักหน่วยก่อน
2. การจัดเรียงจะนำข้อมูลเข้ามาทีละตัว แล้วนำไปเก็บไว้ที่ซึ่งจัดไว้สำหรับค่านั้น เป็นกลุ่ม ๆตามลำดับการเข้ามา
3. ในแต่ละรอบเมื่อจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริ่มเรียงจากกลุ่มที่มีค่าน้อยที่สุดก่อนแล้วเรียงไปเรื่อย ๆ จนหมดทุกกลุ่ม
4. ในรอบต่อไปนำข้อมูลทั้งหมดที่ได้จัดเรียงในหลักหน่วยเรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิบต่อไป ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกหลักจะได้ข้อมูลที่เรียงลำดับจากน้อยไปมากตามต้องการ
เรื่อง ตาราง แฮช (Hash Table)
การชนกันของข้อมูล (Collision)
การที่แทรกคีย์ในตาราง ที่จัดเก็บนั้นมีโอกาสที่คีย์ที่ถูกสร้างจากฟังก์ชัน ในช่องเดียวกันอย่างไรก็ตามการเกิดการชนกันก็ยังคงต้องมีอย่างน้อยหนึ่งครั้ง
การแก้ไขปัญหาชนกันของข้อมูล แบบห่วงโซ่(Chaining)
1. กรณีที่เลวร้ายที่สุด ในการแทรกข้อมูลคือ
2. การลบสมาชิก สามารถทำได้ด้วยเวลาที่น้อยที่สุดของ
วิธีการสร้างฟังก์ชันแฮช(Method for Creating Function)
1.วิธีการหาร (The Division Method)
2.วิธีการคูณ(The Multiplication Method)
3.วิธีทั่วไป (Universal hashing)
เทคนิคลำดับของการตรวจสอบ
1. การตรวจสอบเชิงเส้น (Linear Probing)
2.การตรวจสอบด้วยสมการกำลังสอง(Quadratic Probing)
3. การสร้างฟังก์ชันแฮชแบบสองเท่า(Double Hashing)

วันอังคารที่ 8 กันยายน พ.ศ. 2552

DHT ครั้งที่10-08/09/2552

การท่องไปในกราฟ
การท่องไปในกราฟ คือกระบวนการเข้าไปเยือนโหนดในกราฟ โดยมีหลักในการทำงานคือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียว สำหรับการท่องไปในทรีเพื่อเยือนแต่ละโหนดนั้นจะมีเส้นทางเดียวแต่ในกราฟระหว่างโหนดอาจจะมีหลายเส้นทาง ดังนั้น
เพื่อป้องกันการท่องไปในเส้นทางที่ซ้ำเดิมจึงจำเป็นต้องทำเครื่องหมายบริเวณที่ได้เยือนเสร็จเรียบร้อยแล้ว การท่องไปในกราฟมี2แบบคือ
1. การท่องแบบกว้าง วิธีนี้ทำโดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นทีละระดับจนกระทั่งเยือนหมดทุกโหนดในกราฟ

2. การท่องแบบลึก การทำงานคล้ายกับการท่องทีละระดับของทรี โดยกำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตาม
แนววิถีนั้นจนกระทั่งนำไปสู่ปลายวิถีนั้น จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิมนั้น จนกระทั่งสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่น ๆ เพื่อเยือนโหนดอื่น ๆ ต่อไปจนครบทุกโหนด
การเรียงลำดับ (sorting)
เป็นการจัดให้เป็นระเบียบมีแบบแผน ช่วยให้การค้นหาสิ่งของหรือข้อมูล ซึ่งจะสามารถกระทำได้รวดเร็วและมีประสิทธิภาพ
การเรียงลำดับอย่างมีประสิทธิภาพ
- เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
- เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
- จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับ
-การเรียงลำดับแบบภายใน (internal sorting)เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก เวลาที่ใช้ในการเรียงลำดับจะคำนึงถึงเวลาที่ใช้ในการเปรียบเทียบและเลื่อนข้อมูลภายในความจำหลัก
- การเรียงลำดับแบบภายนอก(external sorting) เป็นการเรียงลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง ซึ่งเป็นการ
เรียงลำดับข้อมูลในแฟ้มข้อมูล (file) เวลาที่ใช้ในการเรียงลำดับต้องคำนึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจำหลักและหน่วยความจำสำรองนอกเหนือจากเวลาที่ใช้ในการเรียงลำดับข้อมูลแบบภายใน
1.การเรียงลำดับแบบเลือก (selection sort)
2.การเรียงลำดับแบบฟอง (Bubble Sort)

วันอังคารที่ 1 กันยายน พ.ศ. 2552

DHT ครั้งที่9-01/09/2552

เอ็กซ์เพรสชันทรี
เป็นการนำเอาโครงสร้างทรีไปใช้เก็บนิพจน์ทางคณิตศาสตร์โดยเป็นไบนารีทรี ซึ่งแต่ละโหนดเก็บตัวดำเนินการ และและตัวถูกดำเนินการ ของนิพจน์คณิตศาสตร์นั้น ๆ ไว้ หรืออาจจะเก็บค่านิพจน์ทางตรรกะ พจน์เหล่านี้เมื่อแทนในทรีต้องคำนึงลำดับขั้นตอน
ในการคำนวณตามความสำคัญของเครื่องหมายด้วยโดยมีความสำคัญตามลำดับดังนี้
- ฟังก์ชัน - วงเล็บ - ยกกำลัง - เครื่องหมายหน้าเลขจำนวน (unary) - คูณ หรือ หาร - บวก หรือ ลบ
- ถ้ามีเครื่องหมายที่ระดับเดียวกันให้ทำจากซ้ายไปขวา
การแทนนิพจน์ในเอ็กซ์เพรสชันทรี ตัวถูกดำเนินการจะเก็บอยู่ที่โหนดใบ ส่วนตัวดำเนินการจะเก็บในโหนดกิ่ง หรือโหนดที่ไม่ใช่โหนดใบไบนารีเซิร์ชทรีไบนารีเซิร์ชทรี เป็นไบนารีทรีที่มีคุณสมบัติที่ว่าทุก ๆ โหนดในทรี ค่าของโหนดรากมีค่ามากกว่าค่าของทุก
โหนดในทรีย่อยทางซ้าย และมีค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน
1 การเพิ่มโหนดในไบนารีเซิร์ชทรี การเพิ่มโหนดใหม่เข้าไปในไบนารีเซิร์ชทรี ถ้าทรีว่างโหนดที่เพิ่มเข้าไปก็จะเป็นโหนดรากของทรี ถ้าทรีไม่ว่างต้องทำการตรวจสอบว่าโหนดใหม่ที่เพิ่มเข้ามานั้นมีค่ามากกว่าหรือน้อยกว่าค่าที่โหนดราก ถ้ามีค่ามากกว่าหรือเท่ากันจะนำโหนดใหม่ไปเพิ่มในทรีย่อยทางขวาและถ้ามีค่าน้อยกว่านำโหนดใหม่ไปเพิ่มในทรีย่อยทางซ้ายในทรีย่อยนั้นต้องทำการเปรียบเทียบในลักษณะเดียวกันจนกระทั่งหาตำแหน่งที่สามารถเพิ่มโหนดได้ ซึ่งโหนดใหม่ที่
2 การดึงโหนดในไบนารีเซิร์ชทรีหลังจากดึงโหนดที่ต้องการออกจากทรีแล้วทรีนั้นต้องคงสภาพไบนารีเซิร์ชทรีเหมือนเดิมก่อนที่จะทำการดึงโหนดใด ๆ ออกจากไบนารีเซิร์ชทรี ต้องค้นหาก่อนว่าโหนดที่ต้องการดึงออกอยู่ที่ตำแหน่งไหนภายในทรีและต้องทราบที่อยู่ของโหนดแม่โหนดนั้นด้วยแล้วจึงทำการดึงโหนดออกจากทรีได้ ขั้นตอนวิธีดึงโหนดออกอาจแยกพิจารณาได้ 3
- กรณีโหนดที่จะดึงออกเป็นโหนดใบ
- กรณีโหนดที่ดึงออกมีเฉพาะทรีย่อยทางซ้ายหรือทรีย่อยทางขวาเพียงด้านใดด้านหนึ่ง
- กรณีโหนดที่ดึงออกมีทั้งทรีย่อยทางซ้ายและทรีย่อยทางขวาต้องเลือกโหนดมาแทนโหนดที่ถูกดึงออก โดยอาจจะเลือกมาจากทรีย่อยทางซ้ายหรือทรีย่อยทางขวาก็ได้
1 ถ้าโหนดที่มาแทนที่เป็นโหนดที่เลือกจากทรีย่อยทางซ้ายต้องเลือกโหนดที่มีค่ามากที่สุดในทรีย่อยทางซ้ายนั้น
2 ถ้าโหนดที่จะมาแทนที่เป็นโหนดที่เลือกมาจากทรีย่อยทางขวา ต้องเลือกโหนดที่มีค่าน้อยที่สุดในทรีย่อยทางขวานั้น
Graph
กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงานที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อน
นิยามของกราฟ
1 โหนด หรือ เวอร์เทกซ์ 2 เส้นเชื่อมระหว่างโหนด เรียก เอ็จ
กราฟแบบมีทิศทาง เป็นเซตแบบจำกัดของโหนดและเอ็จ โดยเซตอาจจะว่างไม่มีโหนดหรือเอ็จเลยเป็นกราฟว่าง แต่ละเอ็จจะเชื่อม
ระหว่างโหนดสองโหนด เอ็จมีทิศทางกำกับแสดงลำดับของการเชื่อมต่อกัน โดยมีโหนดเริ่มต้น และ โหนดสิ้นสุด รูปแบบต่าง ๆ ของกราฟแบบมีทิศทางเหมือนกับรูปแบบ ของกราฟไม่มีทิศทาง ต่างกันตรงที่กราฟแบบนี้จะมีทิศทางกำกับด้วยเท่านั้น
การแทนกราฟในหน่วยความจำ
ในการปฏิบัติการกับโครงสร้างกราฟ สิ่งที่ต้องการจัดเก็บ จากกราฟโดยทั่วไปก็คือ เอ็จ ซึ่งเป็นเส้นเชื่อมระหว่างโหนดสองโหนด มีวิธีการจัดเก็บหลายวิธี วิธีที่ง่ายและตรงไปตรงมาที่สุดคือ
- การเก็บเอ็จในแถวลำดับ 2 มิติ
-แถวลำดับ1 มิติเก็บโหนดต่าง ๆ ที่มีความสัมพันธ์กับโหนดในแถวลำดับ 2 มิติ

วันเสาร์ที่ 29 สิงหาคม พ.ศ. 2552

DTH ครั้งที่8-25/08/2552

สรุปบทเรียนเรื่อง Tree
ทรีเป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น
แต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า โหนดแม่(Child or Son Node)โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก (Root Node)โหนดที่มีโหนดแม่เป็นโหนดเดียวกัน
เรียกว่า โหนดพี่น้อง (Siblings)โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ (Leave Node)เส้นเชื่อมแสดงความสัมพันธ์ระหว่าง
โหนดสองโหนดเรียกว่า กิ่ง (Branch)
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใด ๆ ในทรีต้องมีทางติดต่อกันทางเดียวเท่านั้น
การเขียนรูปแบบทรี อาจเขียนได้ 4 แบบได้แก่
1) แบบที่มีรากอยู่ด้านบน
2) แบบที่มีรากอยู่ด้านล่าง
3) แบบที่มีรากอยู่ด้านซ้าย
4) แบบที่มีรากอยู่ด้านขวา
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟทรีประกอบด้วยสมาชิกที่เรียกว่าโหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่านัลทรี
และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย
นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์
2. ทรีที่มีแบบแผน
3. ทรีคล้าย
4. ทรีเหมือน
5. กำลัง
6. ระดับของโหนด
การแทนที่ทรีในหน่วยความจำหลัก
การแทนที่โครงสร้างข้อมูลแบบทรีในความจำหลักจะมีพอยเตอร์เชื่อมโยงจากโหนดแม่ไปยังโหนดลูก แต่ละโหนดต้องมีลิงค์ฟิลด์เพื่อเก็บที่อยู่ของโหนดลูกต่าง ๆ นั่นคือจำนวน ลิงค์ฟิลด์ของแต่ละโหนดขึ้นอยู่กับจำนวนของโหนดลูกการแทนที่ทรี ซึ่งแต่ละโหนดมีจำนวนลิงค์ฟิลด์ไม่เท่ากัน ทำให้ยากต่อการปฏิบัติการ วิธีการแทนที่ที่ง่ายที่สุดคือ ทำให้แต่ละโหนดมี จำนวนลิงค์ฟิลด์เท่ากัน
1. โหนดแต่ละโหนดเก็บพอยเตอร์ชี้ไปยังโหนดลูกทุกโหนด การแทนที่ทรีด้วยวิธีนี้ จะให้จำนวนฟิลด์ในแต่ละโหนดเท่ากันโดยกำหนดให้มีขนาดเท่ากับจำนวนโหนดลูกของโหนดที่มีลูกมากที่สุด โหนดใดไม่มีโหลดลูกก็ให้ค่าพอยเตอร์ในลิงค์ฟิลด์นั้นมีค่าเป็น Nullและให้ลิงค์ฟิลด์แรกเก็บค่าพอยเตอร์ชี้ไปยังโหนด ลูกลำดับที่หนึ่ง ลิงค์ฟิลด์ที่สองเก็บค่าพอยเตอร์ชี้ไปยังโหนดลูก
ลำดับที่สอง และลิงค์ฟิลด์อื่นเก็บค่าพอยเตอร์ของโหนดลูก
2. แทนทรีด้วยไบนารีทรีเป็นวิธีแก้ปัญหาเพื่อลดการ สิ้นเปลืองเนื้อที่ในหน่วยความจำก็คือกำหนดลิงค์ฟิลด์ให้มีจำนวนน้อยที่สุดเท่าที่จำเป็นเท่านั้นโดยกำหนดให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์สองลิงค์ฟิลด์
การแปลงทรีทั่วไปให้เป็นไบนารีทรี
ขั้นตอนการแปลงทรีทั่วๆ ไปให้เป็น
ไบนารีทรี มีลำดับขั้นตอนการแปลง ดังต่อไปนี้
1. ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบ
ความสัมพันธ์ ระหว่างโหนดแม่และโหนดลูกอื่น ๆ
2. ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3. จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
การท่องไปในไบนารีทรี
มีวิธีการท่องเข้าไปในทรี 6 วิธี คือ NLRLNR LRN NRL RNL และ RLNแต่วิธีการท่องเข้าไปไบนารีทรีที่นิยมใช้กันมากเป็นการท่องจากซ้ายไปขวา 3 แบบแรกเท่านั้นคือ NLR LNR และ LRNคือ
1. การท่องไปแบบพรีออร์เดอร์
2.การท่องไปแบบอินออร์เดอร์
3. การท่องไปแบบโพสออร์เดอร์

วันเสาร์ที่ 15 สิงหาคม พ.ศ. 2552

DTH ครั้งที่7-11/08/2552

วันนี้อาจารย์ให้ส่งสมุด แล้วให้กับไปอ่าน เรื่องคิวเอง เพื่อเตรียมสอบ
คิว
คิวเป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือ
ลิเนียร์ลิสต์ซึ่งการเพิ่มข้อมูลจะกระทำที่ปลายข้างหนึ่งซึ่ง เรียกว่าส่วนท้ายหรือเรียร์ และการนำข้อมูลออกจะ
กระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้า หรือฟรอนต์ ลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อน
ออกก่อน
การทำงานของคิว
-การใส่สมาชิกตัวใหม่ลงในคิว เรียกว่า Enqueue หมายถึง การใส่ข้อมูล newElement ลงไปที่ส่วนเรียร์
-การนำสมาชิกออกจากคิว เรียกว่า Dequeue หมายถึง การนำออกจากส่วนหน้า ของคิวและให้ ข้อมูลนั้นกับ element
-การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงจะ เรียกว่า Queue Front
-การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะ เรียกว่าQueue Rear
การแทนที่ข้อมูลของคิว
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์ ประกอบไปด้วย
1. Head Node
2. Data Node
2. การแทนที่ข้อมูลของคิวแบบอะเรย์
การดำเนินการเกี่ยวกับคิว
1. Create Queue จัดสรรหน่วยความจำ
2. Enqueue การเพิ่มข้อมูลเข้าไปในคิว
3. Dequeue การนำข้อมูลออกจากคิว
4. Queue Front เป็นการนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5. Queue Rear เป็นการนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6. Empty Queueเป็นการตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count เป็นการนับจำนวนสมาชิกที่อยู่ในคิว

วันพุธที่ 5 สิงหาคม พ.ศ. 2552

DTH ครั้งที่6-04/08/2552

สแตก(Stach)
เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในสแตกจะกระทำที่ปลายข้างเดียวกัน ซึ่งเรียนว่า Top ของสแตกและลักษณะที่สำคัญของสแตกคือ ข้อมูลที่ได้หลังสุด จะถูกนำออกมาจากสแตกเป็นลำดับสุกแรกสุด เรียกคุณสมบัตินี้ว่า Lifo
การทำงานของสแตกประกอบด้วยกระบวนการ 3 กระบวนการคือ
1.Push คือการนำข้อมูลใส่ลงในสแตก
2.Pop คือการนำข้อมูลออกจากส่วนบนสุดของสแตก
3.Stach Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตกแต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก
การแทนที่ข้อมูลของสแตกสามารถทำได้2วิธีคือ
1.การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2.การแทนที่ข้อมูลของสแตกแบบอะเรย์
การดำเนินการเกี่ยวกับสแตก
1.Create Stack เป็นการจัดสรรหน่วยความจำลห้แ่ Head Node และส่งค่าตำแหน่งที่ชีไปยัง Head ของสแตก
2.Push Stack เป็นการเพิ่มข้อมูลลงไปในสแตก
3.Pop Stack เป็นการนำข้อมูลบนสุดของสแตกออกจากสแตก
4.Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตกโดยไม่มีการลบข้อมูลออกจากสแตก
5.Empty Stack เป็นการตรวจสอบการว่างของสแตก
6.Full Stack เป็นการตรวจสอบว่าสแตกต็มหรือไม่
7.Stack Count เป็นการนับจำนวนสมาชิกที่อยู่ในสแตก
8.Destrog Stack เป็นการลบข้อมูลทั้งหมอที่อยู่ในสแตก
การคำนวนนิพจน์ทางคณิตศาสตร์
ในการเขียนนิพจน์ทางคณิตศาสตร์เพื่อการคำนวณ จะต้องคำนึงถึงลำดับความสำคัญของเรื่องหมาย สำหรับการคำนวณด้วย โดยไปนิพจน์ทางคณิตศาสตร์สามารถเขียนได้ 3 รูปแบบคือ
1.นิพจน์ Infix นิพจน์รูปแบบนี้ operator จะอยู่ตรงกลางระหว่างตัวถูกดำเนินการ2ตัว
2.นิพจน์ Postfix นิพจน์รูปแบบนี้ จะต้องเขียนตัวดำเนินการตัวที่1และ2ก่อน แล้วตามด้วย operator
3.นิพจน์ Prefix นิพจน์รูปแบบนี้ จะต้องเขียน operator ก่อนแล้วตามด้วยตัวถูกดำเนินการตัวที่1และ2

วันพุธที่ 29 กรกฎาคม พ.ศ. 2552

DTH ครั้งที่5-28/07/2552

สรุปการเรียน
เรื่องลิงค์ลิสต์(Linked List.)
เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่างๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ และแต่ละอิลอเมนท์ เรียกว่าโนด ซึ่งแต่ละโนดจะประกอบไปด้วย 2 ส่วนคือ Data จะเก็บข้อมูลของอิลิเมนท์ และส่านที่สองคือ Link Field จะทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างแบบลิงค์ลิสต์จะแบ่งออกเป็นสองส่วนคือ
1. Head Structure จะประกอบไปด้วย 3 ส่วนได้แก่ จำนวนโหนดในลิสต์ พอยเตอร์ที่ชี่ไปยังส่วนโหนดที่่เข้าถึง และพอยเตอร์ที่ชี่ไปยังโหนดข้อมูลแรกของลิสต์
2. Datd NOde Structure จะประกอบไปด้วยข้อมูลและพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนการ Create List ทำหน้าที่สร้างลิสต์เเละจะได้ลิสต์ว่าง
2. กระบวนงาน Insert Node ทำหน้าที่เพิ่มข้อมูลลงไปในลิสต์บริเวณที่ต้องการเพิ่มลงไป
3. กระบวนงาน Delete Node ทำหน้าที่ลบสมาชิกในลิสต์บริเวณตำแหน่งที่ต้องการ
4. กระบวนงาน Search list ทำหน้าที่ในการค้นหาข้อมูลในลิสต์ที่ต้องการ
5. กระบวนงาน Traverse ทำหน้าที่ท่องเข้าไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลที่นำเข้าลิสต์
6. กระบวนงาน Retrieve Node ทำหน้าที่หาตำแหน่งของข้อมูลจากลิสต์
7. ฟังก์ชั่น Empty List ทำหน่าที่ทดสอบว่าลิสต์ว่างหรือไม่ว่าง
8. ฟังก์ชั้น Full List ทำหน้าที่ทดสอบว่าลิสต์เต็มหรือไม่เต็ม หรือว่าในลิสต์มีข้อมูลหรือไม่
9. ฟังก์ชั้น list count ทำหน้าที่นับจำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน destroy list ทำหน้าที่ทำลายลิสต์
Linked List แบบซับซ้อน
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้ไปที่สมาชิกตัวแรกของลิงค์ลิสต์ จะทำงานไปในทิศทางเดียวเท่านั้นคือแบบวงกลม
2. Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำงานแบบ 2 ทิศทาง ในลิงค์ลิสต์แบบ2ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า และตัวชี้ข้อมูลถัดไป

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552

DTS ครั้งที่04-14/07/2552

สรุปการเรียน ในวันที่14/07/2552ได้รับรู้เกี่ยวกับเรื่อง
1. โครงสร้างข้อมูลแบบเซ็ต
เป็นโครงสร้างข้อมูล ที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน ในภาษาซี จะไม่มีประเภทข้อมูลแบบเซ็ต
เหมือนกับในภาษาปาสคาล แต่สามารถใช็หลักการของการดำเนินการแบบเซ็ตมาใช้ได้
2. โครงสร้างข้อมูลแบบสตริง
ความยาวของสตริงจะถูกกำเนิดโดยขนาดของสตนิง การกำเนิดขนาดของสตริงนั้น ต้องจองเนื้อที่
ในหน่วยความจำให้กับ \0 ด้วย
- อะเรย์ของสตริงที่ยาวเท่ากัน
อะเรย์ในลักษณะนี้จะถือว่าเป็นอะเรย์ที่แท้จริง และสามารถกำเนิดได้ เมื่อมีการให้ค่าเริ่มต้น
และเมื่อกำเนิดเป็นตัวแปร โดยการดำเนิดการตามแบบการ กำเนิดอะเรย์2มิติ
- อะเรย์ของสตริงที่ยาวไม่เท่ากัน
ในบทความที่ยาวไม่เท่ากันในอะเรย์นั้น จะมีการเติม null charaer (\0) ต่อท้ายข้อความ
ให้มีความยาวเท่ากัน
การดำเนินการเกี่ยวกับสตริง
ในการดำเนินการเกี่ยวกับสตริง จะมีฟังก์ชันที่อยู่ในแฟ้ม ข้อมูล stdio.h เก็บอยู่ใน C Library
อยู่แล้ว สามารถนำมาใช้ได้ โดยการใช้คำสั่ง #include ในการเรียกช้

วันศุกร์ที่ 3 กรกฎาคม พ.ศ. 2552

DTS ครั้งที่03-29/07/2552

สรุปการเรียน
สำหรับการเรียนในครั้งนี้ทำให้เราได้ทราบถึงอะเรย์ และอะเรย์ก็แบ่งออกเป็น 2ลักษณะคืิอ
1. การกำหนด array element เป็นพารามิเตอร์สั่งคำสั่งให้กับฟังก์ชั้น
2. สังอะเรย์ทั้งชุด ให้ฟังก์ชั้นทำโดยอ้างถึงชื่ออะเรย์โดยไม่มี subscvipt
ทำให้รู้ว่าอะเรย์นั้นมีทั้ง อะเรย์มิติเดียว และอะเรย์2มิติ และทำให้ได้รู้ถึง Recordor or Structure
ว่าเป็นโครงสร้างข้อมุลที่ประกอบขึ้นมาจากข้อมูลพื้นฐานต่างประเภทกัน มารวมเป็น1ชุดข้อมูล คือ จะประกอบด้วย
data element หรือ field ต่างประเภทกันอยู่รวมกัน ในภาษา c ก็คือการกำหนดข้อมูลเป็นรูปแบบของ
Structure คือโครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้ โดยที่ Structure อาจมีสมาชิกเป็นจำนวนเต็ม
ทศนิยม อักขระ อะเรย์หรือพอยเตอร์ หรือแม้แต่ Structure ด้วยกันก็ได้
Polnter เป็นตัวแปรชิดหนึ่งที่ทำหน้างที่เก็บตำแหน่งที่อยู่ของตัวแปรแต่ละตัวที่อยู่ในหน่วยความจำ

วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552

DTS ครั่งที่ 02 - 23/06/2552

สรุปการเรียนของวันที่ 23/06/2552
โครงสร้างข้อมูล ( Data Structure )
คือ ความสัมพันธ์ของข้อมูลที่มีอยู่ในโครงสร้างนั้นๆ รวมทั้งการจัดการของโครงสร้างข้อมูล เช่นการเพิ่มข้อมูล หรือการลบ และการแก้ไขในข้อมูล
ประเททของโครงสร้างข้อมูล
1. โครงสร้างข้อมูลทางกายภาพ
เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ และสามารถแบ่งออกได้เป็น 2 ประเภทตามลักษณะของข้อมูล คือ
- ข้อมูลเบื้องต้น ได้แก่จำนวนเต็ม และตัวอักขระ จำนวนจริง
- ข้อมูลโครงสร้าง ได้แก่ แถวลำดับ ระเบียน และแฟ้มข้อมูล
2. โครงสร้างข้อมูลทางตรรกะ
เป็นข้อมูลโครงสร้างที่เกิดจากจินตนาการของผู้ใช้ เพื่อใช้ในการแก้ไขปัญหาในโครงสร้างของโปรแกรม สามารถแบ่งได้เป็น2ประเภท

1. โครงสร้างข้อมูลแบบเชิงเส้น

2. โครงสร้างข้อมูลแบบไม่เชิงเส้น

ในการเลือกใช้ฌครงสร้างข้อมูลแบบใดนั้น จะต้องคำนึงถึง
1.โครงสร้างข้อมูลนั้นสามารถสร้างความสัมพันธ์ให้กับข้อมูลชุดนั้น ได้แบบสมบูรณ์ที่สุด
2.โครงสร้างนั้นต้องง่ายต่อการดำเนินการในระบบ

การแทนที่ข้อมูลในหน่วยความจำหลัก
ในการเขียนโปรแกรมคอมคอมพิวเตอร์ จะมีการแทนที่ข้อมูลในหน่วยความจำหลักอยู่2แบบคือ
1. การแทนที่ข้อมูลแบบสแตก
เป็นการแทนที่ของข้อมูลแบบมีการจองพื้นที่แบบคงที่แน่นอนต้องมีการกำเนิดขนาดก่อนใช้งาน และมีข้อเสียคือ เราไม่สามารถปรับขนาดไห้เพิ่มขึ้นหรือลดลงได้ และข้อมูลที่แทนที่จะต้องเป็นข้อมูลชนิดเดี่ยวกัน จะแทนค่าของข้อมูลแบบเป็นแถวลำดับ
2.การแทนที่ข้อมูลแบบไดนามิก
เป็นการแทนที่ข้อมูลแบบไม่ต้องจองพื้นที่ไว้ก่อน ขนาดของเนื้อที่สามารถยืดหยุ่นได้ตามความต้องการของผู้ใช้งาน หน่วยความจำที่ใช้ไปแล้วไม่สามารถส่งคืนเพื่อนำกลับมาใช้ใหม่ได้อีก โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบไดนามิกคือ ตาชี้ หรือ พอยเตอร์
ขั้นตอนวิธี(Algorithm)
เป็นวิธรการแก้ไขปัญหาต่างๆ อย่างมีระบบมีลำดับ มีขั้นตอนตั้งแต่ต้นจนได้ผลลัพธ์ สามารถเขียนได้หลายแบบ
การแสดงขั้นตอนวิธี เช่น การเขียนด้วยผังงาน (Flowchart) เป็นการใช้สัญลักษณ์บอกขั้นตอนการทำงาน
ภาษาขั้นตอนวิธี ( Algorithm Language) และภาษาธรรมชาติ(Natural Language) เป็นภาษาสำหรับเขียนขั้นตอนวิธี มีรูปแบบสั้น กระชับและรัดกุม


#include < stdio.h >
#include < string.h >
void main()
{
struct Notebook {
char brand[20],generation[20],barcode[15];
int price;
long int waranty;
float camera;
double run;
long int width;
int weight;
char madein[40];
} ;

struct Notebook beauty ;
strcpy(beauty.brand,"HP");
strcpy(beauty.madein,"England");
strcpy(beauty.barcode,"6597763d9i");
strcpy(beauty.generation,"dv 3113tx");
beauty.camera=1.3;
beauty.waranty=15;
beauty. width=15;
beauty. weight=2;
beauty.price=25000;

printf(" brand:%s\n\n",beauty.brand);
printf(" generation:%s\n\n",beauty.generation);
printf(" barcode : %s\n\n",beauty.barcode);
printf(" price:%d\n\n",beauty.price);
printf(" camera:%.1f\n\n",beauty.camera);
printf("width : %d cm.\n\n",beauty. width);
printf("weight : %d km.\n\n",beauty. weight)
printf(" waranty :%d\n\n",beauty.waranty);
printf(" madein:%s\n\n",beauty.madein);
}

วันจันทร์ที่ 22 มิถุนายน พ.ศ. 2552

ประวัติ


นายยุทธนา โสภักดี ชื่อเล่น ยุทธ รหัสประจำตัว 50132792086

Mr.Yoothana Sopakde

หลักสูตร การบริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)

คณะวิทยาการจัดการ

มหาวิทยาลัยราชภัฎสวนดุสิต

E-mail: u50132792086@gmail.com