บทที่ 5...
TRANSCRIPT
1. ประสทธภาพการเกบขอมลแบบตวแปรชด
ตวแปรชดหรอเรยกวา ตวแปรแบบอารเรย ( Array Variable) มลกษณะเปนขอมลโครงสรางชนดหนง ประกอบไปดวยขอมลชนดพนฐานหลายๆตวรวม กลมกน ขอมลแตละตวนนเรยกวา อลเมนต(Element) และทกอลเมนตนน ตองเปนขอมลชนดเดยวกน
1.1 ค าสงก าหนดลกษณะตวแปรชดการก าหนดลกษณะของตวแปรชด หมายถง การก าหนดวธการจดเกบ
ขอมล โดยใชตารางขอมล ทเรยกวามต ( Dimension ) แบงตามลกษณะการท างานได 3รปแบบ คอ แบบ 1 มต แบบ 2 มต และแบบ 3 มต
1) ค าสงก าหนดตวแปรชดแบบ 1 มต
รปแบบ type array_name [ r ] ;
2) ค าสงก าหนดตวแปรชดแบบ 2 มต
รปแบบ type array_name [ r ] [ c ] ;
3) ค าสงก าหนดตวแปรชดแบบ 3 มต
รปแบบ type array_name [ n ] [ r ] [ c ] ;
อธบายtype คอชนดขอมลพนฐาน เชน int, float, chararray_name คอชอตวแปรชด[ n ] คอจ านวนตารางขอมล[ r ] คอจ านวนแถวของตารางขอมล[ c ] คอจ านวนคอลมนของตารางขอมล
1.1 ค าสงก าหนดลกษณะตวแปรชด (ตอ)
1.2 ลกษณะตารางขอมลในหนวยความจ าตวแปรชดตารางขอมลเปนพนททระบบจองพนทใชงานดานจดเกบขอมลของ
ตวแปรชด โดยเลยนแบบการด าเนนงานแบบตารางเมตรกทางคณตศาสตร อธบายลกษณะตารางจดเกบขอมลแตละมต ดงน
1) ลกษณะตารางขอมลตวแปรชดแบบ 1 มตตวอยางค าสง จองพนท เกบขอมลเลขจ านวนเตม 5 พนท ใหตวแปร
ชดชอ a ตารางขอมลแบบ 1 มต int a [ 5 ] ;
แสดงลกษณะตารางขอมลในตวแปรชด 1 มต
a [ 0 ]ขอมล ...
a [ 1 ]ขอมล ...
a [ 2 ]ขอมล ...
a [ 3 ]ขอมล ...
a [ 4 ]ขอมล ...
2) ลกษณะตารางขอมลตวแปรชดแบบ 2 มต1.2 ลกษณะตารางขอมลในหนวยความจ าตวแปรชด (ตอ)
ตวอยางค าสง จองพนทเกบขอมลเลขจ านวนเตม ใหตวแปรชดชอ a ตารางขอมลขนาดพนท 2 แถว 4 คอลมน
int a [ 2 ] [ 4 ] ;
a [ 0 ] [ 0 ] ขอมล ...
a [ 0 ] [1 ]ขอมล ...
a [ 0 ] [2 ]ขอมล ...
a [ 0 ] [3 ]ขอมล ...
a [ 1 ] [ 0 ] ขอมล ...
a [ 1 ] [1 ]ขอมล ...
a [ 1 ] [2 ]ขอมล ...
a [ 1 ] [3 ]ขอมล ...
แสดงลกษณะตารางขอมลในตวแปรชด 2 มต ขนาด 2 แถว 4 คอลมนคอลมน 0 คอลมน 1 คอลมน 2 คอลมน 3
แถว 0
แถว 1
มตท 1
มตท 2
int a [ 2 ] [ 2 ] [ 2] ;
3) ลกษณะตารางขอมลตวแปรชดแบบ 3 มตตวอยางค าสง จองพนทเกบขอมลเลขจ านวนเตม ใหตวแปรชดชอ a
ตารางขอมลขนาดพนท 2 แถว 2 คอลมน 2 ตารางขอมล
แสดงลกษณะตารางขอมลในตวแปรชด 3 มต ขนาด 2 แถว 2 คอลมน 2 ตาราง
1.2 ลกษณะตารางขอมลในหนวยความจ าตวแปรชด (ตอ)
คอลมน 0 คอลมน 1 คอลมน 0 คอลมน 1 ตารางขอมลท 0 (มต 3)
a [ 0 ] [ 0 ] [ 0 ] ขอมล ...
a [ 0 ][0 ] [1 ]ขอมล ...
a [ 1 ] [ 0 ] [ 0 ] ขอมล ...
a [ 1 ][0 ] [1 ]ขอมล ...
ตารางขอมลท 1 (มต 3) a [ 0 ] [ 1 ] [ 0 ] ขอมล ...
a [ 0 ][1 ] [1 ]ขอมล ...
a [ 1 ] [ 1 ] [ 0 ] ขอมล ...
a [ 1 ][1 ] [1 ]ขอมล ...
1.3 การอางองพนทหนวยความจ าของตวแปรชดการอางองพนทหนวยความจ าของตวแปรชดหมายถง การน าขอมลลง
ตารางขอมล การอานคาขอมลจากตารางขอมล การก าหนดคาขอมลลงตาราง ขอมล การประมวลผลโดยใชขอมลจากตวแปรชดพนททตองการ
1) การปอนขอมลลงพนทหนวยความจ าตวแปรชด
การปอนขอมลจดเกบลงพนทหนวยความจ าตวแปรชด ตองอางองชอตวแปร ตามดวยหมายเลขพนท เพอความสะดวกรวดเรวในการควบคมน าเขาขอมลลงพนทหนวยความจ า จงใชค าสงควบคมวนซ าชวยด าเนนงาน ในทนยกตวยาง การวนซ าควบคมการน าขอมลลงพนทตวแปรชดดวยค าสง for ดงน
ตวอยางค าสง วนซ าเพอรบขอมลลงพนทหนวยความจ าตวแปรชดแบบ 1 มต จ านวน 5 พนท
1.3 การอางองพนทหนวยความจ าของตวแปรชด(ตอ)
for (n = 1 ; n <= 5 ; n++){printf ( “ Score = “ ) ;scanf ( “ %d “ , &score [ n ] ) ;
}
อธบาย 1. ควบคมใหวนซ า 5 รอบ เพอรบขอมลคะแนน จดเกบในหนวยความจ าตวแปรชด ชอ score จ านวน 5 พนท จากค าสง scanf 2. ส าหรบ n คาแรก คอ คา 1 และเพมคาทละ 1 แตไมเกน 5
1.3 การอางองพนทหนวยความจ าของตวแปรชด(ตอ)2) การก าหนดขอมลลงพนทหนวยความจ าตวแปรชด
กรณตองการก าหนดคาในตารางขอมล พนทหนวยความจ าของตวแปรชด เขยนค าสงไดดงน
1. ค าสงก าหนดคาใหตวแปรชดแบบ 1 มตรปแบบ type array_name [ size] = { value list } ;
2. ค าสงก าหนดคาใหตวแปรชดแบบ 2 มตรปแบบ type array_name [ r ] [ c ] = { value list } ;
3. ค าสงก าหนดคาใหตวแปชดแบบ 3 มตรปแบบ type array_name [ n ] [ r ] [ c ] = { value list } ;
**Size คอขนาดพนทเกบขอมลvalue list คอขอมลทก าหนดใหตวแปรชด หากมหลายคา ใหใช , คน
1.3 การอางองพนทหนวยความจ าของตวแปรชด(ตอ)3) การอานขอมลจากหนวยความจ าตวแปรชด
การอานคาขอมลจากพนทหนวยความจ าของตวแปรชดมาแสดงผล ตองอางองชอตวแปร ตามดวยหมายเลขพนทเชนกน เพอความสะดวกรวดเรวในการควบคมอานคาขอมลจากหนวยความจ าทกพนทในตารางขอมล จงใชวธเดยวกนกบการน าเสนอขอมลลงในพนทหนวยความจ าตวแปรชด ดวยการใชค าสงควบคมวนซ า
ตวอยางค าสง อานขอมลจากหนวยความจ าตวแปรชด
for (n = 1 ; n <= 5 ; n++){printf ( “ Score = %d
\n” , score [ n ] ) ; }
1.3 การอางองพนทหนวยความจ าของตวแปรชด(ตอ)
อธบาย 1. วนซ าดวยขอมลคะแนนจากหนวยความจ าตวแปรชดชอ score จ านวน 5 พนท จากค าสง printf ( “ Score = %d \n” , score [ n ] ) ;
2. ส าหรบ n คาแรก คอคา 1 และเพมคาทละ 1 แตไมเกน 5
2. ประสทธภาพการเกบขอมลแบบกลมอกขระ ตวแปรแบบกลมอกขระ หรอเรยกวา ตวแปรแบบสตรง (String Variable) เปนขอมลตวแปรชดประเภทหนงทมลกษณะเปนขอมลประเภทขอความ ประกอบดวยอกขระมากกวา 1 ตว ใชเนอท 1อกขระตอ 1 ไบต การสนสดกลมขอมลประเภทขอความดวยการกดแปน Enter ระบบจะแทนคาในหนวยความจ า ดวยสญลกษณ “ \0 ” ดงนน การก าหนดขนาดพนทใหขอความ ตองค านวณพนทบวก 1 คาไวเสมอ
2.1 ค าสงก าหนดลกษณะตวแปรแบบกลมอกขระ การก าหนดลกษณะของตวแปรกลมอกขระ เปนการจองพนทขนาดตารางขอมลเพอใชในการจดเกบกลมขอมลเฉพาะอกขระเทานน ยกตวอยางตวแปรแบบ 1 มต และ 2 มต ดงน
1) ค าสงก าหนดตวแปรกลมอกขระแบบ 1 มต รปแบบ char array_name [r] ;
char array_name [r] [ c ] ;
2) ค าสงก าหนดตวแปรกลมอกขระแบบ 2 มตรปแบบอธบาย
array_name คอชอตวแปรแบบกลมอกขระ[ r ] คอจ านวนแถวของตารางขอมล
[ c ] คอจ านวนคอลมนของตารางขอมล
2.2 ค าสงก าหนดคาใหตวแปรชดแบบกลมอกขระ การเขยนค าสงในโปรแกรมใหจดเกบคาขอมลเฉพาะกลมอกขระ ในตารางขอมลทจองพนทไวโดยไมตองปอนขอมลนนๆ ผานทางแปนพมพ เขยนค าสงดงน
1) ค าสงก าหนดคาตวแปรแบบกลมอกขระ 1 มตรปแบบ char array_name [size] = “ string constant “ ;
ตวอยางค าสง ก าหนดขอมลตวอกษร “ X Y Z “ ใหจดเกบในตวแปรชดชอ b char b [4] = “ X Y Z “ ;
แสดงลกษณะการเกบขอมลในตารางขอมลตวแปรชดประเภทกลมอกขระแบบ 1 มต
a [ 0 ]ขอมล X
a [ 1 ]ขอมล Y
a [ 2 ]ขอมล Z
a [ 3 ]ขอมล \0
\0 คอ คา null character
2) ค าสงก าหนดคาตวแปรแบบกลมอกขระ 2 มตรปแบบ
2.2 ค าสงก าหนดคาใหตวแปรชดแบบกลมอกขระ(ตอ)
char array_name [ r ] [ c ] = { “ string constant list “ } ;อธบาย
array_name คอชอตวแปรแบบกลมอกขระstring constant list คอขอมลชนดอกขระ หากมหลายรายการใหใช , คน[ r ] คอจ านวนแถวของตารางขอมล
[ c ] คอจ านวนคอลมนของตารางขอมล Size คอขนาดพนทเกบขอมล
ตวอยางค าสง ก าหนดใหจดเกบขอมล “ABC” , “DEF” ลงหนวยความจ าตวแปรชด
2.2 ค าสงก าหนดคาใหตวแปรชดแบบกลมอกขระ(ตอ)
char a [ 2 ] [ 4 ] = { “ ABC “ ,“DEF “ } ;
แสดงลกษณะการเกบขอมลในตารางตวแปรชดประเภทกลมอกขระแบบ 2 มต
a [ 0 ] [ 0 ] ขอมล A
a [ 0 ] [1 ]ขอมล B
a [ 0 ] [2 ]ขอมล C
a [ 0 ] [3 ]ขอมล \0
a [ 1 ] [ 0 ] ขอมล D
a [ 1 ] [1 ]ขอมล E
a [ 1 ] [2 ]ขอมล F
a [ 1 ] [3 ]ขอมล \0
คอลมน 0 คอลมน 1 คอลมน 2 คอลมน 3
มตท 2
มตท 1
แถว 0
แถว 1
2.3 การอางองขอมลในตารางขอมลตวแปรชดกลมอกขระ ตวแปรชดกลมอกขระ ใชวธการอางองหนวยความจ าเชนเดยวกบตวแปรชดแบบอนๆ และใชค าสง for ควบคมการวนซ าด าเนนงานกบขอมล ดงน
1) การก าหนดขอมลใหตวแปรกลมอกขระ และอานคามาใชงาน ตวอยางค าสง ก าหนดขอมลจดเกบลงหนวยความจ าตวแปรชดกลมอกขระ 2 มต
char name [ 5 ] [ 20 ] = { “Panya, Pawat, Pattraporn, Patcharawarai, Pilin “ } ;
for (i = 0 ; i < 4 ; i++){printf ( “ %d ” , i+1 ) ;printf ( “ %P \n ” ,
name [ i ] ) ; }
ตวอยางค าสง ควบคมใหวนซ าอานคาขอมลจากหนวยความจ าตวแปรชดกลมอกขระ 2 มต
2.3 การอางองขอมลในตารางขอมลตวแปรชดกลมอกขระ(ตอ)
2.3 การอางองขอมลในตารางขอมลตวแปรชดกลมอกขระ(ตอ)2) การปอนคาและอานคาจากหนวยความจ าตวแปรชดกลมอกขระ
ตวอยางค าสง จองพนทหนวยความจ าใหตวแปรชดกลมอกขระลกษณะ 2 มต
char name [ 5 ] [ 20 ] ;
ตวอยางค าสง วนซ ารบคาจากแปนพมพ เพอจดเกบลงพนทหนวยความจ าตวแปรชดกลมอกขระ
for (i = 0 ; i < 4 ; i++){printf ( “ name = > ” ) ;gets ( name [ i ] ) ;
}
ตวอยางค าสง วนซ าอานคาจากพนทหนวยความจ าตวแปรชดกลมอกขระมาแสดงผล
2.3 การอางองขอมลในตารางขอมลตวแปรชดกลมอกขระ(ตอ)
for (i = 0 ; i < 4 ; i++){printf ( “ %d ” , i+1 ) ;printf ( “ %P \n ” , name [ i ] ) ;
}
3.กรณศกษาการใชตวแปรชด3.1 กรณศกษาการอางองขอมลประเภทตวแปรในหนวย
ความจ าตวแปรชดแบบ 1 มต
โจทย : จงเขยนโปรแกรมระบบงานเพอน าขอมลคะแนนนกเรยน 5 ราย จดเกบ ลงหนวยความจ าตวแปรชด แลวอานคาขอมลคะแนนนกเรยนทง 5 ราย จากหนวยความจ าตวแปรชดมาแสดงทจอภาพ
3.1 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 1 มต(ตอ)
รปผงงานท 5.1 ผงงานจากโปรแกรมตวอยางท 5.1
3.1 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 1 มต(ตอ)
ตวอยางโปรแกรมท 5.1 กรณศกษาโปรแกรมระบบงาน ปอนและอานขอมล จากตารางพนทตวแปรชด 1 มต
3.1 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 1 มต(ตอ)
อธบาย โปรแกรมนควบคมการท างานเปนคาคงทในโปรแกรม คอ 5 รอบ
3.2 กรณศกษา การอางองขอมลประเภทคาคงทในหนวยความจ าตวแปรชดแบบ 1 มตโจทย : จงเขยนโปรแกรมระบบงานเพอก าหนดคาคะแนนนกเรยน 5 รายในตว โปรแกรม ดงน 15.5, 19.5, 10.0, 12.5, 19.7 แลวอานขอมลทน าไปจดเกบ ในตารางขอมลนนมาแสดงผลทจอภาพ
ตวอยางโปรแกรมท 5.2 กรณศกษาโปรแกรมระบบงาน ก าหนดขอมลและอานคาจากหนวยความจ าตวแปรชด 1 มต
อธบาย ระบบวนซ าอานคาขอมล คะแนนนกเรยนจ านวน 5 ราย จากหนวยความจ าตวแปรชดจากทเขยน ค าสงก าหนดขอมลไวในโปรแกรม
3.3 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 2 มตโจทย : จงเขยนโปรแกรมระบบงานเพอปอนขอมลคะแนนนกเรยน 2 ราย แตละ รายตองปอนคะแนนจ านวน 3 วชา บนทกลงหนวยความจ าแบบตวแปรชด แลวอานคาจากหนวยความจ าตวแปรชดแสดงผลทจอภาพ วเคราะหตารางขอมลจากโจทยตองใชตวแปรชดขนาด 2 มต ขนาด 2 แถว x 3 คอลมน ไดตารางขอมลขนาด 6 หองคอ
รปผงงานท 5.2 ผงงานโปรแกรมตวอยางท 5.3
3.4 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 1 มตก าหนดรอบวนซ าโดยผใชระบบงานโปรแกรม
โจทย : จงเขยนขนตอนการสรางงานโปรแกรม เพอปอนขอมลชอรายการวตถดบ และราคาของวตถดบทใช ด าเนนงานตามจ านวนทผใชระบบระบจ านวนรายการ แลวใหพมพสรปขอมลทบนทกทงหมดพรอมพมพผลรวมจ านวนเงนวตถดบทงหมดทจดซอในครงน การแสดงผลทางจอภาพใหออกแบบตามความเหมาะสมของงาน ก าหนดคณสมบตตวแปร
ขอมล ชอหนวยความจ า ชนดขอมลจ านวนรายการวตถดบ n ตวเลขจ านวนเตม
ล าดบวตถดบ I ตวเลขจ านวนเตมชอวตถดบ Material ตวแปรชด 1 มต กลมอกขระ
ราคาตนทนวตถดบ Price ตวแปรชด 1 มต จ านวนเตมผลรวมตนทน Sum ตวเลขจ านวนเตม
รปผงงานท 5.3 ผงงานกรณศกษาจากโปรแกรมตวอยางท 5.4
ตวอยางโปรแกรมท 5.4 กรณศกษาโปรแกรมระบบงานปอนรายการและราคาวตถดบลงตวแปรชดแลวอานคาสรปรายงานพรอมพมพผลรวมราคาวตถดบทงหมด
ตวอยางโปรแกรมท 5.4 (ตอ)
อธบาย 1. ค าสงนพจน n = atoi ( gets (numstr ) );หมายถงใชฟงกชนมาตรฐาน แปลงคาอกขระในหนวยความจ าตวแปร
เปนตวเลขแลวเกบคาทไดในหนวยความจ า n 2. การหาคาผลรวม ซงเปนคาสะสมในหนวยความจ าคาใดนน ตองเขยน ค าสงใหอยในชวงการวนซ าดวย
3.5 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบ 3 มตโจทย : จงเขยนโปรแกรมระบบงาน เพอปอนคะแนนทไดจากการทดสอบนกเรยนกลมตวอยางจ านวน 2 กลมกลมละ 3 คน พรอมค านวณหาผลรวมคะแนนนกเรยนแตละรายดวยตวอยางลกษณะขอมลในตารางขอมล
ตวอยางโปรแกรมท 5.5 กรณศกษาโปรแกรมระบบงานปอนและอานขอมล จากหนวยความจ าตวแปรชด 3 มต
ตวอยางโปรแกรมท 5.5 (ตอ)
อธบาย การเขยนค าสง snum = 0 ; เพอลางคาเดมทง กอนหาคาสะสมคาอน
4.กรณศกษาการใชตวแปรกลมอกขระ4.1 กรณศกษาการอางองขอมลประเภทคาคงทในหนวย
ความจ าตวแปรชดแบบกลมอกขระ
โจทย : จงเขยนงานเพอก าหนดชอนกเรยน 5 รายคอ {“Somsri”, “Somjai”, “Somnuk”, “Somjit”, “Somkit”} เขาไปเกบในหนวยความจ าตวแปรชด แลวแสดงผลขอมลทจอภาพ
ตวอยางโปรแกรมท 5.6 กรณศกษาโปรแกรมระบบงานก าหนดขอมลลงตวแปรชด แลวน ามาแสดงผล
4.2 กรณศกษาการอางองขอมลประเภทตวแปรในหนวยความจ าตวแปรชดแบบกลมอกขระโจทย : จงเขยนงานโปรแกรมปอนขอมลชอนกเรยนจ านวน 5 ราย เขาไปเกบในหนวยความจ าตวแปรชดแลวอานขอมลทจดเกบนนพมพสรปทจอภาพ
ก าหนดคณสมบตตวแปร
ขอมล ชอหนวยความจ า ชนดขอมลจ านวนนกเรยน n ตวเลขจ านวนเตม
ล าดบ I ตวเลขจ านวนเตมชอนกเรยน name ตวแปรชด 1 มต กลมอกขระ
รปผงงานท 5.4 ผงงานกรณศกษาจากโปรแกรมตวอยางท 5.7
ตวอยางโปรแกรมท 5.7 กรณศกษาโปรแกรมระบบงานรบขอมล จดเกบลงหนวยความจ าตวแปรชด แลวอานคาเพอแสดงผล
ตวอยางโปรแกรมท 5.7 (ตอ)
อธบาย ค าสงนพจน n = atoi (gets (numstr) ) ;คอรบคาขอมลประเภทอกขระ ลงหนวยความจ าตวแปร numstr
แลวน าคานน มาแปลงเปนตวเลขดวยฟงกชน atoi ( )
1. นายจตรเทพ สกลธนาศร เลขท 52. นายธนวส ออนเอยม เลขท 6
3. นางสาวจตรทพย สกลธนาศร เลขท 234. นางสาวธนชกญ พลผล เลขท 245. นางสาวพชรวลย ดประชา เลขท 256. นางสาวภทราพร เนตรสวาง เลขท 267. นางสาวศศวมล สมบรณศร เลขท 27
ชนมธยมศกษาปท 6/2