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

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

Lecture2 Array อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา 1.

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


งานนำเสนอเรื่อง: "Lecture2 Array อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา 1."— ใบสำเนางานนำเสนอ:

1 Lecture2 Array อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา 1

2 Problems ถ้าต้องเก็บข้อมูลความถี่ของคะแนน ของนิสิตในแต่ละช่วงคะแนน เช่น ◦ 100 คะแนน 1 คน ◦ 99 คะแนน 0 คน ◦ 98 คะแนน 5 คน ◦ … ◦ 0 คะแนน 1 คน

3 การใช้ Array อาจจะต้องสร้างตัวแปร counter จำนวน 100 ตัว เพื่อใช้นับจำนวนของแต่ละคะแนน int counter1, counter2, counter3,....., counter10; int counter11, counter12, counter13,..., counter20; int counter21, counter22, counter23,....., counter30; int counter91, counter92, counter93,..., counter100; int percentage; int counter1, counter2, counter3,....., counter10; int counter11, counter12, counter13,..., counter20; int counter21, counter22, counter23,....., counter30; int counter91, counter92, counter93,..., counter100; int percentage;

4 4 Array ตัวแปรแบบอาร์เรย์ (Array) หรือตัวแปรแถว ลำดับ หมายถึงตัวแปรซึ่งมีค่าได้หลายค่าโดยใช้ ชื่ออ้างอิงเพียงชื่อเดียว ด้วยการใช้หมายเลข ลำดับเป็นตัวจำแนกความแตกต่างของค่าตัวแปร แต่ละตัว

5 Solving for (int i=0; i

6 6 Variables รูปแบบ ◦ ชื่อตัวแปรอาร์เรย์ = new ชนิดข้อมูล [ ขนาดของอาร์เรย์ ] ตัวอย่าง int[] scores; scores = new int[50];

7 7 อีกวิธีในการสร้างอาร์เรย์ 1. ประกาศ ให้ตัวแปรชื่อ scores เป็นอาร์เรย์ ของ int int[] scores; 2. จองพื้นที่ ใช้คำสั่ง new พร้อมกับระบุว่า ต้องการจองพื้นที่เก็บตัวแปรกี่ตัว scores = new int[3]; 3. กำหนดค่า ตัวแปรแต่ละตัวในอาร์เรย์ scores[0] = 30; scores[1] = 50; scores[2] = 85;

8 8 ลำดับที่ในอาร์เรย์ หรือ int[] sc= {12,3,43,27,56}; int[] sc; sc = new int[5];

9 คุณสมบัติของ Array ของ Java indexed คือสามารถเข้าถึงสมาชิก (Element) แต่ละตัวได้โดยอาศัย index หรือ ดัชนี ซึ่งจะ เป็นตัวเลข มี 0 เป็นค่าเริ่มต้น fixed size เมื่อสร้าง array แล้ว จะไม่สามารถ เพิ่ม หรือ ลบ สมาชิก strongly typed and homogeneous นั่นคือ สมาชิกทุกตัวต้องมีชนิดข้อมูลเดียวกัน bounds-checked ถ้าเราพยายาม access สมาชิกที่เกินขนาดของ array แล้ว java จะ หยุดคำสั่งนั้น

10 ค่าเริ่มต้นของ elements เมื่อสร้าง array ใหม่ ข้อมูลภายใน array จะยังไม่มีข้อมูล ดังนั้น java จึงกำหนดค่า default เป็นค่าเริ่มต้นของ elements แต่ ละชนิดดังนี้ ◦ ตัวเลข = 0 ◦ boolean = false ◦ reference = null ◦ character = null

11 การกำหนดค่า ใช้เครื่องหมายปีกกาในการกำหนดค่าข้อมูล ให้กับสมาชิกใน Array int[] ages = {34, 12, 45}; double[] heights = {4.5, 23.6, , 78.2, 61.5}; boolean[] tired = {true, false, false, true}; String[] names = {"Bill","Jennifer","Joe"}; char vowels[] = {'a', 'e', 'i', 'o', 'u'};

12 Array of objects การเข้าถึงสมาชิกใน Array แบบ Object จะต้องระมัดระวัง ดังนี้ ตัวอย่างนี้ customers[0] จะมีค่าเป็น null การเรียก customers[0].getName() จึง เกิด error Customer[] customers = new Customer[1000]; System.out.println(customers[0].getName());

13 Array of objects: ที่ถูกต้องจะต้อง Assign ค่าก่อนการ เรียกใช้ Customer[] customers = new Customer[1000]; customers[0] = new Customer("Jim"); System.out.println(customers[0].getNa me());

14 Size of Array เราสามารถทราบขนาดของ array ด้วยการ เรียกใช้ ตัวแปร length ตัวแปร length ของ array ไม่สามารถเปลี่ยน ค่าได้ double[] heights = {4.5, 23.6, , 78.2, 61.5}; String[] names = {"Bill","Jennifer","Joe"}; System.out.println(heights.length); // prints 5 System.out.println(names.length); // prints 3 names[1] = null; // erases Jennifer System.out.println(names.length); // still prints 3

15 15 การวนลูปเพื่อเขียน / อ่าน ข้อมูล รูปแบบ for ( ชนิดข้อมูลที่เก็บในอาร์เรย์ ตัวแปร : อาร์เรย์ ) { // คำสั่งในลูปที่ใช้ ตัวแปร } ตัวอย่าง double[] scores = { 30, 50, 85, 10, 45 }; for( double s : scores) { System.out.println(s); }

16 Solving using Array จากปัญหาการหาความถี่คะแนน สามารถ ใช้ array ได้ดังนี้ int counter[] = new int[101]; int percentage; for (int i=0; i

17 17 การอ้างเกินขอบเขต public class TestOutOfBound { public static void main(String[] args) { int[] scores = { 30, 50, 85, 10, 45 }; scores[5] = 10; }

18 18 Array of String String[] test = new String[3];  test[0] = "Hello";  test[1] = "Java";  test[2] = "World";

19 19 Array of String String[] test = { "Hello", "Java", "World"}; StringBuffer[] sb = { new StringBuffer("Hello"), new StringBuffer("Java"), new StringBuffer("World") };

20 20 คลาส Arrays

21 21 เมธอดในคลาส java.util.Arrays sort() ใช้เพื่อเรียงลำดับข้อมูลในอาร์เรย์ binarySearch() ใช้ค้นหาข้อมูลใน อาร์เรย์ ◦ ผลของการค้นหาคืออินเด็กซ์ ( ตำแหน่ง ) ในอาร์เรย์ ◦ ก่อนที่จะค้นหาเราต้องเรียงลำดับข้อมูล เสียก่อน

22 22 การเรียงจำนวนเต็มโดยใช้คลาส Arrays java.util.Arrays.sort(score);

23 23 ตัวอย่างการเรียงลำดับ จำนวนเต็ม int[] score={45,5,87,13,24}; Arrays.sort(score); หรือ int[] score={45,5,87,13,24}; java.util.Arrays.sort(score);

24 24 การเรียงวัตถุโดยใช้คลาส Arrays {"Jamies", "Amy", "Leo", "James"} import java.util.Arrays;... Arrays.sort(names); {"Amy", "James", "Jamies", "Leo"}

25 25 การเรียงวัตถุโดยใช้คลาส Arrays import java.util.Arrays; public class SortString { public static void main(String[] args) { String[] names = { "Jamies", "Amy", "Leo", "James" }; Arrays.sort(names); System.out.println(Arrays.asList(names)); } พิมพ์ชื่อทั้งหมด ในอาร์เรย์ Import คลาส อาร์เรย์

26 26 การเรียงชื่อภาษาไทย ( แบบผิด ) Arrays.sort(names); วัตถุในคลาส String ไม่รู้จักวิธีการ เปรียบเทียบคำใน ภาษาไทย 555

27 27 การค้นหาโดยใช้คลาส Arrays เมธอด binarySearch( ) ◦ ถ้าพบ จะส่งตำแหน่งที่พบกลับมาให้ ◦ ถ้าไม่พบ จะส่งค่าติดลบมาให้

28 28 ตัวอย่างการค้นหา int[] id = {51, 3, 81, 20, 14}; Arrays.sort(id); int index = Arrays.binarySearch(id, 51); System.out.println(index);

29 29 อาร์เรย์สองมิติ ลักษณะเป็นตาราง

30 30 การสร้างอาร์เรย์สองมิติ รูปแบบ ◦ ชนิดข้อมูล [][] ตัวแปร = { อาร์เรย์แถวแรก, อาร์เรย์แถวที่สอง,... }; ตัวอย่าง int[][] table = { { 1, 2, 3, 4},{ 5, 6, 7, 8}, { 9, 10, 11, 12}};

31 31 การระบุตำแหน่งในอาร์เรย์ สองมิติ Index ตัวแรกจะระบุแถวและ Index ตัวที่ สองจะระบุคอลัมน์ รูปแบบ ◦ อาร์เรย์ [ แถว ][ คอลัมน์ ] ตัวอย่าง ◦ table[1][2]

32 32 การระบุตำแหน่งของตัวแปรใน อาร์เรย์สองมิติ

33 33 การใช้งานอาร์เรย์สองมิติ ประกาศ ◦ int[][] table; จองพื้นที่ ◦ table = new int[3][4]; อ้างถึง ◦ table[0][0] = 3; ◦ table[0][1] = 5; ◦ table[0][2] = 8; ◦ table[0][3] = 7;

34 34 แต่ละแถวของอาร์เรย์สองมิติไม่ จำเป็นต้องมีขนาดเท่ากัน

35 35 ตัวอย่าง int[][] twoD = { { 1, 2, 3}, { 4, 5, 6, 7}, { 8, 9, 10, 11, 12}}; System.out.println(twoD[1][2]);

36 36 อาร์เรย์สามมิติ

37 37 การระบุตำแหน่งในอาร์เรย์ สามมิติ Index ตัวแรกจะแทน แผ่นงาน Index ตัวที่สองจะแทนแถว Index ตัวที่ 3 จะ แทนคอลัมน์ รูปแบบ ◦ อาร์เรย์ [ แผ่น ][ แถว ][ คอลัมน์ ]

38 38 END!


ดาวน์โหลด ppt Lecture2 Array อ. เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา 1.

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


Ads by Google