1 / 31

ARRAY

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

erik
Download Presentation

ARRAY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARRAY บทที่ 3 อาร์เรย์

  2. วัตถุประสงค์เพื่อ • บอกคุณสมบัติโครงสร้งข้อมูลแบบอาร์เรย์ได้ • สามารถอ้างอิงตำแหน่งสมาชิกและคำนวณหาจำนวนสมาชิกในอาร์เรย์ได้ • เข้าใจหลักการจัดเก็บอาร์เรย์ในหน่วยความจำ • สามารถคำนวณหาแอดเดรสในหน่วยความจำของอาร์เรย์หนึ่งมิติหรือหลายมิติได้ • เห็นความสำคัญของโครงสร้างข้อมูลแบบอาร์เรย์ที่เป็นพื้นฐานสำคัญต่อโครงสร้างข้อมูลอื่นๆ

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

  4. โครงสร้างข้อมูลแบบอาร์เรย์โครงสร้างข้อมูลแบบอาร์เรย์ • อาร์เรย์คืออะไร • “อาร์เรย์ (Array) หรือแถวลำดับ คือการรวมกลุ่มของตัวแปรที่สามารถใช้ตัวแปรชื่อเดียวแทนข้อมูลสมาชิกได้หลายๆ ตัวในคราวเดียวกันด้วยการใช้เลขดัชนี (Index) เป็นตัวอ้างอิงตำแหน่งสมาชิกบนแถวลำดับนั้นๆ”

  5. โครงสร้างข้อมูลแบบอาร์เรย์โครงสร้างข้อมูลแบบอาร์เรย์

  6. คุณสมบัติสำคัญของอาร์เรย์คุณสมบัติสำคัญของอาร์เรย์ • อาร์เรย์เป็นตัวแทนกลุ่มของข้อมูลที่มีความสัมพันธ์กัน • สมาชิกในอาร์เรย์จะมีคุณสมบัติเหมือนๆ กัน คือมีชนิดข้อมูลเหมือนกันทั้งหมด • ขนาดของอาร์เรย์จะมีขนาดคงที่ (Static) เมื่อได้ถูกสร้างขึ้นครั้งแรก • ผู้ใช้สามารถอ้างอิงเพื่อเข้าถึงข้อมูลที่ต้องการได้ทันที (Direct Access)

  7. ประเภทของอาร์เรย์ • ประเภทของอาร์เรย์เมื่อพิจารณาจากมิติของอาร์เรย์ • อาร์เรย์ 1 มิติ • อาร์เรย์หลายมิติ • ประเภทของอาร์เรย์เมื่อพิจารณาจากขนาดของอาร์เรย์ • อาร์เรย์ขนาดคงที่ • อาร์เรย์ที่เปลี่ยนแปลงขนาดได้

  8. ตัวอย่างอาร์เรย์ 3 มิติ

  9. ตัวอย่างอาร์เรย์ที่เปลี่ยนแปลงขนาดได้ตัวอย่างอาร์เรย์ที่เปลี่ยนแปลงขนาดได้

  10. การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์ • การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์ จะต้องเริ่มต้นด้วยชื่ออาร์เรย์และตามด้วยเลขลำดับ (Position Number) กำกับไว้ • ภาษา C หรือ JAVA หมายเลขลำดับจะเริ่มต้นที่หมายเลข 0 ในขณะที่ภาษา FORTRAN จะเริ่มต้นด้วยหมายเลข 1 • การอ้างอิงสมาชิกในอาร์เรย์สามารถเข้าถึงได้โดยตรง จึงรับประกันได้ว่าการเข้าถึงด้วยการอ่านหรือการบันทึกข้อมูลในอาร์เรย์จะมีเวลาคงที่

  11. เปรียบเทียบการอ้างอิงสมาชิกในแถวลำดับเปรียบเทียบการอ้างอิงสมาชิกในแถวลำดับ

  12. ขอบเขตของอาร์เรย์ • เลขดัชนีในอาร์เรย์ประกอบไปด้วยช่วงขอบเขตของค่า ซึ่งประกอบด้วยขอบเขตล่างสุด (Lower Bound) และขอบเขตบนสุด (Upper Bound) • ภาษา C, C++, C#, JAVA ถูกกำหนดขอบเขตล่างสุดท่ากับ 0 • ภาษา FORTRAN ถูกกำหนดขอบเขตล่างสุดเท่ากับ 1 • ภาษา ADA, PL/1, PASCAL สามารถกำหนดขอบเขตล่างสุดและขอบเขตบนสุดของอาร์เรย์ได้ ซึ่งรวมถึงสามารถกำหนดขอบเขตค่าติดลบได้อีกด้วย

  13. ตัวอย่างอาร์เรย์ที่แสดงขอบเขตตัวอย่างอาร์เรย์ที่แสดงขอบเขต • จำนวนสมาชิก = U – L + 1 • โดยที่ U = ขอบเขตบนสุด (Upper Bound) L = ขอบเขตล่างสุด (Lower Bound)

  14. สูตรการหาจำนวนสมาชิกของอาร์เรย์ 2 มิติ • จำนวนสมาชิก = (U1 - L1 + 1) x (U2 – L2 + 1) • โดยที่ U1 = ขอบเขตบนสุดของแถว L1 = ขอบเขตล่างสุดของแถว U2 = ขอบเขตบนสุดของคอลัมน์ L2 = ขอบเขตล่างสุดของคอลัมน์

  15. การจัดเก็บอาร์เรย์ในหน่วยความจำการจัดเก็บอาร์เรย์ในหน่วยความจำ • อาร์เรย์ที่จัดเก็บอยู่ในหน่วยความจำคอมพิวเตอร์จะมีลักษณะเป็นลำดับต่อเนื่องกัน • ใช้เนื้อที่ในการจัดเก็บข้อมูลสมาชิกของแต่ละตัวในขนาดเท่าๆ กัน • สมาชิกในอาร์เรย์ทุกตัวต้องเป็นข้อมูลชนิดเดียวกัน (Homogenous Elements) • เข้าถึงข้อมูลทุกตำแหน่งในอาร์เรย์ได้โดยตรง และใช้เวลาเท่ากัน

  16. การจัดเก็บอาร์เรย์ 1 มิติ ในหน่วยความจำ • โครงสร้างข้อมูลอาร์เรย์ 1 มิติ จะจัดเก็บข้อมูลในลักษณะต่อเนื่องกันเป็นแถว ซึ่งอาจนำเสนอในมุมมองแบบแนวนอนหรือแนวตั้งก็ได้ • ArrayName[L:U] • ตัวอย่างการประกาศอาร์เรย์ในภาษา C • int a[20]; • a[0], a[1], a[2], a[3], … , a[19]

  17. อาร์เรย์ 1 มิติในหน่วยความจำ • LOC(a[i]) = B +w(i-L)

  18. การจัดเก็บอาร์เรย์ 2 มิติ ในหน่วยความจำ • โครงสร้างอาร์เรย์สองมิติมีรูปแบบตารางที่ประกอบด้วยแถว (Row) และคอลัมน์ (Column) ในเชิงคณิตศาสตร์ก็คือแมทริกซ์ (Matrix) • ArrayName[L1 : U1 , L2 : U2] • ตัวอย่างสรุปยอดขายของแต่ละไตรมาส ตั้งแต่ปี 2548-2550

  19. อาร์เรย์ 2 มิติในหน่วยความจำ • การจัดเก็บด้วยการเรียงแถวเป็นหลัก • การจัดเก็บด้วยการเรียงคอลัมน์เป็นหลัก • สมมติกำหนดให้ K[4,3] หรือ K[0:3,0:2] ด้วยภาษา C ดังนี้ • int K[4][3]; • กำหนดให้อาร์เรย์ K =

  20. อาร์เรย์ 2 มิติในหน่วยความจำแบบเรียงแถวเป็นหลัก • LOC(K[i,j]) = B + w[C(i-L1)+(j-L2)]

  21. อาร์เรย์ 2 มิติในหน่วยความจำแบบเรียงคอลัมน์เป็นหลัก • LOC(K[i,j]) = B + w[R(j-L1)+(i-L2)]

  22. การจัดเก็บอาร์เรย์ 3 มิติ ในหน่วยความจำ • อาร์เรย์สามมิติก็คือการนำอาร์เรย์สองมิติมาเรียงซ้อนกันหลายๆ ชั้น (Page) ทำให้นอกจากจะมีแถวและคอลัมน์แล้วก็จะมีความลึกเพิ่มขึ้นอีก • ArrayName[L1 : U1 , L2 : U2, L3: U3] • ตัวอย่างกำหนดให้ S[3,4,5] หรือ S[0:2, 0:3, 0:4] ด้วยภาษา C • int S[3] [4] [5]; • S[0,0,0], S[0,0,1], S[i,j,k], … , S[2,3,4]

  23. สูตรการหาจำนวนสมาชิกของอาร์เรย์ 3 มิติ • จำนวนสมาชิก=(U1 - L1 + 1)x(U2 – L2 + 1)x(U3 – L3 + 1) หรือ • จำนวนสมาชิก = P x R x C • โดยที่ P = ชั้น (Page) R = แถว (Row) C = คอลัมน์ (Column)

  24. อาร์เรย์ S แบบสามมิติ ขนาด 3x4x5

  25. อาร์เรย์ 3 มิติในหน่วยความจำแบบเรียงแถวเป็นหลัก • LOC(S[i,j,k]) = B + [w x R x C(i-L1)] + [w x C(j-L2)] + [w(k-L3)]

  26. อาร์เรย์ 3 มิติในหน่วยความจำแบบเรียงแถวเป็นหลัก

  27. ตัวอย่างการใช้งานอาร์เรย์ตัวอย่างการใช้งานอาร์เรย์ • ตัวอย่างการใช้งานอาร์เรย์ขนาดคงที่ (TestArray) • ตัวอย่างการใช้งานอาร์เรย์ที่เปลี่ยนแปลงขนาดได้ (TestDynamicArray) • พิมพ์และรันโปรแกรมผลลัพธ์ • นำเสนอหน้าชั้นเรียน

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

  29. สรุปท้ายบทที่ 3 • อาร์เรย์ หรือแถวลำดับ คือการรวมกลุ่มของตัวแปรที่สามารถใช้ตัวแปรชื่อเดียวกันแทนข้อมูลสมาชิกได้หลายๆ ตัวในคราวเดียวกัน ด้วยการใช้เลขดัชนีเป็นตัวอ้างอิงตำแหน่งสมาชิก • คุณสมบัติของอาร์เรย์ • อาร์เรย์เป็นตัวแทนกลุ่มของข้อมูลที่มีความสัมพันธ์กัน • สมาชิกในอาร์เรย์จะมีคุณสมบัติหรือมีชนิดข้อมูลที่เหมือนกันทั้งหมด • ขนาดของอาร์เรย์จะมีขนาดคงที่เมื่อได้ถูกสร้างขึ้น • อาร์เรย์เป็นโครงสร้างข้อมูลที่ผู้ใช้สามารถอ้างอิงเพื่อเข้าถึงข้อมูลที่ต้องการได้ทันที

  30. สรุปท้ายบทที่ 3 • เลขดัชนีในอาร์เรย์ประกอบด้วยช่วงขอบเขตของค่า • ขอบเขตล่างสุด • ขอบเขตบนสุด • โครงสร้างของอาร์เรย์ 1 มิติ คือ เป็นแถวลำดับต่อเนื่องกัน • โครงสร้างของอาร์เรย์ 2 มิติ คือ เป็นรูปแบบตาราง หรือแมทริกซ์ • โครงสร้างของอาร์เรย์ 3 มิติ คือ นำเอาอาร์เรย์ 2 มิติ มาเรียงซ้อนกัน โดยมีความลึกเพิ่มขึ้น

  31. Any Questions ?

More Related