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

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

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

วันจันทร์ที่ 14 กันยายน พ.ศ. 2552

DTS 10-02/09/2009

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

วันจันทร์ที่ 7 กันยายน พ.ศ. 2552

DTS 09-01/09/2009

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

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

DTS 08-25/08/2009

Tree
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้นแต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า
โหนดแม่
โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก
โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก
โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง
โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ
เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดเรียกว่า กิ่ง
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟ
ทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสองโหนดใด ๆ ในทรีต้องมีทางติดต่อัน
ทางเดียวเท่านั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N-1 เส้น
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟ
ทรีประกอบด้วยสมาชิกที่เรียกว่าโหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่านัลทรี (Null Tree) และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย (Sub Tree)
นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์ (Forest) หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือ เซตของทรีที่แยกจากกัน
2. ทรีที่มีแบบแผน (Ordered Tree) หมายถึง ทรีที่โหนดต่าง ๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน
3. ทรีคล้าย (Similar Tree) คือ ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4. ทรีเหมือน (Equivalent Tree) คือ ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5. กำลัง (Degree) หมายถึง จำนวนทรีย่อยของโหนด นั้น ๆ
6. ระดับของโหนด (Level of Node) คือ ระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนดรากและจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง (Height) หรือความ
ลึก (Depth)
ขั้นตอนการแปลงทรีทั่วๆ ไปให้เป็นไบนารีทรี มีลำดับขั้นตอนการแปลง ดังต่อไปนี้
1. ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบความสัมพันธ์ ระหว่างโหนดแม่และโหนดลูกอื่น ๆ
2. ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3. จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา

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

DTS 07-11/08/2009

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

การนำข้อมูลเข้าสู่คิว จะไม่สามารถนำเข้าในขณะที่คิวเต็ม หรือไม่มีที่ว่าง ถ้าพยายามนำเข้าจะทำให้เกิดความผิดพลาดที่เรียกว่า overflow การนำข้อมูลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างเปล่าได้ ถ้าพยายามจะทำให้เกิดความผิดพลาดที่เรียกว่า underflow

DTS 06-04/08/2009

Stack
ลักษณะที่สำคัญของสแตก คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมาจากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า LIFO (Last In First Out)
กระบวนการในการทำงานของสแตก ประกอบด้วย
1. Push คือ การนำข้อมูลใส่ลงไปในสแตก
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตกถ้าสแตกมีสมาชิกเพียง 1 ตัว แล้วถูก Pop ออก จะทำให้สแตกว่าง (Stack Empty) คือ ไม่มีสมาชิกอยู่ในสแตกเลยและถ้าเรา Pop สแตกนี้อีกครั้ง จะทำให้เกิดความผิดพลาดที่เรียกว่า Stack Underflow
การแทนที่ข้อมูลของสแตก ทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์ ประกอบด้วย 2 ส่วน คือ
1) Head Node จะประกอบไปด้วย 2 ส่วน คือ top pointer และจำนวนสมาชิกในสแตก
2) Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ ที่ชี้ไปยังข้อมูลตัวถัดไป
2. การแทนที่ข้อมูลของสแตกแบบอะเรย์การดำเนินการเกี่ยวกับสแตก มีดังนี้
1) Create Stack คือ การสร้างสแตก
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 คือ การลบข้อมูลทั้งหมดที่อยู่ในสแตก
การประยุกต์ใช้สแตก นำไปใช้ในงานด้านปฏิบัติการของคอมพิวเตอร์ที่ต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุด เช่น โปรแกรมแปลภาษา การคำนวณนิพจน์ทางคณิตศาสตร์ และรีเคอร์ชั่น (Recursion)
โดยทั่วไปนิพจน์ทางคณิตศาสตร์สามารถเขียนได้ 3 รูปแบบ คือ
1.นิพจน์ Infix นิพจน์รูปแบบนี้ operator จะอยู่ตรงกลางระหว่างตัวถูกดำเนินการ 2ตัว
2.นิพจน์ Postfix นิพจน์รูปแบบนี้ จะต้องเขียนตัวถูกดำเนินการตังที่ 1 และ 2 ก่อน แล้วตามด้วยoperator
3.นิพจน์ Prefix นิพจน์รูปแบบนี้ จะต้องเขียน operatorก่อนแล้วตามด้วยตัวถูกดำเนินการตัวที่ 1และ 2

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

DTS 05-28/07/2009

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

ในลิงค์ลิสต์จะมีตัวแปรสำหรับชี้ตำแหน่งลิสต์ (List pointer variable)ซึ่งเป็นที่เก็บตำแหน่งเริ่มต้นของลิสต์ ซึ่งก็คือโหนดแรกของลิสต์นั่นเอง ถ้าลิสต์ไม่มีข้อมูล ข้อมูลในโหนดแรกของลิสต์จะเป็น Null
โครงสร้างข้อมูลแบบลิงค์ลิสต์โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 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 หน้าที่ ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลนำเข้าลิสต์ผลลัพธ์ ขึ้นกับการประมวลผล เช่นเปลี่ยนแปลงค่าใน node , รวมฟิลด์ในลิสต์ ,คำนวณค่าเฉลี่ยของฟิลด์ เป็นต้น
6. กระบวนงาน Retrieve Node หน้าที่ หาตำแหน่งข้อมูลจากลิสต์ข้อมูลนำเข้าลิสต์ผลลัพธ์ ตำแหน่งข้อมูลที่อยู่ในลิสต์
7. ฟังก์ชั่น EmptyList หน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้า ลิสต์ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่างเป็นเท็จ ถ้าลิสต์ไม่ว่าง
8. ฟังก์ชั่น FullList หน้าที่ ทดสอบว่าลิสต์เต็มหรือไม่ข้อมูลนำเข้าลิสต์ผลลัพธ์ เป็นจริง ถ้าหน่วยความจำเต็มเป็นเท็จ ถ้าสามารถมีโหนดอื่น
9. ฟังก์ชั่น list count หน้าที่ นับจำนวนข้อมูลที่อยู่ในลิสต์ข้อมูลนำเข้าลิสต์ผลลัพธ์ จำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน destroy list หน้าที่ ทำลายลิสต์ข้อมูลนำเข้า ลิสต์ผลลัพธ์ ไม่มีลิสต์

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

DTS 04-14/07/2009

เรื่อง Set and String

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

ตัวดำเนินการของเซ็ตประกอบด้วย

  • Union
  • Intersection
  • Difference
  • Complement

สตริง (String) หรือ สตริงของอักขระ (Character String)ประกอบด้วย

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

ความแตกต่างของการใช้ฟังก์ชัน gets() เเละscanf( )

ฟังก์ชัน get() คือ ฟังก์ชันที่อ่านค่าจากแป้นพิมพ์และนำมาเก็บไว้ในหน่วยความจำ ซึ่งก็คืออะเรย์ จนกว่าผู้ใช้จะกด Enter จะเติม null character ให้

scanf() จะถือว่าค่าที่มีช่องว่างคั่นนั้นเป็นค่าคนละตัวกันและจะไม่เติม null characte

การดำเนินการเกี่ยวกับสตริง

การดำเนินการเกี่ยวกับสตริงจะมีฟังก์ชันที่อยู่ในแฟ้ม ข้อมูล stdio.h เก็บอยู่ใน C Library อยู่แล้วสามารถนำมาใช้ได้ โดยการใช้คำสั่ง #includeในการเรียกใช้ เช่น

  • ฟังก์ชัน strlen (str) ใช้หาความยาวของสตริง
  • ฟังก์ชัน strcpy (str1,str2) ใช้คัดลอกข้อมูลจาก string หนึ่งไปยังอีก string หนึ่ง
  • ฟังก์ชัน strcat (str1,str2) ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน
  • ฟังก์ชัน strcmp (str1,str2) ใช้เปรียบเทียบข้อความ 2 ข้อความว่ามีค่าเท่ากัน

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

DTS 03-30/06/2009

Array and Record
ตัวแปร Array โปรแกรมส่วนใหญ่ที่ใช้งานจะเป็นการจัดเก็บค่าเพียงค่าเดียว รู้ว่าการประกาศตัวแปรจะต้องมีชนิดของข้อมูลที่จะจัดเก็บ ชื่อของตัวแปร ขนาดหรือจำนวนช่องที่จะใช้เก็บข้อมูล แต่ละตัวจะประกอบไปด้วยค่าสูงสุดและค่าต่ำสุด การจัดเก็บอะเรย์จะใช้เนื้อที่เท่ากันในการจัดเก็บสมาชิกไว้ในหน่วยความจำหลัก
ตัวแปรอะเรย์มี 2 ลักษณะ คือ
1. อะเรย์ 1 มิติ
2. อะเรย์ 2 มิติ

อะเรย์ 1 มิติ เช่น int num[5]; ก็คือจะกำหนดให้มีสมาชิก 5 ตัว ส่วนการกำหนดค่าเริ่มต้นให้กับอะเรย์จะมีค่าเริ่มต้นที่ศูนย์ เช่น char[4];="BUSSAKRON"; หมายความว่า Character ตัวที่สี่คือ A เพราะว่าค่าเริ่มต้นของอะเรย์จะมีค่าเริ่มต้นที่ศูนย์
อะเรย์ 2 มิติ เช่น char a[2][3]; ก็คือจะจองเนื้อที่ในหน่วยความจำจำนวน 6 ที่สำหรับตัวแปร a
Structure เป็นโครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้ การประกาศสมาชิกแต่ละตัวของ structure จะเป็นตัวแปรธรรมดาและชื่อของสมาชิกแต่ละตัวก็แตกต่างกัน ถ้ามีหลายตัวแปรจะคั่นด้วยเครื่องหมายคอมม่า ส่วนเรื่องของ Pointer เป็นตัวแปรที่ทำหน้าที่เก็บตำแหน่งที่อยู่(address) ของตัวแปรที่อยู่ในหน่วยความจำ ตัวอย่างการประกาศตัวแปร เช่น int *a , char *ptrเป็นเครื่องหมายที่ใช้ทำงานกับ Pointer มี 2 ตัว คือ & และ * เรียกว่า สตาร์ หรือ แอสเทอร์ริก

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

DTS 02-23/06/2009

#include
#include
void main()
{
struct clothes
{
char name[20];
char sirname[20];
int code_member;
char color[10];
char size[10];
char type[20];
float price;
float discount;
}sale;
strcpy(sale.name,"Bussakron");
strcpy(sale.sirname,"Kleangmesri");
sale.code_member=12345;
strcpy(sale.color,"blue");
strcpy(sale.size,"XXL");
strcpy(sale.type,"T-shirt");
sale.price=100;
sale.discount=20;
printf("Name:%s\n",sale.name);
printf("Sirname:%s\n",sale.sirname);
printf("Code_Member:%d\n",sale.code_member);
printf("Color:%s\n",sale.color);
printf("Size:%s\n",sale.size);
printf("Type:%s\n",sale.type);
printf("Price:%.2f\n",sale.price);
printf("Discount:%.2f\n",sale.discount);
}


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

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

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

DTS 01-16/06/2009

นางสาวบุษกร เกลี้ยงมีศรี

Miss.Bussakron Kleangmesri

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

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

Email u50132792033@gmail.com