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

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

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

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


งานนำเสนอเรื่อง: "Problems ถ้าต้องเก็บข้อมูลความถี่ของคะแนน ของนิสิตในแต่ละช่วงคะแนน เช่น 100 คะแนน 1 คน 99 คะแนน 0 คน 98 คะแนน 5 คน … 0 คะแนน 1 คน."— ใบสำเนางานนำเสนอ:

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

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

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

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

5 Solving     for (int i=0; i<numStudentsInClass; i++) {         // รับค่าคะแนนจากผู้ใช้         percentage = input.nextInt();         // เงื่อนไขการนับ         switch(percentage) {             case 1:    counter1++; break;             case 2:    counter2++; break;             case 3:    counter3++; break;                         case 100:    counter100++; break;         }     }

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

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

8 ลำดับที่ในอาร์เรย์ 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].getName());

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 การวนลูปเพื่อเขียน/อ่านข้อมูล
รูปแบบ 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<numStudentsInClass; i++) {     // Get the percentage from the user     percentage = input.nextInt();     // Now update the appropriate counter     counter[percentage]++; }

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

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

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

20 คลาส Arrays

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

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

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

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

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

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

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

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

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

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

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

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 แต่ละแถวของอาร์เรย์สองมิติไม่จำเป็นต้องมีขนาดเท่ากัน

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

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

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

38 END!


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

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


Ads by Google