ประโยชน์ที่รับจากการเรียนครั้งที่ 3
ได้รับความรู้เกี่ยวกับ Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำ และสามารถนำ Pointer ไปใช้ในการเขียนโปรแกรมภาษาซีได้
แบบฝึกหัด
1. ให้นักศึกษากำหนดค่าของ Array 1 มิติ และ Array 2 มิติ
EX ตัวอย่าง Array 1 มิติ
#include"stdio.h"
main()
{
int temp[31],i,min,max,avg;
int days;
printf("How many days in the month? ");
scanf("%d",&days);
for(i=0;i
if(max
Ex ตัวอย่าง Array 2 มิติ
#include "stdio.h"
int x,y;
int sc[35][8];
void input_data()
{
for(y=0;y<=34;y++)
{
printf("student %d\n",y+1);
printf("Data structure = ");
scanf("%d",&sc[y][0]);
printf("Economic macro = ");
scanf("%d",&sc[y][1]);
printf("Analysis = ");
scanf("%d",&sc[y][2]);
printf("Accouting = ");
scanf("%d",&sc[y][3]);
printf("Business Ethics = ");
scanf("%d",&sc[y][4]);
printf("Prepare to Job = ");
scanf("%d",&sc[y][5]);
printf("Business Analysis = ");
scanf("%d",&sc[y][6]);
sc[y][7] = sc[y][0]+sc[y][1]+sc[y][2]+sc[y][3]+sc[y][4]+sc[y][5]+sc[y][6];
}
}
void main()
{
input_data();
for(x=0;x<=34;x++)
printf("Student %d Sumation of point = %d\n",x+1,sc[x][7]);
}
2. ให้นักศึกษาหาค่าของ A[2], A[6] จากค่า A={2,8,16,24,9,7,3,8}
ค่าของ A[2]=16
ค่าของ A[6]=3
3. จากค่าของ int a[2][3] = {{6,5,4},{3,2,1}};ให้นักศึกษา หาค่าของ a[1][0] และ a[0][2]
ค่าของa[1][0]=3
ค่าของa[0][2]=4
4. ให้นักศึกษากำหนด Structure ที่มีค่าของข้อมูลอย่างน้อย6 Records
#include "stdio.h"
int i;
long sum1,sum2,sum3;
main()
{
struct National_Product
{
long quality;
long price;
}np;
struct National_Income
{
long rent;
long payment;
long interest;
long profit;
}ni;
struct National_Expenditure
{
long consume;
long invest;
long government;
long net_export;
}ne;
{
printf("1 National product,2 National income,3 National expenditure\n");
printf("Choose your choice between 1 and 3 : ");
scanf("%d",&i);
switch(i)
{
case 1: printf("National income data\n");
printf("Enter number of product: ");
scanf("%d",&np.quality);
printf("Enter price : ");
scanf("%d",&np.price);
sum1 =(np.quality*np.price);
printf("National income of product is %d\n",sum1);
break;
case 2: printf("National income data\n");
printf("Enter all of rent : ");
scanf("%d",&ni.rent);
printf("Enter all of payment : ");
scanf("%d",&ni.payment);
printf("Enter all of interest : ");
scanf("%d",&ni.interest);
printf("Enter all of profit : ");
scanf("%d",&ni.profit);
sum2 =(ni.rent+ni.payment+ni.interest+ni.profit);
printf("National income of income is %d\n",sum2);
break;
case 3: printf("National income data\n");
printf("Enter all of consumption : ");
scanf("%d",&ne.consume);
printf("Enter all of investment : ");
scanf("%d",&ne.invest);
printf("Enter all of government : ");
scanf("%d",&ne.government);
printf("Enter all of net export : ");
scanf("%d",&ne.net_export);
sum3 =(ne.consume+ne.invest+ne.government+ne.net_export);
printf("National income of expenditure is %d\n",sum3);
break;
default:
printf("U N K N O W N C O M M A N D ! ! ");
}
}
}
5. ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับ
ตัวแปรพอ ยเตอร์มีลักษณะคล้ายตัวแปรตารางอาเรย์ แต่ที่แตกต่างกันคือ ตัวแปรตารางอาเรย์จะเก็บเฉพาะค่าต่างๆ ที่เป็นชนิดกันเดียวกับตัวแปรอาเรย์แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้น โดยไม่ได้มีการจัดเตรียมหน่วยความจำแบบไดนามิกส์ (Dynamic Memory Allocation) ไว้
0 ความคิดเห็น:
แสดงความคิดเห็น