อาเรย์ (Array).

Slides:



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

Array.
Arrays and Pointers.
อาเรย์ (Array).
Arrays.
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
การเขียนโปรแกรม (ภาษาซี)
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
ศูนย์เรียนรู้ชุมชนเศรษฐกิจ พอเพียงบ้านซ่อง อ.พนมสารคาม จ.ฉะเชิงเทรา
โอกาสสุดท้ายทำโรงแรม
การสะกดคำในหมวดกลุ่มคำราชาศัพท์
พระราชบัญญัติการศึกษาแห่งชาติพ. ศ 2542 แก้ไขเพิ่มเติม (ฉบับที่ 2) พ. ศ
ยินดีต้อนรับ นสต. ภ.๙.
การส่งเสริมจริยธรรมและคุณธรรม เพื่อการป้องกันการทุจริต
พอช.องค์การมหาชนของชุมชนไทย
ปัจจัย และ พฤติกรรมบริโภคเครื่องดื่มแอลกอฮอล์
โรงพยาบาลพระอาจารย์แบน ธนกาโร อำเภอภูพาน จังหวัดสกลนคร ปี 2560
พอเพียงอย่างไร ? ในอุดมศึกษาไทย
แนวทางการจัดกิจกรรมพัฒนาผู้เรียน กิจกรรมยุวกาชาด
บทที่ 7 TAS 17 (ปรับปรุง 2558): สัญญาเช่า (Leases)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 4 การรับและแสดงผลข้อมูล
Statistical Method for Computer Science
วัฒนธรรมไทยและ วัฒนธรรมสากล
วิทยาลัยเทคโนโลยีสยามบริหารธุรกิจ นนทบุรี
ที่สหกรณ์จัดให้แก่สมาชิก
ราชาธิราช ตอน สมิงพระรามอาสา จัดทำโดย คุณครูฮาดีหม๊ะ แวดะสง.
ทะเบียนราษฎร.
บทที่ 13 การสืบพันธุ์ของพืชดอกและการเจริญเติบโต
เรื่อง การบริหารการศึกษาตาม พ.ร.บ ระเบียบบริหารราชการกระทรวงศึกษาธิการ
ที่เกี่ยวข้องกับสหกรณ์
เอกสารประกอบการบรรยายครั้ง ๒ วิชาซื้อขาย - เช่าทรัพย์ - เช่าซื้อ
นิทานคุณธรรมประกอบการเรียนการสอน อุดมการณ์สหกรณ์
แผนขับเคลื่อนคุณธรรมจังหวัดร้อยเอ็ด
ข้อมูลการศึกษาพระปริยัติธรรมแผนกธรรมและแผนกบาลี
สำนักงานพัฒนาธุรกิจการค้าจังหวัดเชียงใหม่
หน่วยการเรียนรู้ที่ ๕ การพัฒนาทักษะการพูด แผนการจัดการเรียนรู้ที่ ๒๐
แนวทางการสอบทานรายงานการควบคุมภายใน
การนำเสนอสหกิจศึกษา ณ อบจ.ยะลา
การหาสมบัติทางกายภาพของวัสดุผสมระหว่างดินแดงดอยสะเก็ดกับควอตซ์
หัวข้อ 3.5 ระบบธรรมาภิบาลและองค์กรคุณภาพ
ขั้นตอนการประเมินลูกจ้างชั่วคราวเงินบำรุง
การพัฒนาทักษะการเขียน
การจัดทำคำของบลงทุนปี 2563
แนวทางการต่ออายุใบอนุญาตสถานพยาบาล
แนวทางการดำเนินงานกิจกรรม/โครงการ งบประมาณกองทุนพัฒนาบทบาทสตรี
ค่าใช้จ่ายในการฝึกอบรม
การพัฒนาระบบบริหารจัดการกำลังคนด้านสุขภาพ “การพัฒนาบุคลากร”
ค่าใช้จ่ายในการฝึกอบรมของ ส่วนราชการ
แหล่งเรียนรู้วิสาหกิจชุมชน ตามแนวทางเศรษฐกิจพอเพียง เทิดไท้ ๘๐ พรรษา มหาราชา นายเชาว์วัช หนูทอง ๑๓๔ หมู่ที่ ๒ ตำบลท่าวุ้ง อำเภอท่าวุ้ง จังหวัดลพบุรี
ความเชื่อกับการดูแลสุขภาพ
วันเสาร์ที่ 2 กรกฎาคม 2559 วิทยาลัยเทคโนโลยีอักษรพัทยา
ผู้วิจัย นางกาญจนี พรหมดวง
การจัดกิจกรรมส่งเสริมการอ่าน
วิชาสังคมศึกษา ม.3 สาระที่ 1 ศาสนา ศีลธรรม จริยธรรม.
การขัดกันระหว่างประโยชน์ส่วนบุคคลและ ประโยชน์ส่วนรวมตามกฎหมาย ป.ป.ช.
การวัดและ ประเมินผล การตลาด ออนไลน์
ดร.แสนคำ นุเสน 18 ชั่วโมงบรรยาย คะแนนเก็บ 20 % คะแนนสอบ 20%
สถิติ สำหรับการประเมินผลการทดสอบความชำนาญ
การดำเนินงานด้านธุรกิจเสริม
การเขียนวิจารณ์วรรณกรรม ๒
การบัญชีตามความรับผิดชอบและ การประเมินผลการปฏิบัติงาน
แบบทดสอบ เรื่อง ความน่าจะเป็น.
กระบวนการจัดการสัมมนา
การปฏิรูประบบศาลยุติธรรม หลังรัฐประหาร 2557
ผลภายหลังการชำระหนี้
โรงเรียน สพป 1. ส่งเสริมทักษะการสื่อสารและความร่วมมือให้กับครู
โครงงานประวัติศาสตร์ เรื่อง พัฒนาการของทวีปอเมริกาใต้
การอ่าน.
การวิเคราะห์ภาวะธุรกิจ ไตรมาสที่ 1/2550
ใบสำเนางานนำเสนอ:

อาเรย์ (Array)

หัวข้อ การประกาศตัวแปรอาเรย์ การเข้าถึงข้อมูลในอาเรย์ Multidimensional arrays (อาเรย์หลายมิติ) การกำหนดค่าเริ่มต้นให้กับอาเรย์ 2 มิติ อาเรย์ของ characters string การผ่านตัวแปร array ระหว่างฟังก์ชัน

Array อาเรย์ คือ กลุ่มของตัวแปรชนิดเดียวกันมากกว่า 1 ตัวที่ใช้ชื่อเดียวกัน ซึ่งการเข้าถึงสมาชิก (element) แต่ละตัวจะใช้ดรรชี (index หรือ subscript) ที่เป็นเลขจำนวนเต็มในการระบุ Array ใช้ทำอะไรได้บ้าง เก็บชุดตัวอักษร หรือ (Characters String) เก็บชุดค่าตัวแปรได้ทุกชนิด เช่น int salary[50] *ดรรชนีของอาเรย์ทุกชนิดในภาษา C จะเริ่มที่ 0 เสมอ

การประกาศตัวแปรอาเรย์ ชนิดข้อมูล ชื่อตัวแปร[จำนวนสมาชิก] [= { รายการค่าเริ่มต้น }]; ตัวแปรอาเรย์ต้องมีจำนวนสมาชิกเสมอ เราอาจจะกำหนดให้ หรือ Compiler กำหนดให้ก็ได้ เช่น int arr[5]; char arr_c[3] = {‘a’, ‘b’, ‘c’}; char arr_c[] = {‘a’, ‘b’, ‘c’}; float arr_f[ ] = { 1.25, 3 , 4.5, 6.5}; int mid[100] = {50}; //ตัวอื่นๆ จะเป็น 0 static int fin[100]; arr[0] arr[4]

การกำหนดค่าเริ่มต้น กำหนดค่าเริ่มต้น = { รายการข้อมูล } กำหนดค่าเริ่มต้น = { รายการข้อมูล } ใช้ได้เฉพาะจุดที่ประกาศตัวแปรเท่านั้น ตัวอย่างที่ผิด ตัวอย่างที่ถูก หรือ ตัวอย่างที่ถูก int arr[5]; int arr[5]; for(i=0; i <=4 ;i++) arr = { 1, 2, 3, 4, 5 }; arr[0] = 1; { arr[1] = 2; arr[i]=i+1; arr[2] = 3; } arr[3] = 4; arr[4] = 5;

การเข้าถึงข้อมูลในอาเรย์ คือการใช้ข้อมูลตัวแปรอาเรย์นั้นๆ การเข้าถึงข้อมูลโดยผ่านตำแหน่งสมาชิก(element)ของอาเรย์ สามารถเข้าถึงได้โดยตรงโดยระบุดรรชนี (index หรือ subscript) ดรรชนี เป็นเลขจำนวนเต็ม และเริ่มต้นที่ 0 เสมอ (หรืออาจใช้ตัวแปรแทนก็ได้) เราจัดการสมาชิกแต่ละตัวได้อย่างอิสระเหมือนกับตัวแปรทั่วๆไป เช่น int arr[5] = { 1, 2, 3, 4, 5 }; int i; i = arr[0]; arr[1] = arr[2]; arr[0]++; printf(“%d”, arr[0]); //แสดงค่าอะไร scanf(“%d”, &arr[1]);

การเข้าถึงข้อมูลในอาเรย์(ต่อ) ดรรชนี ของอาเรย์ เป็นเลขจำนวนเต็ม ที่เริ่มต้นที่ 0 เช่น arr[0], arr[5] ใช้นิพจน์ที่เป็น integer ตัวอย่าง int i = 3, arr_i[i] = { 1,2,3 }; /* การประกาศตัวแปร */ float arr_f[i]; /* การประกาศตัวแปร */ arr_f[i-3] = 5.5; arr_f[arr_i[2]] = 3.14; for (i=1; i < 3;i++) printf(“%f\n”, arr_f[i]); //ได้ผลลัพธ์อย่างไร

ลักษณะการใช้นคจ. ของตัวแปรอาเรย์ ประกาศตัวแปร int arr_i[4] = { 1, 2, 3, 4};

การเข้าถึงข้อมูลแบบทางตรงและทางอ้อม การเข้าถึงโดยทางตรง โดยใช้ ดรรชนี เป็นเลขจำนวนเต็ม ที่เริ่มต้นที่ 0 เช่น arr[0], arr[5] ใช้นิพจน์ที่เป็น integer เช่น arr[i] การเข้าถึงโดยทางอ้อม คือการเข้าถึงแบบพอยน์เตอร์ int arr_i[4] = { 1, 2, 3, 4}; // ประกาศตัวแปร printf(“%d”, arr_i[0]); //ตัวแรก ทางตรง printf(“%d”, *arr_i ); /*หรือ *(arr_i+0) */ //ตัวแรก ทางอ้อม printf(“%d”, arr_i[1]); //ตัวที่สองโดย ทางตรง printf(“%d”, *(arr_i+1) ); //ตัวที่สองโดยทางอ้อม printf(“%d”, arr_i[2]); printf(“%d”, *(arr_i+2) );

แบบฝึกหัด ให้ทำการประกาศตัวแปรเพื่อเก็บคะแนนนักศึกษาจำนวน 10 คน แล้วทำการรอรับคะแนนนักศึกษาทุกคนจากผู้ใช้ และหาค่าเฉลี่ยของนักศึกษาทั้ง 10 คนนั้น

Multidimensional arrays (อาเรย์หลายมิติ) ที่ผ่านมา Array หนึ่งมิติ (one-dimensional arrays) คือ ใช้ดรรชนี (index หรือ subscript) เพียงตัวเดียว อาเรย์หลายมิติ (Multidimensional arrays) ใช้ดรรชนีหลายตัว หากใช้ดรรชนี 2 ตัว จะเรียกว่า อาเรย์ 2 มิติ หากใช้ดรรชนี 3 ตัว จะเรียกว่า อาเรย์ 3 มิติ หนึ่งมิติ สองมิติ สามมิติ

การเข้าถึงข้อมูล อาเรย์หนึ่งมิติ arr[0], arr[1] อาเรย์สองมิติ ชนิด ชื่อ[แถว][คอลัมน์] int TwoArray[2][3]; float MyArr[3][4]; //เป็นอย่างไร [0][0] [0][1] [0][2] [1][0] [1][1] [1][2]

การกำหนดค่า for(i=0;i<3;i++){ for (j=0;j<4;j++){ ให้ค่า ณ. ที่ประกาศตัวแปร int arri[3][4] = { {2, 5, 12, 3}, {1,4,11,9}, {6,7,10,8} }; 2 5 12 3 1 4 11 9 โดยใช้การวนรอบ 6 7 10 8 for(i=0;i<3;i++){ for (j=0;j<4;j++){ MyArr[i][j] = 0; }

ให้เติมค่าข้อมูล TestArr[4][2] int TestArr[4][2]; for(i=0;i<4;i++){ for (j=0;j<2;j++){ TestArr[i][j] = i+j; } TestArr[4][2]

การใช้พื้นที่ Memory ใช้การจัดเรียงไปทีละแถว เช่น int TestArr[3][2]

แบบฝึกหัด จงประกาศตัวแปรอาเรย์เพื่อเก็บข้อมูลต่อไปนี้ (ประกาศตัวแปรพร้อมกับกำหนดค่าเริ่มต้น) พร้อมแสดงผลลัพธ์ข้อมูลทุกรายการตามลำดับ ชื่อ คะแนน JOHN 20.5 MICHEAL 31 DAVID 28 JEFF 36.7 HERBERT 26

อาเรย์ของ characters string George Michelle Joe Marcus Stephanie เราอาจจะสร้างอาเรย์สองมิติ เพื่อเก็บข้อมูล character เช่น char NameArr[ 5] [15] = { {“George”}, {“Michelle”}, {“Joe”}, {“Marcus”}, {“Stephanie”} }; NameArr จะใช้พื้นที่เท่าไร?

การเก็บข้อมูล มีพื้นที่ ที่ไม่ได้ใช้งาน =>สิ้นเปลืองหน่วยความจำ ต้องมีวิธีการที่ดีกว่านี้แน่ๆ ภาษาซี จะมี ตัวแปรพอยน์เตอร์ที่สามารถ character string ได้ จะประหยัดเนื้อที่มากกว่า

อาเรย์ของพอยน์เตอร์ที่ใช้เก็บตัวอักษร เป็นอาเรย์มิติเดียวที่เก็บพอยน์เตอร์ที่ชี้ไปที่ข้อมูล charcter นั่นก็คือ การสร้าง อาเรย์ของพอยน์เตอร์นั่นเอง ซึ่งจากตัวอย่างที่ผ่านมาประกาศตัวแปรอาเรย์ใหม่เป็น char * names[ 5] = { “George”, “Michelle”, “Joe”, “Marcus”, “Stephanie” }; ใช้พื้นที่เท่าไร?

การใช้พื้นที่ใน Memory names[0] names[1] names[2] names[3] names[4]

จงแสดงค่าผลลัพธ์ names หมายถึงค่า __________

แบบฝึกหัด char * names[ 5] = { “George”, “Michelle”, “Joe”, “Marcus”, “Stephanie” }; จากการประกาศตัวแปรข้างต้น จงแสดงข้อมูล character string ที่เก็บใน array ทั้งแบบทางตรงและทางอ้อม