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

สรุปบทเรียนวิชา โครงสร้างข้อมูลและขั้นตอนวิธี ครั้งที่ 3 วันที 27 มิถุนายน 2554

Lecture 2

เรื่องของ array and record

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

การกำหนด Array
                การกำหนดอะเรย์จะต้องรู้ชื่ออะเรย์ พร้อม subscript ซึ่งเป็นตัวกำหนดของขอบเขตอะเรย์ มีได้มากกว่า 1 จำนวน อะเรย์ ที่มี subscript มากกว่า 1 ตัว ขึ้นไปจะเรียกว่า อะเรย์หลายมิติ

ข้อกำหนดของการกำหนดค่าต่ำสุดและค่าสูงสุด 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 = upperbound-lower bound + 1                10-1+1=10


การส่งอะเรย์ให้ฟังก์ชัน
สามารถกำหนดอะเรย์เป็นพารามิเตอร์ให้กับฟังก์ชัน ได้ 2 ลักษณะ
  1. กำหนด array element เป็นพารามิเตอร์ ส่งค่าให้กับฟังก์ชั่น ทำได้โดยอ้างชื่ออะเรย์ พร้อมกับระบุ subscript
  2. ส่งอะเรย์ทั้งชุดให้ฟังชั่น ทำได้โดยอ้างถึงชื่ออะเรย์ไม่มี  subscript

การประกาศอาร์กิวเมนต์ ในฟังก์ชั่นเป็นอะเรย์
                ถ้าเป็นอะเรย์มิติเดียว สามารถทำได้ทั้งหมด 3 วิธี
1. การประกาศขนาดของอะเรย์ที่ทำหน้าทีในการรับค่า
2. ไม่ต้องมีการประกาศ ขนาดของอะเรย์ มำหน้าที่ในการรับค่า
3. ตัวแปรที่ทำหน้าที่ รับค่าถูกกำหนดเป้นพอยน์เตอร์

อะเรย์ มี 1. อะเรย์ 1 มิติ 2. อะเรย์หลายมิติ เช่นอะเรย์ 2 มิติ



Lecture 3

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

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

                โครงสร้างข้อมูลแบบสตริง 
กำหนดสตริง
                การกำหนดสตริงทำได้หลายแบบ   คือ
                1.  กำหนดสตริงที่มีค่าคงตัว  ( String  Constants )
2. กำหนดโดยใช้ตัวแปรอะเรย์ หรือ พอยเตอร์

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

โครงสร้างข้อมูลแบบสตริง 
ฟังก์ชัน  gets ()เป็นฟังก์ชันที่อ่านค่าจากแป้นพิมพ์มาเก็บไว้ในหน่วยความจำ ซึ่งก็คืออะเรย์ที่ตัวแปร name ชี้อยู่  รวมทั้งช่องว่าง จนกว่าผู้ใช้จะกด Enter จะเติม null character ให้
หากใช้ scanf ( ) จะถือว่า Jume เป็นค่าหนึ่ง และ Smith  เป็นอีกค่าหนึ่ง เพราะมีช่องว่างคั่น  และมี่เติม null character นั่นคือ  จะได้อะเรย์ที่มีค่าเป็น Jame ไม่ใช่ String ที่มีค่าเป็น Jame Smith


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


คำถาม : อะเรย์มิติเดียว สามารถทำได้กี่วิธี มีอะไรบ้าง?

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

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