งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Data Type part.II.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Data Type part.II."— ใบสำเนางานนำเสนอ:

1 Data Type part.II

2 Composite data type เป็นชนิดข้อมูลที่มีค่าเป็นกลุ่ม (compound or aggregated data) Array String Union Structure Pointer สร้างจากชนิดข้อมูลพื้นฐานที่เป็นค่าเดี่ยว แล้วนำมาประกอบกันให้เกิดเป็นค่ากลุ่ม เช่น อาร์เรย์ของจำนวนเต็ม สร้างขึ้นจากเลขจำนวนเต็ม (int) หลายจำนวนรวมไว้เป็นกลุ่มเดียวกัน

3 ชนิดข้อมูลอาร์เรย์ (Array)
อาร์เรย์ (แถวลำดับ) เป็นชนิดข้อมูลคอมโพสิต ที่เก็บข้อมูลประเภทเดียวกัน และมีจำนวนข้อมูลคงที่ เช่น คำประกาศในภาษา C int A[10]; ภาษา Pascal A : array [ ] of integer; [ ] เป็นการระบุหมายเลขอินเด็กซ์ (index or subscript) : 1, 2, …, 10 ดังนั้น เราสามารถกำหนดให้หมายเลขอินเด็กซ์เริ่มที่เท่าไรก็ได้ เช่น [ ] จะหมายถึง -4, -3, …, 3 (ต่างจาก Java หรือ C ที่อินเด็กซ์ต้องเริ่มที่ 0 เท่านั้น)

4 Array (cont) นอกจากนี้ ภาษา Pascal ยังอนุญาตให้กำหนดอินเด็กซ์ด้วยค่าประเภทอื่น นอกเหนือจากเลขจำนวนเต็มได้ type Computer_Manufacturer = (IBM, HP, SUN, APPLE); var profit : array (Computer_Manufacturer) of integer; Computer_Manufacturer เป็นชนิดข้อมูลแจกแจงค่าเพื่อแทนชื่อบริษัทผู้ผลิตเครื่องคอมพิวเตอร์ Profit เป็น ตัวแปรชนิดอาร์เรย์เก็บค่าเลขจำนวนเต็ม ดังนั้น Profit(IBM) จึง...

5 Array (cont) อย่างไรก็ดี ข้อมูลแต่ละจำนวนในอาร์เรย์ สามารถเป็นอาร์เรย์ได้ Multi-dimensional array เช่น ภาษา C int x[10][20] เป็นการกำหนดค่าตัวแปร x ให้เป็นอาร์เรย์สองมิติ ที่มี 10 แถว และ 20 คอลัมน์ ภาษา Pascal var x : array [ , ] of integer; ภาษา Ada x(3 .. 5) การระบุอินแด็กซ์เป็นช่วงแบบนี้ เรียกว่า slicing แทน x(3), x(4) และ x(5)

6 Array (cont) รูปภาพแสดงการ slice อาร์เรย์สองมิติ และสามมิติในภาษา FORTRAN ระบุช่วงข้อมูลบนอาร์เรย์ด้วยคำสั่งภาษาฟอร์แทรน…

7 Array (cont) ภาษา SNOBOL เป็นภาษาที่มีชนิดข้อมูลแบบพลวัต (dynamically typed language) จะเรียกอาร์เรย์ว่า เทเบิล (TABLE) โดยสมาชิกภายในอาร์เรย์ มีชนิดแตกต่างกันได้ วิธีสัมพันธ์ (associate) เช่น T<b> จะสัมพันธ์กับ 25 อาร์เรย์แบบนี้ จะเรียกว่า associate array

8 Array (cont) ภาษา Perl ก็มีการใช้ associate array เช่นเดียวกัน โดยใช้เครื่องหมายพิเศษ % นำหน้าชื่อตัวแปร เพื่อระบุว่าตัวแปรนั้นเป็นชนิด associative array %ClassList = (“Michelle”, ‘A’, “Doris”, ‘B’, “Mike”, ‘D’); การใช้งานอาร์เรย์แสดงตัวอย่างได้ดังนี้ ลองเขียนเอาท์พุตดูนะครับ

9 ชนิดข้อมูลสตริง (String)
ตัวอย่าง ภาษา C char name[10] = {‘B’, ’i’, ’l’, ’l’, ’\0’}; หรือจะประกาศแบบนี้ char name[10] = “Bill”; ทั้งสองแบบนี้ ประกาศต่างกันแต่คงความหมายเดิม

10 String (cont) ในภาษา Java นั้น สตริงจะถูกเก็บในลักษณะ object ของ class string ดังนั้น การประกาศตัวแปรจึงเป็นการประกาศ object ดังนี้ String name = “Bill”; การปฏิบัติกับสตริงมีได้หลากหลายรูปแบบ แตกต่างกันไปในแต่ละภาษา ซึ่งมีรูปแบบสำคัญๆ ดังนี้ ... การเชื่อมต่อสตริง (concatenation) การเปรียบเทียบสตริง (comparison) การคัดเลือกส่วนย่อยของสตริง (substring selection) การจับคูแพทเทิร์น (pattern matching)

11 String (cont) Concatenation Java ใช้ “+” ในการเชื่อมต่อสตริง
C ใช้ฟังก์ชัน strcat ในการเชื่อมต่อสตริง

12 String Comparison Substring selection
การเปรียบเทียบสตริง จะเป็นการเปรียบเทียบลำดับก่อน-หลัง ของตัวอักษรในข้อความ ภาษา C ใช้ฟังก์ชัน strcmp int strcmp(char *str1, char *str2) ถ้าสิ่งที่ส่งกลับมา เท่ากันศูนย์ แสดงว่า str1 และ str2 เท่ากัน ถ้าสิ่งที่ส่งกลับมา น้อยกว่าศูนย์ แสดงว่า str1 น้อยกว่า str2 เท่ากัน ถ้าสิ่งที่ส่งกลับมา มากกว่าศูนย์ แสดงว่า str1 มากกว่า str2 เท่ากัน Substring selection เป็นการระบุตำแหน่งของอักขระภายในสตริง ภาษา FORTRAN NEXT = STR (6:10)

13 String (cont) Pattern matching
ภาษาที่ใช้ pattern มากคือ SNOBOL และ Perl Perl จะใช้รูปแบบของ regular expression / [A-Z a-z] [A-Z a-z \d]+ / เมื่อโปรแกรมรับข้อความเข้า จากนั้น จะตรวจสอบข้อความตั้งแต่ต้นบรรทัด จนถึงท้ายบรรทัด เพื่อตรวจสอบว่า …

14 ชนิดข้อมูลยูเนียน (Union)
Union หมายถึง OR หรือ การเลือกค่าใดค่าหนึ่งเพียงหนึ่งค่า ชนิดข้อมูลยูเนียนจึงเป็นชนิดข้อมูลที่มีการประกาศรวมได้หลายชนิด แต่การเก็บข้อมูลจริง ณ ช่วงเวลาหนึ่งๆ จะเลือกเก็บค่าได้เพียงประเภทเดียวเท่านั้น ภาษา C

15 ชนิดข้อมูลโครงสร้าง (Structure)
Structure or record เป็นการเก็บข้อมูลหลายจำนวนที่มีประเภทแตกต่างกัน ภาษา C

16 Structure (cont) การประกาศโครงสร้าง เพื่อเก็บข้อมูลของ Employee จำนวน 500 คน สามารถทำได้โดยการสร้างอาร์เรย์ของ struct ดังนี้ ดังนั้น หากเราต้องการระบุเงินเดือนจำนวน บาท ให้กับพนักงานคนที่ 4 ก็สามารถกำหนดได้ดังนี้ …

17 Structure (cont) ภาษา Pascal จะเรียกข้อมูลโครงสร้างว่า เรคคอร์ด และสามารถกำหนดฟิลด์ในเรคคอร์ด ให้มีค่าแปรผันได้ (variant record) เงินเดือนของพนักงานอาจจะแยกออกเป็นสองประเภทคือ พนักงานที่ได้รับเงินรายเดือน (มีข้อมูลอัตราเงินเดือน และวันที่เริ่มทำงาน) และพนักงานที่ได้รับเงินเป็นรายชั่วโมง ประกาศเรคคอร์ดแบบแปรผัน ในภาษา Pascal


ดาวน์โหลด ppt Data Type part.II.

งานนำเสนอที่คล้ายกัน


Ads by Google