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

DTS04 14/07/2552

(Set & String)

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

ตัวดำเนินการของเซ็ต (Set operstors)
ประกอบด้วย
Set intersection
Set union
Set difference เป็นต้น

วิธีแก้ปัญหาเบื้องต้น
จะต้องกำหนดเซ็ดของผู้เรียนที่ลงทะเบียนในแต่ละวิชา นำเซ็ตที่ได้ดังกล่าวมา intersection กัน หากมีเซ็ดใดที่ทำการ intersection กันแล้วสมาชิกซ้ำกัน จะไม่สามารถจัดอยู่ในวันเวลาเดียวกันได้ โครงสร้างข้อมูลแบบสติง (สติง) หรือ สติงของอักขระ เป็นข้อมูลที่ประกอบไปด้สย ตัวอักษรตัวเลขและเครื่องหมายเรียงติดต่อกัน รวมถึงช่องว่าง สติง กับ อะเรย์ สติง คืออะเรย์ของอักขระ เช่น char a[6]

การกำหนดสติง
1. กำหนดค่าตรงตัว
2.กำหนดโดยใช้ตัวแปรอะเรย์หรือพอยเตอร์ เช่น "This is String " จะเป็นข้อมูลแบบสติงยาว 16 อักขระ การกำหนดตัวแปรสติง อาศัยหลักการของอะเรย์ เพราะสติงก็คือ อะเรย์ของอักขระที่ปิดท้ายด้วย null character(\0) ฟังชันget() เป็นฟังชันที่อ่านค่าจากแป้นพิมพ์มาเก็บไว้ในหน่วยความจำ ซึ่งก็คืออะเรย์ที่ตัวแปรเนมชี้อยู่ หากใช้ scanf() จะถือว่าเจมส์เป็นค่าหนึ่ง และ smite เป็นอีกค่าหนึ่ง อะเรย์ของสติงที่ยาวไม่เท่ากัน ทำได้เฉพาะเมื่อมีการกำหนดค่าเริ่มต้นเท่านั้น อะเรย์ของสติงที่ยาวเท่ากัน ในลักษณะนี้ถือว่าเป็นอะเรยืที่แท้จริงและสามารถกำหนดได้ทั้งเมื่อมีการให้ค่าเริ่มต้น เช่น char[3][7]={"Apple","Orange","Mango"}; กำหนดตัวแปร fruit เป็นแบบ 3 แถว 7 คอลัมน ฟังชัน puts() ใช้ในการพิมพ์สติงออกทางจอภาพ โดยการผ่านแอดเดรสของสติงไปให้เท่านั้น

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

DTS03 30/06/52

อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะคล้ายเซ็ตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก

อาร์เรย์ 1 มิติเป็นตัวแปรที่เก็บข้อมูลเพียงแถวเดียวหรือชั้นเดียวเช่นในการคำนวณหาสมาชิกของอาร์เรย์ 1 มิติทำได้ดังนี้จำนวนสมาชิกของอาร์เรย์ = (u-l)+1u คือค่าสูงสุด หรือ Upper boundl คือค่าต่ำสุด หรือ Lower bound ส่วน 2 มิติสามารถหาได้ดังนี้จำนวนสมาชิก = M x N

อาร์เรย์ 2 มิติมีลักษณะการกำหนดตำแหน่งแบบแถวและคอลัมน์รูปแบบของการประกาศตัวแปรอาร์เรย์ 2 มิติtype array-name[n][m];type คือ ชนิดของตัวแปรอาร์เรย์ที่จะสร้างขึ้น เช่น int,float,char เป็นต้นarray-name คือ ชื่อของตัวแปรอาร์เรย์ที่ต้องตั้งให้สื่อและเข้ากับชนิดของตัวแปรและจะต้องไม่ไปตรงกับคำสงวนของภาษาซีด้วยn คือ จำนวนแถวของตัวแปรอาร์เรย์m คือ จำนวนคอลัมน์ของตัวแปรอาร์เรย์เช่น int num[3][5];

Structure โครงสร้างข้อมูลหมายถึง การที่นำข้อมูลที่มีความเกี่ยวข้องกัน เช่น ข้อมูลของนักศึกษาที่อาจประกอบด้วยชื่อ,นามสกุล,อายุ,เพศ,ชั้นเรียน มารวมกันและจัดทำเป็นโครงสร้างข้อมูล

struct คือ คำที่ใช้กำหนดโครงสร้างข้อมูล(ต้องมีเสมอ)name คือ ชื่อของโครงสร้างข้อมูลที่จะสร้างขึ้นtype var-1,type var-2 คือชื่อตัวแปรในกลุ่มโครงสร้างข้อมูลstruct-variable คือชื่อของตัวแปรชนิดโครงสร้างที่ต้องการสร้างขึ้นจะมีลักษณะโครงสร้างภายในเหมือนกับโครงสร้างข้อมูลที่กำหนด

ตัวอย่าง struct student student1;การอ้างถึงสมาชิกในตัวแปรชนิดโครงสร้างstruct-name.variable-namestruct-name คือ ชื่อของตัวแปรชนิดโครงสร้าง (ไม่ใช่ชื่อโครงสร้าง). คือเครื่องหมายขั้นระหว่างชื่อตัวแปรชนิดโครงสร้างกับตัวแปรที่เป็นสมาชิก variable-name คือชื่อของตัวแปรที่เป็นสมาชิกการกำหนดข้อมูลให้ตัวแปรชนิดโครงสร้างเราสามารถกำหนดได้เหมือนตัวแปรทั่วไปแต่ต้องอ้างอิงถึงสมาชิกให้ถูกต้อง เช่น student1.age = 15;student1.sex = 'M'; กรณีถ้าเป็นอาร์เรย์ของตัวแปรชนิดโครงสร้างสามารถเขียนได้ดังนี้ student1[0].age = 15;