วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552

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

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

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

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

วันเสาร์ที่ 12 กันยายน พ.ศ. 2552

DTS: 10-09/09/2552

เรื่อง Sorting

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

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


วิธีการเรียงลำดับสามารถแบ่งออกเป็น 2 ประเภทคือ
(1)การเรียงลำดับแบบภายใน (internal sorting)เป็นการเรียง ลำดับที่ ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก เวลาที่ใช้ ในการเรียงลำดับจะ คำนึงถึงเวลาที่ใช้ในการเปรียบเทียบและ เลื่อนข้อมูลภายในความจำหลัก
(2) การเรียงลำดับแบบภาย นอก(external sorting) เป็นการ เรียงลำดับข้อมูลที่เก็บอยู่ใน หน่วยความ จำสำรอง ซึ่งเป็นการ เรียงลำดับข้อมูลในแฟ้ม ข้อมูล(file) เวลาที่ใช้ในการ เรียง ลำดับต้องคำนึงถึงเวลา ที่เสียไประหว่างการถ่ายเทข้อมูลจาก หน่วย ความจำหลักและ หน่วยความจำสำรองนอกเหนือจากเวลา ที่ใช้ในการเรียง ลำดับ ข้อมูลแบบภายใน


การเรียงลำดับแบบเลือก (selection sort)
ทำการเลือกข้อมูลมาเก็บในตำแหน่งที่ ข้อมูลนั้นควรจะอยู่ที ละตัวโดยทำ การค้นหาข้อมูลนั้นในแต่ละรอบแบบเรียงลำดับ ถ้าเป็นการเรียงลำดับจาก น้อยไปมาก
1. ในรอบแรกจะทำการ ค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บ ไว้ที่ตำแหน่งที่ 1
2. ใน รอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ ตำแหน่ง ที่สอง
3. ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกค่าในที่สุดจะได้ ข้อมูล เรียงลำดับจาก น้อยไปมากตามที่ต้องการ


-การจัดเรียงลำดับแบบเลือกเป็นวิธีที่ง่ายและตรงไปตรงมาแต่ มีข้อเสียตรงที่ ใช้เวลาในการจัดเรียงนาเพราะแต่ละรอบต้อง เปรียบเทียบกับข้อมูลทุกตัว ถ้า มีจำนวนข้อมูลทั้งหมดnตัวต้อง ทำการเปรียบเทียบทั้หมดn –1รอบและจำนวน ครั้งของการ เปรียบเทียบในแต่ละรอบเป็นดังนี้

รอบที่ 1 เปรียบเทียบเท่ากับ n −1 ครั้ง
รอบที่ 2 เปรียบเทียบเท่ากับ n – 2 ครั้ง
รอบที่ n – 1 เปรียบเทียบเท่ากับ 1 ครั้ง

การเรียงลำดับแบบฟอง (Bubble Sort)
เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่ อยู่ติดกัน
1. ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับ ตำแหน่ง ที่อยู่กัน
2. ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้ นำข้อมูลตัวที่มี ค่าน้อยกว่า อยู่ในตำแหน่งก่อนข้อมูลที่มีค่า มาก ถ้าเป็นการ เรียงลำดับจากมากไป น้อยให้นำข้อมูล ตัวที่ มีค่ามากกว่าอยู่ ในตำแหน่งก่อนข้อมูลที่มีค่าน้อย


-กำหนดให้มีข้อมูล n จำนวน การเปรียบเทียบเริ่มจากคู่แรก หรือคู่สุดท้าย ก็ได้ ถ้าเริ่มจากคู่สุดท้ายจะเปรียบเทียบข้อมูล ที่ตำแหน่ง n-1 กับ n ก่อน แล้วจัดเรียงให้อยู่ในตำแหน่งที่ถูก ต้อง ต่อไปเปรียบเทียบข้อมูลที่ตำแหน่ง n-2 กับ n-1 ทำเช่น นี้ไป เรื่อย ๆจนกระทั่งถึงข้อมูลตัวแรก และทำการ เปรียบ เทียบในรอบอื่นเช่นเดียวกันจนกระทั่งถึงรอบสุดท้ายที่เหลือ ข้อมูล 2 ตำแหน่งสุดท้าย เมื่อการจัดเรียงเสร็จเรียบร้อยทุก ตำแหน่งก็จะได้ข้อมูล เรียงลำดับตามที่ต้อง

การการเรียงลำดับแบบเร็ว (quick sort)
เป็นวิธีการเรียงลำดับที่ ใช้เวลาน้อยเหมาะสำหรับข้อมูลที่มี จำนวนมากที่ต้อง การความ รวดเร็วในการทำงาน วิธีนี้จะ เลือกข้อมูลจากกลุ่มข้อมูลขึ้นมา หนึ่ง ค่าเป็นค่าหลัก แล้ว หาตำแหน่งที่ถูกต้องให้กับค่าหลักนี้ เมื่อได้ตำแหน่งที่ถูก ต้องแล้ว ใช้ค่าหลักนี้เป็นหลักในการแบ่ง ข้อมูลออกเป็น สองส่วนถ้าเป็นการเรียงลำดับจากน้อยไปมาก ส่วนแรกอยู่ ในตอนหน้าข้อมูล ทั้งหมดจะมีค่าน้อย กว่าค่าหลัก ที่เป็นตัว แบ่งส่วน อีกส่วนหนึ่งจะอยู่ในตำแหน่งตอนหลังข้อมูล ทั้งหมด จะมีค่ามากกว่าค่าหลักแล้วนำแต่ละส่วนย่อยไปแบ่ง ย่อยใน ลักษณะ เดียวกันต่อไปจนกระทั่งแต่ละส่วนไม่สามารถ แบ่ง ย่อยได้อีกต่อไปจะได้ข้อมูล ที่มีการเรียงลำดับตามที่ต้องการ

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

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




วันศุกร์ที่ 11 กันยายน พ.ศ. 2552

DTS: 09-02/09/2552

เรื่อง Graph

กราฟ (Graph) เป็นโครงสร้างข้อมูล แบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็น โครงสร้างข้อมูลที่มีการนำไปใช้ ในงาน ที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อน เช่น การวางข่าย งานคอมพิวเตอร์ การ วิเคราะห์เส้นทาง วิกฤติ และปัญหาเส้นทาง ที่สั้นที่สุด

นิยามของกราฟ
กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น ที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์ (Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges)

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

กราฟแบบไม่มีทิศทางเป็นเซตแบบจำกัด ของโหนดและเอ็จ โดยเซตอาจจะว่างไม่มีโหนด หรือเอ็จเลยเป็นกราฟว่าง (Empty Graph) แต่ละเอ็จจะเชื่อมระหว่างโหนดสองโหนด หรือ เชื่อมตัวเอง เอ็จไม่มีทิศทางกำกับ ลำดับของการ เชื่อมต่อกันไม่สำคัญ นั่นคือไม่มีโหนดใดเป็น โหนดแรก (First Node) หรือไม่มีโหนด เริ่มต้น และไม่มีโหนดใดเป็นโหนดสิ้นสุด

การแทนกราฟในหน่วยความจำ
กราฟแบบมีทิศทาง เป็นเซตแบบจำกัดของโหนด และเอ็จโดยเซตอาจจะว่างไม่มีโหนดหรือเอ็จเลยเป็น กราฟว่าง(Empty Graph) แต่ละเอ็จจะเชื่อม ระหว่างโหนดสองโหนด เอ็จมีทิศทางกำกับแสดง ลำดับของการเชื่อมต่อกัน โดยมีโหนดเริ่มต้น (Source Node) และ โหนดสิ้นสุด (Target Node) รูปแบบต่าง ๆ ของกราฟแบบมีทิศทางเหมือนกับ รูปแบบ ของกราฟไม่มีทิศทาง ต่างกันตรงที่กราฟ แบบนี้จะมีทิศทางกำกับด้วยเท่านั้น

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

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

1. การท่องแบบกว้าง (Breadth First Traversal)
วิธีนี้ทำโดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนด อื่นที่ใกล้กันกับโหนดเริ่มต้นทีละระดับจนกระทั่งเยือนหมดทุก โหนดในกราฟ ผลลัพธ์จากการท่อง 1 4 6 2 3 8 5 7 9







2. การท่องแบบลึก (Depth First Traversal)
การทำงานคล้ายกับการท่องทีละระดับของทรี โดย กำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตาม แนววิถีนั้นจนกระทั่งนำไปสู่ปลายวิถีนั้น จากนั้น ย้อนกลับ (backtrack) ตามแนววิถีเดิมนั้น จนกระทั่ง สามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่น ๆ เพื่อเยือน โหนดอื่น ๆ ต่อไปจนครบทุกโหนด ผลลัพธ์จาการท่องไปในกราฟ 1 9 6 7 8 5 2 3 4



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

DTS: 08-26/08/2552

เรื่อง Tree



ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่างโหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น (Hierarchical Relationship) ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูล เช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ โครงสร้างสารบัญหนังสือ เป็นต้น


แต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า โหนดแม่ (Parent orMother Node)โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับ เรียกว่า โหนดลูก (Child or Son Node)โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก (Root Node) โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings) โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ (Leave Node) เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนด เรียกว่า กิ่ง (Branch)

นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มี วงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใด ๆ ในทรีต้องมีทาง ติดต่อกันทางเดียวเท่านั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N-1เส้นการเขียนรูปแบบทรี อาจเขียนได้ 4แบบ คือ





















2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟทรีประกอบด้วยสมาชิกที่เรียกว่า โหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่านัลทรี (Null Tree)และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย(Sub Tree)T1, T2, T3,…,Tk โดยที่ k>=0 และทรีย่อยต้องมีคุณสมบัติเป็นทรี












นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์ (Forest)หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือ เซตของทรีที่แยกจากกัน (Disjoint Trees)

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

DTS: 07-05/08/2552

เรื่อง Queue

คิว (Queue) เป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ ลิสต์ซึ่งการเพิ่มข้อมูลจะกระทำที่ปลายข้างหนึ่งซึ่ง เรียกว่าส่วนท้ายหรือเรียร์ (rear) และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้า หรือฟรอนต์ (front)

ลักษณะการทำงานของคิว
เป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO(First In First Out)






การทำงานของคิว
การใส่สมาชิกตัวใหม่ลงในคิว เรียกว่า Enqueue ซึ่งมีรูปแบบคือenqueue (queue, newElement) หมายถึง การใส่ข้อมูลnewElement ลงไปที่ส่วนเรียร์ของคิว












การนำสมาชิกออกจากคิว เรียกว่าDequeue ซึ่งมีรูปแบบคือdequeue (queue, element) หมายถึง การนำออกจากส่วนหน้าของคิวและให้ ข้อมูลนั้นกับ element












การนำข้อมูลทีอยู่ตอนต้นของคิวมาแสดงจะเรียกว่า QueueFront แต่จะไม่ทำการเอาข้อมูลออกจากคิว












การแทนที่ข้อมูลของคิว
การแทนที่ข้อมูลของคิวสามารถทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของคิวแบบอะเรย์














การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์จะประกอบไปด้วย 2 ส่วน คือ
1. Head Nodeจะประกอบไปด้วย 3 ส่วนคือ พอยเตอร์จำนวน 2 ตัว คือ Front และ rearกับจำนวนสมาชิกในคิว
2. Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป












การดำเนินการเกี่ยวกับคิวการดำเนินการเกี่ยวกับคิว ได้แก่
1. Create Queue 6. Empty Queue
2. Enqueue 7. Full Queue
3. Dequeue 8. Queue Count
4. Queue Front 9. Destroy Queue
5. Queue Rear


-การนำข้อมูลเข้าสู่คิว จะไม่สามารถนำเข้าในขณะที่คิวเต็ม หรือไม่มีที่ว่าง ถ้าพยายาม นำเข้าจะทำให้เกิดความผิดพลาดที่เรียกว่า overflow
-การนำข้อมูลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างเปล่าได้ ถ้าพยายามจะทำ ให้เกิดความผิดพลาดที่เรียกว่า
underflow
-ในกรณีที่เป็นคิวแบบวงกลมคิวจะเต็มก็ต่อเมื่อมีการเพิ่มข้อมูลเข้าไปในคิวเรื่อย ๆ จนกระทั่ง rear มีค่าน้อยกว่า front อยู่หนึ่ง
ค่าคือ rear = front - 1

การประยุกต์ใช้คิว
คิวถูกประยุกต์ใช้มากในการจำลองระบบงานธุรกิจ เช่น การให้บริการลูกค้า ต้องวิเคราะห์จำนวน ลูกค้าในคิวที่เหมาะสมว่าควรเป็นจำนวนเท่าใด เพื่อให้ลูกค้าเสียเวลาน้อย ที่สุด ในด้านคอมพิวเตอร์ ได้นำคิวเข้ามาใช้ คือในระบบปฏิบัติการ (Operation System) ในเรื่อง ของคิวของงานที่เข้ามาทำงาน (ขอใช้ทรัพยากรระบบของ CPU) จะจัดให้งานที่เข้ามาได้ทำงานตามลำดับความสำคัญ



วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2552

DTS: 06-22/07/2552

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

DTS: 06-22/07/2552

เรื่อง สแตก (Stack)

สแตก (Stack) เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ ลิสต์ ที่มีคุณสมบัติที่ว่า การ เพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (TopOf Stack) และ ลักษณะที่สำคัญของสแตกคือ ข้อมูล ที่ใส่หลังสุดจะถูกนำออกมา จากส แตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่าLIFO (Last In First Out)

การดำเนินงานพื้นฐานของสแตก
การทำงานต่าง ๆ ของสแตกจะกระทำที่ปลายข้างหนึ่งของ สแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้ ตำแหน่งข้อมูลบนสุดของ สแตกด้วย การทำงานของสแตกจะประกอบด้วยกระบวนการ 3 กระบวนการที่สำคัญ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก เช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก จะได้ push (s,i) คือ ใส่ข้อมูล i ลงไปที่ทอปของสแตก s

ในการเพิ่มข้อมูลลงในสแตก จะต้องทำการ ตรวจสอบว่า สแตก เต็มหรือไม่ ถ้าไม่เต็มก็ สามารถเพิ่มข้อมูลลงไปใน สแตกได้ แล้วปรับ ตัวชี้ตำแหน่งให้ไปชี้ที่ตำแหน่งข้อมูลใหม่ ถ้าส แตกเต็ม (Stack Overflow) ก็จะไม่สามารถ เพิ่มข้อมูล เข้าไปในสแตกได้อีก
ตัวอย่าง












2. Pop คือ การนำข้อมูลออกจากส่วนบนสุด ของสแตก เช่น ต้องการนำข้อมูลออกจากสแตก s ไปไว้ที่ตัวแปร i จะได้ i = pop (s) การนำข้อมูลออกจากสแตก ถ้าสแตก มีสมาชิกเพียง 1ตัว แล้วนำสมาชิกออกจากสแตก จะเกิด สภาวะสแตก ว่าง (Stack Empty) คือ ไม่มีสมาชิกอยู่ใน สแตกเลย ตัวอย่าง













3. Stack Top เป็นการคัดลอกข้อมูลที่ อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้น ออกจากสแตก ตัวอย่าง










การแทนที่ข้อมูลของสแตกสามารถทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของสแตกแบบอะเรย์


การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์จะประกอบไปด้วย2 ส่วน คือ
1. Head Node จะประกอบไปด้วย 2ส่วนคือ top pointer และจำนวนสมาชิกในสแตก
2. Data Node จะประกอบไปด้วยข้อมูล (Data) และ พอยเตอร์ ที่ชี้ไปยังข้อมูล

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

DTS: 05-15/07/2552

เรื่อง Linked List

ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บ ข้อมูลอย่างต่อ เนื่องของอิลิเมนต์ต่าง ๆ โดยมี พอยเตอร์เป็นตัวเชื่อม ต่อแต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่ง ในแต่ละโนด จะประกอบไปด้วย 2 ส่วน คือ Data จะเก็บข้อมูลของอิลิ เมนท์ และ ส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บ ตำแหน่งของโนดต่อไปในลิสต์

โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ
1. Head Structure จะประกอบไปด้วย 3 ส่วน ได้แก่ จำนวนโหนดในลิสต์ (Count) พอยเตอร์ที่ชี้ไปยัง โหนดที่ เข้าถึง (Pos) และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล แรกของ ลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป


การเขียนโปรแกรมการคำนวณภาษี โดยรับค่าเงินเดือน 1 จำนวน แลัวหักภาษี
7% จาก เงินเดือนพนักงาน แบบ iostream.h และ stdio.h


" iostream.h "


















" stdio.h "

















DTS: 04-07/07/2552

แบบฝึกหัด

1.ให้นักศึกษากำหนดค่าของ Array 1 มิติ และ Array 2 มิติ
ตอบ Array 1 มิติ คือ float nettotal[4];และ Array 2 มิติ คือ int name[5][10];


2.ให้นักศึกษาหาค่าของ A[2] , A[6] จากค่าA={2,8,16,24, 9,7,3,8,}
ตอบ A[2] คือ 16A[6] คือ 3

3
.จากค่าของ int a [2][3] = {{6,5,4},{3,2,1}}; ให้นักศึกษา หาค่าของ a[1][0]และa[0][2]
ตอบ a[1][0] คือ 3 a[0][2] คือ 4

4.ให้นักศึกษากำหนด structure ที่มีค่าของข้อมูลจากน้อย 6 Records

ตอบ
struct STD
{
char name[30];
char lastname[40];
int age;char address[100];
char phoneno[10];
char position[30];
int idcode;}student;

5. ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ ของข้อมูล
ตอบ array หมายถึง ตัวแปรชุดที่ใช้เก็บตัวแปรชนิดเดียว กันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้ กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การ กำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]pointer หมายถึง ตัวเก็บตำแหน่งที่อยู่ของหน่วยความจำ (Address) หรือเรียกว่า ตัวชี้ ตำแหน่งที่อยู่ สัญลักษณ์ของ pointer จะแทนด้วยเครื่องหมาย *

วันอาทิตย์ที่ 5 กรกฎาคม พ.ศ. 2552

DTS: 03-01/07/2552

เรื่อง Set and String

โครงสร้างข้อมูลแบบเซ็ต
เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มี ความสัมพันธ์กัน ในภาษาซี จะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับใน ภาษา ปาสคาล แต่สามารถใช้หลักการของการดำเนินงาน แบบเซ็ตมาใช้ได้ ตัวดำเนินการของเซ็ต (Set operators) ประกอบด้วย
- set intersection
- set union
- set difference เป็นต้น

โครงสร้างข้อมูลแบบสตริง
สตริง (String) หรือ สตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร ตัวเลขหรือ เครื่อง หมายเรียงติดต่อกันไป รวมทั้งช่องว่าง

สตริงกับอะเรย์
สตริง คือ อะเรย์ของอักขระ เช่น char a[6] อาจจะเป็นอะเรย์ ขนาด 6 ช่องอักขระ หรือ เป็นสตริงขนาด 5 อักขระก็ได้ โดย จุดสิ้นสุดของ string จะจบด้วย \0 หรือ null character เช่น char a[ ]={‘H’, ‘E’, ‘L’, ‘L’, ‘O’, ‘\0’}; char a[ ]=“HELLO”;

การกำหนดสตริง
การกำหนดสตริงทำได้หลายแบบ คือ
1. กำหนดเป็นสตริงที่มีค่าคงตัว (String Constants)
2. กำหนดโดยใช้ตัวแปรอะเรย์หรือพอยเตอร์

วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552

เขียน Structure


ตัวอย่าง ของ Structure
#include
int main() {
struct date {
int day;
int month;
int year;
};
struct person {
char name[30];
char lastname[40];
int age;
char address[100];
char phoneno[10];
char position[30];
int idcode;
struct date bday;
};
struct person cus1={"varee", "yudee", 25, "bangkok", "0812345678", "sale", 7500,{25, 11, 28}}, cus2;
printf("Enter Data of Employ\n");
printf(" Name : ");
scanf(" %[^\n]",cus2.name);
printf(" Lastname : ");
scanf(" %[^\n]",cus2.lastname);
printf("Age is :");
scanf(" %d",&cus2.age);
printf(" Address : ");
scanf(" %[^\n]",cus2.address);
printf("Phone No. : ");
scanf(" %[^\n]",cus2.phoneno);
printf(" position : ");
scanf(" %[^\n]",cus2.position);
printf("idcode : ");
scanf(" %d",&cus2.idcode);
printf("Birthday is (dd/mm/yy) : ");
scanf("%d/%d/%d", &cus2.bday.day, &cus2.bday.month, &cus2.bday.year);
/*
/*
printf("\nList of Customer\n");
printf("--------------\n");
printf("\nName : %s",cus1.name);
printf("\nLastname : %s",cus1.lastname);
printf("\nAge : %d",cus1.age);
printf("\nAddress : %s",cus1.address);
printf("\nPhone No. : %s",cus1.phoneno);
printf("\nposition : %s",cus1.position);
printf("\nID-Code : %d",cus1.idcode);
printf("\nBirthday : %d\n",cus1.bday.day,cus1.bday.month,cus1.bday.year);
printf("--------------\n");
*/
printf("\nList of Customer\n");
printf("--------------\n");
printf("\nName : %s",cus2.name);
printf("\nLastname : %s",cus2.lastname);
printf("\nAge : %d",cus2.age);
printf("\nAddress : %s",cus2.address);
printf("\nPhone No. : %s",cus2.phoneno);
printf("\nposition : %s",cus2.position);
printf("\nID-Code : %d",cus2.idcode);
printf("\nBirthday : %d/%d/%d\n",cus2.bday.day,cus2.bday.month,cus2.bday.year);
printf("--------------\n");


return 0;
}

DTS: 02-24/06/2552

เรื่อง Array and Record
เรียนเกี่ยวกับเรื่อง อะเรย์ กับ เรคครอร์ดอาร์เรย์ (Array) ความหมายของอาร์เรย์ คือแถวหรือลำดับ แถวหรือลำดับของข้อมูลชนิดเดียวกันที่มีจำนวนหลายตัวนำมาเก็บในตัวแปรชื่อเดียวกัน แต่ต่างกันที่ตัวบอกลำดับ ซึ่งเรียกว่าตัวห้อยหรือตัว Subscript ของตัวแปรนั้น ประเภทของอาร์เรย์ จะมี 2 ประเภท คือ อาร์เรย์ 1 มิติ , อาร์เรย์ หลายมิติอาร์เรย์ 1 มิติเช่น float Score[40]; มีความหมายว่า คะแนนสอบของนักเรียนที่เป็นเลขทศนิยม จำนวน 40 ตัว เก็บไว้ในตัวแปรชื่อ Score char name[100][20] ; มีความหมายว่า ข้อมูลรายชื่อพนักงาน 100 คน ที่ชื่อมีความยาวไม่เกิน 20 อักษรอาร์เรย์ หลายมิติอาเรย์ หลายมิติจะเก็บข้อมูลไว้ในลักษณะของตาราง การสร้างอาเรย์ 2 มิติ การนำค่าที่ต้องการเก็บในอาเรย์เราจะต้องอ้างถึงลำดับของสมาชิกช่องนั้นๆ ทั้งลำดับในแนวนอนและลำดับในแนวตั้ง หรือจะมองในลักษณะของคู่ลำดับก็ได้ดังรูปต่อไปนี้
char name[4][5]col 1 col 2 col 3row1 name[0][0] name[0][1] name[0][2]
row2 name[1][0] name[1][1] name[1][2]
Structure
เป็นตัวแปรชนิดที่มีโครงสร้าง สามารถรวบรวมข้อมูลหลาย ๆ ชนิดเข้ามาเก็บไว้ด้วยกันกัน และช่วยในการจัดเก็บข้อมูลแบบ record
สามารถทำได้โดยคำสั่ง struct มาช่วยในการประกาศข้อมูลแบบโครงสร้าง โดยมีรูปแบบการประกาศดังนี้
struct struct_name
{
type1 name1;type2
name2;
……..
typeN nameN;}
struct_var;
struct เป็นคำสั่งที่ใช้ประกาศข้อมูลแบบโครงสร้างstruct_name เป็นชื่อข้อมูลแบบโครงสร้าง ใช้สำหรับประกาศข้อมูลแบบโครงสร้างกลุ่มอื่นให้มีโครงสร้างเหมือนกลุ่มโครงสร้างที่เคยประกาศไว้แล้วstruct_var เป็นชื่อตัวแปรโครงสร้างใช้สำหรับอ้างอิงข้อมูลภายในโครงสร้างtype1 name1, type2 name2,…,typeN nameN เป็นชนิด และชื่อตัวแปรที่ 1, 2, 3, … , N ตามลำดับ บางครั้งอาจจะเรียก name1, name2,…,nameN ว่า element 1, element 2, … , element N ตามลำดับ

DTS: 01-17-06-2552

เรื่อง Introduction

โครงสร้างข้อมูล คือ หน่วยข้อมูลย่อยๆ (Data Elements)เช่น การเลือกใช้ค่า n โดยชนิดของข้อมูล char ch; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด 8 บิต int i; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด16 บิต float average; เป็นการกำหนดให้คอมพิวเตอร์จัดเตรียมหน่วยความจำขนาด 32 บิต
ประเภทของโครงสร้างข้อมูล
1. โครงสร้างข้อมูลทางกายภาพ(Physical Data Structure)เป็นโครงสร้างข้อมูลทั่วไปที่มีใช้ในภาษาคอมพิวเตอร์ ซึ่งแบ่งออกเป็น 2 ประเภทตามลักษณะข้อมูล ดังนี้1.2 ข้อมูลเบื้องต้น (primitive data types) เป็นข้อมูลพื้นฐานซึ่งมีโครงสร้างข้อมูลไม่ซับซ้อนจะต้องมีในภาษาคอมพิวเตอร์ทุกภาษา ตัวอย่างของข้อมูลประเภทนี้ เช่น- จำนวนเต็ม (integer)- จำนวนจริง (real)- ตัวอักขระ (character)
2. โครงสร้างข้อมูลทางตรรกะ (Logical Data Structure)
เป็น โครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้แก้ปัญหาในโปรแกรมที่สร้างขึ้น จำแนกได้เป็น 2 ประเภท ดังนี้
2.1 โครงสร้างข้อมูลแบบเชิงเส้น (linear data structures) เป็นชนิดข้อมูลที่ความสัมพันธ์ของข้อมูลเรียงต่อเนื่องกัน โดยข้อมูลตัวที่ 2 อยู่ต่อจาก ข้อมูลตัวที่ 1 ข้อมูลตัวที่ 3 อยู่ต่อจากข้อมูลตัวที่ 2 และข้อมูลตัวที่ n อยู่ต่อจากข้อมูลตัวที่ n - 1 ตัวอย่างโครงสร้างข้อมูลแบบเชิงเส้น เช่น
- ลิสต์ (list)
- สแตก (stack)
- คิว (queue)
- ดีคิว (deque)- สตริง (string)
2.2 โครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น (non-linear data structures) เป็นชนิดข้อมูลที่ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว (ดูรายละเอียดเพิ่มเติมได้ในบทที่ 7) ตัวอย่างโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น
- ทรี (tree)
- กราฟ (graph)
การแทนที่ข้อมูลในหน่วยความจำหลัก
เป็นที่ทราบกันแล้วว่าในขณะประมวลผลด้วยคอมพิวเตอร์ ข้อมูลที่ต้องการประมวลผลจะถูกนำไปเก็บในหน่วยความจำหลัก ดังนั้นเมื่อเราต้องใช้โครงสร้างข้อมูล จึงต้องมีการแทนที่ข้อมูลในหน่วยความจำหลักด้วยเช่นกัน โดยทั่วไปการเขียนโปรแกรมคอมพิวเตอร์มีการแทนที่ข้อมูลในหน่วยความจำหลักอยู่ 2 วิธี คือ1. การแทนที่ข้อมูลแบบสแตติก (static memory representation)การแทนที่ข้อมูลแบบสแตติก เป็นการแทนที่ข้อมูลที่มีการจองเนื้อที่แบบคงที่แน่นอน การแทนที่แบบนี้ต้องมีการกำหนดขนาดก่อนการใช้งาน ข้อเสียของการแทนที่ด้วยวิธีนี้ก็คือไม่สามารถปรับขนาดให้เพิ่มขึ้นหรือลดลงได้ ไม่สามารถเก็บข้อมูลเกินขนาดเนื้อที่ที่กำหนดไว้ และถ้ากำหนดขนาดเนื้อที่ไว้มากเกินจำเป็นทั้งๆ ที่มีข้อมูลอยู่จำนวนน้อยจะทำให้สูญเสียเนื้อที่โดยเปล่าประโยชน์ โครงสร้างข้อมูลที่มีการแทนที่ในหน่วยความจำหลักด้วยวิธีนี้คือ แถวลำดับ (Array)
2. การแทนที่ข้อมูลแบบไดนามิก (dynamic memory representation)การแทนที่ข้อมูลแบบไดนามิก เป็นการแทนที่ข้อมูลที่ไม่ต้องจองเนื้อที่และขนาดของเนื้อที่ก่อนการใช้งาน สามารถยืดหยุ่นได้ตามความต้องการของผู้ใช้ นั่นคือถ้าข้อมูลมีน้อยก็ใช้เนื้อที่น้อย และถ้าข้อมูลมีมากก็สามารถใช้เนื้อที่มากตามที่ใช้จริงได้ นอกจากนั้นส่วนเนื้อที่ในหน่วยความจำหลักที่ไม่ใช้แล้วสามารถส่งคืนเพื่อกลับมาใช้ใหม่ได้อีก ภาษาคอมพิวเตอร์ระดับสูงบางภาษาเท่านั้นที่สามารถแทนที่ข้อมูลด้วยวิธีนี้ เช่น ภาษาซี ภาษาปาสคาล เป็นต้น สำหรับโครงสร้างข้อมูลที่มีการแทนที่ในหน่วยความจำหลักแบบไดนามิก คือ ตัวชี้ หรือ พอยน์เตอร์ (pointer)

วันพุธที่ 24 มิถุนายน พ.ศ. 2552


ประวัติส่วนตัว




นายอานวิล อับดุลรอมัน
Mr.Anawin Abdulroman
หลักสูตร การบริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)
คณะ วิทยาการจัดการ
มหาวิทยาลัยราชภัฎสวนดุสิต
e-mail address : anawinblog@gmail.com