Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

การทดลองที

4
Array
A Short Brief of Array

โดยทัว ไป เวลาเราประกาศตัวแปรขึ นมา เช่น int x , int y


ค่าตัวแปร x , y จะเก็บค่าข้อมูลไว้เพียงค่าเดียว เช่น ตัวแปร x อาจจะเก็บค่าตัวเลขจํานวนเต็ม ใดๆ เอาไว้
ในนัน

ปั ญหาทีพบคือว่า ถ้าเราต้องการเก็บข้อมูล ชนิ ดเดียวกัน หลายๆค่า เช่น คะแนนสอบ midterm ของ


นักศึกษา 10 คน เราสามารถทําได้โดย ประกาศตัวแปรมา 10 ค่า เช่น
int score1
int score2
….
int score10

จะเห็นว่า มีความยุง่ ยาก และซับซ้อน ดังนัน เราจึงมีการกําหนดตัวแปรขึ นมาใหม่ เรียกว่า ตัวแปร array
หรือเรียกอีกอย่างว่า ตัวแปรชุด

โดยที ตัวแปร array นัน จะใช้เก็บข้อมูลทีมี ชนิดเดียวกัน หลายๆค่า ลงใน ตัวแปรเดียว เช่น เก็บ
รายชือของพนักงาน อายุ เงินเดือน เป็ นต้น

1.องค์ประกอบของ array
ประกอบด้วยสองส่วนคือ index กับ Values
Index คือ ลําดับ หรือ ตําแหน่ งของการเก็บข้อมูล
Values คือ ข้อมูลทีใช้เก็บลงไปในตําแหน่ งนันๆ

เช่น นศ.ตําแหน่ งที 1 มีคะแนน 20 คะแนน, นศ.ตําแหน่ งที 2 มีคะแนน 25 คะแนน ,…. สามารถเขียน
เป็ น array ได้เป็ น

Score[1]=20 , score[2] = 25 ,……

2.การประกาศตัวแปร array 1 มิติ


มีรปู แบบคือ
data_type arrayname[ size of array]
เช่น
int score[50] ประกาศ array ชือ score เก็บข้อมูลชนิ ดจํานวนเต็ม โดยเก็บข้อมูลได้ 50 ค่า
int final[100] ประกาศ array ชือ final เก็บข้อมูลชนิ ดจํานวนเต็ม โดยเก็บข้อมูลได้ 100 ค่า

Faculty of Information Technology Page 1


3. การกําหนดค่าข้อมูลให้กบั array
ตัวอย่างที1 การกําหนดข้อมูลลงใน array พร้อมกันทุกตําแหน่ ง

int num[5] = {2,3,5,4,10};

จะเก็บข้อมูล 2 ลงในตําแหน่ งที 0 ,เก็บข้อมูล 3 ลงในตําแหน่ งที 1 , ….. ตามลําดับ

ตัวอย่างที 2 การกําหนดข้อมูลลงใน array ทีตาํ แหน่ งใดๆ ตามทีตอ้ งการ

int score[5] = 50; กําหนดค่าข้อมูลตัวแปร score ตําแหน่ งที 5 มีค่าเท่ากับ 50


float temp[2] = 21.5; กําหนดค่าข้อมูลตัวแปร temp ตําแหน่ งที 2 มีค่าเท่ากับ 21.5

4. การดึงค่าข้อมูลจาก array ออกมาแสดงผล


เนื องจากในตัวแปร array มีขอ้ มูลเก็บอยูห่ ลายค่า ดังนัน การดึงข้อมูลจาก array ออกมาแสดงผล
จะต้องระบุตาํ แหน่ ง ให้ชดั เจนว่าจะดึงข้อมูลจากตําแหน่ งไหนออกมาแสดง อาทิเช่น

int num[5] = {2,3,5,4,10};


printf(“%d”,num[3]);

จะแสดงข้อมูลตําแหน่ งที 3 ออกมา นัน คือ จะแสดงเลข 4 ออกมาทางหน้าจอ

Faculty of Information Technology Page 2


การทดลองตอนที
1 โปรแกรมแสดงค่าข้อมูลจากตัวแปร array 1 มิติ
ตอนที 1.1 การแสดงข้อมูลแบบตรงๆ
เขียนโปรแกรมตามทีกาํ หนด

#include <stdio.h>
int main()
{
int num[3];
num[0] = 5;
num[1] = 2;
num[2] = 4;

printf("num[0] = %d\n",num[0]);
printf("num[1] = %d\n",num[1]);
printf("num[2] = %d\n",num[2]);

return 0;
}

ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

ตอนที 1.2 การแสดงข้อมูลโดยใช้การวน Loop เข้าช่วย


#include <stdio.h>
int main()
{
int num[3] = { 5,2,4};
int i=0;

while(i<3)
{
printf("num[%d] = %d\n",i,num[i]);
i++;
}
return 0;
}

ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

Faculty of Information Technology Page 3


ตอนที
2 โปรแกรมรับค่าข้อมูลมาเก็บใน Array 1 มิติ แบบวน loop
เขียนโปรแกรมตามทีกาํ หนด

#include <stdio.h>
int main()
{
float temp[5];
float sum=0;
int i=0;

while(i<5)
{
printf("temp[%d] = ",i);
scanf("%f",&temp[i]);
sum=sum+temp[i];
i++;
}

printf("Sum of temp = %6.2f ",sum);

return 0;
}

ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

Faculty of Information Technology Page 4


ตอนที
3 โปรแกรมแสดงค่าข้อมูลจากตัวแปร array 2 มิติ
ตอนที 3.1 การแสดงข้อมูลแบบตรงๆ
เขียนโปรแกรมตามทีกาํ หนด
#include <stdio.h>
int main()
{
int num[3][2] = { {5,6},
{1,3},
{4,8} };

printf("Row[0] = %2d %2d\n",num[0][0] , num[0][1]);


printf("Row[1] = %2d %2d\n",num[1][0] , num[1][1]);
printf("Row[2] = %2d %2d\n",num[2][0] , num[2][1]);
return 0;
}
ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

ตอนที 3.2 การแสดงข้อมูลโดยใช้การวน loop เข้าช่วย


เขียนโปรแกรมตามทีกาํ หนด
#include <stdio.h>
int main()
{
int num[3][2] = { {5,6},
{1,3},
{4,8} };
int i=0 , j=0;
while(i<3)
{
printf("Row[%d] = ", i);
j=0;
while(j<2)
{
printf("%2d",num[i][j]);
j++;
}
printf("\n");
i++;
}
return 0;
}

ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

Faculty of Information Technology Page 5


ตอนที
4 โปรแกรมวน loop รับค่า มาเก็บใน Array 2 มิตขิ นาด 3x4 และ แสดงผล Array
เขียนโปรแกรมตามทีกาํ หนด
#include <stdio.h>
int main()
{
int matrix[3][4];
int i=0 , j=0;
// recieve values
while(i<3)
{
j=0;
while(j<4)
{
printf("Enter number matrix[%d][%d] = ", i,j);
scanf("%d",&matrix[i][j]);
j++;
}
i++;
}
// display values
printf("\n ***Matrix*** \n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%2d",matrix[i][j]);
}
printf("\n");
}
return 0;
}

ผลลัพธ์จากการ Run โปรแกรมแสดงดังนี

Faculty of Information Technology Page 6


ตอนที 5
1. เขียนโปรแกรมรับค่า Matrix ขนาด 3x3 แล้วหาค่า Determinant ของ Matrix นันๆ

input
Enter a Matrix: 1 2 1
5 8 4
5 1 2
Output
Determinant is -3

2. เขียนโปรแกรมรับค่า Matrix ขนาด 3x3 แล้วหาผลคูณของสอง Matrix นัน

Input
Enter a matrix A: Enter a matrix B:
1 2 3 9 8 7
4 5 6 6 5 4
7 8 9 3 2 1

Output:
Matrix C=A*B is

30 24 18
84 69 54
138 114 90

3. เขียนโปรแกรมรับค่า Matrix ขนาดใดๆ แล้วทําการ Transpose matrix นันๆ

Input Output
Enter Row : 3 Its transpose matrix is
Enter Column : 4
Enter a matrix 3x4 1 2 2
5 4 4
1 5 3 5 3 6 5
2 4 6 8 5 8 1
2 4 5 1

4. เขียนโปรแกรมรับค่า Matrix ขนาด 3x3 แล้วตรวจสอบว่า เป็ น เมตริกซ์เอกลักษณ์ หรือไม่

Input Output
Enter a matrix Matrix is singular matrix
1 0 0
0 1 0
0 0 1

Faculty of Information Technology Page 7


5. เขียนโปรแกรมรับค่า Matrix ขนาดใดๆ แล้วทําการ Scaling ค่าใน Matrix ให้อยูร่ ะหว่าง 0-1
เท่านัน

Input Output
Enter Row : 3 Its scaling matrix is
Enter Column : 2
Enter a matrix 3x2 0.125 0.250
0.250 0.500
1 2 0.250 1.000
2 4
2 8

6. เขียนโปรแกรมรับประโยคเข้ามา แล้วทําการนับว่า มีตวั อักษรทังหมดกีตวั โดยเป็ นสระกีตวั พยัญชนะกีตวั

Input
Enter a string: Manchester United and Liverpool

Output
A Number of Characters is 17
A Number of vowels is 11

7. เขียนโปรแกรมสลับตัวอักษรในข้อความ จากหลังกลับมาอยูห่ น้า จากหน้ากลับไปอยูห่ ลัง

Input : Compro is easy


Output: ysae si orpmoC

8. เขียนโปรแกรมรับประโยคเข้ามาหนึ งประโยค แล้วทําการหาอักขระทีกาํ หนดว่าอยูต่ าํ แหน่ งใดบ้าง


Input
Enter String : My Name is Jack Dawson
Enter a character : a

Output
Found character a at the position 5 13 18

9. เขียนโปรแกรมตัดสระ a e i o u ทังตัวใหญ่ ตัวเล็ก ออกจากข้อความ

Input
Enter String: Computer programming

Output : Cmptr prgrmmng

10. ให้นักศึกษาเขียนโปรแกรมเพือรับข้อมูลรายชือ 10 รายชือ โดยกําหนดให้แต่ละชือมีความยาวไม่


เกิน 30 ตัวอักษร และตัวอักษรจะต้องเป็ นตัวเล็กทังหมด ให้นําข้อมูลรายชือทีรบั มาเก็บไว้ในหน่ วยความจํา
จากนันให้เขียนโปรแกรมเรียงข้อมูลรายชือตามลําดับตัวอักษร และพิมพ์ผลลัพธ์ทีได้จากการเรียงออกทาง
จอภาพ
Faculty of Information Technology Page 8
11. ในหน่ วยสืบราชการลับแห่งหนึ ง ระหว่างสงครามโลกครังที 2 ได้มีการกําหนดรหัสลับสําหรับใช้ในการ
สือสารระหว่างประเทศ โดยตัวอักษรทีใช้ในการสือสารแต่ละตัวจะถูกแทนด้วยตัวอักษรในวงล้อทีอยูถ่ ดั จาก
ตัวอักษรนันไป 5 ตัวอักษร ในทิศทางทวนเข็มนาฬิกา จากวิธีการดังกล่าว ให้นักศึกษาเขียนโปรแกรมเพือ
เข้ารหัส

12. จากข้ อ 11 จงเขียนโปรแกรมถอดรหัส

13. ตัวเลข Friendly Number ของ X คือ ค่ารวมของตัวเลขชุดหนึ ง ซึงมีค่าอยูร่ ะหว่าง 1 ถึง X และตัวเลข แต่
ละตัวในชุดนี จะต้องหาร X ได้ลงตัวทุกตัว เช่น
Friendly Number ของ 28 คือ 1 + 2 + 4 + 7 + 14 = 28 (28 = 28)
Friendly Number ของ 6 คือ 1 + 2 + 3 = 6 (6 = 6)
จงเขียนโปรแกรมเพือหาว่าระหว่าง 1-1000 มีตวั เลข Friendly Number อะไรบ้าง

14. จํานวนเฉพาะคือ ตัวเลขทีมีเพียง 1 กับตัวมันเองเท่านันทีหารลงตัว เช่น 131 ก็จะมีเฉพาะเลข 1 กับ


เลข 131 เท่านันทีหารลงตัว ให้เขียนโปรแกรมรับตัวเลข (ไม่เกิน 30000) แล้วพิมพ์จาํ นวน เฉพาะตังแต่
1 จนถึงเลขนันออกมา และบอกด้วยว่ามีจาํ นวนเฉพาะทังหมดกีตวั
เช่น จํานวนเฉพาะตังแต่ 1-20 คือ 1, 2, 3, 5, 7, 11, 13, 17, 19 ซึงมีทงั หมด 9 ตัว

Faculty of Information Technology Page 9

You might also like