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

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

Array.

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


งานนำเสนอเรื่อง: "Array."— ใบสำเนางานนำเสนอ:

1 Array

2 พิจารณา Data Types ปกติดังนี้
ความต้องการ-ใช้ Array เมื่อใด(ฟังอธิบายประกอบ) พิจารณา Data Types ปกติดังนี้ โดยปกติการประกาศตัวแปรพื้นฐาน(primitive data types) นั้นเราจะสามารถจะเก็บค่าของตัวแปรดังกล่าวได้เพียงหนึ่งค่าเท่านั้น ณ ช่วงเวลาใดเวลาหนึ่ง เช่น int x1,x2,x3; x1 = 10; x2= 5; x3 = 6;

3 สมมุติเราเขียนโปรแกรมเพื่อรับตัวเลข 5 ตัว จากนั้นหาผลรวมของตัวเลข 5 ตัวแล้วแสดงยอดรวมและแสดงค่าของตัวแปรออกมาโดยเริ่มจากตัวสุดท้าย ถึงตัวแรก import javax.swing.JOptionPane; class DataTypeProblem { public static void main (String args[ ] ) { int num1,num2,num3,num4,num5,sum; String str; str = JOptionPane.showInputDialog("enter Number 1: "); num1 = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number 2: "); num2 = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number 3: "); num3 = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number 4: "); num4 = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number 5: "); num5 = Integer.parseInt(str); sum = num1+num2+num3+num4+num5; System.out.println("The Sum of Number " + sum); System.out.println("Number 1 "+num1+"Number 2 "+num2+"Number 3 "+num3+"Number 4 "+num4+"Number 5 "+num5); System.exit(0); }}

4 จากโปรแกรม DataTypeProblem ปัญหาคือ
สมมุติว่าถ้าต้องการรับค่าเข้ามา 100 ครั้งและต้องการเก็บค่าเหล่านั้นไว้ใช้งาน ไม่ใช่ 5 ค่า ต้องประกาศตัวแปรถึง 100 ตัวค่าต่างๆ จึงสามารถแยกเก็บและนำมาใช้ได้และยังต้องเขียนโปรแกรมในการรับข้อมูล 100 ครั้ง ลงตัวแปรทั้งหมด ข้อสังเกตุ ตัวแปรทั้ง 5 ตัวจำเป็นต้องประกาศเนื่องจากเราต้องการจะแสดงผลของทั้ง 5 ตัว ทุกตัวแปรจะมีชื่อตัวแปรเหมือนกันต่างกันที่ตัวอักษรตัวสุดท้าย ทุกตัวแปรจะเป็นประเภทเดียวกันคือ int

5 จากปัญหาดังกล่าวแก้ไขได้ด้วยการใช้ตัวแปรแบบ Array
Why Do We Need Arrays? (don’t Used arrays): (Used arrays): int num1; int num2; int num3; int num4; int num5; int num[] = new int[5];

6 What is an Array ? array คือ โครงสร้างข้อมูลที่นำตัวแปรมาวางเรียงต่อกันในหน่วยความจำ และเรียกตัวแปรแต่ละตัวว่า สมาชิกของ array (elements) ซึ่งมีการกำหนดขนาดที่แน่นอนของจำนวนสมาชิก สมาชิกทุกตัวจะเป็นประเภทเดียวกัน การเข้าถึงข้อมูลสามารถอ้างอิงโดยใช้ ดัชนี(index) ซึ่งเป็นตัวเลขจำนวนเต็มเท่านั้น 1.39 1.69 1.74 0.0 c is array’s name c[0] c[1] c[2] c[3]

7 หรืออาจกล่าวได้ Array เป็นกลุ่มของตัวแปร โดยที่สมาชิกแต่ละตัวของกลุ่มมีชนิดข้อมูลแบบเดียวกันทุกตัว อะเรย์ในจาวาถือว่าเป็น Object ที่ทำหน้าที่เป็นตัวอ้างอิงไปยังสมาชิก (reference type)

8 ภาพจินตนาการเรื่องเกี่ยวกับ Array
ที่มนุษย์มองเห็น ภาพจินตนาการเรื่องเกี่ยวกับ Array ใน Memory ของเครื่องคอมพิวเตอร์ 50 40 10 20 30 One-Dimension 50 40 10 20 30 1 2 3 4 One-Dimension

9 ชนิดของ ARRAY Arrays One-Dimensional Arrays Two Dimension
ArraysTree-Dimensional

10 One-Dimensional Arrays
1. dataType[ ] arrayName; arrayName = new dataType[intExp] 2. dataType[ ] arrayName = new dataType[intExp] 3. dataType[ ] arrayName1, arrayName2; หรือ ใช้รูปแบบอย่างง่ายดังนี้ ชนิดข้อมูล ชื่อตัวแปรอาร์เรย์[ ] = new ชนิดข้อมูล [ขนาดอาร์เรย์]; เช่น int num [ ] = new int[5];

11 การเข้าถึงข้อมูลใน array:
arrayName[indexExp]

12 การประกาศและสร้าง array
Array จะถูกสร้างโดยอัตโนมัติในหน่วยความจำโดยใช้ key word คือ new เช่น int c[] = new int[ 5 ]; หรือ int c[]; // declare array variable c = new int[ 5 ]; // create array เราสามารถสร้าง array ที่เป็น object ได้ String b[] = new String[ 100 ];

13 Array num: int[] num = new int[5];

14 อะเรย์ (Array) ดัชนี จะเริ่มที่ 0 ดัชนี = 0,1,2,…,n-1
องค์ประกอบของอะเรย์ A[0] 10 A[1] 15 A[2] 70 A[3] 50 A[4] 35 ชื่อของ อะเรย์ A.Length แทนจำนวนสมาชิกของอะเรย์ A ดัชนี จะเริ่มที่ 0 ดัชนี = 0,1,2,…,n-1 เมื่อ n คือจำนวนสมาชิก ดัชนี ค่าที่เก็บในอะเรย์

15 อะเรย์ (Array) การอ้างถึงสมาชิกใดๆ ของอะเรย์
A[0] หมายถึงการอ้างถึงค่าของสมาชิกของอะเรย์ A ลำดับที่ 0 A[i] หมายถึงการอ้างถึงค่าของสมาชิกของอะเรย์ A ลำดับที่ i A[i+1] หมายถึงการอ้างถึงค่าของสมาชิกของอะเรย์ A ลำดับที่ i+1

16 การประกาศ และการสร้างอะเรย์
การสร้างอะเรย์ใน Java ต้องมี new เป็นตัวสร้าง รูปแบบง่ายๆ ดังนี้ int A[] = new int[5]; ซึ่งมีความหมายเหมือนกับ int A[]; // declares the array variable A = new int[5]; //create the array เรียก A ว่าเป็น Array reference Int[5] เป็น Array ที่ประกอบด้วยสมาชิก 5 ตัว แต่ละตัว มีชนิดเป็น int

17 ตัวอย่างการประกาศตัวแปรอะเรย์
String [] b = new String[4]; b[0] = “line0 “; b[1] = “line1”; b[2] = “line2”; b[3] = “line3”; double [] data1,data2; data1 = new int[5]; data2 = new int[3]; double [] array1 = new double[10], array2= new double[20];

18 int num[ ] = new int[5]; import javax.swing.JOptionPane;
class ArrayDefine1 { public static void main (String args[ ] ) { int sum =0, i=0;String str; int num[ ] = new int[5]; str = JOptionPane.showInputDialog("enter Number no:"+(i+1)); num[0] = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number no:"+(i+2)); num[1 ]= Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number no:"+(i+3)); num[2] = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number no:"+(i+4)); num[3] = Integer.parseInt(str); str = JOptionPane.showInputDialog("enter Number no:"+(i+5)); num[4] = Integer.parseInt(str); sum = sum+num[0]+num[1]+num[2]+num[3]+num[4]; System.out.println("The Sum of Number " + sum); System.exit(0); }

19 Arrays ไม่จำเป็นต้องระบุขนาดของ array ในขณะที่ compile โปรแกรมแต่จะต้องกำหนดขนาดในขณะที่รันโปรแกรม(run-time) arrayName.length จะทำให้ทราบขนาดของ array ว่ามีขนาดเท่าใด สามารถใช้ Loops ในการเข้าถึงข้อมูลใน array

20 ตัวอย่างโปรแกรม รับค่าขนาดของ array ในขณะที่รันโปรแกรม
int sum =0, i=0, arraySize=0; String data= JOptionPane.showInputDialog ("Enter the size of the array: "); arraySize = Integer.parseInt(data); int num[] = new int[arraySize];

21 ขนาดของ Array int[ ] list = {10, 20, 30, 40, 50, 60}; list.length = 6
int a[]; a = new int[15]; a.length = ?

22 การกำหนดค่าให้กับ array โดยใช้ for
int[ ] list = {10, 20, 30, 40, 50, 60}; list.length = 6 for(index = 0; index < list.length; index++) { statement ……… }

23 import javax.swing.JOptionPane;
class ArrayDefine2 { public static void main (String args[ ] ) { int sum =0, i=0; int num[ ] = new int[5]; for ( i=0;i< 5;i++) { String str = JOptionPane.showInputDialog("enter Number no:"+(i+1)); num[i] = Integer.parseInt(str); sum = sum+num[i]; } System.out.println("The Sum of Number " + sum); System.exit(0); ตัวอย่างปฏิบัติ

24 ถึงที่นี่ หมู่ 01 IT อังคารเช้า
import javax.swing.JOptionPane; class ArrayDefine3 { public static void main (String args[ ] ) { int sum =0, i=0, arraySize=0; String data= JOptionPane.showInputDialog("Enter the size of the array: "); arraySize = Integer.parseInt(data); int num[] = new int[arraySize]; for ( i=0;i< num.length;i++) { String str = JOptionPane.showInputDialog("enter Number no:"+(i+1)); num[i] = Integer.parseInt(str); sum = sum+num[i]; } System.out.println("The Sum of Number " + sum); System.exit(0); ถึงที่นี่ หมู่ 01 IT อังคารเช้า

25 /** Array1_1.java Assign some values to array of ints */ class Array1_1 { public static void main(String[] args) { int[] list; //declare array of int //allocate space for 10 ints //assign values at index 5, 3, and 9 list = new int[10]; list[5] = 8; list[3] = 2; list[9] = 4; for(int i = 0; i <=9 ; i++) System.out.println("list[" + i +"] = " + list[i]); }

26 /** Array1_2.java Using array to store integers */ class Array1_2 { public static void main(String[] args) { int[] list; //declare array of int list = new int[10]; //allocate space for 10 ints for(int i = 0; i < list.length; i++) System.out.println("list[" + i +"] = " + list[i]); }

27 import javax.swing.JOptionPane;
public class Array1_3 { public static void main(String[] args) { int n,sum ; int student_score[ ] = new int[5]; sum=0; for (n = 0; n <= 4; n++) { String data = JOptionPane.showInputDialog(null,"Enter Score: "); student_score[n] = Integer.parseInt(data); sum+=student_score[n]; } System.exit(0);

28 import javax.swing.JOptionPane;
public class Array1_4 { public static void main(String[] args) { int n,sum ; int student_score[ ] = new int[5]; sum=0; for (n = 0; n <= 4; n++) { String data = JOptionPane.showInputDialog(null,"Enter Score: "); student_score[n] = Integer.parseInt(data); sum+=student_score[n]; } { System.out.println(student_score[n]); System.out.println("SUM = "+ sum); System.exit(0);

29 Exercise1: Array 1 Dimensions
เขียนโปรแกรมเพื่อเก็บข้อมูลในลักษณะของอาร์เรย์ ขนาด 50 ห้อง โดยเก็บข้อมูลประเภท double กำหนดค่าทั้ง 50 ห้องมีค่าเป็นสองเท่าของ หมายเลขห้อง (index) แสดงผลข้อมูลภายในอาร์เรย์ 10 ห้อง ต่อ 1 บรรทัดจนครบทั้งหมด โปรแกรมชื่อ TestArray1.java

30 Array 2 dimension 2 มิติ ชนิดข้อมูล ตัวแปร[ ][ ] = new ชนิดข้อมูล[element1][element2];

31 ภาพจินตนาการเรื่องเกี่ยวกับ Array
ที่มนุษย์มองเห็น ภาพจินตนาการเรื่องเกี่ยวกับ Array ใน Memory ของเครื่องคอมพิวเตอร์ 16 3 5 10 9 1,1 1,2 2,1 2,2 3,1 6 3,2 4 4,1 15 4,2 Two-Dimension 16 3 5 10 9 6 4 15 Column 1 2 Row 1 Row 2 Row 3 Row 4 Two-Dimension

32 2- dimension Array Column 1 Column 2 Column 3 Column 4 Row 1 16 3 2 13 Row 2 5 10 11 8 Row 3 9 6 7 12 Row 4 4 15 14 1 SUM = 34

33 Arrays char student[] = new char[10][20]; student student[0][0] Columns 1 2 3 19 student[0] student[1] student[2] . . . . . . . . . . Rows Student[9]

34 Array Two Dimension ตัวแปรชนิด 2 มิติ (Two Dimension) หมายถึง ตัวแปรที่เก็บข้อมูลเป็นตารางซึ่งมีลักษณะข้อมูลเป็นแถว เป็นคอลัมน์ ดังนั้นตัวแปรชุดแบบนี้จะมีตัวเลขแสดงค่าตำแหน่ง 2 ตัว คือตัวหนึ่งจะบอกตำแหน่งของแถวอีกตัวหนึ่งจะบอกตำแหน่งของคอลัมน์ รูปแบบ type array-name [ i ][ j ]; array-name หมายถึงชื่อตัวแปรที่ต้องการประกาศชนิดว่าเป็นตัวแปรชุด i หมายถึงตัวเลขจำนวนเต็มที่แสดงตำแหน่งของแถว ซึ่งเริ่มจากศูนย์เสมอ j หมายถึงตัวเลขจำนวนเต็มที่แสดงตำแหน่งของคอลัมน์ ซึ่งเริ่มจากศูนย์เสมอ

35 Two-Dimensional Arrays
dataType[ ][ ] arrayName = new dataType[intExp1][intExp2]; การเข้าถึงสมาชิกใน array 2 มิติ: arrayName[indexExp1][indexExp2]; intExp1, intExp2 >= 0 indexExp1 = row position indexExp2 = column position ชนิดตัวแปร ตัวแปร[ ][ ] = new ชนิดข้อมูล [element1][element2];

36 Two-Dimensional Arrays
MyNumber ชื่อ Array 11 9 45 12 13 76 90 34 4 1 54 74 7 1 2 Row No. MyNumber แถว 1 คอลัมน์ 4 มีค่า 1 MyNumber แถว 2 คอลัมน์ 3 มีค่า 11 Column No. เวลาเราจะอ้างถึงข้อมูลใน Array 2 มิติเราจะต้องบอก ชื่อของ Array, หมายเลขแถว และหมายเลขคอลัมน์

37 แสดงการเก็บข้อมูลใน array สองมิติ

38 double[][]sales = new double[10][5];
Two-Dimensional Arrays double[][]sales = new double[10][5];

39 Accessing Two-Dimensional Array Components

40 ตัวอย่าง การสร้าง array แบบ 2 มิติ ซึ่งกำหนดค่าให้กับสมาชิกของ array ตั้งแต่เริ่มประกาศตัวแปร
class AutoMatrix{ public static void main(String args[]){ double m [ ] [ ] = { {0*0, 1*0, 2*0, 3*0}, {0*1, 1*1, 2*1, 3*1}, {0*2, 1*2, 2*2, 3*2}, {0*3, 1*3, 2*3, 3*3} }; System.out.println(m[0][0] +” “+ m[0][1] +“ “+ m[0][2] +“ “+ m[0][3]); System.out.println(m[1][0] +” “+ m[1][1] +“ “+ m[1][2] +“ “+ m[1][3]); System.out.println(m[2][0] +” “+ m[2][1] +“ “+ m[2][2] +“ “+ m[2][3]); System.out.println(m[3][0] +” “+ m[3][1] +“ “+ m[3][2] +“ “+ m[3][3]); }

41 import javax.swing.JOptionPane;
public class Array2_1 { public static void main(String[] args) { int row,col,sum ; int student_score[ ][ ] = new int[5][2]; sum=0; for (row = 0; row <= 4;row++) { for ( col= 0; col <= 1; col++) { String data = JOptionPane.showInputDialog(null,"Enter Score[ "+row+ " ] [" +col+" ] ="); student_score[row][col] = Integer.parseInt(data); sum+=student_score[row][col]; } } for (row = 0; row <= 4; row++) { for ( col = 0;col<=1;col++ ) System.out.println(student_score[row][col]); } System.out.println("SUM = "+ sum); System.exit(0); } }

42 [3] [4] [2] Array 3 มิติ int numsales[ ][ ][ ] = new int[3][4][2]; 2 HIGH 1 1 ROW 2 3 1 2 3 4 col

43 import javax.swing.JOptionPane;
public class Array3_1 { public static void main(String[] args) { int row,col,high,sum=0 ; int student_score[ ][ ][ ]= new int[3][4][2]; for (row = 0; row <= 2;row++) { for ( col= 0; col <= 3; col++) { for ( high = 0; high <= 1; high++) { String data = JOptionPane.showInputDialog(null,"Enter Score[ "+row+ " ] [" +col+" ] [ "+high+ " ] ="); student_score[row][col][high] = Integer.parseInt(data); sum+=student_score[row][col][high]; } } } for (row = 0; row <= 4; row++) { for ( col = 0;col<=1;col++ ) System.out.println(student_score[row][col] [high] );} } } System.out.println("SUM = "+ sum); System.exit(0); } }

44 สรุปการประกาศ ตัวแปร Array อย่างง่าย
ชนิดข้อมูล ตัวแปร[ ] = new ชนิดข้อมูล [element]; 1 มิติ int ตัวแปร[ ] = new int[element]; 2 มิติ ชนิดข้อมูล ตัวแปร[ ][ ] = new ชนิดข้อมูล [element1][element2]; 3 มิติ ชนิดข้อมูล ตัวแปร[ ][ ][ ] = new ชนิดข้อมูล [element1][element2][element3];

45 กำหนดค่าทั้ง 25 ห้องแรกมีค่าเป็นสองเท่าของ หมายเลขห้อง (index)
ฝึกปฏิบัติ Exercise2: Array 1 Dimensions เขียนโปรแกรมเพื่อเก็บข้อมูลในลักษณะของอาร์เรย์ ขนาด 50 ห้อง โดยเก็บข้อมูลประเภท double กำหนดค่าทั้ง 25 ห้องแรกมีค่าเป็นสองเท่าของ หมายเลขห้อง (index) กำหนดค่า 25 ห้องที่เหลือ ให้แต่ละห้องมีค่าเป็น สามเท่าของค่าหมายเลขห้อง แสดงผลข้อมูลภายในอาร์เรย์ 10 ห้อง ต่อ 1 บรรทัดจนครบทั้งหมด โปรแกรมชื่อ TestArray2.java

46 Exercise3: Array 1 Dimensions
ฝึกปฏิบัติ เขียนโปรแกรมเพื่อเก็บข้อมูลในลักษณะของอาร์เรย์ ขนาด 10 ห้อง โดยเก็บข้อมูลประเภท int กำหนดข้อมูลเป็น 57, 66, 12, 43, 89, 24, 8, 26, 48, 99 หาค่าต่ำสุดของข้อมูลภายในอาร์เรย์ พร้อมแสดงผล แสดงผลข้อมูลภายในอาร์เรย์แบบย้อนกลับ เช่น โปรแกรมชื่อ TestArray3.java

47 ให้เขียนโปรแกรมชื่อ workshops5.java
ฝึกปฏิบัติ ให้เขียนโปรแกรมชื่อ workshops5.java สมมุติให้บริษัทขายอุปกรณ์การ์ดจอ(VGA Card)คอมพิวเตอร์แห่งหนึ่งมีพนักงานขาย 20 คนแต่ละคนมีเขตพื้นที่การขาย 3 พื้นที่การขาย(1=กรุงเทพ 2=นนทบุรี 3= สมุทรปราการ) แต่ละเขตการขายมีสินค้า 2 ประเภท(1= เกรดคุณภาพดี 2= เกรดปานกลาง) ให้เขียนโปรแกรมรับจำนวนสินค้าที่พนักงานขายทั้งหมดขายได้ทุกๆพื้นที่การขายและทุกคุณภาพสินค้าและแสดงจำนวนสินค้าทั้งหมดของพนักงานขายทั้ง 20 คนทุกพื้นที่การขาย ทุกประเภทสินค้าออกทางจอภาพ หมายเหตุ. ให้กำหนดใช้ array 3 มิติ

48 การบ้านส่งคราวหน้า The End เช็คชื่อ

49 ได้คะแนน >= 9 ได้เกรด A ได้คะแนน >= 7 ได้เกรด B
ผลการทำข้อสอบปลายภาคของนักศึกษาคณะอุตศาสตร์สาหกรรมแบบ true-false โดยสมมติให้มีการเก็บข้อมูลของนักศึกษาไว้ดังตารางด้านขวาและด้านขวาเป็นคำเฉลยที่ถูกต้อง id answer 0080 FTFFTFTTFT 0340 FTFTFTTTFF 0341 FTTFTTTTFT 0401 FFTTFTTFTT 0462 TFFTTTFFTF คำเฉลยที่ถูกต้อง FTFFTFFTFT work1_6.java ให้เขียนโปรแกรมเพื่ออ่านคำเฉลยที่ถูกต้องไปไว้ในหน่วยความจำ ลำดับต่อไปอ่านคำตอบของนักศึกษาแต่ละคนไปตรวจกับคำเฉลยที่ถูกต้องแล้วสรุปคะแนนที่ได้ไว้ที่อะเรย์ สุดท้ายให้ตัดเกรดของนักศึกษา โดยมีเงื่อนไข เก็บข้อมูลรหัสนักศึกษา, คะแนน,เกรดไว้ที่โครงสร้างแบบอะเรย์หนึ่งมิติไว้ในหน่วยความจำ และแสดงออกทางหน้าจอ ได้คะแนน >= 9 ได้เกรด A ได้คะแนน >= 7 ได้เกรด B ได้คะแนน >= 5 ได้เกรด C ได้คะแนน >= 3 ได้เกรด D ได้คะแนน <3 ได้เกรด F Id score grade 0080 9 A 0340 5 C 0341 7 B 0401 2 F 0462 4 D


ดาวน์โหลด ppt Array.

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


Ads by Google