CS@KKU Java Summer Camp 2011 Day 1 - 3 เรื่อง Array 5 เมษายน 2560 โดย วชิราวุธ ธรรมวิเศษ.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โจทย์ Array 12 มี.ค จงเขียนโปรแกรมเพื่ออ่านข้อมูลเข้าเป็นจำนวนเต็ม 10 จำนวน แล้วหาผลรวมของเลขเหล่านั้น.
Advertisements

Arrays.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
Problems ถ้าต้องเก็บข้อมูลความถี่ของคะแนน ของนิสิตในแต่ละช่วงคะแนน เช่น 100 คะแนน 1 คน 99 คะแนน 0 คน 98 คะแนน 5 คน … 0 คะแนน 1 คน.
การเขียนโปรแกรม (ภาษาซี)
กระบวนการและเทคนิค การพัฒนาคุณภาพการบริหาร จัดการภาครัฐระดับพื้นฐาน การให้ความสำคัญกับผู้รับบริการ และผู้มีส่วนได้ส่วนเสีย.
วิชาภาษาไทย 3 1. คะแนนภาคบรรยาย 30 คะแนน 2. คะแนนภาคทักษะ 70 คะแนน
ชั้นมัธยมศึกษาปีที่ ๖ โรงเรียนสาธิตมหาวิทยาลัยราชภัฏสวนสุนันทา
มหาชาติคำหลวง เอกสารประกอบการสอนวิชาภาษากับวัฒนธรรมไทย
พอเพียงอย่างไร ? ในอุดมศึกษาไทย
บทบาทหน้าที่ของบุคคล ตามโครงสร้างกระทรวงศึกษาธิการ
แนวทางการจัดกิจกรรมพัฒนาผู้เรียน กิจกรรมยุวกาชาด
สรุป พรบ.การศึกษาแห่งชาติ พ.ศ. 2542
อาจารย์อภิพงศ์ ปิงยศ บทที่ 3 : รูปแบบการเชื่อมต่อเครือข่ายและส่วนประกอบ ของเครือข่ายท้องถิ่น (Topologies.
วิทยาลัยเทคโนโลยีสยามบริหารธุรกิจ นนทบุรี
การวัดและประเมินผลการเรียนรู้
ที่สหกรณ์จัดให้แก่สมาชิก
หมวด 6 การปฏิบัติการ.
เรื่อง การบริหารการศึกษาตาม พ.ร.บ ระเบียบบริหารราชการกระทรวงศึกษาธิการ
แรง มวล และกฏการเคลื่อนที่
ตําแหนงของไฮโดรเจนในตารางธาตุ
บทที่ 4 การแจกแจงความน่าจะเป็น ของตัวแปรสุ่ม
CIM2103 การวิเคราะห์เชิงปริมาณ
DATA STRUCTURES AND ALGORITHMS
สำนักงานพัฒนาธุรกิจการค้าจังหวัดเชียงใหม่
โลโก้ โรงเรียน การดำเนินงานของศูนย์พัฒนาอัจฉริยภาพทางวิทยาศาสตร์และคณิตศาสตร์ โรงเรียน การจัดกิจกรรมในปี
การประชุมผู้บริหารระดับสูงกระทรวงวัฒนธรรม ครั้งที่ ๔/๒๕๖๐
หน่วยการเรียนรู้ที่ ๕ การพัฒนาทักษะการพูด แผนการจัดการเรียนรู้ที่ ๒๐
แนวทางการสอบทานรายงานการควบคุมภายใน
ค่าวัสดุ หมายถึง 1. รายจ่ายเพื่อจัดหาสิ่งของซึ่งโดยสภาพเมื่อใช้ย่อมสิ้นเปลืองหมดไปแปรสภาพหรือไม่คงสภาพเดิม หรือซึ่งของที่มีลักษณะคงทนถาวร และมีราคาต่อหน่วยหรือต่อชุดไม่เกิน.
ร่าง การมอบอำนาจ มหาวิทยาลัยขอนแก่น
สำนักงานคณะกรรมการควบคุมเครื่องดื่มแอลกอฮอล์
การบริหารการเงิน ในสถานศึกษา
รายงานการวิจัย.
ขั้นตอนการประเมินลูกจ้างชั่วคราวเงินบำรุง
การพัฒนาทักษะการเขียน
ค่าใช้จ่ายในการฝึกอบรม
การพัฒนาระบบบริหารจัดการกำลังคนด้านสุขภาพ “การพัฒนาบุคลากร”
ความเชื่อกับการดูแลสุขภาพ
การจัดทำหลักสูตรท้องถิ่นสถานศึกษาปฐมวัย
วินัยข้าราชการ.
การจัดการชั้นเรียน.
การขัดกันระหว่างประโยชน์ส่วนบุคคลและ ประโยชน์ส่วนรวมตามกฎหมาย ป.ป.ช.
การบริหารการเงิน ในสถานศึกษา
Matrix 1.Thamonaporn intasuwan no.7 2.Wannisa chawlaw no.13 3.Sunita taoklang no.17 4.Aungkhana mueagjinda no.20.
การเขียนวิจารณ์วรรณกรรม ๒
ว่าด้วยเรื่อง ซ้อมความ เข้าใจกรณีการเบิกค่ายา ประเภทวิตามิน
เอกสารประกอบวิชาการอ่าน เรื่อง ความรู้พื้นฐานเรื่องการอ่าน
มหัศจรรย์ 1,000 วันแรกของชีวิต “อนามัยสิ่งแวดล้อมและสุขนิสัย”
ค่าเบี้ยเลี้ยง ค่าใช้จ่ายที่สำหรับการจ่ายเพื่อการครองชีพ ได้แก่ ค่าอาหาร ค่าซักรีด ค่าใช้จ่ายอื่น ๆ ที่จำเป็น ออกนอกพื้นที่ * ข้ามเขตจังหวัด นอกจังหวัดที่ตั้งสำนักงาน.
Information Retrieval
ความเข้าใจเรื่อง “ประมวลจริยธรรม”
โครงงานประวัติศาสตร์ เรื่อง พัฒนาการของทวีปอเมริกาใต้
ธาตุ สารประกอบ และปฏิกิริยาเคมี
การศึกษาความรู้ความเข้าใจในการปฏิบัติงานของอาสาสมัครเกษตรหมู่บ้าน
การอาราธนาธรรม การอาราธนาธรรม หมายถึง การกล่าวขอให้พระภิกษุแสดงธรรมให้ฟังหรือขอนิมนต์พระท่านแสดงธรรมคำสอนของพระพุทธเจ้า การอาราธนาธรรมจะกระทำหลังจากอาราธนาศีลและการสมาทานศีลแล้วโดยไม่ต้องกราบอีก.
ข้อกำหนด/มาตรฐาน ด้านสุขาภิบาลอาหาร
การอ่าน.
การบริหารหลักสูตร ความหมาย : การดำเนินงานที่เกี่ยวข้องกับการทำหลักสูตร และเอกสารประกอบหลักสูตร ไปสู่การปฏิบัติในสถานการณ์จริงหรือกิจกรรมการเรียนการสอนให้เป็นไปตามเป้าหมายที่กำหนดไว้ในหลักสูตรโดยอาศัยการสนับสนุนและร่วมมือจากบุคคลที่เกี่ยวข้องกับการใช้หลักส
สำนักงานเขตพื้นที่การศึกษา ประถมศึกษาเชียงราย เขต2
แนวทางปฏิบัติในการเบิกค่าเช่าบ้าน
วิชา สังคมไทยในบริบทโลก
การวิเคราะห์ภาวะธุรกิจ ไตรมาสที่ 1/2550
บีบเข้าไป บีบน้ำตาแล้วบีบมือฉัน ขอร้องให้เห็นใจ เธอขอโทษ
โครงการรณรงค์ลดความเสี่ยงของ น้ำมันทอดซ้ำด้วยชุดทดสอบ
การเลี้ยงดูโคพื้นเมือง
บทที่ 7 หลักการและเทคนิคมูลฐาน ที่ ผตน.ควรทราบ
สรุปแนวปฎิบัติที่ส่วนงานควรทราบระบบบัญชีเจ้าหนี้(AP)
โครงการโรงเรียนคุณภาพประจำตำบล สำนักงานคณะกรรมการการศึกษาขั้นพื้นฐาน
บทที่ 2 ทัศนคติ ความเชื่อ และการโน้มน้าวใจ
ใบสำเนางานนำเสนอ:

CS@KKU Java Summer Camp 2011 Day 1 - 3 เรื่อง Array 5 เมษายน 2560 โดย วชิราวุธ ธรรมวิเศษ

Introduction Arrays are commonly used efficient data structures. They allow us to group data together in an efficient manner. 

ปัญหา ถ้าต้องเก็บข้อมูลสถิติความถี่ของคะแนนของนักเรียน มีคนได้แต่ล่ะคะแนนกี่คน เช่น 100 คะแนน 1 คน 99 คะแนน 0 คน 98 คะแนน 5 คน … 0 คะแนน 1 คน

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

การแก้ปัญหา การเขียนโปรแกรม ก็ต้องเขียนแบบนี้     for (int i=0; i<numStudentsInClass; i++) {         // รับค่าคะแนนจากผู้ใช้         percentage = Keyboard.getInteger();         // เงื่อนไขการนับ         switch(percentage) {             case 1:    counter1++; break;             case 2:    counter2++; break;             case 3:    counter3++; break;             ......             case 100:    counter100++; break;         }     }

การแก้ปัญหา An Array is a bounded (fixed size) จากตัวอย่างโปรแกรม คงจะพอมองเห็นปัญหาแล้วว่า การจัดการตัวแปรแบบนี้ คงเหนื่อยในการเขียนโปรแกรม Array จึงเข้ามาช่วย จัดการปัญหาตรงจุดนี้ An Array is a bounded (fixed size) collection of elements of the same type.

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

Arrays Unlike many other data structures, access to array elements is immediate since they are stored in contiguous (i.e., side by side) memory locations.

การประกาศตัวแปรแบบ array Variables that hold arrays are declared using square brackets []. The brackets may appear either with the variable’s type: int [] data; or with the variable's name: int data[];

การสร้าง Array Array ถือว่าเป็น class ชนิดหนึ่ง การสร้าง array จะใช้คำสั่ง new เหมือนการสร้าง object แต่ใช้เครื่องหมาย [ ] ระบุขนาด int x[]; x = new int[100]; ต้องระบุขนาดของ array ด้วยและเมื่อ array ถูก new แล้ว เราจะไม่สามารถเปลี่ยนขนาดของ array ได้อีก

การสร้าง Array Just like any other variables, both declaration and creation can occur on the same line: int x[] = new int[100]; int[]      sickDays = new int[30]; Person[]   friends = new Person[50];

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

ค่าเริ่มต้นของ elements When you create an array of reference types, only the array itself is created.  The array is NOT initialized with new objects in each location.

การกำหนดค่าให้ elements เหมือนตัวแปรปกติ แต่เพิ่ม [index] int[] ages = new int[3]; // valid indices are 0,1 & 2 ages[0] = 34; ages[1] = 12; ages[2] = 45; ข้อควรระวัง การ access เกินขนาดของ array ages[3] = 29; // ERROR: 3 is an invalid index

การกำหนดค่าให้ elements พร้อมๆกัน ใช้เครื่องหมายปีกกา ไม่ต้องใช้ new int[] ages = {34, 12, 45}; double[] heights = {4.5, 23.6, 84.124, 78.2, 61.5}; boolean[] tired = {true, false, false, true}; String[] names = {"Bill","Jennifer","Joe"}; char vowels[] = {'a', 'e', 'i', 'o', 'u'};

การกำหนดค่าให้ elements พร้อมๆกัน ใช้เครื่องหมายปีกกา BankAccount[] accounts = {     new BankAccount("Fred", 100.00),     new BankAccount("Biff", 2380.00),     new BankAccount("Martha", 500.00),     new BankAccount("Jim", 175.56),     new BankAccount("Betty", 924.02) };

Array of objects: Always be careful when accessing an arrays of objects: ตัวอย่างนี้ customers[0] จะมีค่าเป็น null การเรียก customers[0].getName() จึงเกิด error Customer[]  customers = new Customer[1000]; System.out.println(customers[0].getName());

Array of objects: Make sure to assign values to the array BEFORE trying to use them: Customer[]  customers = new Customer[1000]; customers[0] = new Customer("Jim"); System.out.println(customers[0].getName());

ขนาดของ Array เราสามารถทราบขนาดของ array ด้วยการเรียกใช้ ตัวแปร length ตัวแปร length ของ array ไม่สามารถเปลี่ยนค่าได้ double[] heights = {4.5, 23.6, 84.124, 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

การแก้ปัญหาด้วย Array int    counter[] = new int[101]; int    percentage; for (int i=0; i<numStudentsInClass; i++) {     // Get the percentage from the user     percentage = Keyboard.getInteger();     // Now update the appropriate counter     counter[percentage]++; }

ตัวอย่าง การหาค่าเฉลี่ย public class Calculator {     public static double calculateAverage(int[] numbers) {         int sum = 0;         for (int i=0; i<numbers.length; i++)             sum += numbers[i];         return sum/(double)numbers.length;     } } public class CalculatorTester {     public static void main(String args[]) {         int numbers[] = {23, 54, 88, 98, 23, 54, 7, 72, 35, 22};         System.out.println("The average is " + Calculator.calculateAverage(numbers));     } }

การส่งตัวแปร Array เป็น parameter Notice that when passing an array as a parameter, we DO NOT use the square brackets: Calculator.calculateAverage(numbers[]) we DO NOT specify the type either: Calculator.calculateAverage(int numbers[])

ตัวอย่าง : หาค่า maximum Given an array of 10 numbers, how do we find the maximum ? int numbers[] = {23, 54, 88, 98, 23, 54, 7, 72, 35, 22}; int max = -999999; for (int i=0; i<numbers.length; i++) {     if (numbers[i] > max)         max = numbers[i]; } System.out.println("The maximum is " + max);

Multi-Dimensional Arrays (Tables) 2 มิติ หรือ มากกว่า ที่ใช้มากจะเป็น 2 มิติ Array แบบ 2 มิติใช้เพื่อ แทนข้อมูล ตาราง รูปภาพ (image) Grid แผนที่ ฯลฯ

รูปแบบการเขียน int myTable[][] = new int[4][3]; ชนิดข้อมูล tableName[][] = new typeOrObject[rowLimit][columnLimit]; ชนิดข้อมูล tableName[][] = {{row1Data}, {row2Data}, ..., {lastRowData}}; int myTable[][] = new int[4][3];

การเข้าถึง element To access elements of the table, we merely index it by the row and the column of the element. int myTable[][] = new int[4][3]; myTable[0][0] = 34; myTable[0][1] = 15; myTable[1][3] = 26;

ตัวอย่าง int myTable[][] = {{23, 45, 65, 34, 21, 67, 78},                    {46, 14, 18, 46, 98, 63, 88},                    {98, 81, 64, 90, 21, 14, 23},                    {54, 43, 55, 76, 22, 43, 33}};

ตัวอย่าง : เขียนคำสั่งแสดง int myTable[][] = {{23, 45, 65, 34, 21, 67, 78},                    {46, 14, 18, 46, 98, 63, 88},                    {98, 81, 64, 90, 21, 14, 23},                    {54, 43, 55, 76, 22, 43, 33}}; for (int row=0;row<4; row++) {     for (int col=0;col<7; col++)         System.out.print(myTable[row][col] + "  ");     System.out.println(); }

Array แบบ 3 มิติ int cube[][][] = new int[3][3][3]; ใช้เก็บข้อมูลแบบ 3 มิติ แผนที่