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

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

Array: One Dimension 886201 Programming I 9.

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


งานนำเสนอเรื่อง: "Array: One Dimension 886201 Programming I 9."— ใบสำเนางานนำเสนอ:

1 Array: One Dimension Programming I 9

2 Array คืออะไร ตัวแปรแถวลำดับ ชุดของตัวแปรหลายๆ ตัว
มีชนิดข้อมูลเดียวกัน มีชื่อเรียกเดียวกัน การอ้างถึงตัวแปรแต่ละตัวทำโดยอ้างถึง ชื่อและตำแหน่ง (index) ของตัวแปร

3 ใช้ตัวแปรแถวลำดับทำอะไร
เหมือนตัวแปรทั่วไป คือ เก็บข้อมูลโดยที่ ข้อมูลที่เก็บจะ เป็นชุด ใช้แทนสิ่งที่คล้ายๆ กัน มีชนิดข้อมูลเหมือนกัน นำไปใช้ด้วยวิธีคล้ายๆ กัน ตัวอย่าง รหัสนิสิตของนิสิตในห้องนี้ คะแนนสอบวิชา ของนิสิตในห้อง นี้ เกรดวิชา ของนิสิตในห้องนี้

4 Array คือ โครงสร้างข้อมูลรูปแบบหนึ่ง สำหรับเก็บ ข้อมูลประเภทเดียวกัน ในลักษณะแถวที่มีช่อง เก็บข้อมูลหลายๆช่องเรียงต่อกันไปใน หน่วยความจำ อาร์เรย์ทั้งแถวมีชื่อกำกับ a แสดงถึง อาร์เรย์ a มี 4 ช่อง เก็บข้อมูลได้ 4 ตัว การจะใช้ข้อมูลในช่องใด ทำได้โดยอาศัยการ อ้างถึงเลขลำดับ (index) index จะเรียงจากซ้ายไปขวาเริ่มนับช่องแรกที่ 0 เสมอ เช่น 0, 1, 2, 3 เมื่อต้องการใช้ข้อมูลช่องที่ k ของ อาเรย์ a ให้เขียน d[k] จากตัวอย่าง a[0] = 30 , a[1] = 15, a[2] = 78 และ a[3] = 43 30 15 78 43

5 Array ขนาดหรือความยาวของอาร์เรย์
คือจำนวนข้อมูลที่เก็บอยู่ในอาร์เรย์แถว นั้น เช่น อาเรย์ยาว 4 (เก็บข้อมูลได้ 4 ตัว) 1 2 3 6 1 7 9

6 ที่มา : วงศ์ยศ เกิดศรี Computer Programming using Java
มิติของอาร์เรย์ สามารถมีได้ไม่จำกัด เช่น หนึ่งมิติ สองมิติ สามมิติ n มิติ ที่มา : วงศ์ยศ เกิดศรี Computer Programming using Java ในสัปดาห์นี้จะนำเสนอเฉพาะอาร์เรย์ 1 มิติก่อน

7 การประกาศตัวแปร Array
เช่น int score[5]; ชนิดตัวแปร ชื่อตัวแปร[ขนาด]; score [0] [1] [2] [3] [4] int index value

8 การอ้างถึงข้อมูลใน Array
เช่น int score[5]; ชื่อตัวแปร[ตำแหน่ง] score [0] [1] [2] [3] [4] int index value score[0] score[1] score[2] score[3] score[4]

9 การประกาศตัวแปร Array และกำหนดค่า
int score[5]; score[0] = 5; score[1] = 20; score[2] = 12; score[3] = 7; score[4] = 30; score [0] [1] [2] [3] [4] int index value score [0] [1] [2] [3] [4] 5 20 12 7 30 index value

10 การประกาศตัวแปร Array และกำหนดค่า
ประกาศตัวแปร array ระบุขนาด(n) พร้อม กับกำหนดค่าทั้งหมด เช่น int score[5] = {5, 20, 12, 7, 30}; ชนิดตัวแปร ชื่อตัวแปร[ขนาด] = {ค่าที่1, ค่าที่2, …, ค่าที่n}; score [0] [1] [2] [3] [4] 5 20 12 7 30 index value

11 การประกาศตัวแปร Array และกำหนดค่า
ประกาศตัวแปร array ระบุขนาด(n) พร้อม กับกำหนดค่าส่วนแรก เช่น int score[5] = {0, 20, 12}; ชนิดตัวแปร ชื่อตัวแปร[ขนาด] = {ค่าที่1, ค่าที่2, …, ค่าที่n}; score [0] [1] [2] [3] [4] 20 12 index value

12 การประกาศตัวแปร Array และกำหนดค่า
ประกาศตัวแปร array ระบุขนาด(n) พร้อม กับกำหนดค่าส่วนแรก เช่น int score[5] = {0}; ชนิดตัวแปร ชื่อตัวแปร[ขนาด] = {ค่าที่1, ค่าที่2, …, ค่าที่n}; score [0] [1] [2] [3] [4] index value

13 การประกาศตัวแปร Array และกำหนดค่า
ประกาศตัวแปร array ไม่ระบุขนาด พร้อมกับกำหนดค่า เช่น int score[ ] = {5, 20, 12, 7, 30}; ชนิดตัวแปร ชื่อตัวแปร[ ] = {ค่าที่1, ค่าที่2, …, ค่าที่n}; score [0] [1] [2] [3] [4] 5 20 12 7 30 index value

14 การอ้างถึงข้อมูลใน Array
int score[ ] = {5, 20, 12, 7, 30}; cout<<score[0]; cout<<score[2]; cout<<score[4]; score [0] [1] [2] [3] [4] 5 20 12 7 30 index value

15 การอ้างถึงข้อมูลใน Array
int score[ ] = {5, 20, 12, 7, 30}; score[0] = 40; score[2] = score[3]; score[4] = score[2] + 10; score [0] [1] [2] [3] [4] 40 20 7 17 index value

16 กำหนดขนาดตัวแปร Array เป็นค่าคงที่
การกำหนดขนาด Array เป็นค่าคงที่ต้อง ใช้ const ตัวอย่าง const int n = 5; int score[n] = {5, 20, 12, 7, 30}; score [0] [1] [2] [3] [4] 5 20 12 7 30 index value

17 สายอักขระ สายอักขระ (string) คือกลุ่มของตัว อักขระที่เรียงต่อกัน ระบุขนาด พร้อมกำหนดค่าสายอักขระ เช่น char department[5] = “Math”; department [0] [1] [2] [3] [4] M a t h \0 index value

18 สายอักขระ ไม่ระบุขนาด พร้อมกำหนดค่าสาย อักขระ
เช่น char department[ ] = “Math”; ไม่ระบุขนาด พร้อมกำหนดค่าทีละตัว อักขระ เช่น char department[ ] = “’M’, ‘a’, ‘t’, ‘h’, ‘\0’”; department [0] [1] [2] [3] [4] M a t h \0 index value

19 ฟังก์ชันหาขนาดของสายอักขระ : strlen( )
#include <iostream> #include <cstring> using namespace std; int main() { int x; char str1[20]; cout << “Please enter the first string: ”; cin >> str1; x = strlen(str1); cout << “The length of this string: ” << x; return 0; } Sample output: Please enter the first string: Hello The length of this string: 5

20

21 การประมวลผล array ที่พบบ่อย

22 การรับข้อมูลชนิดเดียวกัน 8 ตัว
int num[8]; cin >> num[0]; cin >> num[1]; cin >> num[2]; cin >> num[3]; cin >> num[4]; cin >> num[5]; cin >> num[6]; cin >> num[7]; int num[8]; for (int i=0; i<8; i++){ cin >> num[i]; }

23 การรับข้อมูลชนิดเดียวกัน n ตัว
int n; cin >> n; int num[n]; for (int i=0; i<n; i++){ cin >> num[i]; }

24 การค้นข้อมูลใน array a [0] [1] [2] [3] [4] [5] 50 10 70 20
เมื่อมีการเก็บกลุ่มข้อมูล ก็ต้องมีการค้นหา ข้อมูล สมมติให้ โปรแกรมนี้ผู้ใช้จะบอกข้อมูลที่ ต้องการค้นหา จากนั้นโปรแกรมจะแสดง ผลลัพธ์ ดังนี้ ถ้าพบข้อมูลดังกล่าวในแถวอาร์เรย์ จะแจ้งว่า ข้อมูลอยู่ตำแหน่งไหน ถ้าไม่พบข้อมูลในแถวอาร์เรย์นี้ จะคืนค่าเป็น -1 ตัวอย่าง ต้องการค้นหา 10 จากอาร์เรย์ a คำตอบคือ 1 a [0] [1] [2] [3] [4] [5] 50 10 70 20 index value

25 การค้นหาข้อมูลใน Array
[0] [1] [2] [3] [4] [5] 50 10 70 20 index int index = -1; for(int i = 0; i < 6 ; i++ ) { if ( a[i] == 10 ) { index = i; } cout << index; value ต้องการค้นหาเลข 10 ว่าอยู่ในตำแหน่ง(index) ที่เท่าไหร่ ถ้าเลขที่ต้องการหามีหลายตัว โปรแกรมนี้จะแสดงตำแหน่งใด ตำแหน่งแรก หรือ ตำแหน่งสุดท้าย ถ้าต้องการให้แสดงตำแหน่งแรก ที่พบตัวเลขดังกล่าว ต้องแก้ไขโปรแกรมนี้อย่างไร

26 การค้นหาข้อมูลใน Array
int index = -1; for(int i = 0; i < 6 ; i++ ) { if ( a[i] == 10 ) { index = i; } cout << index; a [0] [1] [2] [3] [4] [5] 50 10 70 20 index value ถ้าต้องการนับว่ามีตัวเลข 10 กี่จำนวน ต้องแก้ไขโปรแกรมนี้อย่างไร

27 การเปรียบเทียบ array เป็นการประมวลผลในลักษณะที่ เปรียบเทียบว่าอาร์เรย์ 2 แถว เหมือนกัน หรือไม่ มีขนาดเท่ากัน และ มีข้อมูลในแต่ละช่อง เหมือนกันแบบช่องต่อช่อง สมมติอาร์เรย์ 2 แถวที่ต้องการ เปรียบเทียบเป็นดังนี้ a b 5 6 2 3 1 5 6 2 3 4

28 การเปรียบเทียบ array a b for(int i = 0 ;i < 5 ; i++) { if(a[i] != b[i]) { cout<<“No”; return 0; // คำสั่งจบการทำงานของ โปรแกรม } cout<<“Yes”; 5 6 2 3 1 5 6 2 3 4

29 การหาค่ามากสุดใน array
คำตอบ คือ 6 5 6 2 3 1

30 การหาค่ามากสุดใน array
a int max = a[0]; for(int i = 1 ; i < 5 ; i++ ) { if(a[i] > max) { max = a[i]; } cout<<max; 5 6 2 3 1 ถ้าอยากแสดงด้วยว่าตำแหน่ง ของข้อมูลมากสุดอยู่ใน index ที่เท่าไร จะต้องปรับปรุง code อย่างไร


ดาวน์โหลด ppt Array: One Dimension 886201 Programming I 9.

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


Ads by Google