7/15/2552

RECORD DTS 03 14/07/2552

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

วิธีการแก้ปัญหาเบื้องต้น
- จะต้องกำหนดเซ็ตของผู้เรียนที่ลงทะเบียนเรียนในแต่ละวิชา
- นำเซ็ตดังกล่าวที่ได้มาทำการ intersection กัน หากมีเซ็ตใดที่

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

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

การกำหนดค่าให้กับสตริงนั้น เราจะใช้เครื่องหมาย doublequote (“ ”) เช่น “abc” คือ ชุดของอักขระที่มีขนาด 4 (รวม \0 ด้วย)
ข้อสังเกต
string constant are different from character constant
#define NME “Semi”
main ( ){
char *cpntr;cpntr=NME;
printf(“con\n”);printf(“%s, %u, %c\n”, “con”, “duc”,*“tor”);
printf(““%s, %u, %c\n”, NME, NME,*NME);
printf(““%s, %u, %c\n”, cpntr, cpntr,*cpntr);
}

ผลการรันโปรแกรม
con
con, 37, t
Semi, 16, S
Semi, 16, S

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

เช่น main ( ) {
char ary[ ] = “This is the house. ”;
char *cpntr=“This is the door.”;
printf(“%s %s”,ary,cpntr);

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

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

main ( ) {char name[31];
printf(“Hi, What’s your name?\n”);
gets(name);
printf(“Nice to meet you, %s\n”);
}

ผลการรันโปรแกรม
Hi, What’s your name?
Jame Smith
Nice to meet you, Jame Smith

ไม่มีความคิดเห็น:

แสดงความคิดเห็น