คนไม่เคยถูกรักของฟลุ๊ก The STar 5

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

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

สิ่งที่ได้รับจากการเรียนวิชาเตรียมฝึกประสบการณวิชาชีพ3

1. ได้เรียนรู้จักการทำงานที่ต้องมีความรับผิดชอบให้ได้ประสิทธิและถูกต้องตามระเบียบ
2. ได้เรียนรู้จักการทำงานเป็นระบบเป็นขั้นเป็นตอน
3. ได้เรียนรู้จักการทำงานที่มีประสิทธิภาพมากขึ้นในการทำงาน
4. ได้เรียนรู้จักความรอบคอบละเอียดในการเเก้ไขปัญหา
5. ได้เรียนรู้จักการทำงานเป็นทีมกับบุคคลรอบข้าง
6. ได้เรียนรู้จักการรับความรู้รอบตัวในสาขาวิชาอื่นมากขึ้น
7. ได้เรียนรู้การตรงต่อเวลามากขึ้นในการทำงาน
8. ได้เรียนรู้จักอดทนในเวลาระหว่างการทำงาน

DTS12-15/09/2009

สรุป Sorting (ต่อ)
การเรียงลำดับแบบเร็ว (Quick sort) เป็นการเรียงลำดับที่ใช้วเลาน้อยเหมาะสำรับข้อมูลที่มีจำนวนมากที่ต้องการความรวดเร็วในการทำงาน
การเรียงลำดับแบบแทรก (insertion sort) เป็นวิธีที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มีสมาชิกทุกตัวเรียงลำดับอยู่แล้ว และทำให้เซตใหม่ มีสมาชิกทุกตัวเรียงลำดับด้วย วิธีการเรียงลำดับ
1.เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2 หรือข้อมูลในตำแหน่งสุดท้ายและรองสุดท้ายก็ได้
ถ้าเป็นการเรียงลำดับจากน้อยไปมาก
2.จะ ต้องจัดให้ข้อมูลที่มีค่าน้อยอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก และถ้าเรียงจากมากไปน้อยก็จะจัดให้ข้อมูลที่มีค่ามากอยู่ในตำแหน่งก่อน
การเรียงลำดับแบบฐาน (radix sort)เป็นการเรียงลำดับโดยการพิจารณาข้อมูลทีละหลัก
1.เริ่มพิจารณาจากหลักที่มีค่าน้อยที่สุดก่อน คือ ถ้าเป็นข้อมูลเป็นเลขจำนวนเต็มจะพิจารณาหลักหน่อยก่อน
2.การจัดเรียงจะนำข้อมูลเข้ามาทีละตัว และนำไปเก็บไว้ที่ซึ่งจัดไว้สำหรับค่านั้น เป็นกลุ่มๆ ตามลำดับการเข้ามา
3.ใน แต่ละรอบเมื่อจัดกลุ่มเรียบร้อยแล้ว ให้รวบรวมข้อมูลจากทุกกลุ่มเข้าด้วยกัน โดยเริ่มเรียงจากกลุ่มที่มีค่าน้อยที่สุดก่อนแล้วเรียงไปเรื่อยๆ จนหมดทุกกลุ่ม
4.ในรอบต่อไปนำข้อมูลทั้งหมดที่ได้จัดเรียงในหลักหน่วย เรียบร้อยแล้วมาพิจารณาจัดเรียงในหลักสิบต่อไป ทำไปเรื่อยๆ จนครบทุกหลักจะได้ข้อมูลที่เรียงลำดับจากน้อยไปมากตามต้องการ
การเรียงลำดับแบบฐานมี วิธีการที่ไม่ซับซ้อนแต่ค่อนข้างใช้เนื้อที่ในหน่วยความจำมาก เนื่องจากการจัดเรียงแต่ละรอบจะต้องเตรียมเนื้อที่สำหรับสร้างที่เก็บข้อมูล ในแต่ละกลุ่ม
สรุป ตารางแฮซ (Hash Table)ตา รางแฮช (Hash Tables) การเข้าถึงข้อมูลโดยตรง กำหนด ให้ k เป็นคีย์ ถูกจัดเก็บอยู่ใน ช่อง k ด้วยการทำแฮชด้วยพื้นฐาน การจัดเก็บในช่องที่ h(k) โดย ใช้ฟังก์ชัน h เพื่อคำนวณหาช่องของคีย์โดยการจับคู่กับเอกภพสัมพัทธ์U ในตาราง Th: U �� {0,1,…,m-1} ฟังก์ชัน แฮช จะทำงานแบบสุ่ม แนวคิดหลัก คือ ลด ขนาดอะเรย์ของดัชนี
การชนกันของข้อมูล (Collision)
การ ที่แทรกคีย์ในตาราง ที่จัดเก็บนั้นมีโอกาสที่คีย์ที่ถูกสร้างจากฟังก์ชัน ในช่องเดียวกัน การเกิดการชนกันก็ยังคงต้องมีอย่างน้อยหนึ่งครั้ง การแก้ไข ปัญหาชนกันของข้อมูล แบบห่วงโซ่(Chaining)1. กรณีที่เลวร้ายที่สุด ในการแทรกข้อมูลคือ o(1) 2. การลบสมาชิก สามารถทำได้ด้วยเวลาที่น้อยที่สุดของ o(1)ทางปฏิบัติ ใช้เทคนิค ฮิวริสติก (Heuristic) ในการสร้างฟังก์ชันแฮช แนวทางหนึ่งที่ดีคือ การแปลงค่าของข้อมูลที่มีอยู่แล้วด้วยข้อมูลที่มีอยู่ (วิธีการหาร:Division method) ฟังก์ชันแฮช คือการกำหนดค่าคีย์ที่เกิดขึ้นในเอก ภพสัมพัทธ์จากตัวเลขธรรมชาติ
วิธีการสร้างฟังก์ชันแฮช1.วิธีการหาร (The Division Method)
2.วิธีการคูณ(The Multiplication Method)
3.วิธีทั่วไป (Universal hashing)
เทคนิคลำดับของการตรวจสอบ
1. การตรวจสอบเชิงเส้น (Linear Probing)
2.การตรวจสอบด้วยสมการกำลังสอง(Quadratic Probing)
3. การสร้างฟังก์ชันแฮชแบบสองเท่า(Double Hashing)

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

DTS11-8/09/2009

สรุป กราฟ (Graph) ต่อ
การท่องไปในกราฟ (Graph traversal) คือ การเข้าไปเยือนโหนดในกราฟ
หลักการทำงาน คือ แต่ละโหนดจะถูกเยือนเพียงครั้งเดียว
เทคนิคการท่องไปในกราฟมี 2 แบบ
1.การท่องแบบกว้าง (Breadth First Traversal) โดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับ
โหนดเริ่มต้นที่ละระดับ จนเยือนหมดทุกโหนดในกราฟ (แบบคิว)
2.การท่องแบบลึก (Depth First Traversal) คล้ายกับการท่องทีละระดับของทรี กำหนดเริ่มต้นที่โหนดแรกและเยือน
โหนดถัดไปตามแนววิถีจนไปสู่ปลายวิถี จากนั้นย้อนกลับ (backtrack) ตามแนววิถีเดิม จนสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่นๆ เพื่อเยือนโหนดอื่นๆ ต่อไปจนครบทุกโหนด (แบบสแตก)
สรุป Sorting
การเรียงลำดับ (sorting) เป็นการจัดให้เป็นระเบียบ มีแบบแผน ช่วยให้การค้นหาสิ่งของหรือข้อมูล สามารถทำได้รวดเร็วและมีประสิทธิภาพ
การเรียงลำดับอย่างมีประสิทธิภาพ
หลักเกณฑ์ในการพิจารณาเพื่อเลือกวิธีการเรียงลำดับที่ดีและเหมาะสมกับระบบงาน
1.เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
2.เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
3.จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่
วิธีการเรียงลำดับ มีหลายวิธีที่สามารถใช้ในการเรียงลำดับข้อมูลได้
วิธีการเรียงลำดับแบ่งออกเป็น 2 ประเภท
1.การเรียงลำดับภายใน (internal sorting) เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก
2.การเรียงลำดับแบบภายนอก (external sorting) เป็นการเรียนลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง เป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file)

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

DTS10-25/08/2009

สรุปเรื่อง Treeทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น เช่น แผนผังองค์ประกอบของหน่วยงานต่างๆ เป็นต้น
โหนดมีความสัมพันธ์กับโหนดในระดับต่ำลงมา หนึ่งระดับได้หลายๆ โหนด เรียกว่าโหนดว่า โหนดแม่ (Parent or Mother Node)
โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก (Child or Son Node)
โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก (Root Node)
โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings)
โหนดที่ไมมีโหนดลูกเรียกว่า โหนดใบ (Leave Node)
เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดเรียกว่า กิ่ง (Branch)
นิยามที่เกี่ยวข้องกับทรี
1.ฟอร์เรสต์ (Forest) หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือเซตของทรีที่แยกจากัน (Disjoint Trees)
2.ทรีที่มีแบบแผน (Ordered Tree) หมายถึง ทรีที่โหนดต่างๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน เช่น ไปทางขวา ไปทางซ้าย เป็นต้น
3.ทรีคล้าย (Similar Tree) คือ ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4.ทรีเหมือน (Equivalent Tree) คือ ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5.กำลัง (Degree) หมายถึง จำนวนทรีย่อยของโหนดนั้นๆ
6.ระดับของโหนด (Level of Node) คือ ระยะทางในแนวดิ่งของโหนดนั้นๆ
การแทนที่ทรีในหน่วยความจำหลัก
การแทนที่โครงสร้างข้อมูลแบบทรีในความจำหลักจะมีพอยเตอร์เชื่อมโยงจากโหนดแม่ไปยังโหนดลูก การแทนที่ทรี แต่ละโหนดมีจำนวนลิงค์ฟิลด์ไม่เท่ากัน วิธีการแทนที่ง่ายที่สุด คือ ทำให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์ที่เท่ากัน โดย
1.โหนดแต่ละโหนดเก็บพอยเตอร์ชี้ไปยังโหนดลูกทุกโหนด
2.แทนทรีด้วยไบนารีทรี โดยกำหนดให้แต่ละโหนดมีจำนวนลิงค์ฟิลด์สองลิงค์ฟิลด์
- ลิงค์ฟิลด์แรกเก็บที่อยู่ของโหนดลูกคนโต
- ลิงค์ฟิลด์ที่สองเก็บที่อยู่ของโหนดพี่น้องที่เป็นโหนดถัดไป โหนดใดไม่มีโหนดลูกหรือไม่มีโหนดพี่น้องให้ค่าพอยเตอร์ในลิงค์ฟิลด์มีค่าเป็น Null
โครงสร้างทรีที่แต่ละโหนดมีจำนวนโหนดลูดไม่เกินสองหรือแต่ละโหนดมีจำนวนทรีย่อยไม่เกินสองนี้ว่า ไบนารีทรี (Binary Tree)
ไบนารีทรีที่ทุกๆ โหนดมีทรีย่อยทางซ้ายและทรีย่อยทางขวา ยกเว้นโหนดใบ และโหนดใบทุกโหนดจะต้องอยู่ที่ระดับเดียวกัน
การแปลงทรีทั่วไปให้เป็นไบนารีทรี
1.ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบความสัมพันธ์ระหว่างโหนดแม่และโหนดลูกอื่นๆ
2.ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3.จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
การท่องไปในไบนารีทรี คือ การท่องไปในไบนารีทรี (Traversing Binary Tree) เพื่อเข้าไปเยือนทุกๆ โหนดในทรี
โหนดแม่ (แทนด้วย N)
ทรีย่อยทางซ้าย (แทนด้วย L)
ทรียอ่ยทางขวา (แทนด้วย R)
วิธีการท่องเข้าไปในทรี 6 วิธี คือ NLR LNR LRN NRL RNL และ RLN วิธีที่นิยมใช้ คือ การท่องจากซ้ายไปขวา 3 แบบแรก คือ NLR LNR และ LRN
ลักษณะการนิยามเป็นนิยามแบบ รีเคอร์ซีฟ
1.)การท่องไปแบบพรีออร์เดอร์ (Preorder Traversal)
ในวิธี NLR มีชั้นตอนการเดิน
1.เยือนโหนดราก
2.ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
3.ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
2.)การท่องไปแบบอินออร์เดอร์ (Inorder Traversal)
ในวิธี LNR มีขั้นตอนการเดิน
1.ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
2.เยือนโหนดราก
3.ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
3.)การท่องไปแบบโพสออร์เดอร์ (Postorder Traversal)
ในวิธี LRN มีขั้นตอนการเดิน
1.ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2.ท่องไปในทรีย่อยทางขวาแบบโพสต์ออร์เดอร์
3.เยือนโหนดราก

DTS09-11/08/2009

สรุปเรื่อง Queueคิว (Queue) เป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ลิสต์ การเพิ่มข้อมูลจะกระทำที่ปลายข้างหนึ่ง เรียกว่าส่วนท้ายหรือเรียร์ (rear) และการนำข้อมูลออกจะทำอีกข้างหนึ่ง เรียกว่า ส่วนหน้า หรือฟรอนต์ (front)
ลักษณะการทำงานของคิว
เป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)
การทำงานของคิว
- การใส่สมาชิกตัวใหม่ลงในคิว เรียกว่า Enqueue
- การนำสมาชิกออกจากคิว เรียกว่า Dequeue
- การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดง เรียกว่า Queue Front
- การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดง เรียกว่า Queue Rear
การดำเนินการเกี่ยวกับคิว
1.Create Queue การจัดสรรหน่วยความจำให้แก่ Head Node และให้ค่า pointer
2.Enqueue การเพิ่มข้อมูลเข้าไปในคิว
3.Dequeue การนำข้อมูลออกจากคิว
4.Queue Front การนำข้อมูลที่อยู่ส่วนต้นของคิวมาแสดง
5.Queue Rear การนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง
6.Empty Queue การตรวจสอบว่าคิวว่างหรือไม่
7.Full Queue เป็นการตรวจสอบว่าคิวเต็มหรือยัง
8.Queue Count การนับจำนวนสามาชิกที่อยู่ในคิว
9.Destroy Queue การลบข้อมูลทั้งหมดที่อยู่ในคิว
การประยุกต์ใช้คิว
คิวถูกประยุกต์ใช้มากในการจำลองระบบงานธุรกิจ เช่น การให้บริการลูกค้า คือ ต้องวิเคราะห์จำนวนลูกค้าในคิว เพื่อให้ลูกค้าเสียเวลาน้อยที่สุด ในด้านคอมพิวเตอร์ ได้นำคิวเข้ามาใช้ คือ ในระบบปฏิบัติการ ในเรื่องของคิวของงานที่เข้ามาทำงาน จัดให้งานที่เข้ามาได้ทำงานคามลำดับความสำคัญ

DTS07-04/08/2009

สรุปเรื่อง Stackสแตก (Stack) เป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์ มีคุณสมบัติ คือ การเพิ่มหรือลบข้อมูลในสแตก ลักษณะสำคัญของสแตก คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมาจากสแตกเป็นลำดับแรกสุด เช่น การหยิบ CD, การหยิบจาน เป็นต้น
กระบวนการที่สำคัญ 3 กระบวนการ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก ต้องดูด้วยว่าสามารถใส่ข้อมูลลงไปได้หรือไม่ ถ้าสแตกเต็มก็ไม่สามารถเพิ่มข้อมูลได้
2.Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก การ Pop ถ้าไม่มีสมาชิกในสแตก จะทำให้เกิดความผิดพลาดที่เรียกว่า Stack Underflow
3.Stack Top การคัดลอกข้อมูลบนสุดของสแตก แต่ไม่ได้เอาข้อมูลออก
การแทนที่ข้อมูลของสแตก
การแทนที่ทำได้ 2 วิธี
1.การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
จะประกอบด้วย 2 ส่วน คือ
(1)Head Node ประกอบไปด้วย top pointer และจำนวนสมาชิกในสแตก
(2)Data Node ประกอบไปด้วย ข้อมูลและพอยเตอร์
2.การแทนที่ข้อมูลของสแตกแบบอะเรย์
การดำเนินการเกี่ยวกับสแตก ของทั้งแบบลิงค์ลิสต์และแบบอะเรย์ ได้แก่
1.Create Stack คือ การจัดสรรหน่วยความจำให้ Head Node และส่งค่าตำแหน่งที่ชี้ของ Head ของสแตกกลับมา
2.Push Stack คือ การเพิ่มข้อมูลลงในสแตก
3.Pop Stack คือ การนำข้อมูลบนสุดออกจากสแตก
4.Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก โดยไม่ลบข้อมูลออกจากสแตก
5.Empty Stack คือ การตรวจสอบการว่างของสแตก เพื่อไม่ให้เกิดความผิดพลาด Stack Underflow
6.Full Stack คือ การตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาด Stack Overflow
7.Stack Count คือ การนับจำนวนสมาชิกในสแตก
8.Destroy Stack คือ การลบข้อมูลทั้งหมดที่อยู่ในสแตก
ขั้นตอนในการคำนวณ
1.อ่านตัวอักษรในนิพจน์ Postfix จากซ้ายไปขวาทีละตัวอักษร
2.ถ้าเป็นตัวถูกดำเนินการให้ทำการ push ตัวถูกดำเนินการนั้นลงในสแตก แล้วกลับไปอ่านอักษรตัวใหม่เข้ามา
3.ถ้าเป็นตัวดำเนินการ ให้ทำการ pop ค่าจากสแตก 2 ค่า โดยตัวแรกเป็นตัวถูกดำเนินการตัวที่ 2 และตัวที่ 1 ตามลำดับ
4.ทำการคำนวณตัวถูกดำเนินการตัวที่ 1 ด้วยตัวถูกดำเนินการตัวที่ 2 โดยใช้ตัวดำเนินการในข้อ 3
5.ทำการ push ผลลัพธ์ที่ได้จากการคำนวณในข้อ 4 ลงสแตก
6.ถ้าตัวอักษรในนิพจน์ Postfix ยังอ่านไม่หมดให้กลับไปทำข้อ 1 ใหม่

วันพฤหัสบดีที่ 6 สิงหาคม พ.ศ. 2552

DTS05-28/07/2009

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

กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนงาน Create List หน้าที่ สร้างลิสต์ว่าง ผลลัพธ์ ลิสต์ว่าง
2. กระบวนงาน Insert Node
3. กระบวนงาน Delete Node
4. กระบวนงาน Search list
5. กระบวนงาน Traverse
6. กระบวนงาน Retrieve Node
7. ฟังก์ชั่น EmptyList
9. ฟังก์ชั่น list count
10. กระบวนงาน destroy list

Linked List แบบซับซ้อน
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้ (list) ชี้ไปที่สมาชิกตัวแรกของลิงค์ลิสต์ จะมีการทำงานไปในทิศทางเดียวเท่านั้น คือ เป็นแบบวงกลม
2. Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำแบบ 2 ทิศทาง ในลิงค์ลิสต์แบบ 2 ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า (backward pointer) และตัวชี้ข้อมูลถัดไป (forward pointer

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

DTS06-28/07/2009

#include

int main () {
int a,b,c;

cout<<"Please enter to Born(HB) DDMMYYYY:";
cin>>a>>b>>c;


while (b <=12&&b!=0){
cout << a;


switch (b){
case 1:cout<<" January "; break;
case 2:cout<<" February "; break;
case 3:cout<<" March "; break;
case 4:cout<<" April "; break;
case 5:cout<<" May "; break;
case 6:cout<<" June "; break;
case 7:cout<<" July "; break;
case 8:cout<<" August "; break;
case 9:cout<<" September "; break;
case 10:cout<<" October "; break;
case 11:cout<<" November "; break;
case 12:cout<<" December "; break;

b++;

}
cout << c;
cout <<"\nPlease enter to Born(HB) DDMMYYYY:";
cin >>a>>b>>c;
}
cout <<"Gooy Bye";

return 0;
}

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

DTS04-14/07/2009

โครงสร้างข้อมูลเเบบเซ็ต
เป็นโครงสร้างข้อมูลที่ข้อมูลเเต่ละตัวไม่มีความสัมพันธ์ ในภาษาซี เเบบเซ็ตนี้เหมือนกับในภาษาปาสคาล

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

การกำหนดค่าคงตัวสตริงให้เเก่ตัวเเปรพอยต์เตอร์เเละอะเรย์ สามารถกำหนดค่าคงตัวสตริงให้พอยเตอร์หรืออะเรย์

การกำหนดตัวเเปรสตริง อาศัยหลักการของอะเรย์ เพราะ สตริงก็คืออะเรย์ของอักษรที่ปิดท้าย ทำงานกับสตริง โดยเฉพาะชื่อบุคคลยาวไม่เกิน 30 อักษร กำหนดอะเรย์ ขนาด 31 ช่อง เำพื่อเก็บ null character อีก 1 ช่อง

ฟังก์ชัน gets ฟังก์ชันอ่านค่าเเป้นพิมพ์ เก็บในหน่วยความจำ ก็คือ อะเรย์ที่ตัวเเปร name ชี้ไปช่องว่าง จนกว่าจะกด Enter จะเต็ม null cheracter อะเรย์ของสตริง สตริงจำนวนมากจะทำให้เป็นอะเรย์ของสตริง เเละสร้างอะเรย์ของสตริง

ฟังก์ชัน puts () ใช้ในการพิมพ์สตริง ออกทางจอภาพ โดยผ่านค่าเเอดเดรสของสตริงอะเรย์ที่เเท้จริงตามหลักการของอะเรย์ เนื่องจากขนาดของช่องในอะเรย์ไม่เท่ากันเเต่อนุโลมให้คือว่า เป็นอะเรย์

อะเรย์ของสตริงที่ยาวเท่ากัน
อะเรย์ที่เเท้จริง สามารถกำหนดเมื่อมีการให้ค่าเริ่มต้น เมื่อกำหนดตัวเเปร โดยกำหนด2มิติ
การดำเนินการเกี่ยวกับสตริง ฟังก์ชันที่อยู่ในเเฟ้มข้อมูล stdio.hเก็บอยู่ใน clibrary สามารถนำไปใช้โดยคำสั่ง# include เช่น
- ฟังก์ชัน strlencstr หาความยาวของสตริง
- ฟังก์ชัน strcpy (str1,str2) คัดลอกข้อมูลจาก string หนึ่งไปยังอีก string
- ฟังก์ชัน strcat (str1,str2) ใช้เชื่อมต่อข้อความ
ใช้เปรียบเทียบข้อความ 2 ข้อความว่ามีค่าเท่ากัน

วันอังคารที่ 30 มิถุนายน พ.ศ. 2552

DTS03-30/06/2009

อาเรย์ ตัวแปรชุด ( Array )

ตัว แปรแบบอาร์เรย์ (Array) หมายถึงตัวแปรซึ่งมีค่าได้หลายค่าโดยใช้ชื่ออ้างอิงเพียงชื่อเดียว ด้วยการใช้หมายเลขลำดับเป็นตัวจำแนกความแตกต่างของค่าตังแปรแต่ละตัว ถ้าเราจะเรียกตัวแปรชนิดนี้ว่า "ตัวแปรชุด" ก็เห็นจะไม่ผิดนัก ตัวแปรชนิดนี้มีประโยชน์มาก ลองคิดถึงค่าข้อมูลจำนวน 100 ค่า ที่ต้องการเก็บไว้ในตัวแปรจำนวน 100 ตัว อาจทำให้ต้องกำหนดตัวแปรที่แตกต่างกันมากถึง 100 ชื่อ กรณีอย่างนี้ควรจะทำอย่างไรดี
แต่ด้วยการใช้คุณสมบัติอาร์เรย์ เราสามารถนำตัวแปรหลาย ๆ ตัวมาอยู่รวมเป็ฯชุดเดียวกันได้ และสามารถเรียกใช้ตัวแปรทั้งหมดโดยระบุผ่านชื่อเพียงชื่อเดียวเท่านั้น ด้วยการระบุหมายเลขลำดับ หรือ ดัชนี(index) กำกับตามหลังชื่อตัวแปร ตัวแหรเพียงชื่อเดียวจึงมีความสามารถเทียบได้กับตัวแปรนับร้อยตัว พันตัว (ตัวที่ 1) ในตัวแปรแบบอาร์เรย์มีดัชนีเป็น 0 ส่วนตัวแปรต่อ ๆ ไปก็จะมีดัชนีเป็น 1,2,3,... ไปตามลำดับ เมื่อต้องการระบุชื่อตัวแปรแบบอาร์เรย์แต่ละตัว ก็จะใช้รูปแบบ name[0], name[1],... เรียงต่อกันไปเรื่อยๆ เราสามารถสร้างตัวแปรอาร์เรย์ใหม่ด้วย myArray = new Array() ดังนี้
 myArray[0] = 17;
myArray[1] = "Nun";
myArray[2] = "Stop";


อาร์เรย์มิติเดียวเป็นแบบของการอ้างอิงหรือการเข้าถึงสมาชิกตัวใดตัวหนึ่ง จะใช้สับสคริปต์เพียงตัวเดียว เช่น กำหนด A เป็นอาร์เรย์ 1 มิติ มีสมาชิกตั้งแต่
1 ถึง N จะได้สมาชิกของ A เป็น A[1],A[2],A[3],…,A[N] นั่นคือสมาชิกในตำแหน่งที่ I คือ A[I] เมื่อ I คือตัวบอกลำดับหรือสับสคริปต์

การกำหนดแบบข้อมูลแบบอาร์เรย์ 1 มิติ มีรูปแบบการกำหนดดังตัวอย่างต่อไปนี้

Type A : ARRAY [L..U] OF DATA_TYPE;

A คือ ชื่อของอาร์เรย์
L คือ ค่าซับสคริปต์ต่ำสุดของอาร์เรย์
U คือ ค่าซับสคริปต์สูงสุดของอาร์เรย์
DATA_TYPE คือ ชนิดของข้อมูลที่จัดเก็บในอาร์เรย์

เช่น Type A = Array [1..10] Of Integer;

ซึ่งมีความหมายว่า A เป็นข้อมูลแบบอาร์เรย์ใช้สับสคริปต์ตั้งแต่ เบอร์ 1 - 10และกำหนดไว้สำหรับรับข้อมูลแบบ Integer โดยเฉพาะ
ถ้าต้องการให้ตัวแปร S เป็นตัวแปรของข้อมูลแบบ A สามารถประกาศตัวแปร S ได้ดังนี้

Var S : A;

ซึ่งหมายความว่า ต่อไปนี้มีตัวแปร S เป็นตัวแปรอาร์เรย์มีสับสคริปต์ตั้งแต่เบอร์ 1 - 10 เก็บข้อมูลแบบ Integer และสามารถอ้างถึงตัวแปร S ได้ดังนี้ S[1], S[2], S[3],...,S[10]


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

รูปแบบของการกำหนดอาร์เรย์ 2 มิติ เป็นดังนี้

VAR A : ARRAY [L1..U1,L2..U2] OF DATA_TYPE;

A คือ ชื่อของอาร์เรย์
L1 คือ ค่าซับสคริปต์ต่ำสุดของแถวนอน
U1 คือ ค่าซับสคริปต์สูงสุดของแถวนอน
L2 คือ ค่าซับสคริปต์ต่ำสุดของแถวตั้ง (คอลัมน์)
U2 คือ ค่าซับสคริปต์สูงสุดของแถวตั้ง (คอลัมน์)
DATA_TYPE คือ ชนิดของข้อมูลที่จัดเก็บในอาร์เรย์

การกำหนดอาร์เรย์อาจจะกำหนดในหัวข้อ VAR หรือ TYPE เหมือนกับอาร์เรย์ 1 มิติ ตัวอย่างเช่น

VAR Student : ARRAY [1..4,1..6] OF INTEGER;

ในที่นี้เป็นการกำหนดอาร์เรย์ 2 มิติ ชื่อ STUDENT ซึ่งมีขนาดเท่ากับ 4 X 6นั้นคือจะมีจำนวนแถวในแนวนอน 4 แถว แถวในแนวตั้ง 6 แถว มีจำนวนตัวแปรอาร์เรย์ 24 ตัว

vdoเเนะนำตัว





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

DTS02-23/06/2009

#include<stdio.h>
#include<string.h>
void main ()
{
struct clock
{
char brand[30];
char color[15] ;
int code;
char website[30];
char type[20];
float weight;
int price;
float tax;
float total;
}data ;
strcpy(data.brand,"casio");
strcpy(data.color,"black");
data.code=24570;
strcpy(data.website,"www.casio.com");
strcpy(data.type,"satanles");
data.weight=10;
data.price=6000;
data.tax=10;
data.total=6000*10/100;

printf("Brand:%s\n",data.brand);
printf("Color:%s\n",data.color);
printf("Code:%d\n",data.code);
printf("Website:%s\n",data.website);
printf("type:%s\n",data.type);
printf("Weight:%.2f\n",data.weight);
printf("Price:%d\n",data.price);
printf("Tax:%.2f\n",data.tax);
printf("Total:%.2f\n",data.total);
}

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

DTS02-23/06/2009

สรุป

โครงสร้างข้อมูล

  • โครงสร้างข้อมูล คือ หน่วยข้อมูลย่อยๆ (Data Elements) ที่ถูกจัดวางที่เหมาะสม แล้วกำหนดลักษณ์ความ สัมพันธ์และความเชื่อมโยงทางตรรกะ (Logical Linkage) เพื่อการนำมาประยุกต์ใช้งานในโปรแกรม
  • ข้อเท็จจริงเกี่ยวกับเหตุการณ์ หรือข้อมูลดิบที่ยังไม่ผ่านการประมวลผล ยังไม่มีความหมายในการนำไปใช้งาน ข้อมูลอาจเป็นตัวเลข ตัวอักษร สัญลักษณ์ รูปภาพ เสียง หรือภาพเคลื่อนไหว
  • ลักษณะของการทำงานแบบทำซ้ำ มีลักษณะการทำงานอยู่ 2 ลักษณะคือ
    1. ทำการตรวจสอบเงื่อนไขก่อนการทำซ้ำหรือ ทำในขณะที่ ( Do – While )
    2. ทำการตรวจสอบเงื่อนไขหลังจากการทำซ้ำหรือทำจนกระทั่ง ( Do – Until )
    การทำงานแบบลำดับและขั้นตอนวิธีแบบเลือกทำแล้ว ยังมีลักษณะการทำงานของขั้นตอนวิธีอีกลักษณะหนึ่ง คือ ขั้นตอนวิธีการทำงานแบบทำซ้ำ ขั้นตอนวิธีการทำงานแบบทำซ้ำใช้สำหรับกรณีที่ต้องการทำกระบวนการต่าง ๆ ซ้ำกันหลายครั้ง โดยมีการตรวจสอบเงื่อนไขสำหรับการตัดสินใจ เพื่อเข้าสู่ขั้นตอนของการทำซ้ำ หรือออกจากขั้นตอนของการทำซ้ำ










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

ประวัติ



นาย เฉลิมวงศ์ เเสงศิริวิวุฒิ

Mr. Chalernwong Sangsiriwut

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

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

E-mail: u50132792008@gmail.com