48
Arrays ตัวแปรแถวลาดับ 1 เรียบเรียงโดย อ.เรวดี พิพัฒน์สูงเนิน สาขาวิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยราชภัฏอุดรธานี

ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

Arrays

ตวแปรแถวล าดบ

1 เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน

Page 2: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรแถวล าดบ (Array) คอ?

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน2

อารเรย คอ เปนโครงสรางขอมลทเกบรวบรวมขอมลชนดเดยวกนไวดวยกนภายในตวแปรชอเดยวกน โดยขอมลแตละตวของอารเรยจะเรยกวา อลเมนต (Element) ขอมลแตละอลเมนตจะมหมายเลขเพอใชในการอางองถงเรยกตวเลขนวา เลขดชน (Index)ดงนนในการอางองถงขอมลแบบอารเรยจงท าไดโดยการระบชอของอารเรยนนๆ ประกอบกบคาเลขดชน เพอใหสามารถเขาถงอลเมนตทเกบขอมลภายในอารเรยนนๆ ได

Page 3: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรแถวล าดบ (Array) คอ?

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน3

ตวแปรแถวล าดบ หรอ อารเรย เปนโครงสรางขอมล (Data Structure) ท าหนาทจองพนทหนวยความจ า ตามทระบขนาดหนวยความจ าในการประกาศตวแปรอารเรย เพอเกบขอมลในแตละชองของหนวยความจ า โดยมดชน (index) เปนตวระบต าแหนงขอมลในอารเรย

Page 4: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ประโยชนของการใชตวแปรแถวล าดบ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน4

การเขยนโปรแกรมส าหรบบางกรณ เราจ าเปนทจะตองประกาศตวแปรทเปนขอมลชนดเดยวกนหลายๆ ตวเพอใชในการเกบกลมของขอมลทเหมอนกน เชน การเกบขอมลอาย และขอมลความสงของนกศกษา เปนตน ซงการทจะตงชอใหเปนตวแปร 100 ตว จะเปนการล าบาก ดงนนการประกาศตวแปรแบบแถวล าดบ จงอ านวยความสะดวกในจดน โดยจดขอมลอยในบลอกของหนวยความจ าเดยวกนและมการจดเรยงของขอมลแตละตวกนอยางตอเนอง และใชชอตวแปรรวมกนในการอางองถง

Page 5: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ประเภทของอารเรย

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน5

อารเรย 1 มต (One dimension arrays)

อารเรย 2 มต (Two dimension arrays)

อารเรย 3 มต (Three dimension arrays)

20 15 30 45

20 35

25 45 45

60

20

25 45

Page 6: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรแถวล าดบ 1 มต (One dimension arrays)

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน6

คอ ตวแปรแถวล าดบทมดชนหรอตวชต าแหนงล าดบเพยงตวเดยวรปแบบการประกาศ

ตวอยาง

type ชอตวแปรอารเรย[จ านวนชองขอมล] ;

int a[10] ;

a

Page 7: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางการประกาศ ตวแปรอารเรยการประกาศตวแปรแบบอารเรยสามารถท าไดคลายกบการประกาศตวแปรอนๆ ทวไป โดยการก าหนดชอของตวแปร ชนดของขอมล และขนาดของขอมล ตวอยางเชน

int grade[5]; /* Array ขนาด 5 ของ int */เปนการประกาศตวแปรแบบอารเรย 1 มตชอ grade ใหเปนขอมลแบบ

คาตวเลขทเปนจ านวนเตมโดยมขนาดเทากบ 5 อลเมนต ซงการประกาศตวแปรนจะจองหนวยความจ าเทากบ 2 byte * 5 = 10 byte

char code[5]; /* Array ขนาด 5 ของ char */การประกาศตวแปร code เปนขอมลแบบคาตวอกษรจะใชหนวยความจ าเทากบ 1 byte * 5 = 5 byte

float price[100]; /* Array ขนาด 100 ของ float */การประกาศตวแปร price เปนขอมลเลขทศนยม จะใชหนวยความจ าเทากบ 4 byte * 100 = 400 byte

Page 8: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การประกาศอารเรยพรอมกบก าหนดคาเรมตน

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน8

การก าหนดคาตวแปรอารเรยint data[5]={5, 3, 7, 1, 6};float a[ ]={1.3, 2.6, 10};char p[5]={‘a’, ‘b’, ‘d’, ‘e’, ‘t’};

int b[ ]={-20, 10, 5, 6, 4};int M[ ]={9, 0, 7};

ก าหนดขนาดอารเรยไวเลย

ไมไดก าหนดขนาดอารเรยไวลวงหนา

Page 9: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางการประกาศอารเรย 1 มต

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน9

int data[5]={5, 3, 7, 1, 6};

data

int b[ ]={-20, 10, 5, 6, 4};

b

Page 10: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การเขาถงขอมลในอารเรย

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน10

รปแบบ

เชน

ชอตวแปรอารเรย[index]

printf(“Value = %d” ,score[1]);

แสดงขอมลในอารเรยชอ score ชองขอมลหมายเลข 1(ชองล าดบท 2)

Page 11: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางการเขาถงขอมลและก าหนดคาในอารเรย

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน11

main() {int score[10] ; //ประกาศตวแปรอารเรยชอ score จ านวน 10 ชองint x = 20; //ประกาศตวแปร x ก าหนดคาเรมตน 20

score [0] = x ; // ก าหนดคาให scoreชองหมายเลข 0 เทากบคาในตวแปร xscore [1] = score[0] * 2 ; //ก าหนดคาให score ชองหมายเลข 1 เทากบคา

ใน score ชองหมายเลข 0 คณ 2

scanf(‚%d‛ , &score[5] ); //รบคามาใส score ชอง 5printf(‚%d‛ , score[1]); //แสดงคาใน score ชองท 1

}

Page 12: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ภาษาซตวแปรอารเรยตวแรกจะมดชน (index) เปนศนยเสมอในการอางถงตวแปรอารเรย ใดๆ จะตองระบดวยชออารเรยและดชนซงอยภายในเครองหมาย [ ] เชน grade [2] หมายถงตวแปรอารเรยตวท 3 ของgrade

ตวอยางการใชงานตวแปร grade ทเปนอารเรยของจ านวนเตม 5 ตวgrade[0] = 98;grade[1] = grade[0] – 11;grade[2] = 2 * (grade[0] – 6);grade[3] = 79;grade[4] = (grade[2] + grade[3] – 3) / 2;

Page 13: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางการก าหนดคาใหอารเรยmain(){

int Num[5] ;

int y = 2;

Num[y] = 8;

Num[y+2] = 6;

Num[y*2-1] = 12;

Num[y] = Num[y] +1;

Num[y] = Num[y+1];

Num[y-1] = Num[y+2];

Num[8 % y] = Num[y] – 5;

}

Num

0 1 2 3 4

Num 7 6 12 12 6

0 1 2 3 4

Page 14: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

สมมตวาตองการหาผลรวมtotal = grade[0] + grade[1] + grade[2] + grade[3] + grade[4];

สามารถเปลยนเปนtotal = 0;for ( i = 0; i <= 4, ++i)total += grade[i];

จะเหนวาจะมการเกบคาใน grade แตละอลเมนตตามล าดบเชนกน และสามารถใช i ซงใชเปนตวนบของลป for ในขณะเดยวกนกเปนตวชใหกบอารเรยดวย จะเหนวาจะมประโยชนมาก เมอมการกระท าทมจ านวนครงมากกวาน

Page 15: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยาง กรณทตองการหาคามากทสด (Maximum) ของคาในตวแปรอารเรยจ านวน 100 คาคอ price[100] สามารถกระท าไดดวยวธการดงนคอ ใชการวนรอบ for และ เงอนไข if เพอการตรวจสอบซงจะท าใหไดโปรแกรมดงน

maximum = price[0];for(i = 1; i <= 999; ++i){ if (price[i] > maximum)

maximum = price[i] ; }

Page 16: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การรบและแสดงคาของอารเรย(Input and Output of Array Values)

ในการใหคาแกตวแปรสามารถท าไดดวยการก าหนดใหโดยตรงหรอจะใหผใชกรอกโดยการรบคาจากคยบอรด โดยใชรวมกบค าสง scanf() ตวอยางเชนprice[5] = 10.69;

scanf(“%d %f”, &grades[0], &price[2])

scanf(“%c”, &code[0]);

scanf(“%d %d %d”, &grade[0], &grade[1], &grade[2]);

หรออาจใชการวนรอบเพอรบคาจากผใชกเปนไดดงตวอยางfor(i = 0; i <=4; ++i)

{

printf(“Enter a grade: “);

scanf(“%d”, &grade[i]);

}

จะเปนการวนรอบรบคา grade จากผใชจ านวน 5 คา

Page 17: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การแสดงคาของอารเรยในแตละอลเมนตสามารถใชงานรวมกบค าสงเชน printf() ซงท างานรวมกบการวนรอบ for จะท าใหสะดวกมากยงขน เชน

printf(“%f”, price[6]);

แสดงคาของ price ทอลเมนตท 6 printf(“The value of element %d is %d”, i, grade[i]);

แสดงคาของ i และ คา grades ท i for( n = 5; n <= 20; ++n)

printf(“%d %lf”, n, price[n]);

แสดงคาของ price ทอลเมนตท 5 ถง 20 โดยการใชงานการวนรอบ

Page 18: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรอารเรยกบขอความการท างานกบขอความหรอทเรยกวา สตรง (String) เปนการใชขอมลตวอกษรหลาย ๆ ตว หรอ อารเรยของขอมลประเภท char หรออาจจะใชพอยนเตอรชไปยงขอมลประเภท char การท างานกบคาคงทสตรง (String Constant) สามารถเขยนภายในเครอง ‚ ‛

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน18

Page 19: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรอารเรยกบขอความ char ch[10]; สรางตวแปรอารเรยชนด char ชอ ch มขนาดเทากบ 10

char str[10]; สรางตวแปรอารเรยชนด char ชอ str มขนาดเทากบ 10

*** ความแตกตางระหวางตวแปรอารเรยทใชเกบอกขระ และตวแปรอารเรยทใชเกบขอความอยทอกขระสดทาย โดยถาเปนอารเรยทใชเกบขอความนน อกขระตวสดทายจะถกปดดวย ‚\0‛(null) เสมอเพอใหรวาเปนขอความ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน19

Page 20: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวแปรอารเรยกบขอความ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน20

p u b l i s h n g

p u b l i s h n g \o

char ch[10]={‘p’, ‘u’, ‘b’, ‘l’, ‘i’, ‘s’, ‘h’, ‘n’, ‘g’}; สรางตวแปรอารเรย ch เพอเกบอกขระ

char ch[10]={‚publishng‛}; สรางตวแปรอารเรย str เพอเกบขอความ

ดงนนในการเขยนโปรแกรมเกยวของกบขอความ เราจงมกใช ‘\0’ เปนตวตรวจสอบการสนสดของขอความ เมอพบ ‘\0’ เมอใดแสดงวาจบขอความแลว

Page 21: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

Ex1. การประยกตใชอารเรย จงเขยนโปรแกรมรบคะแนนของนกศกษา จ านวน 5 คน และค านวณหาคะแนนเฉลยและคะแนนสงสด โดยแสดงผลลพธคะแนนของนกศกษาทกคน , คะแนนรวม , คะแนนเฉลย และคะแนนสงสด

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน21

Page 22: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน22

START

i =0 , i<5 , i+1

รบ(score[i])

sum = sum + score[i]

sum = 0

avg = sum / 5

i =0 , i<5 , i+1

แสดง (score[i])

A

A

score[i] > max

max = score[0]

max = score[i]

แสดง sum , avg, max

STOP

True

False

Page 23: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน23

Page 24: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

แบบฝกหด (สงในคาบปฏบต) เขยนโปรแกรมค านวณหารอยละของยอดขายของพนกงานขายแตละคน จากยอดขายรวมของพนกงานทมทงหมด จ านวน 5 คน

รปแบบผลลพธ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน24

START

i =0,i<5,i+1

รบ(Sales[i])

i

Next No

STOP

Sum = Sum + Sales[i]

Percent=(Sales[i]/Sum)*100

แสดง sum

i =0,i<5,i+1

แสดง Sales[i] , Percent

Salesperson No.1 Sale = {สมมตปอน 50000}Salesperson No.2 Sale = {สมมตปอน 60000}Salesperson No.3 Sale = {สมมตปอน 40000}Salesperson No.4 Sale = {สมมตปอน 50000}Salesperson No.5 Sale = {สมมตปอน 80000}

Total Sale = 280000

Sales 50000 = 17.86%Sales 60000 = 21.43%Sales 40000 = 14.29%Sales 50000 = 17.86%Sales 80000 = 28.57%

Page 25: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

อารเรย 2 มต (Two Dimension Arrays) ตวแปรอารเรยแบบ 2 มตจะเปนตวแปรทมการอางองถงคาขอมลโดยใชคาเลขดชน(index) 2 คาซงประกอบไปดวยคาดชนทใชในการอางองในแนวแถว (row) และคาดชนทใชอางองในแนวคอลมน(column)

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน25

20 35

25 45 45

60แถว

คอลมน

Page 26: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การประกาศอารเรย 2 มต รปแบบการประกาศ

ตวอยาง

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน26

type ชอตวแปรอารเรย[จ านวนแถว][จ านวนคอลมน];

int a[3][5] ;

a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]

a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]

a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]

a

Page 27: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การประกาศและก าหนดคาเรมตนใหอารเรย 2 มต รปแบบ

ตวอยาง

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน27

type ชอตวแปรอารเรย[][]= {อารเรยแถวแรก , อารเรยแถวสอง ,…};

int b[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}} ;

1 2 3 4

5 6 7 8

9 10 11 12

[0][ ]

[1][ ]

[2][ ]

[ ][0] [ ][1] [ ][2] [ ][3]

Page 28: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ขนาดของอารเรย 2 มต

จ านวนอลเมนตของอารเรย = จ านวนแถว x จ านวนคอลมน จ านวนอลเมนตของ a = 4 x 5 = 20 จ านวนหนวยความจ า = 1 ไบต x 20 = 20 ไบต

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน28

a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]

a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]

a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]

a[3][0] a[3][1] a[3][2] a[3][3] a[3][4]

char a[4][5] ;

Page 29: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การก าหนดคาใหอารเรย 2 มต

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน29

int test[3][4] ;

[0][ ]

[1][ ]

[2][ ]

[ ][0] [ ][1] [ ][2] [ ][3]

test[0][3] = 20;

20

test[2][1] = 35;

35

test[1][2] = test[0][3] * 2;

40

test[2][0] = test[1][2] + test[2][1];

75

Page 30: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การก าหนดคาใหอารเรย 2 มต

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน30

จงแสดงภาพสดทายของอารเรย Nummain() {

int Num[4][4];

int X , Y ;

X := 2;

Y := 1;

Num[X][Y] = 10;

Num[Y % 1][ X+Y] = 8;

Num[X-1 ][X+1] = Num[2][1]+ 4;

Num[Y][X] = Num[X][Y] + 1;

Num[Y+2 ][ X-2] := Num[Y-1][X+1] ;

}

Page 31: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

อารเรย 3 มต เปนอารเรยทมดชนชต าแหนง จ านวน 3 ตว

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน31

Page 32: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การประกาศอารเรย 3 มต รปแบบ

ตวอยาง

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน32

type ชอตวแปรอารเรย[แผน][แถว][คอลมน];

int b[3][3][4];

Page 33: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การก าหนดคาเรมตนใหอารเรย 3 มตint array[][][] = {

{

{3,5,8,7},

{1,2,6,4},

{8,4,1,2}

},

{

{1,5,8,4},

{5,6,2,3},

{8,7,5,0}

},

{

{7,8,3,4},

{2,1,9,2},

{8,4,5,6}

}

};

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน33

Page 34: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การสงผานอารเรยไปยงฟงกชน• การสงผานคาอารเรยไปยงฟงกชนสามารถท าได ส าหรบกรณการสงผาน

เฉพาะบางอลเมนตจะสามารถสงไดโดยคาของแตละอลเมนตไดโดยตรง เชน

• find_min(grade[2], grade[6]);

• จะเปนการสงผานคา grade[2] และ grade[6] ไปยงฟงกชน find_min()

Page 35: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

การสงผานอารเรยไปยงฟงกชนกรณทตองการสงผานคาของอารเรยทงหมด สามารถกระท าไดงายกวาเพยงแตสงเฉพาะชอของอารเรยมาเทานนเชน การสงผานอารเรย grade ไปยงฟงกชน find_max() ไดดงน find_max(grade); จะท าใหคาของ grade สามารถเรยกใชงานไดภายใน find_max()

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน35

Page 36: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

Ex2. การประยกตใชอารเรย 2 มต จงเขยนโปรแกรมเพอบนทกคาคะแนนการสอบปฏบต 3 ครงของนกศกษา 5 คน และใหบนทกผลรวมของคะแนนแตละคน แสดงคะแนนรวมของนกศกษาแตละคน แสดงคะแนนของคนทไดคะแนนรวมมากทสด

START

GetScore

ShowScore

FindTop

STOP

Page 37: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

GetScore

i = 0 , i<5 , i+1

รบ(Score[i,j])

Next I

Next J

Return

j = 0 , j<3 , j+1

ShowScore

i = 0 , i<5 , i+1

Next I

Next J

Return

j = 0 , j<3 , j+1Sum = 0

SumScore[i] = Sum + Score[i,j]

แสดง SumScore[i]

Page 38: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน38

FindTop

Max = Sumscore[0]

SumScore[i] > Max

Max = SumScore[i]

Next I

True

False

Return(Max)

i = 0 , i<5 , i+1

Page 39: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน39

START

GetScore

ShowScore

FindTop

STOP

Page 40: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน40

GetScore

i = 0 , i<5 , i+1

รบ(Score[i,j])

Next I

Next J

Return

j = 0 , j<3 , j+1

Sum = 0

SumScore[i] = Sum + Score[i,j]

Page 41: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน41

ShowScore

i = 0 , i<5 , i+1

Next I

Next J

Return

j = 0 , j<3 , j+1

แสดง SumScore[i]

Page 42: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน42

FindTop

Max = Sumscore[0]

SumScore[i] > Max

Max = SumScore[i]

Next I

True

False

Return(Max)

i = 0 , i<5 , i+1

Page 43: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

แบบฝกหด (สงในคาบปฏบต) จงเขยนผงงาน และเขยนโปรแกรม รบขอมลจ านวนนกศกษา และรบขอมลชอนกศกษาใสอารเรย และคะแนนสอบกลางภาคและสอบปลายภาคของนกศกษาแตละคน จากนนค านวณคะแนนรวมใสอารเรย แสดงชอนกศกษาและคะแนนรวมทได และเกรดทไดรบ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน43

คะแนน 80-100 เกรด Aคะแนน 70-79 เกรด Bคะแนน 60-69 เกรด Cคะแนน 50-59 เกรด Dคะแนน 0-49 เกรด F

Page 44: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางหนาจอผลลพธ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน44

หนาจอรบจ านวนนกศกษาทงหมด

หนาจอขอมลชอ และคะแนนของนกศกษาแตละ

คน

หนาจอสรปคะแนนรวมและเกรด

Page 45: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

แบบฝกหด (สงในคาบปฏบต) จงเขยนผงงาน(flowchart) และโปรแกรมจดการเกยวกบการจองทนงชมภาพยนตร ทนงประกอบดวย แถว 1-10แตละแถวม ทนง 1 – 10 ทกครงทมผมาจอง พนกงานจะตองแสดงใหลกคาดวามทนงวางในแถวใดบาง จากนนใหผชมเลอกทนงทวางอย

หากผชมระบทนงทมผจองไวแลว ใหแสดงขอความ This seat is Reserved!!! แลวใหเลอกใหม

หากเลอกแถวหรอคอลมนทนงเกนจากทก าหนด(1-10) ใหแสดงขอความ Invalid seat row or column... แลวใหเลอกใหม

หากผชมเลอก แถว เทากบ 99 หรอ คอลมน เทากบ 99 ใหแสดงขอความ Program Terminated!!! และจบการท างาน

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน45

Page 46: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางหนาจอ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน46

กรณเลอก ทนงไมซ า

Page 47: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางหนาจอ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน47

กรณเลอก ทนงซ ากบทมแลว

Page 48: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช

ตวอยางหนาจอ

เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน48

กรณเลอก เลอกแถวและคอลมน เปน 99 99