More Related Content Similar to ตัวแปรชุดและตัวแปรอักขระ Similar to ตัวแปรชุดและตัวแปรอักขระ (20) More from Areeya Onnom (20) ตัวแปรชุดและตัวแปรอักขระ2. ตัว แปรชุด
ตัว แปรชุด (array) เป็นกลุมของข้อมูลชนิดเดียวกันทีกำำหนดให้จัดเก็บเรียง
่ ่
ลำำดับตำมจำำนวนที่ต้องกำร มี ชื่อตัวแปรเหมือนกันต่ำงกันที่ดัชนี (index)ระบุ
งของตัวแปรในชุดนั้น กำรเก็บข้อมูลเป็นตัวแปรชุด ทำำให้ง่ำยในกำรตั้งชื่อตัว
มำก เข้ำถึงข้อมูลได้เร็ว แต่ถ้ำเก็บข้อมูลไม่ครบจะทำำให้เสียเนื้อที่หน่วยควำมจ
จำำเป็น
3. ประเภทของตัว แปรชุด อำจแบ่ง ตำมลัก ษณะ
1. ตัวแปรชุด 1ำ นวนตัวdimension ช นี คือ อ single
ของจำ มิติ (one เลขของดัarrays หรื
dimension arrays) เป็นตัวแปรชุดที่มีตัวเลขแสดงขนำดเป็น
เลขตัวเดียว เช่น word[20] ,num[25] , x[15]
2. ตัวแปรชุดหลำยมิติ (multi-dimension arrays) เป็น
ตัวแปรชุดที่ชื่อมีตัวเลขแสดงขนำดเป็นตัวเลขหลำยตัว ที่นิยม
ใช้กนมี 2 มิติ กับ 3 มิติ
ั
2.1 ตัวแปรชุด 2 มิติ มีเลขแสดงขนำด 2 ตัว เช่น
a[3][5] , name[5][6]
2.2 ตัวแปรชุด 3 มิติ มีเลขแสดงขนำด 3 ตัว เช่น
a[3][5][6] , name[5][6][8]
4. กำรประกำศและกำร
กำรประกำศตัวแปรชุด แปรชุดค1สัมิต งนี้
กำำ หนดค่ำ ตัว 1 มิติ ใช้ ำำ ่ง ดัิ
Type arrayname[size];
type คือ ชนิดของตัวแปร เช่น int char float
arrayname คือชื่อของตัวแปรarray
size คือ ขนำดของตัวแปร
int a[12]; เป็นกำรประกำศตัวแปร array ชื่อ a เป็น array ของข้อม
มำชิกได้ จำำนวน 12 ตัว คือ a[0] a[1] a[2] a[3] … a[11] โดยมีกำรจองเน
มจำำเปรียบเทียบได้ดังรูป
5. โดยสมำชิกแต่ละตัวจะใช้เนื้อที่เท่ำกับตัวแปร
ประเภท integer ที่ไม่ได้อยู่ใน array คือ 2 ไบต์ ต่อ
ตัวแปร 1 ตัวดังนั้นเนื้อที่หน่วยควำมจำำที่ใช้ทั้งหมดจึงเท่ำกับ
จำำนวนสมำชิก คูณ ด้วย 2 ไบต์ กำรกำำหนดค่ำให้แก่
ตัวแปร array อำจกำำหนดพร้อมกับกำรประกำศ เช่น
int num1[3] ={56,25,89}; เป็นกำรประกำศ
ว่ำตัวแปร num1 เป็น array ประเภท integer มีสมำชิก 3
ตัวโดย num1[0] =
56; ส่วน num1[1]=25; และ num1[2]=89;
แต่ไม่สำมำรถประกำศว่ำ int value[ ] ; โดย
ถ้ำจะไม่ระบุจำำนวนสมำชิก ต้องระบุค่ำของแต่ละสมำชิกที่ถก ู
ล้อมรอบด้วย { }โดยระหว่ำงสมำชิกคั่นด้วย
เครื่องหมำย , (คอมม่ำ) ดัง
ตัวอย่ำง inta[]={200,230};
6. หรือ ประกำศตัวแปร โดยยังไม่กำำหนดค่ำ เช่น int
money[5]; แล้วไปกำำหนดค่ำให้สมำชิกแต่ละตัวใน
ภำยหลัง เช่น money[0] =
250; money[4] = 500;
float num[5]; เป็นกำรประกำศ
ตัวแปร array ของ ตัวแปร จำำนวนที่มีทศนิยมได้
คือ float ในชื่อ num ซึ่งมีสมำชิกได้ 5 ตัว
คือ num[0] num[1]… num[4] มีกำรจองเนื้อที่
ในหน่วยควำมจำำเปรียบเทียบได้ ดังรูป
8. โดยที่สมำชิกแต่ละตัวใช้เนือที่ 1 ไบต์ ดัง
้
นั้น array ประเภท char ชุดนี้ ใช้เนื้อที่เป็น12 x
1 คือ 12 bytes ส่วนกำรกำำหนดค่ำให้
กับ array ประเภทนี้ จะพิจำรณำ ในหัวข้อต่ำงหำกเพรำะ
เป็นตัวแปรประเภท ข้อควำม (string variable) ซึ่งมี
ลักษณะแตกต่ำงไปจำกพวก integer และ float
9. ำศและกำรกำำ หนดค่ำ ตัว แปรชุด 2 มิต ิ (two dimension arrays)
array 2 มิติ มีกำรจัดกำรจัดเก็บเปรียบเทียบคล้ำยกับ ตำรำง 2 มิติ มิติที่ 1
เปรียบเหมือนแถว(row) ของตำรำง มิติที่ 2 เปรียบคล้ำยกับสดมภ์(column)ของ
ตำรำง ดังรูป
รูปนี้เป็น array ของ x[6] ซึ่งมีสมำชิกทั้งหมด 6 ตัว เปรียบเหมือนเก็บไว้ใน
ตำรำงช่องละ 1 ตัว ดังนั้นจำำนวนสมำชิกจะมีจำำนวน เท่ำกับ จำำนวนแถว คูณ
จำำนวนสดมภ์ โดยหน่วยควำมจำำที่ใช้เท่ำกับหน่วยควำมจำำที่ใช้โดยตัวแปร
แต่ละตัว คูณ ด้วยจำำนวนตัวแปรทั้งหมดใน array เช่น ในรูป ถ้ำ
เป็น array ของ จำำนวนเต็ม สมำชิกแต่ละตัวใช้หน่วยควำมจำำ 2 ไบต์ หน่วย
ควำมจำำที่ใช้ทั้ง คือ 2 x 6 คือ 12 ไบต์
เรำอำจพิจำรณำ array 2 มิติ ว่ำเป็น array ของ array 1 มิติ
ดังรูป
10. สมำชิกใน array 2 มิติ ที่ชื่อ table ดังนั้น array ชื่อ table จะมีสมำชิก
ทั้งหมด คือ สมำชิกของ array ทั้งสำม คือ table[0][0] , table[0][1]
… ถึง table[2][3] ทั้งหมด 12 ตัว โดยในสมำชิกเหล่ำนี้ บำงตำำแหน่งมี
ข้อมูลแล้ว เช่น table[0][0] มีขอมูลเป็น 10 โดยกำรประกำศตัวแปร array 2
้
มิติ มีรูปแบบ คือ type arrayname [r] [c];
เมื่อ type คือ ชนิดของข้อมูล เช่น int , float ,char
arrayname คือ ชื่อของ array เช่น num ,
word ,x
r , c คือ จำำนวนแถวและจำำนวนสดมภ์ ตำมลำำดับ
โดยตัวเลขกำำกับตำำแหน่ง(ดัชนี) เป็น ในแถว r เป็น 0,1,2 ... ,
r-1 ในสดมภ์ c เป็น 0,1,2 ... , c-1
เช่น int num[3][4]; หมำยควำมว่ำ มี array ของ integer ที่มีจำำนวน 3
แถว 4 สดมภ์ ดังนั้นมีสมำชิก ทั้งหมด 12 ตัว เริ่มด้วย num[0][0] , num[0]
[1] ,num[0][2],num[0][3],num[1][0],…,num[2][3]
กำรกำำหนดค่ำอำจกำำหนดในขั้นตอนประกำศตัวแปร เช่น
char word[ ][ ] =
{“Bodin”,”decha”,”Computer”,”Pentium”};
หมำยควำมว่ำ word เป็นตัวแปร array 2 มิติ ขนำด 4 x 9 ของสมำชิกที่เป็น
อักขระ โดยแต่ละสมำชิก มีขนำด 1 ไบต์ โดย word[0] =
“Bodin” word[1] = "dehca” word[2] = "Computer"
ส่วน word[3] = “Pentium"
หรือ ประกำศ โดยยังไม่กำำหนดค่ำ แล้วกำำหนดค่ำภำยหลังเช่น
int num[2][2];
11. วแปร array 3 มิต ิ มีกำรประกำศ ดังนี้
e arrayname[p] [r][c];
type คือ ชนิดของตัวแปร เช่น int ,float,char
arrayname คือชื่อของตัวแปร
r,c,p คือตัวเลขแสดงจำำนวนในมิติที่ 1 มิติที่ 2 และมิติที่ 3 ของ array ตำมลำำดับ
วเลขกำำกับตำำแหน่ง(ดัชนี)เป็นดังนี้
p เป็น 0,1,2 .. , p-1
r เป็น 0,1,2, ... ,r-1
c เป็น 0,1,2 ... ,c-1
ณะของ array 3 มิติ อำจเปรียบเทียบเพื่อ
ำมเข้ำใจ ว่ำเป็น arrays of arrays ดังรูป
14. ตัว อย่ำ ง ให้นักเรียนศึกษำโปรแกรม array5_1.c แล้วพิจำรณำว่ำโปรแกรมนี้
จะทำำงำนอย่ำงใด และค่ำต่ำง ๆใน array เป็นเท่ำใดบ้ำง แล้วลอกโปรแกรม
แล้วคอมไพล์และให้โปรแกรมทำำงำน แล้วพิจำรณำว่ำคำดคะเนถูกต้องหรือไม่
/* array5_1.c */
# include <stdio.h>
# include <conio.h>
main()
{
clrscr();
float num[50];
float sum;
int i,time;
printf("n Enter the time of input that you want. :");
scanf("%d",&time);
sum = 0;
for (i=0;(i+1)<=time;i++)
{
printf("Please type the floating number for %d round :",i+1);
scanf("%f",&num[i]);
sum = sum + num[i];
}
printf("n Input = %d time sum.of them = %4.2f average of
data is %4.2f",time ,sum ,sum/time);
}
15. กษำโปรแกรม array5_2.c แล้วพิจำรณำว่ำโปรแกรมนี้จะทำำงำนอย่ำงใด และค่ำต่ำง ๆใน array เป็นเท่ำใ
แกรมทำำงำน แล้วพิจำรณำว่ำคำดคะเนถูกต้องหรือไม่
{ "Chattam Sermsub","Sompol Somsuk","Kanokporn Kanok",
"Apinya Sittipa","Wimolsiri Sirimol"};
num[0][1] = 1.5; num[0][2] = 2.0; num[0][3] = 2.5;
um[1][1] = 2.0; num[1][2] = 2.5; num[1][3] = 3.0;
um[2][1] = 1.5; num[2][2] = 2.0; num[2][3] = 2.5;
um[3][1] = 2.0; num[3][2] = 2.5; num[3][3] = 3.0;
um[4][1] = 2.0; num[4][2] = 2.5; num[4][3] = 3.0;
er of Student :");
e;i=i+1)
nt no. %d is %s t has num.",i+1,name[i]);
4;j++)
",num[i][j]);
16. ตั่อเรีแปรอัก่เขระ ลในหน่วยควำมจำำ
ตัว แปร หมำยถึงชื
ว ยกแทนพื้นที ก็บข้อมู
มีชนิดของข้อมูล หรือแบบของตัวแปรคือ char, int, long,
float, double, unsigned int, unsigned long int,
• กำรกำำ หนดตัว แปร ทำำ ได้ 2 แบบ คือ
1. กำำหนดไว้นอกกลุ่มคำำสั่ง หรือฟังก์ชัน เรียกตัวแปร
นี้ว่ำ Global Variable กำำหนดไว้นอกฟังก์ชัน ใช้งำนได้ทั้ง
โปรแกรม มีค่ำเริ่มต้นเป็น 0 (กรณีไม่ได้กำำหนดค่ำเริ่มต้น)
2. กำำหนดไว้ในกลุ่มคำำสั่ง หรือฟังก์ชัน เรียกตัวแปรนี้
ว่ำ Local Variable กำำหนดไว้ภำยในฟังก์ชัน ใช้งำนได้
ภำยในฟังก์ชันนั้น และไม่ถูกกำำหนดค่ำเริ่มต้นโดยอัตโนมัติ
• กำรประกำศตัว แปร มีล ัก ษณะดัง นี้
ชนิดตัวแปร ชื่อตัวแปร , ชื่อตัวแปร , ชื่อตัวแปร,.....;
17. ตัวอักษรขนำด 1 ตัว โดยใช้
เนื้อทีในกำรเก็บ 1 ไบต์ ตัวอย่ำงตัวแปรชนิดนี้ เช่น ‘A’ , ‘b’ ,
่
‘1’ , ‘?’
2. ตัวแปรแบบ integer เป็นตัวแปรที่ใช้สำำหรับกำรเก็บ
ค่ำตัวเลขที่เป็นจำำนวนเต็มที่มีค่ำระหว่ำง -32768 ถึง 32767 ใช้
เนื้อทีในกำรเก็บ 2 ไบต์ ตัวอย่ำงตัวแปรชนิดนี้ เช่น 5 -10
่
2534
3. ตัวแปรแบบ long เป็นตัวแปรที่เก็บค่ำเป็นจำำนวนเต็มที่
มีจำำนวนไบต์เป็น 2 เท่ำของจำำนวน
เดิม (มักจะใช้เป็นคำำนำำหน้ำตัวแปร เช่น long int )
4. ตัวแปรแบบ float เป็นตัวแปรที่ใช้เก็บข้อมูลที่เป็นเลข
ทศนิยม โดยจะเก็บอยู่ในรูป a.b x 10e
ใช้พื้นที่ในกำรเก็บ 4 ไบต์ มีค่ำระหว่ำง 3.4E-38 ถึง 3.4E+38
หรือ แสดงเป็น เลขทศนิยมได้ไม่เกิน 6 ตำำแหน่ง ตัวอย่ำงตัวแปร
ชนิดนี้ เช่น 10.625 -6.67
5. ตัวแปรแบบ double เป็นตัวแปรที่เก็บข้อมูลทีเป็นเลข ่
ทศนิยมเหมือนกับ float แต่จะใช้พื้นที่ในกำรเก็บมำกกว่ำเดิม 2
เท่ำ คือมีขนำด 8 ไบต์ มีค่ำระหว่ำง 1.7E-308 ถึง 1.7E+308
6. ตัวแปรแบบ unsigned แสดงว่ำเป็นตัวแปรที่เก็บค่ำ
19. ตัว อย่ำ งที่ 1
บรรทัดที่ 1. #include<stdio.h>
บรรทัดที่ 2. #define PI 3.14159
บรรทัดที่ 3. int area; /* global variable */
บรรทัดที่ 4. main( )
บรรทัดที่ 5. { float radius; /* local variable */
บรรทัดที่ 6. float process() /* function declaration */
บรรทัดที่ 7. printf (“Radius = ?”); scanf (“%f”,radius);
บรรทัดที่ 8. process( );
บรรทัดที่ 9. printf(“Area = %f”,area);
บรรทัดที่ 10. printf(“%f”,radius);
บรรทัดที่ 11. float process( )
บรรทัดที่ 12. { float radius; /* local variable */
บรรทัดที่ 13 printf(“Radius=?”); scanf (“%f”,radius);
บรรทัดที่ 14 area=PI*radius*radius;
บรรทัดที่ 15 printf(“Area = %f”,area);
บรรทัดที่ 16 printf(“%f”,radius);
20. ตัว อย่ำ งที่ 2 int a ;
หมำยควำมว่ำ ประกำศตัวแปร a เป็นตัวแปรที่ใช้สำำหรับเก็บค่ำที่เป็น
เลขจำำนวนเต็มที่มีค่ำอยู่ระหว่ำง -35768 ถึง 32767
ตัวอย่ำงที่ 3 int num1=8;
หมำยควำมว่ำ ประกำศตัวแปร num1 เป็นตัวแปรที่เก็บค่ำตัว
เลขจำำนวนเต็ม โดยให้ค่ำเริ่มต้นเท่ำกับ 8
ตัว อย่ำ งที่ 4 float money,price ;
หมำยควำมว่ำ money และ price เป็นตัวแปรที่ใช้สำำหรับเก็บค่ำที่
เป็นเลขทศนิยม โดยจะให้ตำำแหน่งทศนิยมได้ไม่เกิน 6 หลัก
ย่ำ งที่ 5 char ch=’A’
วำมว่ำ ประกำศตัวแปร ch เป็นตัวแปรที่เก็บค่ำตัวอักษรเพียง 1 ตัว คือ ตัวอักษร ‘A’
21. ย่ำ งเพิ่ม เติม
a,b,c,d; /* ตัวแปร a,b,c,d เป็นตัวแปรชนิด character */
gned e; /* ตัวแปร e เป็นตัวแปรชนิด unsigned int */
key = ?A?; /* ตัวแปร key เป็นตัวแปรชนิด character มีค่ำ ?A? */
name = ?SAM? /* ตัวแปร name เป็นตัวแปรชนิด character มีค่ำ”SAM
22. รำยชื่อ
สมำชิก
นำย ภำนุพงศ์ ทองดีเลิศ เลข
ที่ 18
นำย ศักดิ์ศรัณย์ อำำพันพร
เลขที่ 19
นำย วิระยุทธ ทองคำำ เลขที่
20
นำงสำว อังสนำ เหมือนเทียน เลขที่
29
นำงสำว อำรียำ อ่อนน้อม
เลขที่ 30