Array1

41
Array: ความรู้เบื้องต้น (ภาค 1) Somjit Chaisriya

Transcript of Array1

Page 1: Array1

Array: ความรู้เบือ้งต้น( ภาค 1) Somjit Chaisriya

Page 2: Array1

Array คอือะไร Array เป็นข้อมูลประเภท structure มีคณุสมบตัิ

เปน็ชดุของข้อมูลประเภทเดียวกัน มีจำานวนสมาชกิแน่นอน มี index ซึ่งเป็นตัวเลขตั้งแต่ 0 ถึง n-1 ไว้สำาหรับอ้างอิงสมาชิกแต่ละตัว

Page 3: Array1

ตัวอย ่างโครงสร ้าง Array 1 มิต ิ มีสมาชิก 8 ตัว

อินเด็กซ์

0 1 2 3 4 5 6 7

Page 4: Array1

ตัวอย ่างโครงสร ้าง Array 2 มิต ิ มีสมาชิก 16 ตัว

อนิเด็กซ์

0 1 2 3 4 5 6 7

0

1

มติทิ ี่ 1

มติ ิท ี่ 2

Page 5: Array1

ตัวอย ่างโครงสร ้าง Array 3 มิต ิ มีสมาชิก 16 ตัว

อนิเด็กซ์

0 1 2 3

0 1 0 1 0 1 0 1

0

1

มติ ิท ี่ 3

มติทิ ี่ 1

มติทิ ี่ 2

Page 6: Array1

แบบฝกึห ัด 1 : ให้นกัศ ึกษาวาดภาพArray ตามเง ือ่นไขต่อไปนี้

- Array 1 มิติ มี สมาชิก 5 ตัว

- Array 2 มิติ มี สมาชิก 10 ตัว

- Array 2 มิติ มี สมาชิก 15 ตัว

- Array 3 มิติ มี สมาชิก 18 ตัว

- Array 3 มิติ มี สมาชิก 24 ตัว

Page 7: Array1

เฉลยแบบฝึกหัด 1: Array 1 มติ ิ มีสมาชิก 5 ตัว

อินเด็กซ์ 0 1 2 3 4

Page 8: Array1

เฉลยแบบฝึกหัด 1: Array 2 มติ ิ มีสมาชิก 10 ตัว

อนิเด็กซ์ 0 1 2 3 4

0

1

มติ ิท ี่ 1

มติ ิท ี่ 2

Page 9: Array1

เฉลยแบบฝึกหัด 1: Array 2 มติ ิ มีสมาชิก 15 ตัว

Concept

Text

Text

Text

อนิเด็กซ์ 0 1 2 3 4

0

1

2

มติ ิท ี่ 1

มติ ิท ี่ 2

Page 10: Array1

เฉลยแบบฝึกหัด 1: Array 3 มติ ิ มีสมาชิก 18 ตัว

อินเด็กซ์

0 1 2

0 1 2 0 1 2 0 1 2

0

1

มติ ิท ี่ 1

มติ ิท ี่ 2

มติ ิท ี่ 3

Page 11: Array1

เฉลยแบบฝึกหัด 1: Array 3 มติ ิ มีสมาชิก 24 ตัว

อินเด็กซ์

0 1

0 1 2 3 0 1 2 3

0

1

2

Page 12: Array1

ตัวอย ่าง1: การเล ือกใช้ Array ในการจ ัดเก ็บข ้อม ูล

- ต้องการเก ็บข ้อม ูลรห ัสน ักศ ึกษา ผู้ท ี่ลงเร ียน ว ิชาการโปรแกรมคอมพิวเตอร ์ 1 จำานวน 5 คน

- จะเห ็นว ่า ข ้อม ูลท ี่ต ้องเก ็บม ีอย ่างเด ียวค ือ รหัสนักศ ึกษา ด ังน ั้นเราจ ึงใช้ Array 1 มิต ิ จ ัด

เก ็บ

อนิเด็กซ์ 0 1 2 3 4

รหัสนักศึกษา

S01 S02 S03 S04 S05

Page 13: Array1

ตัวอย ่าง2: การเล ือกใช้ Array ในการจ ัดเก ็บข ้อม ูล

- ต้องการเก ็บข ้อม ูลรห ัสน ักศ ึกษา , ชื่อ , นามสกุล ผ ู้ท ี่ลงเร ียนว ิชาการโปรแกรม

คอมพิวเตอร ์ 1 จำานวน 5 คน- จะเห ็นว ่า ข ้อม ูลท ี่ต ้องเก ็บม ี 3 ข้อม ูล ค ือรห ัสน ักศ ึกษา ชื่อ และนามสกุล ด ังน ั้นเราจ ึง

ใช้ Array 2 มิต ิ จ ัดเก ็บอินเด็กซ์ 0 1 2 3 4

0 (รหัส) S01 S02 S03 S04 S05

1 (ช่ือ) นวล อาโออิ แมว โทน่ี โทนำ้า2 (นามสกุล)

จันทร์ฉาย

กิมารุ บ้านไร่

แบร์ ครัม

Page 14: Array1

ตัวอย ่าง3: การเล ือกใช้ Array ในการจ ัดเก ็บข ้อม ูล

- ต้องการเก ็บข ้อม ูลรห ัสน ักศ ึกษา , ชื่อ , นามสกุล ผ ู้ท ี่ลงเร ียนว ิชาการโปรแกรม

คอมพิวเตอร ์ 1 จำานวน 5 คน- จะเห ็นว ่า ข ้อม ูลท ี่ต ้องเก ็บม ี 3 ข้อม ูล ค ือรห ัสน ักศ ึกษา ชื่อ และนามสกุล ด ังน ั้นเรา

จึงใช้ Array 2 มิต ิ จ ัดเก ็บอนิเด็กซ์ 0 1 2 3 4

0 (รหัส) S01 S02 S03 S04 S05

1 (ช่ือ) นวล อาโออิ

แมว โทน่ี โทนำ้า

2 (นามสกุล)

จันทร์

ฉาย

กิมารุ บ้านไร่

แบร์ ครัม

Page 15: Array1

ตัวอย ่าง4: การเล ือกใช้ Array ในการจ ัดเก ็บข ้อม ูล

- ต้องการเกบ็ข ้อมลูรหสันกัศ ึกษา , ชือ่ , นามสกลุ , ของผู้ท ีล่งเร ียนวชิาการ

โปรแกรมคอมพวิเตอร ์ 1 จำานวน 5 คน ของภาคการศกึษาที่ 1 และภาคการ

ศึกษาที่ 2- จะเหน็ว ่า โจทย์บ ังค ับใหเ้กบ็ภาคการ

ศึกษาดว้ย โดยแต่ละภาคการศึกษาจะต้องเกบ็รหสันกัศกึษา ชื่อ นามสกุล ด ัง

นัน้เราจงึใช้ Array 3 มติ ิจ ัดเก ็บ

Page 16: Array1

ตัวอย ่าง4: การเล ือกใช้ Array ในการจ ัดเก ็บข ้อม ูล

0 (เทอม1) 1 (เทอม2)0 (รหสั) 1

(ชื่อ)2

(นามสกุล)

0 (รหัส)

1 (ชื่อ)

2 (นามสกุล)

0 S01 นวล จันทร์ฉาย

S06 เอียง เอ็มทีเอ

1 S02 อาโออิ กิมารุ S07 อบต ขำา ขำา2 S03 แมว บ้านไร่ S08 กะ

น้อยขาวดี

3 S04 โทน่ี แบร์ S09 บะหม่ี ไวไว4 S05 โทนำ้า ครัม S10 เทียน บ้านจัง

Page 17: Array1

แบบฝึกหัด 2: ให้น ักศ ึกษาเล ือก ใช้ Array และวาดภาพ Array

ตามเง ือ่นไขต่อไปนี้

- ต้องการเกบ็ข ้อมลู รายชื่อแฟน ทีม่ ี มาแล้วจ ำานวน 3 คน

ต้องการเกบ็ข ้อมลู รายชื่อแฟน เบอร ์ โทร และระดบัความหนา้ตา ทีม่มีาแล ้ว

จำานวน 3 คน- ต้องการเกบ็ข ้อมลู รายชื่อแฟน

เบอร ์โทร ตามระดบัหนา้ตา ทีม่มีาแล ้ว จำานวน 3 คน ทัง้น ีก้ ำาหนดใหร้ะดบั

หนา้ตาม ี 2 ระดับค ือ - ระดบัสมบูรณ์แบบ - ระดบักโ็ออะน่ะ

Page 18: Array1

เฉลยแบบฝึกหัด 2

ต้องการเก ็บข ้อม ูล รายชื่อแฟน ที่ม ีมาแล ้ว จำานวน 3 คน

อนิเด็กซ์ 0 1 2

ช่ือแฟน น้องไก่ น้องมด น้องโฟร์

Page 19: Array1

เฉลยแบบฝึกหัด 2

ต้องการเก ็บข ้อม ูล รายชื่อแฟน เบอร ์โทร และระด ับความหน้าตา ที่ม ีมาแล ้วจ ำานวน 3 คน

อนิเด็กซ์ 0 1 2

0 (ช่ือแฟน) น้องไก่ น้องมด น้องโฟร์1 (เบอร์โทร)

081 082 083

2 (ระดับหน้าตา)

สมบูรณ์แบบ สมบูรณแ์บบ ก็โออ่ะนะ

Page 20: Array1

เฉลยแบบฝึกหัด 2 ต้องการเก ็บข ้อม ูล รายชื่อแฟน เบอร ์โทร ตาม

ระด ับหน้าตา ที่ม ีมาแล ้วจ ำานวน 3 คน ทั้งน ี้ก ำาหนดให้ระด ับหน้าตาม ี 2 ระด ับค ือ ระด ับ

สมบูรณแ์บบ และระด ับก ็โออะน่ะ0 (ระดับสมบูรณแ์บบ) 1 (ระดับโออะน่ะ)

0 (ช่ือแฟน) 1 (เบอร์โทร)

0 (ช่ือแฟน)

1 (เบอร์โทร)

0 น้องไก่ 081 น้องโฟร์ 083

1 น้องมด 082

2 หมายเหตุ จะเห ็นว ่าการจ ัดเก ็บแบบนี้จะจ ัดเก ็บข ้อม ูลได ้ท ั้งหมด 6 คน โดยแบ่งเป ็น

ระด ับสมบ ูรณ์แบบมากสุดได ้ 3 คน และระด ับก ็โออ ่ะนะ ได ้มากส ุด 3 คน

Page 21: Array1

การเข ียนค ำาส ัง่ภาษา C++ เพ ื่อสร ้างArray

โครงสร ้างค ำาส ั่ง ชนดิข้อมลู ช ื่ออาร ์เรย ์ [จำานวนสมาชกิมติ ิท ี่ 1]

[จำานวนสมาชกิมติ ิท ี่ 2]… [จำานวนสมาชิกมติ ิท ี่ n];

Page 22: Array1

ตัวอย ่างการเข ียนคำาส ัง่สร ้างArray 1 มติ ิ ม ีสมาชิก 5 ตัว

อนิเด็กซ์ 0 1 2 3 4

เข ียนคำาส ั่งได ้ว ่าfloat num[5];

Page 23: Array1

ตัวอย ่างโครงสร ้าง Array 2 มิต ิ มีสมาชิก 10 ตัว

อินเด็กซ์ 0 1 2 3 4

0

1

เขียนคำาสั่งได้ว่าfloat wide_high [5][2];

Page 24: Array1

ตัวอย ่างโครงสร ้าง Array 2 มิต ิ มีสมาชิก 15 ตัว

อนิเด็กซ์ 0 1 2 3 4

0

1

2

เขยีนคำาส ั่งได ้ว ่าfloat wide_high [5][3];

Page 25: Array1

ตัวอย ่างโครงสร ้าง Array 3 มิต ิ มีสมาชิก 18 ตัว

อนิเด็กซ์

0 1 2

0 1 2 0 1 2 0 1 2

0

1

เขยีนคำาส ั่งได ้ว ่าint Data1[3][3][2];

Page 26: Array1

ตัวอย ่างโครงสร ้าง Array 3 มิต ิ มีสมาชิก 24 ตัว

อนิเด็กซ์ 0 1

0 1 2 3 0 1 2 3

0

1

2

เขยีนคำาส ั่งได ้ว ่าstring Data2[2][4][3];

Page 27: Array1

แบบฝึกหัด 3: ฝึกเขยีนคำาส ัง่ สร ้าง Array

จากแบบฝึกหดัท ี่ 2 ใหน้กัศกึษาเข ียนคำาส ัง่ เพ ือ่ สร ้าง Array โดยใชภ้าษา C++

Page 28: Array1

เฉลยแบบฝึกหัด 3

ต้องการเก ็บข ้อมลู รายชื่อแฟน ทีม่มีาแล ้ว จำานวน 3 คน

อนิเด็กซ์ 0 1 2

ช่ือแฟน น้องไก่ น้องมด น้องโฟร์

เขยีนคำาส ั่งเพ ื่อสร ้าง Array ไดว้ ่าstring Fan[3];

Page 29: Array1

เฉลยแบบฝึกหัด 3

ต้องการเก ็บข ้อมลู รายชื่อแฟน เบอร ์โทร และ ระดบัความหนา้ตา ทีม่มีาแล ้วจ ำานวน 3 คน

อนิเด็กซ์ 0 1 2

0 (ช่ือแฟน) น้องไก่ น้องมด น้องโฟร์1 (เบอร์โทร) 081 082 083

2 (ระดับหน้าตา)

สมบูรณแ์บบ สมบูรณแ์บบ ก็โออะ่นะ

เขยีนคำาส ั่งเพ ื่อสร ้าง Array ไดว้ ่าstring Fan[3][3];

Page 30: Array1

www.themegallery.com

LOGO

เฉลยแบบฝึกหัด 3 ต้องการเก ็บข ้อมลู รายชือ่แฟน เบอร ์โทร ตามระดบัหน้าตา

ที่มมีาแล ้วจ ำานวน 3 คน ทั้งน ี้ก ำาหนดให้ระดบัหน้าตาม ี 2 ระดบัค ือ ระดบัสมบูรณแ์บบ และระดบัก ็โออะน่ะ

0 (ระดับสมบูรณ์แบบ) 1 (ระดับโออะน่ะ)0 (ช่ือแฟน) 1 (เบอร์

โทร)0 (ช่ือแฟน)

1 (เบอร์โทร)

0 น้องไก่ 081 น้องโฟร์ 083

1 น้องมด 082

2 เขยีนคำาส ั่งเพ ื่อสร ้าง Array ไดว้ ่า

string Fan[2][2][3];

Page 31: Array1

www.themegallery.com

LOGO

การอ ้างถ ึงอาร ์เรย ์ และสมาชิกในอาร ์เรย ์

การอ้างอ ิงอาร ์เรย ์ 1 มติ ิ string Fan[3]; เก ็บข ้อมลู รายชื่อแฟน ทีม่มีา

แล้วจ ำานวน 3 คนอินเด็กซ์

0 1 2

ช่ือแฟน น้องไก่ น้องมด น้องโฟร์

การอ้างอ ิงสมาชิกในอาร ์เรย ์ กระท ำาโดยการใช้ หมายเลขอิน เด ็กซ์ ซ ึ่งเร ิ่มจาก 0 เสมอ

Fan[0] เกบ็แฟนชื่อ น ้องไก ่ Fan[1] เกบ็แฟนชื่อ น ้องมด Fan[2] เกบ็แฟนชื่อ น ้องโฟร ์

Page 32: Array1

www.themegallery.com

LOGO

การอ ้างถ ึงอาร ์เรย ์ และสมาชิก ในอาร ์เรย ์ 2 มิต ิ

string Fan[3][3]; เก ็บข ้อมลู รายชื่อแฟน เบอร ์ โทร และระดับความหนา้ตา ทีม่มีาแล ้วจ ำานวน 3

คนอนิเด็กซ์ 0 1 2

0 (ช่ือแฟน) น้องไก่ น้องมด น้องโฟร์1 (เบอร์โทร)

081 082 083

2 (ระดับหน้าตา)

สมบูรณ์แบบ

สมบูรณ์แบบ

กโ็ออ่ะนะการอ ้างอ ิงสมาชิกในอาร ์เรย ์ Fan[0][0] เก ็บแฟนชื่อ น ้องไก ่ Fan[0][1] เก ็บเบอร ์โทร081 Fan[0][2] เก ็บระด ับหน้าตา สมบูรณแ์บบ

Page 33: Array1

www.themegallery.com

LOGO

การอ ้างถ ึงอาร ์เรย ์ และสมาชิก ในอาร ์เรย ์ 3 มิต ิ

string Fan[2][2][3]; เก ็บข ้อม ูล รายชื่อแฟน เบอร ์โทร ตามระด ับหน้าตา ที่ม ีมา แล้วจ ำานวน 3 คน ทั้งน ี้ก ำาหนดให้ระด ับหน้าตาม ี 2 ระด ับค ือ ระด ับสมบูรณ์แบบ

และระด ับก ็โออะน่ะ0 (ระดับสมบูรณแ์บบ) 1 (ระดับโออะน่ะ)

0 (ช่ือแฟน)

1 (เบอร์โทร)

0 (ช่ือแฟน)

1 (เบอร์โทร)

0 น้องไก่ 081 น้องโฟร์ 083

1 น้องมด 082

2การอ ้างอ ิงสมาชิกในอาร ์เรย ์ Fan[0][0][0] เก ็บแฟนชื่อ น ้องไก ่ Fan[0][1][0] เก ็บเบอรโ์ทร 081 Fan[1][0][0] เก ็บแฟนชื่อ น ้องโฟร ์ Fan[1][1][0] เก ็บแฟนชื่อ 083

Page 34: Array1

www.themegallery.com

LOGO

แบบฝึกหัด 4: การอ ้างอ ิงอาร ์เรย ์

จงอ้างอ ิงสมาชิกท ัง้หมดในอาร ์เรยต์ ่อไปนี้

อินเด็กซ์ 0 1 2

0 (ช่ือแฟน) น้องไก่ น้องมด น้องโฟร์1 (เบอร์โทร)

081 082 083

2 (ระดับหน้าตา)

สมบูรณ์แบบ

สมบูรณ์แบบ

ก็โออ่ะนะ

Page 35: Array1

www.themegallery.com

LOGO

แบบฝึกหัด 4: การอ ้างอ ิงอาร ์เรย ์

จงอ้างอ ิงสมาชิกท ัง้หมดในอาร ์เรยต์ ่อไปนี้

0 (ระดับสมบูรณแ์บบ) 1 (ระดับโออะน่ะ)0 (ช่ือแฟน) 1 (เบอร์

โทร)0 (ช่ือแฟน)

1 (เบอร์โทร)

0 น้องไก่ 081 น้องโฟร์ 083

1 น้องมด 082

2

Page 36: Array1

www.themegallery.com

LOGO

การร ับข ้อมลูเข ้าในอาร ์เรย ์ 1 มิต ิ

float num1[3]; ต้องการเก็บขอ้มูลดังนี้

num1[0] เก็บเลข 5 เขยีนคำาส่ังเกบ็ได้ว่า num1[0] = 5; num1[1] เก็บเลข 3 เขยีนคำาส่ังเกบ็ได้ว่า num1[1] = 3; num1[2] เก็บเลข 4 เขยีนคำาส่ังเกบ็ได้ว่า num1[2] = 4;

ภาพประกอบการทำาความเขา้ใจ

อนิเด็กซ์ 0 1 2

ตัวเลข 5 3 4

Page 37: Array1

www.themegallery.com

LOGO

การร ับข ้อมลูเข ้าในอาร ์เรย ์ 2 มิต ิ

float num1[2][2]; ต้องการเก ็บขอ้ม ูลด ังน ี้

num1[0][0] เก ็บเลข 5 เขยีนค ำาส ั่งเก ็บได ้ว ่า num1[0][0] = 5; num1[0][1] เก ็บเลข 3 เขยีนค ำาส ั่งเก ็บได ้ว ่า num1[0][1] = 3; num1[1][0] เก ็บเลข 4 เขยีนค ำาส ั่งเก ็บได ้ว ่า num1[1][0] = 4; num1[1][1] เก ็บเลข 6 เขยีนค ำาส ั่งเก ็บได ้ว ่า num1[1][1] = 6;

ภาพประกอบการทำาความเขา้ใจ

อินเด็กซ์ 0 1

0 5 4

1 3 6

Page 38: Array1

www.themegallery.com

LOGO

การร ับข ้อมลูเข ้าในอาร ์เรย ์ 3 มิต ิ

float num1[2][2][3]; ต้องการเก ็บขอ้ม ูลด ังน ี้

num1[0][0][0] เกบ็เลข 5 เขยีนค ำาส ั่งเกบ็ได ้ว ่า num1[0][0][0] = 5; num1[0][1][0] เกบ็เลข 3 เขยีนค ำาส ั่งเกบ็ได ้ว ่า num1[0][1][0] = 3; num1[1][0][0] เกบ็เลข 4 เขยีนค ำาส ั่งเกบ็ได ้ว ่า num1[1][0][0] = 4; num1[1][1][0] เกบ็เลข 6 เขยีนค ำาส ั่งเกบ็ได ้ว ่า num1[1][1][0] = 6;

ภาพประกอบการทำาความเขา้ใจ

อนิเด็กซ์ 0 1

0 1 0 1

0 5 3 4 6

1

2

Page 39: Array1

www.themegallery.com

LOGO

การบ้าน : ข้อท ี่ 1

ให้น ักศ ึกษา เข ียนคำาส ั่งอ ้างอ ิงข ้อม ูลสมาชิกท ั้งหมดในArray ต่อไปนี้

int value1[2][2][3]; มีรายละเอ ียดด ังภาพอนิเด็กซ์ 0 1

0 1 0 1

0 5 3 4 6

1 2 5 7 9

2 9 3 2 1

Page 40: Array1

www.themegallery.com

LOGO

การบ้าน : ข้อท ี่ 2 ให้น ักศ ึกษา เขียนภาพประกอบ มีการกำาหนดค่าให้ก ับอาร ์เรย ์ด ังค ำาส ั่งต ่อไปนี้value[0][0][0] = 2;

value[0][1][0] = 3;

value[1][0][0] = 4;

value[1][1][0] = 5;

value[2][0][0] = 1;

value[2][1][0] = 4;

value[0][0][1] = 7;

value[0][1][1] = 9;

value[2][0][1] = 4;

value[2][1][1] = 8;

Page 41: Array1