Mais conteúdo relacionado Semelhante a ตัวแปรชุดและตัวแปรกลุ่มอิสระ (20) Mais de Lacus Methini (13) ตัวแปรชุดและตัวแปรกลุ่มอิสระ3. 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 ] ;
4. อธิบาย
type คือชนิดข้อมูลพื้นฐาน เช่น int, float, char
array_name คือชื่อตัวแปรชุด
[ n ] คือจานวนตารางข้อมูล
[ r ] คือจานวนแถวของตารางข้อมูล
[ c ] คือจานวนคอลัมน์ของตารางข้อมูล
1.1 คาสั่งกาหนดลักษณะตัวแปรชุด(ต่อ)
6. 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
7. 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 ]
ข้อมูล ...
9. ตัวอย่างคาสั่ง วนซ้าเพื่อรีบข้อมูลลงพื้นที่หน่วยความจาตัวแปรชุด
แบบ 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
12. ตัวอย่างคาสั่ง อ่านข้อมูลจากหน่วยความจาตัวแปรชุด
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
13. 2. ประสิทธิภาพการเก็บข้อมูลแบบกลุ่มอักขระ
ตัวแปรแบบกลุ่มอักขระ หรือเรียกว่า ตัวแปรแบบสตริง
(String Variable) เป็นข้อมูลตัวแปรชุดประเภทหนึ่งที่มีลักษณะเป็นข้อมูล
ประเภทข้อความ ประกอบด้วยอักขระมากกว่า 1 ตัว ใช้เนื้อที่ 1อักขระต่อ
1 ไบต์ การสิ้นสุดกลุ่มข้อมูลประเภทข้อความด้วยการกดแป้น Enter ระบบ
จะแทนค่าในหน่วยความจา ด้วยสัญลักษณ์ “ 0 ” ดังนั้น การกาหนดขนาด
พื้นที่ให้ข้อความ ต้องคานวณพื้นที่บวก 1 ค่าไว้เสมอ
16. 2) คาสั่งกาหนดค่าตัวแปรแบบกลุ่มอักขระ 2 มิติ
รูปแบบ
2.2 คาสั่งกาหนดค่าให้ตัวแปรชุดแบบกลุ่มอักขระ(ต่อ)
char array_name [ r ] [ c ] = { “ string constant list “ } ;
อธิบาย
array_name คือชื่อตัวแปรแบบกลุ่มอักขระ
string constantlist คือข้อมูลชนิดอักขระ หากมีหลายรายการให้ใช้ , คั่น
[ r ] คือจานวนแถวของตารางข้อมูล
[ c ] คือจานวนคอลัมน์ของตารางข้อมูล
Size คือขนาดพื้นที่เก็บข้อมูล
17. ตัวอย่างคาสั่ง กาหนดให้จัดเก็บข้อมูล “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
19. for (i = 0 ; i < 4 ; i++)
{
printf ( “ %d ” , i+1 ) ;
printf ( “ %P n ” ,
name [ i ] ) ;
}
ตัวอย่างคาสั่ง ควบคุมให้วนซ้าอ่านค่าข้อมูลจากหน่วยความจา
ตัวแปรชุดกลุ่มอักขระ 2 มิติ
2.3 การอ้างอิงข้อมูลในตารางข้อมูลตัวแปรชุดกลุ่มอักขระ(ต่อ)
20. 2.3 การอ้างอิงข้อมูลในตารางข้อมูลตัวแปรชุดกลุ่มอักขระ(ต่อ)
2) การป้ อนค่าและอ่านค่าจากหน่วยความจาตัวแปรชุดกลุ่มอักขระ
ตัวอย่างคาสั่ง จองพื้นที่หน่วยความจาให้ตัวแปรชุดกลุ่มอักขระลักษณะ2 มิติ
char name [ 5 ] [ 20 ] ;
ตัวอย่างคาสั่ง วนซ้ารับค่าจากแป้นพิมพ์เพื่อจัดเก็บลงพื้นที่หน่วยความจาตัว
แปรชุดกลุ่มอักขระ
for (i = 0 ; i < 4 ; i++)
{
printf ( “ name = > ” ) ;
gets ( name [ i ] ) ;
}
28. 3.3 กรณีศึกษาการอ้างอิงข้อมูลประเภทตัวแปรในหน่วย
ความจาตัวแปรชุดแบบ 2 มิติ
โจทย์ : จงเขียนโปรแกรมระบบงานเพื่อป้อนข้อมูลคะแนนนักเรียน 2 ราย แต่ละ
รายต้องป้อนคะแนนจานวน 3 วิชา บันทึกลงหน่วยความจาแบบตัวแปรชุด
แล้วอ่านค่าจากหน่วยความจาตัวแปรชุดแสดงผลที่จอภาพ
วิเคราะห์ตารางข้อมูลจากโจทย์ต้องใช้ตัวแปรชุดขนาด 2 มิติ ขนาด 2 แถว
x 3 คอลัมน์ ได้ตารางข้อมูลขนาด 6 ห้องคือ
30. 3.4 กรณีศึกษาการอ้างอิงข้อมูลประเภทตัวแปรในหน่วยความจา
ตัวแปรชุดแบบ 1 มิติกาหนดรอบวนซ้าโดยผู้ใช้ระบบงานโปรแกรม
โจทย์ : จงเขียนขั้นตอนการสร้างงานโปรแกรม เพื่อป้อนข้อมูลชื่อรายการวัตถุดิบ
และราคาของวัตถุดิบที่ใช้ดาเนินงานตามจานวนที่ผู้ใช้ระบบระบุจานวนรายการ
แล้วให้พิมพ์สรุปข้อมูลที่บันทึกทั้งหมดพร้อมพิมพ์ผลรวมจานวนเงินวัตถุดิบ
ทั้งหมดที่จัดซื้อในครั้งนี้ การแสดงผลทางจอภาพให้ออกแบบตามความเหมาะสม
ของงาน กาหนดคุณสมบัติตัวแปร
ข้อมูล ชื่อหน่วยความจา ชนิดข้อมูล
จานวนรายการวตถุดิบ n ตัวเลขจานวนเต็ม
ลาดับวัตถุดิบ I ตัวเลขจานวนเต็ม
ชื่อวัตถุดิบ Material ตัวแปรชุด 1 มิติ กลุ่มอักขระ
ราคาต้นทุนวัตถุดิบ Price ตัวแปรชุด 1 มิติ จานวนเต็ม
ผลรวมต้นทุน Sum ตัวเลขจานวนเต็ม
34. อธิบาย 1. คาสั่งนิพจน์ n = atoi ( gets (numstr ) );
หมายถึงใช้ฟังก์ชันมาตรฐาน แปลงค่าอักขระในหน่วยความจาตัวแปร
เป็นตัวเลขแล้วเก็บค่าที่ได้ในหน่วยความจา n
2. การหาค่าผลรวม ซึ่งเป็นค่าสะสมในหน่วยความจาค่าใดนั้น ต้องเขียน
คาสั่งให้อยู่ในช่วงการวนซ้าด้วย
43. ตัวอย่างโปรแกรมที่ 5.7 (ต่อ)
อธิบาย คาสั่งนิพจน์ n = atoi (gets (numstr) ) ;
คือรับค่าข้อมูลประเภทอักขระ ลงหน่วยความจาตัวแปรnumstr
แล้วนาค่านั้น มาแปลงเป็นตัวเลขด้วยฟังก์ชัน atoi ( )
44. จัดทาโดย
1. นางสาวสุวภัทร ร่มสายหยุด เลขที่ 28
2. นางสาวเมทินี เผ่ากาญจนา เลขที่ 33
3. นางสาวช่อผกา อ่อนเบา เลขที่ 34
4. นางสาวผาณิตรี ถาวรพานิช เลขที่ 35
5. นางสาวพิมพ์ฤดี เพิ่มทอง เลขที่ 36
6. นางสาวอัญชลี จาเริญรักษา เลขที่ 37
ชั้นมัธยมศึกษาปีที่ 6/1