More Related Content More from Noom Sataporn (6) งาน2. ตัว แปรชุด
ตัว แปรชุด (array) เป็นกลุ่มของข้อมูลชนิดเดียวกันที่กำำหนดให้จัดเก็บเรีย
ลำำดับตำมจำำนวนที่ต้องกำร มี ชื่อตัวแปรเหมือนกันต่ำงกันที่ดัชนี(index)ระบ
งของตัวแปรในชุดนั้น กำรเก็บข้อมูลเป็นตัวแปรชุด ทำำให้งำยในกำรตั้งชื่อตัว
่
มำก เข้ำถึงข้อมูลได้เร็ว แต่ถ้ำเก็บข้อมูลไม่ครบจะทำำให้เสียเนื้อที่หน่วยควำมจ
จำำเป็น
3. ประเภทของตัว แปรชุด อำจแบ่ง ตำมลัก ษณะ
ของจำ มิติ (one เลขของดัarrays หรื
1. ตัวแปรชุด 1ำ นวนตัวdimension ช นี คือ อ single
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. รายชื่อ
สมาชิก
จัดทำาโดย
1.นายขรรค์เพชร นาควรรณ
เลขที่ 1 ชั้น ม.5/4
2. นายสหพชร เพชรบรม
เลขที่ 2 ชั้น ม.5/4
3. นายจักกฤษ ประทุมนันท์ เลข
ที่ 4 ชั้น ม.5/4
4. นายสถาพร กาญจนะ
เลขที่ 8 ชั้น ม.5/4
5. นายนิธินนท์ วิมลพันธ์
ั
เลขที่ 10 ชั้น ม.5/4
6. นายเอกพล ปุณการี