1.ประสิทธิภาพการเก็บข้อมูลแบบตัวแปรชุด
ตัวแปรชุดหรือเรียกว่า ตัวแปรแบบอาร์เรย์( Array
Variable) มีลักษณะเป็นข้อมูลโครงสร้างชนิดหนึ่ง ประกอบ
ไปด้วยข้อมูลชนิดพื้นฐานหลายๆตัวรวม กลุ่มกัน ข้อมูลแต่ละ
ตัวนั้นเรียกว่า อีลีเมนต์(Element) และ
ทุกอีลีเมนต์นั้น ต้องเป็นข้อมูลชนิดเดียวกัน
1.1 คาสั่งกาหนดลักษณะตัวแปรชุด
การกาหนดลักษณะของตัวแปรชุด หมายถึง การกาหนดวิธีการจัดเก็บ
ข้อมูล โดยใช้ตารางข้อมูล ที่เรียกว่ามิติ (Dimension ) แบ่งตามลักษณะการ
ทางานได้ 3รูปแบบ คือ แบบ 1 มิติ แบบ 2 มิติ และแบบ 3 มิติ
คาสั่งกาหนดตัวแปรชุดแบบ 1 มิติ
1) คาสั่งกาหนดตัวแปรชุดแบบ 1 มิติ
รูปแบบ : type array_name [ r ] ;
2) คาสั่งกาหนดตัวแปรชุดแบบ 2 มิติ
รูปแบบ : type array_name [ r ] [ c ] ;
3) คาสั่งกาหนดตัวแปรชุดแบบ 3 มิติ
รูปแบบ : type array_name [ n ] [ r ] [ c ] ;
• อธิบาย
type คือ ชนิดข้อมูลพื้นฐาน เช่น int, float, char
array_name คือ ชื่อตัวแปรชุด
[ n ] คือ จานวนตารางข้อมูล
[ r ] คือ จานวนแถวของตารางข้อมูล
[ c ] คือ จานวนคอลัมน์ของตารางข้อมูล
1.2 ลักษณะตารางข้อมูลในหน่วยความจาตัวแปรชุด
ตารางข้อมูลเป็นพื้นที่ที่ระบบจองพื้นที่ใช้งานด้านจัดเก็บข้อมูลของตัว
แปรชุด โดยเลียนแบบการดาเนินงานแบบตารางเมตริกทางคณิตศาสตร์ อธิบาย
ลักษณะตารางจัดเก็บข้อมูลแต่ละมิติ ดังนี้
1) ลักษณะตารางข้อมูลตัวแปรชุดแบบ 1 มิติ
ตัวอย่างคาสั่ง จองพื้นที่ เก็บข้อมูลเลขจานวนเต็ม 5 พื้นที่ ให้ตัวแปรชุดชื่อ a
ตารางข้อมูลแบบ 1 มิติ
int a [ 5 ] ;
a [0]
ข้อมูล …
a [1]
ข้อมูล…
a [2]
ข้อมูล …
a [3]
ข้อมูล…
a [4]
ข้อมูล…
2) ลักษณะตารางข้อมูลตัวแปรชุดแบบ 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]
ข้อมูล …
คอลัมน์ 0 คอลัมน์ 1 คอลัมน์ 2 คอลัมน์
3
แถว 0
แถว 1
มิติที่ 1
มิติที่ 2
ตารางข้อมูลที่ 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]
ข้อมูล …
คอลัมน์ 0 คอมลัมน์ 1
คอมลัมน์ 0 คอมลัมน์ 1
1.3 การอ้างอิงพื้นที่หน่วยความจาของตัวแปรชุด
การอ้างอิงพื้นที่หน่วยความจาของตัวแปรชุดหมายถึง การนาข้อมูล
ลงตารางข้อมูล การอ่านค่าข้อมูลจากตารางข้อมูล การกาหนดค่าข้อมูลลง
ตาราง ข้อมูล การประมวลผลโดยใช้ข้อมูลจากตัวแปรชุดพื้นที่ที่ต้องการ
1) การป้อนข้อมูลลงพื้นที่หน่วยความจาตัวแปรชุด
2) การกาหนดข้อมูลลงพื้นที่หน่วยความจาตัวแปรชุด
3) การอ่านข้อมูลจากหน่วยความจาตัวแปรชุด
1. การป้ อนข้อมูลลงพื้นที่หน่วยความจาตัวแปรชุด
การป้อนข้อมูลจัดเก็บลงพื้นที่หน่วยความจาตัวแปรชุดต้องอ้างอิงชื่อตัว
แปร ตามด้วยหมายเลขพื้นที่ เพื่อความสะดวก รวดเร็วในการควบคุมนาเข้าข้อมูล
ลงพื้นที่หน่วยความจา จึงใช้คาสั่งควบคุมวนซ้าช่วยดาเนินงาน ในที่นี้ยกตัวอย่าง
การวนซ้า ควบคุมการนาข้อมูลลงพื้นที่ตัวแปรชุดด้วยคาสั่ง for ดังนี้
ตัวอย่างคาสั่ง วนซ้าเพื่อรีบข้อมูลลงพื้นที่หน่วยความจาตัวแปรชุดแบบ 1 มิติ
จานวน 5 พื้นที่
for (n = 1 ; n <= 5 ; n++){
printf (“ Score = “ ) ;
scanf (“ %d “ , &score [ n ] ) ;
}
• อธิบาย
1. ควบคุมให้วนซ้า 5 รอบ เพื่อรับข้อมูลคะแนน จัดเก็บในหน่วยความจาตัวแปรชุด
ชื่อ score จานวน 5 พื้นที่ จากคาสั่ง scanf
2. สาหรับ n ค่าแรก คือ ค่า 1 และเพิ่มค่าทีละ 1 แต่ไม่เกิน 5
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 คือข้อมูล
ที่กาหนดให้ตัวแปรชุด หากมีหลายค่า ให้ใช้ , คั่น
3.การอ่านข้อมูลจากหน่วยความจาตัวแปรชุด
การอ่านค่าข้อมูลจากพื้นที่หน่วยความจาของตัวแปรชุดมาแสดงผล ต้องอ้างอิง
ชื่อตัวแปร ตามด้วยหมายเลขพื้นที่เช่นกัน เพื่อความสะดวกรวดเร็วในการควบคุมอ่าน
ค่าข้อมูลจากหน่วยความจาทุกพื้นที่ในตารางข้อมูล จึงใช้วิธีเดียวกันกับการนาเสนอ
ข้อมูลลงในพื้นที่หน่วยความจาตัวแปรชุด ด้วยการใช้คาสั่งควบคุมวนซ้า
ตัวอย่างคาสั่ง อ่านข้อมูลจากหน่วยความจาตัวแปรชุด
for (n = 1 ; n <= 5 ; n++)
{
printf (“ Score = %d n” , score [ n ] ) ;
}
อธิบาย
1. วนซ้าด้วยข้อมูลคะแนนจากหน่วยความจาตัวแปรชุดชื่อ score จานวน 5 พื้นที่ จาก
คาสั่ง printf(“ Score = %d n” , score [ n ] ) ;
2. สาหรับ n ค่าแรก คือค่า 1 และเพิ่มค่าทีละ 1 แต่ไม่เกิน 5
ประสิทธิภาพการเก็บข้อมูลแบบกลุ่มอักขระ
• ตัวแปรแบบกลุ่มอักขระ หรือเรียกว่า ตัวแปรแบบ
สตริง (String Variable) เป็นข้อมูลตัวแปรชุดประเภท
หนึ่งที่มีลักษณะเป็นข้อมูล ประเภทข้อความ
ประกอบด้วยอักขระมากกว่า 1 ตัว ใช้เนื้อที่ 1อักขระ
ต่อ 1 ไบต์ การสิ้นสุดกลุ่มข้อมูลประเภทข้อความด้วย
การกดแป้น Enter ระบบจะแทนค่าในหน่วยความจา
ด้วยสัญลักษณ์ “ ” ดังนั้น การกาหนดขนาดพื้นที่ให้
ข้อความ ต้องคานวณพื้นที่บวก 1 ค่าไว้เสมอ
คาสั่งกาหนดลักษณะตัวแปรแบบกลุ่มอักขระ
การกาหนดลักษณะของตัวแปรกลุ่มอักขระเป็นการจองพื้นที่ขนาดตารางข้อมูลเพื่อใช้ในการ
จัดเก็บกลุ่มข้อมูลเฉพาะอักขระเท่านั้นยกตัวอย่างตัวแปรแบบ 1 มิติ และ 2 มิติ
1) คาสั่งกาหนดตัวแปรกลุ่มอักขระแบบ 1 มิติ
รูปแบบ char array_name [r] ;
2) คาสั่งกาหนดตัวแปรกลุ่มอักขระแบบ 2 มิติ
รูปแบบ char array_name [r] [ c ] ; อธิบาย
array_name คือ ชื่อตัวแปรแบบกลุ่มอักขระ
[ r ] คือ จานวนแถวของตารางข้อมูล
[ c ] คือ จานวนคอลัมน์ของตารางข้อมูล
คาสั่งกาหนดค่าให้ตัวแปรชุดแบบกลุ่มอักขระ
การเขียนคาสั่งในโปรแกรมให้จัดเก็บค่าข้อมูลเฉพาะกลุ่มอักขระ ในตารางข้อมูลที่จอง
พื้นที่ไว้โดยไม่ต้องป้อนข้อมูลนั้นๆ ผ่านทางแป้นพิมพ์ เขียนคาสั่งดังนี้
1) คาสั่งกาหนดค่าตัวแปรแบบกลุ่มอักขระ 1 มิติ
รูปแบบ char array_name [size] = “ string
constant “ ;
กาหนดข้อมูลตัวอักษร“ X Y Z “ ให้จัดเก็บในตัวแปรชุดชื่อ b
char b [4] = “ X Y Z “ ;
2) คาสั่งกาหนดค่าตัวแปรแบบกลุ่มอักขระ 2 มิติ
รูปแบบ char array_name [ r ] [ c ] = { “ string
constant list “ } ;
อธิบาย
array_name คือ ชื่อตัวแปรแบบกลุ่ม
อักขระ
string constant list คือ ข้อมูลชนิด
อักขระ หากมีหลายรายการให้ใช้ , คั่น
[ r ] คือ จานวนแถวของตารางข้อมูล
[ c ] คือ จานวนคอลัมน์ของตารางข้อมูล
Size คือ ขนาดพื้นที่เก็บข้อมูล
การอ้างอิงข้อมูลในตารางข้อมูลตัวแปรชุดกลุ่มอักขระ
ตัวแปรชุดกลุ่มอักขระ ใช้วิธีการอ้างอิงหน่วยความจาเช่นเดียวกับตัวแปรชุด
แบบอื่นๆ และใช้คาสั่ง for ควบคุมการวนซ้าดาเนินงานกับข้อมูล ดังนี้
1) การกาหนดข้อมูลให้ตัวแปรกลุ่มอักขระและอ่านค่ามาใช้งานตัวอย่างคาสั่ง
กาหนดข้อมูลจัดเก็บลงหน่วยความจาตัวแปรชุดกลุ่มอักขระ 2 มิติ
char name [ 5 ] [ 20 ] = { “Panya, Pawat,Pattraporn, Patcharawarai, Pilin “ } ;
ตัวอย่างคาสั่ง ควบคุมให้วนซ้าอ่านค่าข้อมูลจากหน่วยความจาตัวแปร
ชุดกลุ่มอักขระ 2 มิติ
for (i = 0 ; i < 4 ; i++){
printf (“ %d ” , i+1 ) ;
printf (“ %P n ” , name [ i ] ) ;
}
2) การป้อนค่าและอ่านค่าจากหน่วยความจาตัวแปรชุดกลุ่มอักขระ
ตัวอย่างคาสั่ง จองพื้นที่หน่วยความจาให้ตัวแปรชุดกลุ่มอักขระลักษณะ 2 มิติ
char name [ 5 ] [ 20 ] ;
ตัวอย่างคาสั่ง วนซ้ารับค่าจากแป้นพิมพ์เพื่อจัดเก็บลงพื้นที่หน่วยความจาตัวแปร
ชุดกลุ่มอักขระ
for (i = 0 ; i < 4 ; i++){
printf (“ name = > ” )
;gets (name [ i ] ) ;
}
ตัวอย่างคาสั่ง วนซ้าอ่านค่าจากพื้นที่หน่วยความจาตัวแปรชุด
กลุ่มอักขระมาแสดงผล
for (i = 0 ; i < 4 ; i++){
printf (“ %d ” , i+1 ) ;
printf (“ %P n ” , name [ i ] ) ;
}
กรณีศึกษาการใช้ตัวแปรชุด
โจทย์ : จงเขียนโปรแกรมระบบงานเพื่อนาข้อมูลคะแนนนักเรียน 5 ราย จัดเก็บลงหน่วยความจาตัว
แปรชุด แล้วอ่านค่าข้อมูลคะแนนนักเรียนทั้ง 5 รายจากหน่วยความจาตัวแปรชุดมาแสดงที่จอภาพ
กรณีศึกษาการใช้ตัวแปรกลุ่มอักขระ
โจทย์:จงเขียนงานเพื่อกาหนดชื่อนักเรียน 5 รายคือ
{“Somsri”, “Somjai”,“Somnuk”, “Somjit”, “Somkit”} เข้าไปเก็บใน
หน่วยความจาตัวแปรชุดแล้วแสดงผลข้อมูลที่จอภาพ
อ้างอิง
• https://studyroomonline.wordpress.com
• http://www.slideshare.net/mooksasivimon/5-
14288594
• https://totogogomy.wordpress.com/
• http://abarm2007.blogspot.com/2011/01/stri
ng.html
จัดทาโดย
นายพฤฒพงศ์ ชาญวิทยา เลขที่ 3
นางสาวณัฐณิชา จันทร์สนอง เลขที่ 14
นางสาวธนพร หนูเกตุ เลขที่ 15
นางสาวเนตรนรินทร์ สืบกลัด เลขที่ 16
นางสาวกัญญกมนต์ วณิชพัฒนกุล เลขที่ 17
นางสาวพิมพ์นิภา วิศิษฏ์รัฐพงศ์ เลขที่ 23
ม.6/2

ตัวแปรชุด