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

DTS03-14-07-52

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


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


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


ความยาวของสตริง จะถูกกำหนดโดย
ขนาดของสตริง การกำหนดขนาดของสตริงนั้นต้องจองเนื้อที่ในหน่วยความจำให้กับ \0 ด้วย
เช่น
“This is String !”
จะเป็นข้อมูลแบบสตริงยาว 16 อักขระ


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

วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2552

DTS03-30-06-2552

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



การกำหนด Array
การกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อม
subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้
มากกว่า 1 ตัวจำนวน subscript จะเป็น ตัวบอกมิติ
ของอะเรย์นั้น อะเรย์ที่มี subscript มากกว่า 1 ตัวขึ้นไป จะ
เรียกว่า อะเรย์หลายมิติ
ค่าของ subscript แต่ละค่าประกอบด้วยค่า มาก สุก และ ค่า ต่ำ สุด
ของ แต่ ละ subscript นี้น การ ประ กาศ ค่า array
สามารถใช่ ภาษาคอมพิวเตอรได้ สองแบบ เช่น ภาษาปาสคาล และ ภาษาซี

ข้อกำหนดของการกำหนดค่าต่ำสุดและ
ค่าสูงสุดของ subscript คือ
1. ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
2. ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
3. ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)

ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมี
ค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่า
หรือเท่ากับขอบเขตบน
lower bound ≤ subscript ≤ upper bound
ขนาดของ index แต่ละตัว ของ Array หา
ได้จาก
ขนาดของ subscript = upper bound – lower bound + 1

จำนวนสมาชิกหรือขนาดของอะเรย์ n มิติ หาได้จาก
ขนาดของอะเรย์ = ผลคูณของขนาดของsubscript แต่ละตัว เช่น
ขนาดของอะเรย์
A = Upper bound – lowerbound+1= 10-1+1 = 10

การจัดเก็บอะเรย์ในหน่วยความจำหลักจะใช้
เนื้อที่ขนาด เท่ากันเพื่อเก็บสมาชิกแต่ละตัว โดยเนื้อ
ที่จะเรียงต่อเนื่องกัน การจัดเก็บอะเรย์ใน
หน่วยความจำหลัก จะพิจารณาตาม ประเภท
ของอะเรย์ในมิติต่าง ๆ ดังนี้
- อะเรย์ 1 มิติ
- อะเรย์ หลายมิติ
อะเรย์ 1 มิติ รูปแบบ
data-type array-name[expression]
data-type คือ ประเภทของข้อมูลอะเรย์ เช่น int char float
array-name คือ ชื่อของอะเรย์
expression คือ นิพจน์จำนวนเต็มซึ่งระบุจำนวนสมาชิกของอะเรย์

- Initialization คือ การกำหนดค่าเริ่มต้นให้อะเรย์ เช่นEx1. int sum[5] = {1,2,3,4,5}; หรือ int sum[] = 1,2,3,4,5}; (เป็นการประกาศตัวแปร sum ที่มีชนิดของข้อมูลเป็นจำนวนเต็มที่เป็นอะเรย์ 1มิติเก็บข้อมูลได้ 5 ตัว)Ex2. char ch[7] = “string”; หรือ char ch[7] = {‘S’,‘T’,‘R’,‘I’,‘N’,‘G’,‘\0’}; (เป็นการประกาศตัวแปร ch ที่มีชนิดของข้อมูลเป็นตัวอักษร เรียกว่า"สตริง" ที่เป็นอะเรย์ 1มิติเก็บข้อมูลได้ 7 ตัวและ ch[7] จะเก็บค่า \0โดยอัตโนมัติ เพื่อแสดงการสิ้นสุดของข้อความ)
- อะเรย์ 2มิติ มีรูปแบบ ดังนี้
type array-name[n] [m];
type หมายถึง ชนิดของตัวแปรที่ต้องการประกาศเป็นอะเรย์array-name หมายถึง ชื่อของตัวแปรที่ต้องการประกาศเป็นอะเรย์
n หมายถึง ตัวเลขที่แสดงตำแหน่งของแถวm หมายถึง ตัวเลขที่แสดงตำแหน่งของคอลัมน์
char a[2][3]; (เป็นการจองเนื้อที่ในหน่วยความจำจำนวน 6 ที่ให้กับตัวแปร)
col1 col2 col3
row1 a[0][0] a[0][1] a[0][2]
row 2 a[1][0] a[1][1] a[1][2]

Initialization คือ การกำหนดค่าเริ่มต้นให้อะเรย์ เช่น
int amount[2][3] }; (เป็นการประกาศตัวแปร amount ที่มีชนิดของข้อมูลเป็นจำนวนเต็มที่เป็นอะเรย์ 2มิติเก็บข้อมูลได้ 6 ตัว)
int amount[2][3] }; int a[2][3] = {1,2,3,4,5,6}; หรือ
int a[2][3] = {{1,2,3},{4,5,6}};