![Page 1: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/1.jpg)
Arrays
ตวแปรแถวล าดบ
1 เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน
![Page 2: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/2.jpg)
ตวแปรแถวล าดบ (Array) คอ?
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน2
อารเรย คอ เปนโครงสรางขอมลทเกบรวบรวมขอมลชนดเดยวกนไวดวยกนภายในตวแปรชอเดยวกน โดยขอมลแตละตวของอารเรยจะเรยกวา อลเมนต (Element) ขอมลแตละอลเมนตจะมหมายเลขเพอใชในการอางองถงเรยกตวเลขนวา เลขดชน (Index)ดงนนในการอางองถงขอมลแบบอารเรยจงท าไดโดยการระบชอของอารเรยนนๆ ประกอบกบคาเลขดชน เพอใหสามารถเขาถงอลเมนตทเกบขอมลภายในอารเรยนนๆ ได
![Page 3: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/3.jpg)
ตวแปรแถวล าดบ (Array) คอ?
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน3
ตวแปรแถวล าดบ หรอ อารเรย เปนโครงสรางขอมล (Data Structure) ท าหนาทจองพนทหนวยความจ า ตามทระบขนาดหนวยความจ าในการประกาศตวแปรอารเรย เพอเกบขอมลในแตละชองของหนวยความจ า โดยมดชน (index) เปนตวระบต าแหนงขอมลในอารเรย
![Page 4: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/4.jpg)
ประโยชนของการใชตวแปรแถวล าดบ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน4
การเขยนโปรแกรมส าหรบบางกรณ เราจ าเปนทจะตองประกาศตวแปรทเปนขอมลชนดเดยวกนหลายๆ ตวเพอใชในการเกบกลมของขอมลทเหมอนกน เชน การเกบขอมลอาย และขอมลความสงของนกศกษา เปนตน ซงการทจะตงชอใหเปนตวแปร 100 ตว จะเปนการล าบาก ดงนนการประกาศตวแปรแบบแถวล าดบ จงอ านวยความสะดวกในจดน โดยจดขอมลอยในบลอกของหนวยความจ าเดยวกนและมการจดเรยงของขอมลแตละตวกนอยางตอเนอง และใชชอตวแปรรวมกนในการอางองถง
![Page 5: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/5.jpg)
ประเภทของอารเรย
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/6.jpg)
ตวแปรแถวล าดบ 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/7.jpg)
ตวอยางการประกาศ ตวแปรอารเรยการประกาศตวแปรแบบอารเรยสามารถท าไดคลายกบการประกาศตวแปรอนๆ ทวไป โดยการก าหนดชอของตวแปร ชนดของขอมล และขนาดของขอมล ตวอยางเชน
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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/8.jpg)
การประกาศอารเรยพรอมกบก าหนดคาเรมตน
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/9.jpg)
ตวอยางการประกาศอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/10.jpg)
การเขาถงขอมลในอารเรย
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/11.jpg)
ตวอยางการเขาถงขอมลและก าหนดคาในอารเรย
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/12.jpg)
ภาษาซตวแปรอารเรยตวแรกจะมดชน (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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/13.jpg)
ตวอยางการก าหนดคาใหอารเรย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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/14.jpg)
สมมตวาตองการหาผลรวม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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/15.jpg)
ตวอยาง กรณทตองการหาคามากทสด (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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/16.jpg)
การรบและแสดงคาของอารเรย(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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/17.jpg)
การแสดงคาของอารเรยในแตละอลเมนตสามารถใชงานรวมกบค าสงเชน 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/18.jpg)
ตวแปรอารเรยกบขอความการท างานกบขอความหรอทเรยกวา สตรง (String) เปนการใชขอมลตวอกษรหลาย ๆ ตว หรอ อารเรยของขอมลประเภท char หรออาจจะใชพอยนเตอรชไปยงขอมลประเภท char การท างานกบคาคงทสตรง (String Constant) สามารถเขยนภายในเครอง ‚ ‛
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน18
![Page 19: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/19.jpg)
ตวแปรอารเรยกบขอความ 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/20.jpg)
ตวแปรอารเรยกบขอความ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/21.jpg)
Ex1. การประยกตใชอารเรย จงเขยนโปรแกรมรบคะแนนของนกศกษา จ านวน 5 คน และค านวณหาคะแนนเฉลยและคะแนนสงสด โดยแสดงผลลพธคะแนนของนกศกษาทกคน , คะแนนรวม , คะแนนเฉลย และคะแนนสงสด
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน21
![Page 22: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/22.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/23.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน23
![Page 24: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/24.jpg)
แบบฝกหด (สงในคาบปฏบต) เขยนโปรแกรมค านวณหารอยละของยอดขายของพนกงานขายแตละคน จากยอดขายรวมของพนกงานทมทงหมด จ านวน 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/25.jpg)
อารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/26.jpg)
การประกาศอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/27.jpg)
การประกาศและก าหนดคาเรมตนใหอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/28.jpg)
ขนาดของอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/29.jpg)
การก าหนดคาใหอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/30.jpg)
การก าหนดคาใหอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/31.jpg)
อารเรย 3 มต เปนอารเรยทมดชนชต าแหนง จ านวน 3 ตว
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน31
![Page 32: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/32.jpg)
การประกาศอารเรย 3 มต รปแบบ
ตวอยาง
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน32
type ชอตวแปรอารเรย[แผน][แถว][คอลมน];
int b[3][3][4];
![Page 33: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/33.jpg)
การก าหนดคาเรมตนใหอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/34.jpg)
การสงผานอารเรยไปยงฟงกชน• การสงผานคาอารเรยไปยงฟงกชนสามารถท าได ส าหรบกรณการสงผาน
เฉพาะบางอลเมนตจะสามารถสงไดโดยคาของแตละอลเมนตไดโดยตรง เชน
• 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/35.jpg)
การสงผานอารเรยไปยงฟงกชนกรณทตองการสงผานคาของอารเรยทงหมด สามารถกระท าไดงายกวาเพยงแตสงเฉพาะชอของอารเรยมาเทานนเชน การสงผานอารเรย 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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/36.jpg)
Ex2. การประยกตใชอารเรย 2 มต จงเขยนโปรแกรมเพอบนทกคาคะแนนการสอบปฏบต 3 ครงของนกศกษา 5 คน และใหบนทกผลรวมของคะแนนแตละคน แสดงคะแนนรวมของนกศกษาแตละคน แสดงคะแนนของคนทไดคะแนนรวมมากทสด
START
GetScore
ShowScore
FindTop
STOP
![Page 37: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/37.jpg)
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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/38.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/39.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน39
START
GetScore
ShowScore
FindTop
STOP
![Page 40: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/40.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/41.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/42.jpg)
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/43.jpg)
แบบฝกหด (สงในคาบปฏบต) จงเขยนผงงาน และเขยนโปรแกรม รบขอมลจ านวนนกศกษา และรบขอมลชอนกศกษาใสอารเรย และคะแนนสอบกลางภาคและสอบปลายภาคของนกศกษาแตละคน จากนนค านวณคะแนนรวมใสอารเรย แสดงชอนกศกษาและคะแนนรวมทได และเกรดทไดรบ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/44.jpg)
ตวอยางหนาจอผลลพธ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน44
หนาจอรบจ านวนนกศกษาทงหมด
หนาจอขอมลชอ และคะแนนของนกศกษาแตละ
คน
หนาจอสรปคะแนนรวมและเกรด
![Page 45: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/45.jpg)
แบบฝกหด (สงในคาบปฏบต) จงเขยนผงงาน(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/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/46.jpg)
ตวอยางหนาจอ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน46
กรณเลอก ทนงไมซ า
![Page 47: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/47.jpg)
ตวอยางหนาจอ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน47
กรณเลอก ทนงซ ากบทมแลว
![Page 48: ตัวแปรแถวล าดับ - Udon Thani Rajabhat Universitysci.udru.ac.th/websci/download/com/rewadee/com_program/...ประโยชน ของการใช](https://reader035.vdocument.in/reader035/viewer/2022070809/5f07d8bf7e708231d41f0c1f/html5/thumbnails/48.jpg)
ตวอยางหนาจอ
เรยบเรยงโดย อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน48
กรณเลอก เลอกแถวและคอลมน เปน 99 99