Upload
sce
View
1
Download
0
Embed Size (px)
Citation preview
Shayke Bilu PhD SCE-Chapter-10-Structs
10ืคืจืง
Strut'sืืื ืื -ืืื ื ื ืชืื ืื
ืืืืืจ ืฉืืืงื "ื
ืืืขืฅ ืืืจืฆื ืืืืจ ืืืืขื ืืืืฉื ืืืื ืืืืืืช ืืืืข
ืืงืืืืืช ืืื ืืืืืช, ืืืืื ืืืขืจืืืช ืืืืข ืืื ืืืืืช
Cืงืืจืก ืืกืืืืช ืืชืื ืืช ืืฉืคืช
1
2
ืืื ืืชืืืืกืื ืืืืื โืืชืืืืช
ืฉืคืชC ืืืคืฉืจืช ืื ื ืืืขืช ืืื ืืืชืืืช ืืืืืจืื ืฉืื
.ื ืฉืืจ ืืฉืชื ื ืืกืืื
ืืืงืื ืืืชืืืช ืืืืืจืื ืืืคืฉืจ ืืืฉื ืืฉืืจื ืืืชืืืืช
.ืืืืืจืื ืืืจ ืืืืืขื ืืช ืขืืืืช ืืืืฉื
ื ืืชื ืช ืืช ืืืชืืืช ืฉื ืืืฉืชื ื& ืืคืขืืื .
ืืืฉื&i ืืื ืืืชืืืช ืืืืืจืื ืฉื ืืืฉืชื ืi.
ืืืืืื ืืงืืืืช&i 0ืืืืืจ ืื ื ืืช ืืืชืืืชx7fff9575c054.
2
SCE-Chapter-10-Structs Shayke Bilu PhD
3
ืืื ื ืืืฉืื ืืืืื โืืชืืืืช
ื ืืชื ืช ืืช ืืืชืืืช ืฉื ืืฉืชื ื ืืฆืืื ืื& ืืคืขืืื.
ืืืฉื&i ืืื ืืืชืืืช ืืืืืจืื ืฉื ืืืฉืชื ืi.
ืืืืืื ืืงืืืืช&i 0ืืื ื ืืชืx7fff9575c054.
ื ืืืฉืช ืืขืจื ืฉื ืืฆื ืืืชืืืช ืืกืืืืช *ืืคืขืืื .
ืืืฉื*(0x7fff9575c054) ืื ืืขืจื ืฉื ืืฆื ืืืชืืืช
0x7fff9575c054 .
*(&ch) ืื ืืขืจื ืฉื ืืืฉืชื ืch ( ืื ืื ืืขืจื ืฉื ืืฆื
. ch)ืืืชืืืช ืฉื
3
SCE-Chapter-10-Structs Shayke Bilu PhD
Shayke Bilu PhD
ืคืขืืืืช -ืืืืืจืื ืืืจื ืืชืืืืช
ืืฆืืืช ืืืชืืืช ื ืืชื ืืืฆืข ืืืืฆืขืืช :&i
ืืืฉื ืืืฉืชื ื ืืคื ืืืชืืืช ื ืืชื ืืืฆืข ืขื ืืคืขืืื :*
ื ืืืื ืื ื ืืคืฉืจืืช ืืฉื ืืช ืืื "ืืืคื ืืืชืืื ืื
.ืขืจืืื ืฉื ืืฉืชื ืื ืืคืื ืงืฆืื
ืื ืืชืืื ืืฉืืจื ืืืืืจืื ืืื ืฉืืืืฉ ืืฉื ืืืฉืชื ื
ืืื ืืืืจื ืืืชืจ ืืืืฆืขืช ืขืืืื ืฉื ืขืจื ืืืฉืชื ื
.ืืืืคื ืืืืจ ืืืืืืง ืืืชืจ
4
SCE-Chapter-10-Structs
4
Shayke Bilu PhD
ืืฆืืืขืื -ืขื ืืชืืืืช ืืืจื ืขืืืื
ืืฉ , ืืื ืืืืืืจ ืืฉืชื ื ืืกืื ืืฆืืืข, ืืืืคื ืืืื
ืืืืืกืืฃ ืืช , ืืจืฉืื ืืช ืกืื ืืืฉืชื ื ืฉืขืืื ืืฆืืืขืื
.ืืคื ื ืฉื ืืืฉืชื ื * -ืกืืื ื
ืขืื ืืืืืืืช :
double *ptr;
float *ptr;
int *ptr;
char *ptr
5
SCE-Chapter-10-Structs
5
Shayke Bilu PhD
ืฉืชื ื ืงืืืืช ื ืืกืคืืช โืืืจื ืืฆืืืขืื
ืืืฉื ืืคื ื )ืืืืื ืืืฉ ืฆืืจื ืืกืื ืฉืืฆืืืข ืื ืืฆืืืข ืืืฉืชื ื . NULLืืื ืืงืืื ืืชืช ืื ืืช ืืขืจื , (ืฉืืชืืื ื ืืืฉืชืืฉ ืื
ืืืฉื :
int *ptr_to_int=NULL;
NULL ื "ืฉืืืืืจ ืข 0ืืื ืงืืืข ืฉืขืจืื#define .stdlib.hืืกืคืจืื
ืงืืืื ืืืืคืกื ื- printf ืืืืคืกืช ืืชืืืช ืืืืืจืื ืืืโ%pโ , :ื ืืชืื iืืืฉื ืืืืคืกืช ืืชืืืช ืืืฉืชื ื
printf(โ%pโ, &i);
6
SCE-Chapter-10-Structs
6
SCE-Chapter-10-Structs
ืืืืื โืืืจื ืืฆืืืขืื
ื ืชืื ื ืืขืื :
ืืฉ ืืงืื ืฉื ื ืขืจืืื ืื ืืฆืืื ืืฉื ื ืืฉืชื ืื ืฉืื ืื .ืืืืฆืข ืืืืคื ืืื ืืื
ื ืชืืจ ืคืื ืงืฆืื ืฉืืงืืืช ืืชืืืืช ืฉื ืืืชื ืฉื ื ืืฉืชื ืืืืืืืืคื ืืื ืืขืจืืื ืฉืืื ืชืื ืืื ืฉืืืืฉ , intืืกืื
.ืืืฆืืืขืื
7 7
Shayke Bilu PhD
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืื โืืืจื ืืฆืืืขืื
ืฉื ืขืจืืื ืืืืืคืช ืคืื ืงืฆืื ืืืชืื ืืืืื ื ืื ืขืืฉืื ืขื int ืืกืื ืืฉืชื ืื ืฉืื ืื ืื ,int ืืกืื ืืฉืชื ืื ืฉื ื
ืืืืื ืืคืื ืงืฆืื ,ืืืงืืจื ืขืจืื ืขื ืืฉืคืืข ืื ืืคืื ืงืฆืื .ืืื ืขืจื ืจืง ืืืืืืจ
ืืืฉืชื ืื ืืืชืืืืช ืืืฉืชืืฉ ืืคืฉืจืืช ืื ื ืืฉืืฉ ืืขืช ืืืฉืืื ืืช ืืืฆืข ื ืืื ืืืฆืืืขืื ืืืืืจ ,ืฉืืืืืจืื .ืคืฉืืื swap ืคืื ืงืฆืืืช ืืืืฆืขืืช
8 8
ืืืืืคื ืืื ืขืจืื ืืฉืชื ืืืคืื ืงืฆืื : ืืืจื
void swap(int *first, int *second)
{
int temp;
temp=*first;
*first=*second;
*second=temp;
}
int main()
{
int mispar1=10, mispar2=20;
swap(&mispar1,&mispar2);
}
9
SCE-Chapter-10-Structs
9
Shayke Bilu PhD
Shayke Bilu PhD SCE-Chapter-10-Structs
ืขื ืคืื ืงืฆืืืช ืืืฆืืืขืืืืืจื ืขืื
ืืืฉื, ื ืฆืืื ืฉืืขืจื ืืืืืืจ ืืคืื ืงืฆืื ืืืื ืืืืืช ืื ืืฆืืืข: int *address_number(int *ptr1, int *ptr2);
ืืื ืืืืจืช ืืชืืืช ืืฉืชื ื ืฉืืืืืจ ืืชืื ืืคืื ืงืฆืื ืชืืจืื . ืืฉืืืื
ืืกืืื ืืื ืืื ืฉืืืฉืชื ืื ืืืืืืจืื ืืชืื ืืคืื ืงืฆืื ื ืขืืืื ืขื . ืกืืืื
ืืืฉื ืืคืื ืงืฆืื ืืืื ืชืืจืื ืืฉืืืื: int *give_pointer_to_zero()
{
int i=0;
return &i;
}
10 10
ืืขืจื ืืคื ืืืชืืืช-ืืชืืืืืจื ืืืฉื
ืื ืืืืจื ื ืืืฉื ืืช ืืืขืจื ืืืืฆืืืข:
int arr [SIZE];
int *arr_ptr;
arr_ptr=arr;
ืืืขืจื ืื ืืคื ืืืชืืืช ืฉืืื-ืื ืืคืฉืจ ืืืฉืช ืืชืื , .ืืื ืืฉืชื ืื ืืืจืื
ืชืืืืจืช ืืฆืืืข ืืื ืืืืื ื ืืื ืืฆืืืข ืืกืจ ืืฉืืขืืช.
11
(ืืฆืืืข ืขื ืืชื ืืจืืฉืื ืืืขืจื)
SCE-Chapter-10-Structs
11
Shayke Bilu PhD
Shayke Bilu PhD
ืืขืจื ืืคื ืืืชืืืช-ืืชืืืืืจื ืืืฉื
3 ืืืฆืขืืช ืืฉืื ืฉื )ืืคืขืืืืช ืืืืืช ืขืืฉืืช ืืืชื ืืืจ (:ืืืขืจื 5' ืืชื ืืก 100ืืืกืคืจ
arr [5]=100;
*(arr+5)=100;
*(arr_ptr+5)=100;
5-ืืืืฉื ืืืืข ืืื ืืชืื ืืืชืงืื ืืฉืื ืื ื ืืืงืฉืื ืืืชืงืื ื .ืชืืื ืงืืืื
ืืืืจื ื ืฉืืืคืืก ืืขืจืืื ืืืint ืืืื ืืืืข ืืื ืืชืื ืืint (.ืขืจืื ืืืขืจื ืฉืืืจืื ืืืืืจืื ืืจืฆืฃ, ืืืืืจ)ืชืืคืก
12
ืชืืื ืืืจื ืืชื ืืจืืฉืื 5ืืืฉื ืืชื ืฉื ืืฆื
SCE-Chapter-10-Structs
12
ืืืืื ื ืืกืคืช โืืืขืจื ืืคื ืืชืืืช ืืืจื ืืืฉื
ืืืคืฉืจืืืืช ืืืืืช ืขืืฉืืช ืืืืืง ืืืชื ืืืจ 3, ืขืืืจ ืืืคืกืช ืืขืจื:
int i,arr [SIZE];
int *ptr;
for (i=0; i< SIZE; i++)
printf(โ%dโ, arr [i]);
for (i=0; i< SIZE; i++)
printf(โ%dโ, *(arr+i));
for (ptr=arr; ptr <= &arr [9]; ptr++)
printf(โ%dโ, *ptr);
13
ื ืงืืืื ืืฆืืืข ืืืชืืืช ืืชื ืืจืืฉืื ืขื ืืชืืืช ืืชื ืืืืจืื"ืืืคืกื ืขโข
ืืื ืืืฉื ืจืืืื ืืชืื ืืืขืจื-ืืืคืกื ืขืโข
ืืื ืืืฉื ืืื ืชื ืืคื ืืืชืืืช -ืืืคืกื ืขืโข
ืฉืื ืืืกืืช ืืชื ืืจืืฉืื
SCE-Chapter-10-Structs
13
Shayke Bilu PhD
ืืกืืจ -ืืคืื ืงืฆืืืช ืืืจื ืืขืจืืื
ืืฉืื ืืืื , ืืคื ืฉืืืกืืจ ืืขืืจ ืืืฉืจ ืืขืืืจืื ืืขืจื ืืคืื ืงืฆืื . ืฉื ืขืฉื ืืคืื ืงืฆืื ืืฉืคืืขื ืขื ืืืขืจื ืืืงืืจื
ืืืืจ ื ืืืข ืืื ืฉืืคืื ืงืฆืื ืืืขืืจืช ืืืชืืืช ืืืืืจืื ืฉื ืืืขืจื (.ืืื ืขื ืืขืชืง ืฉืืื)ืืืื ืคืืขืืช ืืฉืืจืืช ืขื ืขืจืืื , ืืืงืืจื
ืืคืื ืงืฆืื ืืืื ืชืืคืก ืืขืจื ืฉืืืขืืจ , ืืคื ืฉืืืจื ื, ืืืฉื :ืืืื
void zero_arr (int arr[ ], int size)
{
int i;
for(i=0 ; i< SIZE; i++)
arr[i]=0;
}
14
SCE-Chapter-10-Structs
14
Shayke Bilu PhD
ืืืจื ื ืืขืืจ ืฉืืฉืืขืืืจืื ืืขืจื ืืคืื ืงืฆืื ืฉืื ืืืื ืฉื ืขืฉื . ืืคืื ืงืฆืื ืืฉืคืืขื ืขื ืืืขืจื ืืืงืืจื
ืื ื ืืืข ืืื ืฉืืคืื ืงืฆืื ืืืขืืจืช ืืืชืืืช ืืืืืจืื ืฉื ืืืขืจื (.ืืื ืขื ืืขืชืง ืฉืืื)ืืืื ืคืืขืืช ืืฉืืจืืช ืขื ืขืจืืื , ืืืงืืจื
ืืคืื ืงืฆืื ืืืื ืชืืคืก ืืขืจื ืืืขืืจ, ืืคื ืฉืืืจื ื:
void zero_arr (int *arr)
{
int i;
for(i=0 ; i< SIZE; i++)
arr[i]=0;
}
15
ื ืฆืืื ืฉืื ืคืื ืงืฆืื ืืฆืคื ืืงืื
ืืคืฉืจ ืืืขืืืจ ืืืื ืืขืจื , ืืฆืืืข
ืื ืืฉื ื ืืืงืจืื ืื , ืืืกืื ืืื
.ืฉืืืขืืจ ืืื ืืชืืืช ืืืืืจืื
SCE-Chapter-10-Structs
ืืกืืจ -ืืคืื ืงืฆืืืช ืืืจื ืืขืจืืื 15
Shayke Bilu PhD
ื ืืฉืื ืืคืจืง ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
: ืืื ื -ืืืคืืก ืืฉืชื ื ืืืฉ
ืืืืจื ืืืชืืื ืืื ืื
ืืชืืื ืืงืืฆืจืช ืฉื ืืืืจืช ืืื ื
ืคืขืืืืช ืขื ืืื ืื
ืืื ืื ืืคืื ืงืฆืืืช
ืืื ืื ืืืฆืืืขืื
ืืื ื ืืชืื ืืื ื
ืืขืจืืื ืฉื ืืื ืื
17
Cืืืคืืกื ืืฉืชื ืื ืืฉืคืช
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืจื ื ืืืืื ืืงืืจืก ืืช ืืืคืืกื ืืืฉืชื ืื ืืืกืืกืืื ืฉื ืืชื ืืืืฆื :Cืืฉืคืช
(int) .ืืื ืกืืื/ืงืฆืจ/ืืจืื, ืืกืคืจ ืฉืื1.
(float, double) . ืืืฉื2.
(char) . ืชื3.
(int *ptr) . ืืฆืืืข4.
(;[]char str) .ืืืจืืืช5.
([]int arr) . ืืขืจื6.
ืืฆืื ื ืืช ื ืชืื ื ืืชืืื ืืช , ืืฉืืชืื ื ืชืืื ืืืช ืืคืชืจืื ืืขืืืช ืืืฉืื .ื ืืฉืชื ืื ืืืืืคืืกืื ืืืื"ืข
18
Cืืืคืืกื ืืฉืชื ืื ืืฉืคืช
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืจืืืื ืืืืืืงืืื ืืืืืช ืืืืืื ืืฆืืืืชืืช ืืืขืืืช ,ืืืืืข, .ืืขืจื ืืคืืื ืื ,ืชื ,ืืกืคืจ ื"ืข ืืืืฆืื ืืชืืืืื ืืืืจื ืฉืื
ืขื ,ืืฉืจืื ืขื ,ื ืงืืืืช ืขื ืชืืื ืืืืืจ ืืืืืืืจืืืช ืืืขืืืช ืืืฉื .ืืืืืื ,ืืฆืืืขืื ืกืืื
ืืืคืืช ืืืื ืืืจืกืืื-ืื ืืืช :ืืืืืื ,ืื ืืืชืืืช ืืืขืืืช ,ืืืืื ,ืกืคืจืืื ,ืืืื ืื ,ืกืืืื ืืื ,ืงืืจืกืื ืืจืฆืื ,ืืคืงืืืืืช
.'ืืื ,ืื ืืฉ ืืฉืืื
ืฉืืฉ ืืื ื ืื ,ืืฆืืืืชืืืช ืืขืืืช ืืคืชืจืื ืชืืื ืืช ืืืชืืื ืืืฉืจ ืืืฆืืืืชืืื ืืืืืืืงืืื ืืช ืืืืฆื ืืืืืืื ืืฉืชื ืื ืืืคืืกื .ืืืื
19
Cืืืคืืกื ืืฉืชื ืื ืืฉืคืช
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืคืืก ืจืืฆืื ืืืื ื ืืจืืืืื ืืืกืคืจืื ืืืืคืื ,ืืืฉื
.ืืื ืืืฉืชืืข ืื ืขื ืืจืืื ืืกืคืจ ืืืืืฆื
ืืืชืืจ ืืืคืืก ืจืืฆืื ืืืื ื ืืืืืืืจืืืช ืืขืืืช ืืคืชืจืื
ืืกืืืื ืืฆืืืขืื ืืืชืืจืื ืืืืคืืกืื ืืืืฉืืจ ื ืงืืื
.ืฉืื ืื
ืืืืคืืกื ื ืฉืืฃ ืืืื ืืืจืกืืื ืฉื ืืืืืข ืืืขืจืืช-
,ืืชืืืืช ,ืงืืจืก ,ืืื ,ืืจืฆื ,ืกืืืื ื ืขืืืจ ืืฉืชื ืื
ืืื ืืืื ืืื ืืื ืฉืื) 'ืืื ืชืจืืื ,ืืขืฉืืช ืขืืืื
.(ืจืืืื ืืืื ืืืืข-ืฉืืืช
20
ืืฆืืจืช ืืืคืืกื ืืฉืชื ืื ืืืฉืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืฉืคืช C ืฉืืชืืืื ืืืฉืื ืืฉืชื ืื ืืืคืืกื ืืืืืืจ ืื ื ืืืคืฉืจืช
.ืืคืชืืจ ืจืืฆืื ืฉืื ืื ื ืืืขืื
ืื ืืืฉืจ ืฉืืืช ืืื ืืชืืื ืืืืื ืืืืืื ืืืื ืื ืชืื ืื ืืืคืืกื
.ืฉืื ื ืืกืื ืืืืข ืืืกืื ืขืืืจ ืืืจ ืืืืคืืก ืืืืืช ืืืื ืฉืื
ืืื ื" ื ืงืจื ืืื ืืืืฉ ืืืืคืืก" (structure) ืืืคืงืืื
.struct :ื ืงืจืืช C ืืฉืคืช ืืืชื ืืืืืืจ ืืืชื ื ืฉืชืฉืืฉ
ืฉืืืช" ืื ืงืจืืื ,ืคื ืืืืื ืืฉืชื ืื ืืื ืืืืื ืืืื ื ืืื-ืืืจื"
ืืืคืืก ืืืื ืจืืืืื ืืฉืชื ืื ืืืืืืจ ืฉืืืื ื ืืคื ืืืืืจืื ืืื
.ืืืืืข ืืืืจ
21
ืืืืื โืืืืจืช ืืื ื ืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืฉืชื ืงืืืืจืืื ืืืช-ื ืงืืื ืืืืฉืืจ ืืืืฆืืช ืขื ,X ื- Y .
ืืืืจืช ืืื ื ืฉืืืฆื ื ืงืืื ืชืืจืื ืืืฉื ืื:
struct point
{
double x;
double y;
};
ื "ืื)ืืื ืืชืืืืช ืืงืืืฅ , ืืืืืจื ืืื ืื ืชืืคืืข ืืชืื ืคืื ืงืฆืื (.define# -ืื include# -ืืืจื ืฉืืจืืช ื ืืืื
ืืคื ืฉื ืืื ืืืืฉื, ืืขืช ื ืืชื ืืืืืืจ ืืชืืื ืืช ืืฉืชื ืื ืืืกืื ืืื .
22
double x
double y
point
ืืืฉื ืืืืืื โืืืืจืช ืืื ื ืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืื ืืืืืจืช ืืฉืชื ืื ืืืืืคืืก ืืืืฉ:
int main()
{
struct point P1,P2;
return 0;
}
ืืื ืืืืจื ื ืฉืชื ื ืงืืืืช( ืฉื ื ืืฉืชื ืื ืืกืื ืืื ืpoint) ,
P1 P2 .ืฉืืื ืืืช ืืื ืืฉ ืฉื ื ืฉืืืช
x
y
x
y
ืฉื ื ืืฉืชื ืื
ืืืฉืื ืืืืคืืก
point
ืืคืช ืืืืืจืื ืฉื
ืฉื ื ืืืฉืชื ืื
ืืืืืืื ืฉื ื ืฉืืืช
23
ืืืฉื ืืืืืื โืืืืจืช ืืื ื ืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ื/ืืงืจืื ืืืื/ื ืืชื ืืืฉืช ืืื ืืื ืืืฉืืืช ืฉื ืืื ื ืืืืชืื .
ืืืฉื:
int main()
{
struct point P1,P2;
P1.x = 6.5;
P1.y = 7.9;
P2.x = 4.1;
P2.y = 2.3;
printf(โ%.2lf\nโ, P1.y);
return 0;
}
P1 P2
4.1
7.9 2.3
6.5 x
y
x
y
(7.90ืืืืคืก )
ืืฉืชื ืื ืืืฉืื
pointืืืืคืืก
24
Shayke Bilu PhD SCE-Chapter-10-Structs
(:ืืืคืืก ืืฉืชื ื ืืืฉ)ืืืืจืช ืืื ื
struct ืฉื ืืืืคืืก ืืืืฉ
{
ืฉืื-ืฉื ืืืคืืก ;
โฆ..
ืฉืื-ืฉื ืืืคืืก ;
};
ืืืืจืช ืืฉืชื ื ืืืกืื ืืืืฉ ืฉืืืืจื ื:
; ืฉื ืืฉืชื ื ืฉื ืืืืคืืก ืืืืฉ struct
ื ืคื ืื ืืืฉืชื ื ืืืื ื ืืฉืื "ืขืฉื ืืฉืชื ื ืฉืืื ืืื ื ื ืขืฉืืช ืคื ืืื ืืฉืื
:ืืคื ืืืvariable.member
Syntax ืืืืจืช ืืื ืื 25
ืืืืืื ืืงืืืืช -ืืืืจืช ืืื ื ืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
#include <stdio.h> struct point { double x, y; }; int main() { struct point P1,P2; P1.x = 6.5; P1.y = 7.9; P2.x = 4.1; P2.y = 2.3; printf(โ%.2lf\nโ, P1.y); return 0; }
P1 P2
4.1
7.9 2.3
6.5 x
y
x
y
26
ืืชืืื ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืื ืืฉืชื ืื ืืืืคืืก ืืืฉ ืืคืฉืจ ืืืชืื ืืฉืืจืช ืืืืืจื .
:ืืืฉื ืืืชืืืืก ืืืืืื ืืงืืืืช
struct point P = {6.5,7.9};
.6.5-ืืืืชืื ื Pืฉื ืืืฉืชื ื xืืฉืื
.7.9-ืืืืืชืื Pืฉื ืืืฉืชื ื yืืืฉืื
ืืืชืืื ืืื ืืคื ืกืืจ ืืฉืืืช ืืืืืจืช ืืืื ื, ืืืืคื ืืืื ,
, ืืืืืจ ืืืืืจ ืืจืืฉืื ืืจืฉืืืช ืืืชืืื ืืื ืก ืืฉืื ืืจืืฉืื
ืืฉืืจ ืืืืชืื , ืื ืืืชืืื ืืื ืืืงื)ืืื ืืืื , ืืฉื ื ืืฉื ื
(.ืืืคืกืื
27
ืืื ืื -ืกืืืื ืืื ืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืืื ืื
ืืืืจืช ืืื ืื
ืืชืืื ืืื ืื
28
char name[SIZE]
int age
person
char address[SIZE]
int class
ืคืขืืืืช ืขื ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืฉืื ืืชืืฆืขืช ืืฆืืจื ืืจืืืื:
P1 = P2;
ืืชืืื ืฉืP2 ืืืขืชืง ืืชืืP1( .ืืขืชืงื ืฉื ืฉืื ืืืจ ืฉืื)
ืฉืื ืื ืฉืื ื)ืื ืืื ืืฉืืืช ืืื ืืขืจื ืื ืื ืืื ืืืขืชืง-
P1 ืื ืืฉืคืืข ืขืP2.)
ืืคืขืืืืช ืืฉืืื ืืื ื ( ืืืืืจืืช)== ืคืขืืืืช ืืฉืืืื
(. ืื ืื ืืขืืืจ ืงืืืคืืืฆืื)ืคืืขืืืช ืขืืืจ ืืื ืื
ืขื ืื ืช ืืืฆืข ืคืขืืืืช ืืฉืืืื ืืื ืืื ืื ื ืฉืชืืฉ ืืคืื ืงืฆืืืช.
ืขืืืจ ืื ืคืขืืื ื ืืชืื ืคืื ืงืฆืื ืจืืืื ืืืช.
30
point ืคืื ืงืฆืื ืืืฉืืืืช ืืื ื : ืืืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
int equal(struct point p, struct point q)
{
return ((p.x == q.x) && (p.y == q.y));
}
, 1ืืคืื ืงืฆืื ืชืืืืจ ืืช ืืขืจื ืื ืื ืงืืืืช ืืืืช
0ืืืจืช ืืคืื ืงืฆืื ืชืืืืจ ืืช ืืขืจื
31
ืืืืื ืืฉืืืืฉ ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืคืื ืงืฆืื ืืืืฉืืช ืืจืืง ืืื ืฉืชื ื ืงืืืืช:
double dist(struct point p, struct point q)
{
double d;
d=(p.x - q.x)*(p.x - q.x)+(p.y-q.y)*(p.y-q.y);
return sqrt(d);
}
ืืฉ ืืืืกืืฃ ืืชืืืืช ()sqrtืืืฉืชืืฉ ืืคืื ืงืฆืื ืืื : ืชืืืืจ ืืฉืืื
<include <math.h#: ืืงืืืฅ ืืช ืืกืคืจืืื
32
Shayke Bilu PhD SCE-Chapter-10-Structs
#include <stdio.h> struct point { double x, y; };
double dist(struct point p, struct point q)
{
double distance;
distance=(p.x-q.x)*(p.x-q.x)+(p.y-q.y)*(p.y-q.y);
return sqrt(distance);
}
ืืฆืืืช ืืจืืง ืืื ืฉืชื ื ืงืืืืช โืืืืื ืืฉืืืืฉ ืืืื ืื
33
Shayke Bilu PhD SCE-Chapter-10-Structs
int main()
{
struct point p,q;
printf(โEnter x & y to first point\nโ);
scanf(โ%lf%lfโ, &p.x,&p.y);
printf(โEnter x & y to second point\nโ);
scanf(โ%lf%lfโ, &q.x,&q.y);
printf(โTheir distance is %.2lf\nโ, dist(p,q));
return 0;
}
34
ืืฆืืืช ืืจืืง ืืื ืฉืชื ื ืงืืืืช โืืืืื ืืฉืืืืฉ ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
#include <stdio.h>
#define SIZE 81
struct quadric
{
double num;
int mis;
char ch;
char str[SIZE];
};
35
?ืื ืขืืฉื ืืชืืื ืืช ืืืื โืืืืื ืืฉืืืืฉ ืืืื ืื
double num
int mis
quadric
char ch
char str[SIZE]
Shayke Bilu PhD SCE-Chapter-10-Structs
int main()
{
struct quadric list;
flushall();
printf(โEnter 4 parameters: double, integer,
char, string:\nโ);
scanf(โ%lf %d %c %sโ
,&list.num,&list.mis,&list.ch,&list.str);
printf(โx=%.2lf, y=%d, c=%c, s=%s\nโ
,list.num, list.mis, list.ch,list.str);
return 0;
}
36
?ืื ืขืืฉื ืืชืืื ืืช ืืืื โืืืืื ืืฉืืืืฉ ืืืื ืื
ืคืื ืงืฆืืืช ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืืื ื ืื ืงืืืืช ืืืขืืจืื ืืคืื ืงืฆืื?
ืื ืืืขืืจืื ืขื ืืื ืืขืชืงืช ืืขืจืืื ืฉื ืืฉืืืช ืฉืืื . ืืคืจืืืจืื ืฉื ืืคืื ืงืฆืื
ืืื ืืืฉืชื ืื ืจืืืืืcall by value)) , ืืื ืขืืืจint.
ืฉืื ืื ืื ืงืืื ืืคืื ืงืฆืื ืื ืืฉื ื ืืช ืื ืงืืื ื- main.
ืืื ืื ืืฉืชื ื ืืืจ , ืคืื ืงืฆืื ืืืืื ืืืืืืจ ืื ืืื ื (.ืื ืืืงืจื ืืื ืืขืจืืื ืืืขืชืงื)
ืืขืจื ืฉื ืืื ืื ืื ืฉืื ืืคืื ืงืฆืื ืืืืคื ืืืขืจื ืจืืื.
38
ืื-ื ืงืืื ืืชืฉืืืช โืืืื ืื ืืขืจืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืืืื ื ืืช ืืืขืืืจืื ,ืืขืจื ืืื ืืืื ื ืฉื ืืฉืืืช ืืื ืื ,ืืืขืืจืช ืืืขืจื ืืชืืืช ืจืง ืื) ืืืขืชืง ืืืขืจื ืื ืื ,ืืคืื ืงืฆืื
.(ืจืืื ืืืฉืชื ื ืืืคืื ืืื ืืืฉ
ืฉื ืฉืื ืฉืืื ืืืขืจื ืคืื ืงืฆืื ืืชืื ืฉืื ืื ื ืืฆืข ืื ืืืงืจื .ืืืงืืจื ืืืขืจื ืขื ืืฉืคืขื ืืื ืชืืื ืื ืื ,ืืื ื
ืืืฉืจ ืืื ืืืื ื ืืช ื ืืืืจ ืื ืืืฉื SIZE 10 ืืื:
struct array_10
{
int arr[SIZE];
};
ืืฉืชื ื ืืืฉ ืืืืืืจ
ืืืขืจื ืืืฉืืฉ ืืฉืื
: ืคื ืืื ืืชืื ืืื ื
int_array_10
39
ืื-ื ืงืืื ืืชืฉืืืช โืืขืจืืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืคืื ืงืฆืื ืืืื ืื ืชืฉืคืืข ืขื ืืืฉืชื ื ืฉืืืขืืจ ืืืื:
void zero_arr (struct array_10 A)
{
int i;
for(i=0; i<SIZE; i++)
A.arr[i]=0;
}
ืืคื , ืืื ืืฉื ืืช ืืช ืื ืชืื ืื ืฉื ืืืขืจื ืืืงืืจื ื ืฉืชืืฉ ืืืฆืืืข .ืฉื ืจืื ืืืืฉื ืื ืืืจืช ืืขืจืืื ืื ืืฉืืจื ืืืขืจื
ืื ืฉื ืขืืืจ ืืคืื ืงืฆืื ืืฆืืืข ืืืื ื ืื : ืืคืฉืจืืืืช ืืืจืืช ืื .ืฉื ืืืืจ ืืืื ื ืืฆืืืข ืืืงืื ืืขืจื
ืฉื ืืืขืชืง ืืื ืืืืืคืก ืืขืจื
ืืืขืชืง ืืื ื ืืชืื ืืขืจื ืื ,ืืืขืจื
.ืืคืื ืงืฆืื ืืืขืืจื
ืืชืืฆืขืช ืืชืื ืืฉืื 0ืืฉืืช ืืขืจื
.A.arrayืืจืืืื ืื ืืชืื ืืืฉืชื ื
40
ืคืขืืืืช -ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
(ืฉืื-ืฉืื ืืขืชืงื ืืชืืฆืขืช) ืืืชืจืช ืืื ืื ืืื ืืฉืื
ื ืืชื ืฉืื ืืืืื ืืืชืจืช ืื ืืฉืืื ืืคืขืืืืช ืืฉืืืื ืคืขืืืืช
.ืื ืืฉื ืืืขืืืืืช ืืคืื ืงืฆืืืช ืฉืืืืฉ ืืื ืืืฆืข
ืืื ,ืืื ื ืืื ื ืืืืืืืจ ืืคืื ืงืฆืื ืืื ืื ืืืขืืืจ ื ืืชื
(int ืืื) ืจืืื ืืฉืชื ื-ืืืคืืก ืืื ,ืืืื ื ืืืื ืืืขืชืงืื
ืืืืจ ื ืฉืืจ ืื ืื ืฉืื ืื ืืื ืืืขืชืง ืืื ื ืืชืื ืืขืจื
.ืืืคืื ืงืฆืื ืืืฆืืื
ืืืืจ ื ืฉืืจ ืื ืฉืื ืื ืืื ืืคืื ืงืฆืื ืืืขืืจ ืืื ืื ืฉื ืืขืจื
.ืืืคืื ืงืฆืื ืืืฆืืื
41
ืืชืืื ืืงืืฆืจืช โืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืฉืื ืฉื ืืืืคืืก ืืืืฉ ืฉืืืืจื ื ืืืstruct point
ืืคืฉืจ ืืืกืื ืืช ืืชืืืช ืืืืืstruct ืืืืฆืขืืช ืืคืงืืื
typedef ,ืืฉืชื ื-ืฉืืืคืฉืจืช ืืชืช ืฉื ืืืฉ ืืืืคืืก :
struct point
{
double x, y;
};
typedef struct point Point;
ืืืคืืก ืงืืื ืฉื ืืืฉ
42
ืืชืืื ืืงืืฆืจืช โืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืช ืฉืชื ืืฉืืจืืช ืืื ืืืืคื ืืืืืืชืื ืืคืฉืจ:
typedef struct point
{
double x, y;
} Point;
ืืืืืช ื- typedef ืืืชืื ืืขืช ืืช ืืืืื ื ืืืPoint ืืืงืื (. ืื ืฉืงืื ืืืืืืื) struct pointืืช ืืืืืจื ืืืืื ืืืชืื
ืืืฉื:
double dist(Point p, Point q)
43
ืืชืืื ืืงืืฆืจืช โืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืจืช ืืืื ื ืืืืคื ืืืืืคืฉืจ ืื ืืืชืื ืืช:
typedef struct
{
double x, y;
} Point;
ืืืืืช ื- typedef ื ืืื ืืืชืื ืืขืช ืืช ืืืืืPoint ืืืงืื (. ืื ืฉืงืื ืืืืืืื) struct pointืืืชืื ืืช ืืืืืจื ืืืืื
ืืืฉื:
double dist(Point p, Point q)
44
typedefืขืื ืขื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืฆืืื ืฉืืคืงืืืtypedef ืืืืื ืืฉืืฉ ืื ืืื ืืชืช ืฉื ืืืฉ .ืืืืคืืก ืงืืื ืฉืืื ื ื ืืื ื
ืืืฉื ืื ื ืจืฆื ืืชืช ืฉื ืืืืื ื-
unsigned int
ืืคืฉืจ ืืืชืื :
typedef unsigned int UINT;
ืขืืฉืื ืืื ืืงืื ืืชืืื ืืช ืฉื ืจืฆื ื ืืื ืืืฉืชืืฉ ื-UINT ืืื .unsigned intืืืืืืจ
unsigned int ui; ืฉืงืื ื- UINT ui;
ืฉื ืืืฉ ืฉื ืงืืื
45
typedefืขืื ืขื
Shayke Bilu PhD SCE-Chapter-10-Structs
typedef struct
{
double real, image;
} Complex;
int main()
{
Complex c={5,7};
Complex *pc;
pc = &c;
}
struct complex
{
double real, image;
};
typedef struct complex
complex_t;
int main()
{
complex_t c={5,7};
complex_t *pc;
pc = &c;
}
46
ืกืืืื ืืื ืืื โืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืฉืื ืืฉืชื ืื ืืืคืืกื ืืืืจืช ืืืคืฉืจ ืืืื ืื ืฉืืืืฉ
ืฉืืืงืฉืื ืืืขืื ืืืืื ื ,ืืืืืชื ืืขืืื ืฉืงืจืืืื
.ืืคืชืืจ
ืืืฉืืื ืืคืขืืืืช ืืืฉืชืืฉ ื ืืชื ืื ืืืื ืื ืืฉืืืืฉ
ืืืชืื ืขืืืจื ืคืื ืงืฆืืืช ืืืืืืจ ืืฉ -ืืจืืืืืช ืืืืฉืืืื
.ืืฆืืจื
ืจืืืืื ืืืืคืืกืื ืืื ืืืฉืชืืฉ ื ืืชื ืืืื ืื ืืฉืืืืฉ
ืืชืื ืฉืืขืจื ืืขืืืื ืืืขื) ืืคืื ืงืฆืื ืืขืืจื ืืืืื ืช
.(ืืืงืืจื ืืืขืจื ืืืขืืจ ืืื ืืืขืชืง ืืื ื
47
ืืื ืื ืืืฆืืืขืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืื ืืขืชืงืช ืื ,ืืฉืชื ืื ืืืื ืืืจืื ืืืจืื ืฉืื ื ืืืื ื ืื
.ืจืืื ืืืืืจืื ืืื ืืืจืฉืช ืืคืื ืงืฆืื ืฉื ืืคืจืืืจืื ืืชืื ืืืื ื
ืืืชืจ ืืฉื ืืช ื ืฉืืฃ ืืคืขืืื ,ืจืืืืื ืืืฉืชื ืื ืืื ,ืื-ืืื
.(ืืื ืืื ื ืืืืืืจ ืจืง ืืื) ืืคืื ืงืฆืื ืืชืื ืืื ืืืื ื
ืืฆืืืขืื ืืคืื ืงืฆืื ืืฉืืื ื ืืื ืืืื ืื ืืฉืืื ืืฉื ื ืืืคื ืืื
.ืืืจืื ืืกืืืื ืืืฉืชื ืื ืืฆืืืขืื ืฉืฉืืื ื ืืื ,ืืืื ืื
ืืืขืืจืช ,ืืื ื ืืื ืืืฆืืืข ืจืง ืืฉืืืคื ืืคืื ืงืฆืื ืืงืจืืื
.ืืืงืืจื ืืืื ื ืืช ืืฉื ืืช ื ืืื ืืืฆืืืข
49
ืืื ืื ืืืฆืืืขืื
ืืคืฉืจ ืืืืืืจ , ืืฉืชื ืื ืฉืืืจื ื ืืขืืจ-ืืืืืง ืืื ืืืคืืกื
ืืชืืืช ืืืชืืื ืฉื ืืื ื ืืื )ืืฆืืืข ืืืืคืืก ืฉืืื ืืื ื
(. ืืชืืืช ืืฉืื ืืจืืฉืื ืฉืื
ืืืฉื:
Point P={5.2,6.3};
Point *ptr;
ptr = &P ;
5.2
6.3
Shayke Bilu PhD SCE-Chapter-10-Structs
P
ptr
P.x
P.y
50
ืืืฉื ืืฉืืืช ืืืื ื โืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืืืืืข ืืฉืืืช ืฉื , ืืืืืื ืืP ืืจืptr ืฉืืฆืืืข
:ืืจืืื* -ืืคืฉืจ ืืืฉืชืืฉ ื, Pืขื
(*ptr).x = 3.5; ืฉืงืื ื- P.x = 3.5;
(*ptr).y = 7.4; ืฉืงืื ื- P.y = 7.4;
ืื ืืืจืช ืื ืงืืื ืืฉ ืงืืืืืช ืขื ืคื ื ืืฉ ืฆืืจื ืืกืืืจืืื
.* -ื
51
ืืืฉื ืืฉืืืช ืืืื ื โืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืืืืืข ืืฉืืืช ืฉื , ืืืืืื ืืP ืืจืptr ืฉืืฆืืืข ืขืP ,
:ืืจืืื* -ืืคืฉืจ ืืืฉืชืืฉ ื
(*ptr).x = 5.2; ืฉืงืื ื- P.x = 5.2;
(*ptr).y = 8.9; ืฉืงืื ื- P.y = 8.9;
ืืฅ : ืืื ื ืฉืชืืฉ ืืฆืืจื ืื ืืกืืืื ืืงืืฆืจ-ืืื ืืืจื->
ptr ->x = 5.2; ืฉืงืื ื- P.x = 5.2;
ptr ->y = 8.9; ืฉืงืื ื- P.y = 8.9;
ืืืืืจ ืืฉืืขืืช ืืืฅ ืืื ืืืฉื ืืฉืื ืืืื ื ืฉืืฆืืืขืื ืขืืื.
52
ืืืืื -ืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื "ืืงืจืืื ืืคืื ืงืฆืื ืขequal(&P1,&P2)
ืคืื ืงืฆืืืช ืืืฉืืืื ืืฉืืืขืืจืื ืืฆืืืขืื:
int equal( struct Point *p, struct Point *q)
{
return (((*p).x == (*q).x) && ((*p).y ==(*q).y));
}
ืืืืฉื ืขื ืืฆืืืข ืืื ืืฉืื ืฉื ืืืื ื ืฉืืฆืืืขืื ืขืืื.
53
ืืืืื -ืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื "ืืงืจืืื ืืคืื ืงืฆืื ืขequal(&P1,&P2)
ืคืื ืงืฆืืืช ืืืฉืืืื ืืฉืืืขืืจืื ืืฆืืืขืื:
int equal( struct Point *p, struct Point *q)
{
return ((p->x == q->x) && (p->y == q->y));
}
ืืื ืืฉืื ืฉื ืืืื ื ืฉืืฆืืืขืื ืขืืื ->ืืืืฉื ืขื ืืฅ.
54
ืืืืื -ืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
equal(P1, P2)ื "ืืงืจืืื ืืคืื ืงืฆืื ืข โข
int equal(struct Point p, struct Point q)
{
return ( (p.x == q.x) && (p.y == q.y));
}
ืืื ืืฉื ืืื ืืฉืืจืืช ืืฉืื . ื ืงืืื -ืกืืื ืืขื ืืืืฉื โข
55
ืขืื ืืืืื โืืฆืืืขืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืืฉื ืืช ืืืจืืง ืืฉืืืขืืจืื ืืฆืืืขืื ืืื ืืืื ืื ืขืฆืื:
double dist(struct Point *p, struct Point *q)
{
double d,dx,dy;
dx = p->x - q->x;
dy = p->y - q->y;
d = dx*dx + dy*dy;
return sqrt(d);
}
ืืื ืชืืจืื ืืงืจืืื ื-main?
printf(โThe distance is %g\nโ, dist(&P1,&P2)(;
56
ืฉืืืืฉ ืืืฆืืืขืื - Syntax ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืจืช ืืื ื:
typedef struct
{
double real;
double image;
}Complex;
ืื ืืงืืฉืืจ ืืืฆืืืขืืืืจืช ืืฉืชื ืื ืืกืื:
Complex c;
Complex *pc;
pc = &c;
ืฉื ืืืื ื members -ื
57
Shayke Bilu PhD SCE-Chapter-10-Structs
typedef struct {
double real, image;
}Complex;
int main()
{
Complex c;
Complex *pc;
c.real = 5.2;
c.image = 7.3;
}
5.2
7.3 c.image:
c.real:
c
ืฉืืืืฉ ืืืฆืืืขืื - Syntax ืืื ืื 58
double image
double real
Complex
Shayke Bilu PhD
5
7 c.image:
c.real:
c typedef struct {
double real, image;
}Complex;
int main()
{
Complex c;
Complex *pc;
c.real = 5; c.image = 7;
pc = &c;
pc->real = 3;
pc->image = 4;
}
pc 0x7fff9255c05c 3
4 pc.image:
pc.real:
pc
ืืชืืืืช ืืืฆืืืขืื - Syntax ืืื ืื -ืืืจื 59
0x7fff9255c05c
0x7fff9255c05c
SCE-Chapter-10-Structs
Shayke Bilu PhD SCE-Chapter-10-Structs
typedef struct {
double real, image;
}Complex;
ืืืืฉื ืืฉืืจื ื- members ืฉืc ืื ืงืืื ื ืฉืชืืฉ(..)
ืืฉืืจื ืืืืืฉื- members ืฉืpc ืืืฅ ืืืื ื ืืกืืื ื ืฉืชืืฉ
.(->)ืืืื ืืก ืืฉืืขืืช ืืกืืื ืื ืืื ืืืืคืฉืจืช ืืืฉื ืืฉืืจื ืืชืื ืืฉืื
.ืืคื ืืื ืฉื ืืืื ื
ืืชืืืืช ืืืฆืืืขืื - Syntax ืกืืืื ืืื ืื 60
double image
double real
Complex
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืจืช ืืืื ืื ืืืืจืื ืขื ืคืื ืงืฆืืืช
#include <stdio.h>
typedef struct {
double real, image;
}Complex;
void ScanComplex(Complex *ptr);
void PrintComplex (Complex n);
62
double image
double real
Complex
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืชืืื ืืช ืืจืืฉืืช
int main()
{
Complex x;
ScanComplex(&x);
PrintComplex(x);
return 0;
}
63
Shayke Bilu PhD SCE-Chapter-10-Structs
ืคืื ืงืฆืืืช ืืืืคืื ืืืื ืื
void ScanComplex(Complex *ptr)
{
printf("Enter two doubles real && image:\n");
scanf(โ%lf%lfโ, &(ptr->real), &(ptr->image));
}
void PrintComplex (Complex n)
{
printf(โ%.2lf + %.2lf =%.2lf\nโ, n.real,
n.image,n.real+n.image);
}
64
ืืื ื ืืชืื ืืื ื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืฉืืืช ืฉื ืืื ื ืืืืืื ืืืืืช ืืขืฆืื ืืื ืื ืืืจืื.
ืืื ื ืฉืืชืืจ ืืืื ืืืืฉืืจ ืฉืืงืืื ืืฆืืจืื, ืืืืืื .
ืงืืืงืืืืื ื ืืืืืืืื ืฉื ื -ืืืื ืฉืืงืืื ืืฆืืจืื ื ืงืืข ืขื.
ืืืืกืื ืืื ืืงื ืืืืืจ ืืื ืฉื ื ืืงืืืงืืืืื.
p(5.3)
q(1.1)
66
x
y
1 2 3 4 5
1
2
3
ืืื ื ืืชืื ืืื ื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืงืืืืช 2ื "ืขืืจืืจ ืืืชืจ ืืืืืืจ.
ืืื ืื ืืช ืืจืืฉืื ืืืงืืฆืจ ืขื ื ืืืืtypedef:
typedef struct rect{
Point p;
Point q;
}Rect;
Rectืืคื ื ืืืื ื Pointืืฉ ืืืื ืืืืืืจ ืืช ืืืื ื : ืืขืจื
67
double x
double y
Rect
double x
double y
Point p Point q
ืืชืืื ืืื ืื โืืื ื ืืชืื ืืื ื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืื ืืื ื ืฉืืฉ ืืชืืื ืืื ื ืืคืฉืจ ืืืชืื ืืฉืืจืช ืืืืืจื:
Rect r = { {5,6} , {10,2} };
ืืื , ืืฉื ื ืืฉื ื, ืขืจื ืืืชืืื ืืจืืฉืื ืืฉืืื ืืฉืื ืืจืืฉืื (.ืืืืชืืื ืืืงื ืืฉืืจ ืืืืชืื ืืืคืกืื)ืืืื
ืืคืฉืจ ืืืืื ืื ืืืชืื ืื ืฉืื ืืฉืืจืืช ืืืจื ืืืืืจื:
r.p.x = 5;
r.p.y = 6;
r.q.x = 10;
r.q.y = 2;
p q
68
ืืขืจื ืฉื ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืคืฉืจ ืืืืืืจ ืืขืจื ืฉื ืืื ืื, ืืื ืืืคืืกื ืืฉืชื ืื ืืืจืื.
ืืขืจื ืื ืืืืืจ ืืืืื ืืชืืื ืฉืืืช ืฉืื ืืื ืื ืืืืืืื ืชืชื
.ืฉืืืช
ืืืืืจ ื) 20ืืืืื ืืคืฉืจ ืืืืืืจ ืืขืจื ืฉื ื ืงืืืืช, ืืืฉื-
SIZE:)
int main()
{
Point arr[SIZE];
โฆ
return 0;
}
70
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืืืจื , ื ืืชืื ืคืื ืงืฆืื ืืืงืืืช ืืขืจื ืฉื ืืืื ืื
. ืืฆืืืข ืืืืื ืขื ืืืืืกืื ืืืจืื ืืืืชืจ
ืฉื ืืคืื ืงืฆืื ืืืืMaxRect
ืืคืจืืืจืื ืฉืืคืื ืงืฆืื ืชืงืื ืืืื:
ืืืืืจ ืืืชืืืช ืฉื ืืืืื ืืจืืฉืื ืืืขืจื, ืืขืจื ืฉื ืืืื ืื.
ืืืื ืืืขืจื.
ืืขืจื ืืืืืืจ ืืืคืื ืงืฆืื ืืืื ืืืฆืืืข ืืืืื ืืฉืจ
.ืืืืืกืื ืฉืื ืืื ืืืจืื ืืืืชืจ
ืืืืื -ืืขืจื ืฉื ืืื ืื 71
MaxRect ืชืื ืื ืืคืื ืงืฆืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืคืื ืงืฆืื ืชืขืืืจ ืขื ืคื ื ืื ืืืืจื ืืืขืจื ืืชืืฉื ืืื ืืืื
. ืืช ืืืจื ืืืืืกืื ืฉืื ืขื ืคื ื ืงืืืืช ืืงืืฆืื ืฉืื
ืืคืื ืงืฆืื ืชืฉืืืจ ืืช ืืืืจื ืืืงืกืืืื ืฉื ืืฆื ืขื ืขืืฉืื
ืืืช ืืื ืืงืก ืืืืื ืฉืื ืืื ื ืืฆื ืืืฉืชื ื maxืืืฉืชื ื
index.
ืื ืืืืืกืื ืื ืืืื ืืืื ืืืชืจ ืืืืงืกืืืื ืฉืืื ืขื
. ื ืขืืื ืืช ืืืงืกืืืื ืืืช ืืืื ืืงืก, ืขืืฉืื
ืืกืืฃ ืืืืืจ ืืฆืืืข ืืืืฆืขืืช ืืืื ืืงืก ืฉืฉืืจื ื.
72
ืืขืจื ืฉื ืืืื ืื ืืืืืจืื
Rect
Rect
Rect
Rect
Rect
Rect
Rect
Point p
Point q
double x
double y
double x
double y
Shayke Bilu PhD SCE-Chapter-10-Structs
ืื ืืืื ืืืื ืฉื ื
ืืืืคืืก ื ืงืืืืฉืืืช
Point
ืื ื ืงืืื ืืืืื ืฉื ื
ืืืืคืืก ืฉืืืช
double
ืืืืื ืื ื ืฉืืจืื ืืจืฆืฃ ืืืืืจืื
73
ืืืืกืื ืฉื ืืืื โืืื ื ืฉืืืืฉ ืฉื ืืื ื ืืชืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืฉื ืืื ื member-ืืฉืืฉ ืืืชื ื ืื ืืฉืืืืืจ ืืืื ืืื ื โข ืืืืื ื ืืืืืืจ ืืื ืืฉื ื ืงืืื ืืืื ืืฉืืฉ ืืืชื ื ืืื ื . ืืืจ .ืืฉืืืฉืฉื
typedef struct point{
double x, y;
}Point;
typedef truct rect {
point p1;
point p2;
}Rect;
74
double x
double y
double x
double y
Point p2
Rect
Point p1
ืืืืกืื ืฉื ืืืื โืืืขืจื ืฉื ืืื ืื ืืชืื ืืื ื ืฉืืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
75
ื ืืืืจ ืืขืจื ืฉื ืืื ื ืฉื ื ืงืืืืช ืืืืกืื ื ืืืื ืื:
Rect arr[SIZE];
arr[4]
arr[1] arr[2] arr[3] arr[0]
X ,Y
X ,Y
Point p1
Point p2
X ,Y
X ,Y
X ,Y
X ,Y
X ,Y
X ,Y
Point p1
Point p2
Point p1
Point p2
Point p1
Point p2
ืืชืืื ืืขืจื ืฉื ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื -ืขื, ืื ื ืืชื ืืืชืื ืืขืจื ืฉื ืืื ืื ืืฉืืจืช ืืืืืจื
. ืืชืืืช ืขืจืื ืืชืืื ืืื ืืื ื ืืคื ืืกืืจ
ืืื ืฉืื ืืฉ ืืืงืคืื , ืืืื ืืืงืคืื ืขื ืกืืจ ืืืชืืื
ืืืื ืืก ืขืจื ืืืชืืื ืืืืคืืก ืืืชื ืฉืื ืืคื ืฉืืืืืจ
.ืืืื ื
ืืืืืื ืขืืืจ ืืขืจื ืฉื ืืืื ืื :
Rect arr[SIZE] ={{{ 3,4},{5,6}},{{ 4,7},{9,10}} โฆโฆ..}}
76
Shayke Bilu PhD SCE-Chapter-10-Structs
ืฉื ืืื ื member-ืืฉืืฉ ืืืชื ื ืื ืืฉืืืืืจ ืืืื ืืื ื โข . ืืืจ ืืืืื ืืฉื ื ืงืืื ืืืื ืืฉืืฉ ืืืชื ื ืืื ื โข
typedef struct .ืืื ื ืฉื ืืฉืืืฉืืืืืืจ
{
double x, y;
} Point;
typedef struct {
point p1;
point p2;
point p3;
}Triangle;
78
double x
double y
Triangle
double x
double y
Point p1 Point p2
double x
double y
Point p3
ืืฉืืืฉโืืื ื ืืื ื ืืชืื ื ืืกืฃ ืฉื ืฉืืืืฉ
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ื ืฉื ืืืืื ื ืืืืืืจ ืืื ื ืฉื ื ืงืืื ืืืื ืืฉืืฉ ืืืชื ื .ืืฉืืืฉ
t1 ืงืืืงืืืืืืืจ , ืืื ื ืงืืื ืืืช , ืืืืืื ืืชืืื ืฉื ื ืขืจืืื
.yืืืฉื ื ืขืืืจ xืืื ืขืืืจ
typedef struct{
point p1;
point p2;
point p3;
} Triangle ;
void main(){
Triangle t1;
t1.p2.x = 7.3;
t1.p2.y = 8.2;
}
ืืฉืืืฉโืืื ื ืืื ื ืืชืื ื ืืกืฃ ืฉื ืฉืืืืฉ
79
ืืื ื ืฉื ืืกืคืจ ืืืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืืืืจ ืืื ื ืฉื ืืกืคืจ ืืืจืื:
typedef struct
{
double real;
double image;
} Complex;
80
double real
Complex
double image
ืืขืจื ืฉื ืืื ืื ืฉื ืืกืคืจ ืืืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืืืืจ ืืขืจื ืฉื ืืื ื ืฉื ืืกืคืจ ืืืจืื:
Complex arr[SIZE];
81
arr[4]
arr[1] arr[2] arr[3] arr[0]
5
7
2
1
7
2
1
8
real real real real
image image image image
ืืขืจืืื ืืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืกืืืื ืฉืืื ืืืืจ ืืืื ืื ืืืืืจืื ืกืื ืืืฉ ืฉื ืืฉืชื ืื ืืจื โข .ืกืืืื ืืืืจืืืืื ื ืจืฆื ืืืฆืืจ ืืขืจืืื ืขืืืจ
5
7
2
1
7
2
1
8
Complex arr[SIZE]=
{{5,7},{2,1},{7,2},{1,8}}
arr[1].real = 9;
arr[1].image = 2;
arr[3].real = 8;
arr[3].image = 3;
image:
arr real:
0
1
2
3
82
image:
real:
image:
real:
image:
real:
ืืขืจื ืฉื ืืื ืื ืฉื ืืกืคืจ ืืืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืืืืจ ืืขืจื ืฉื ืืื ื ืฉื ืืกืคืจ ืืืจืื:
Complex arr[SIZE];
83
arr[4]
arr[1] arr[2] arr[3] arr[0]
5
7
9
2
7
2
8
3
real real real real
image image image image
ืืืื ืื ืืืจื ืืืฆืืข ืืคืงืืืืชืืขืจืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
5
7
2
9
7
2
3
8
arr[size]
0
1
2
3
Complex arr[SIZE]=
{{5,7},{2,1},{7,2},{1,8}}
arr[1].real = 2;
arr[1].image = 9;
arr[3].real = 3;
arr[3].image = 8;
84
image:
real:
image: real:
image:
real:
image:
real:
ืกืืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืจื ืืืชืืื
ืคืขืืืืช ืขื ืืื ืื
ืืื ืื ืืคืื ืงืฆืืืช
ืืื ืื ืืืฆืืืขืื
ืืื ื ืืชืื ืืื ื
ืืขืจืืื ืฉื ืืื ืื
ืืื ืื ืืืจืืืื
86
1ืชืจืืื ืืกืคืจ
Shayke Bilu PhD SCE-Chapter-10-Structs
.ืืจืืืืื ืืกืคืจืื 5 ืฉื ืืขืจื ืืืงืืืช ืคืื ืงืฆืื ืืชืืโข
ืืขื ืืืืืจ ืืช ืืชืืชืจ ืืืกืคืจืื ืืช ืชืืืืง ืืคืื ืงืฆืืโข .ืืืงืกืืืื ืืืืืื ืืขืจื
ืืขื ืืืืืจ ืฉื ,ืืืืงืื ,ืืืื ืืงืก ืืช ืชืืืืจ ืืคืื ืงืฆืืโข .ืืืงืกืืืื ืืืืืื ืืขืจื
ืคืื ืงืฆืืืช ืืืื ,ืืคืื ืงืฆืื ืืช ืืืคืขืืื ืชืืื ืืช ืืชืืโข .ืืืขืจื ืืืคืกืช ืืคืื ืงืฆืืืช ืื ืชืื ืื ืงืืืืช
.ืขืฆืืื ืืืืคื ืืืฉืืืืช ืืฉืืโข
87
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
88
#include <stdio.h>
#include <math.h>
#include <string.h>
#define SIZE 5
typedef struct // ืืื ืืืืืจืช
{
double real;
double image;
}Complex;
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
89
int ScanComplex(Complex *arr)
{
int i;
printf("Enter %d peers of numbers:\n", SIZE);
for(i=0; i< SIZE; i++)
{
printf("Enter numbers for point %d\n",i);
scanf("%lf%lf",&arr[i].image,&arr[i].real);
}
}
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
90
int PrintComplex(Complex *arr)
{
int i;
printf("array %d numbers:\n", SIZE);
for(i=0; i< SIZE; i++)
printf("index=%d image=%.2lf real=%.2lf\nโ
,i,arr[i].image,arr[i].real);
}
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
91
int MaxAbs(Complex *arr)
{
int i,maxIn; double maxAbs=-1;
char status[SIZE];
for(i=0;i< SIZE;i++)
{
if (maxAbs < abs(arr[i].image))
{
maxAbs = abs(arr[i].image); maxIn = i;
strcpy(status,"image");
}
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
92
if (maxAbs < abs(arr[i].real))
{
maxAbs = abs(arr[i].real);
maxIn = i;
strcpy(status,"real");
}
}
printf("Max abs is %.2lf\n",maxAbs);
printf("Max abs is in status: %s\n",status);
return maxIn;
}
ืคืชืจืื
Shayke Bilu PhD SCE-Chapter-10-Structs
93
int main()
}
Complex arr[SIZE];
ScanComplex(arr);
PrintComplex(arr);
printf(โMax value in index: %d\n",MaxAbs(arr));
return 0;
}
ืขืื ืืืืื โืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืื ืื ืืืืืื ืืืืืจ ืืืืื ืฉืืืช ืืกืืืื ืฉืื ืื.
ืืืืื ืืืื ื ืืืจืื ืืืืืฆื ื ืชืื ื ืกืืืื ื.
ืืืืฆืข ืฆืืื ืื, ืฉื. ื.ืืกืคืจ ืช: ืืืื ื ืฉืืืฉื ืฉืืืช.
#define SIZE 20
typedef struct
{
int id;
char name[SIZE];
double average;
}Student;
95
ืกืืืื ื -ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ื ืืื ืืืฉื ืืืืืืจ ืืขืจื ืฉื ืืกืืืื ืืื ืืืืชื: # define CLASS_SIZE 50
int main()
{
Student class[CLASS_SIZE];
โฆ
โฆ
}
ื ืืชืื ืืืืืื ืคืื ืงืฆืื ืฉืืืคืืกื ืืช ืฉืืืช ืืกืืืื ืืื
ืืืฆืืืื ืื ืืืืืืจื ืืช ืืกืคืจื
ืืื ืงืืืข CLASS_SIZE -ื ื ืื ืฉ)
(50 -ืืืืชื ืืกืืืื ืืื ' ืฉืืืื ืืช ืืก
96
ืคืื ืงืฆืื ืืืฆืืืช ืืืฆืืืื ืื: ืืืืื
Shayke Bilu PhD SCE-Chapter-10-Structs
int top_students(Student students[ ]) {
int i, cnt = 0; for(i = 0; i < CLASS_SIZE; i++) {
if (students[i].average > 90) { printf(โ%s\nโ, students[i].name); cnt++; }
} return cnt;
}
ืืืืืจ ืืืืืจืื ืืช ืืกืคืจ ืืืฆืืืื ืื
97
2ืชืจืืื ืืกืคืจ
Shayke Bilu PhD SCE-Chapter-10-Structs
ืื ืืฉืจ ืืจืืืืื ืืกืคืจืื ืฉื ื ืืืงืืืช ืคืื ืงืฆืื ืืชืืโข .ืคื ืืืืื ืืกืคืจืื ืฉื ื ืืืื ืืื ืืื
ืืช ืืืืืจ ,ืืืกืคืจืื ืฉื ื ืืช ืืืืจ ืืคืื ืงืฆืื ืขืโข .ืืกืืื ืืช ืืืืืืืจ ืฉืื ืืคื ืืืืื ืืืกืคืจืื ืืจืืขืช
ืฉื ืืืืืื ืืขืจื ืืช ืืืืฉืืช ื ืืกืคืช ืคืื ืงืฆืื ืืชืืโข ืื ืงืืืืช ืืจืืงื ืืืคืืช ืฉื ืืฉืืจืฉ) ืืืจืืื ืืืกืคืจ
.ืืื ืืขืจื ืืช ืืืืืืจื (ืฉืื
98
Shayke Bilu PhD SCE-Chapter-10-Structs
double AbsComplex(Complex mis)
{
return sqrt(mis.real * mis.real + mis.image * mis.image);
}
Complex Add(Complex mis1, Complex mis2)
{
Complex sum;
sum.real = mis1.real + mis2 .real;
sum.image = mis1.image + mis2.image;
return sum;
}
x = Add(x,y);
ab = AbsComplex(x);
!ืืขืืจื ืืคื ืขืจื
ืืืื-ืคืชืจืื 99
Shayke Bilu PhD SCE-Chapter-10-Structs
double AbsComplex(Complex mis)
{
return sqrt(mis.real *mis.real + mis.image *mis.image);
}
Complex Add(Complex mis1, Complex mis2)
{
Complex sum;
sum.real = mis1.real + mis2 .real;
sum.image = mis1.image + mis2.image;
return sum;
}
ืฉืืืืฉ ืืืฉืชื ืื โืคืชืจืื 100
Shayke Bilu PhD SCE-Chapter-10-Structs
double AbsComplex(Complex* pa)
{
return sqrt(pa->real*pa->real +pa->image*pa->image);
}
Complex Add(Complex *pmis1, Complex *pmis2)
{
Complex sum;
sum.real = pmis1->real + pmis2->real;
sum.image = pmis1->image + pmis2->image;
return sum;
}
ืฉืืืืฉ ืืืฆืืืขืื โืคืชืจืื 101
ืกืืืื -ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืฉืชื ืื ืืืคืืกื ืืืืืืจ ืืืชืื ืช ืืืคืฉืจ ืืื ืืืื ืื ืืืจืช
ืืชืืื ืืช ืืืชื ืืฆืืืืชืืช ืืืขืื ืกืคืฆืืคืืช ืฉืืชืืืืื ืืืฉืื
.ืืคืชืืจ ืืืืขืืช
ืืืืจืช ืืืคืฉืจ ืืืฆืืืขืื ืืขืจืืื ืขื ืืื ืืืื ืื ืืฉืืืืฉ
ืขื ืคื ืืืืื ืฉืืืช ืืขืื ื ืชืื ืื ืืื ื ืฉื ืืืจืืืื ืืขืจืืื
.ืืืื ืืืืจืืืื ืฉืื ืื ืืืคืืกืื
ืืืืื ืืืจืช typedef ืืืฉืื ืฉืืืช ืืชืช ืืืชืื ืช ืืืคืฉืจ ืืื
ืืืืืจื ืืืืฆืขืืช .ืงืืืืื ืืฉืชื ืื ืืืืคืืกื ืืฉืืขืืช ืืืขืื
ืื ืืืืชืืื ืืืืืจื ืงื ,ืืืืฉ ืืืื ื ,ืื ืชืื ืื ืืืคืก ืืืงืืฆืจืช
.ืืคื ืื struct ืืืืื ืืืืกืคืช ืฆืืจื ืืื
102
ืกืืืื -ืืื ืื
Shayke Bilu PhD SCE-Chapter-10-Structs
ืืืืฆืขืืช ืขืจืืื ืืืฉื ืืื ืฉืืืจืชื ืชืืื ืืช ืื ืืชืื ืืืืื
ืืื ืืืืืื ืืืคืืก ืื ื ืฉืืืื ื ืื ืืื a+b ืืจืืืืื ืืกืคืจืื
,ืืืื ืืจืืื ืืกืคืจ ืขืืืจ ืืืืืจ ืืืืืคืืก (double) ืืืฉื ืืกืคืจ
.ืื ืืืืจื ืืืคืฉืจ C ืืฉืคืช ืืืื ืื ืืฉืืืืฉ
ืืืืจืช ืืืืื ืช ืจืืืืื ืืืืคืืกืื ืืื ืืืื ืื ืืืฉืชืืฉ ืืคืฉืจ ืืฉืื .ืืคืื ืงืฆืื ืืขืืจื ,ืืื ื ืขื ืืฆืืืขืื ,ืืื ืื ืฉื ืืขืจื .ืืืงืืจืืื ื ืฉืืจืื ืืื ืืืขืชืงืื ืืขืจืืื ืฉืื ืฉืฉืืืช ืืืืืจ
ืขื ืืจืืืืืช ืืืืฉืืืื ืืืฉืืื ืืคืขืืืืช ืืืฉืชืืฉ ื ืืชื ืื ืคืขืืืช ืจืง) ืืฆืืจื ืืืชืื ืขืืืจื ืคืื ืงืฆืืืช ืืืืืืจ ืืฉ - ืืื ืื
.(ืืขืจืืื ืืขืชืงืช ืื ืืชืืฆืขืช ืืื ,ืืืืืจืช ืืืฉืื
103
Shayke Bilu PhD
104
ืชืจืืื ืืืชื
:ืืืื( Missile)ืืืืจืช ืืื ื ืืื ื ืชืื ื 1.
#define SIZE 20
typedef struct missile{
char model[SIZE];
int range, quantity;
float price;
}Missile;
:ืืืฉืจ ,ืืืืื ืืกืืืืช ืืืืื ืขื ืืืืข ืืชืืจ ืืืื ื
model โ ืืืื ืืื, range โ ืืงืืืืืืจืื ืืืื ืืืื, quantity โ
ืืืื ืืืื ืื ืืฆื ืืฉ ,ืืื ืืืฆืืืจ ืืกืืืื ืืฉืืืฉืื ืืืืื ืืืืช
.ืืืื ืืื ืื ืืืืจ - -priceื ืฉืื ืืช ืืืืืืืืช ืืืกื ืื ืืืื ืืื
SCE-Chapter-10-Structs
Shayke Bilu PhD
105
ืชืจืืื ืืืชื
ืชืช ืืฆืืืจืื 20 -ื ืืืืืง ืืกืืืื ืืืืืื ืืืืจ ืื ืืืืข
.ืงืจืงืขืืื
ืืืืืื ืืขืจื ืืช ืืคืจืืืจืื ืืืงืืืช ืคืื ืงืฆืื ืืืชืื ืขืืื
ืืืื ืืื ืืช ืืืฆืืื ืคืจืืืจ ืืื ืืืืื ืืืช missile ืืืืคืืก
.ืื ืืืง
.ืืื ืืื ืื ืืคื ืืื ืืชืฆืื ืืืคืืฉ ืชืืฆืข ืืคืื ืงืฆืื
ืืชืฆืื ืกืืืืื ืืืืืื ืืฆืืืจื ืฉื ืืืขืจื ืขื ืืืืกืก ืืืื
ืฉื ืืฆืื ืืืืืงืฉ ืืื ืืื ืืืืืื ืืืืช ืืช ืืืืคืืฉ ืืกืืื
.ืืื ืืืืื ืืืืช ืฉื ืืืขืืืช ืืืฆืืืจืื ืืื
.ืืกืืืื ืืืืืื ืื ืขืืืช ืืช ืชืฆืื ืืกืืืSCE-Chapter-10-Structs
Shayke Bilu PhD
106
ืชืจืืื ืืืชื
ืื ืืืืืช ืคืขืืืืช ืืงื ืื ืืืขืจืืช " ืืื ื ืืจืืืื"ืืงื ืืื 2.
ืืืืจืืื ืื ืชืื ืื ืฉื ืืืชื ืฉืืืข ืืกืืฃ ืื . ืืืืืฉืืช
. ืืืืฉื ืืืจืืื ืืฉืื ื ืืชืื ืืืกืงืช ืืืกืงื ืืชืืฉืืืข
:ืืืืืื ืืช ืื ืชืื ืื ืืืืื ืจืืืฉืืคืจืื
1-7ืืื ืืกืคืจ ืฉืื โืื ืืชืืฆืขื ืืจืืืฉื ืืฉืืืข ืืื โข
1-5ืืื ืืกืคืจ ืฉืื โืงืื ืืื ืืช โข
ืืืฉื ืืืฆืืื ืคืืืื ืืืื ืืื ืืชืืกืคืจ โืคืืืื ืืืื โข
. ืืช ืืื ื ืื ืชืื ืื ืฉืืืคืฉืจ ืืืืกื ื ืชืื ื ืจืืืฉืืชืืืืจ
SCE-Chapter-10-Structs
Shayke Bilu PhD
107
ืชืจืืื ืืืชื
:ืคืื ืงืฆืื ืืชืื
ืืื ื ืฉื DAYS x SHOPS ืืืืื ืืืืืื ืืขืจื ืืืงืืืช
ืกืืื ืื ืืฉืืืข ืืืื ืืช ืืืืคืืกื 'ื ืืกืขืืฃ ืื ืชืื ืื
.ืืืืชืจ ืืืืื ืืื ืืงื ืืื ืืื ืกืืช
.ืืืื ืืช ืชืืคืืก ืืคืื ืงืฆืื ,ืืืื ืืืื ืืกืคืจ ืืฉ ืื
ืืื ืืช ืงืื ืืช ืืืืืืจื ืืืฆืืช ,ืืืฉืืช ืืคืื ืงืฆืื
ืจืง ืฉืงืืืืช ืืื ืื ื ืืชื .ืฉืืืฃ ืืฉืืืข ืืืืชืจ ืืจืืืืืช
.ืืื ืืืช ืื ืืช
SCE-Chapter-10-Structs
Shayke Bilu PhD
108
ืชืจืืื ืืืชื
:ืืืื Car ืืื ื ืืืืจืช ื ืชืื ื3.
#define SIZE 20
typedef struct car
{
char model[SIZE];
double price;
int year;
}Car;
:ืืืฉืจ ืืืืจืืช ืืืืจืช ืืืื ืืช ืขื ืื ืชืื ืื ืืช ืืืชืืจืช
model โ ืืืื ืฉื, price โ ืืืืื ืืช ืืืืจ, year - ืืืฆืืจ ืฉื ืช.
SCE-Chapter-10-Structs
Shayke Bilu PhD
109
ืชืจืืื ืืืชื
ืื ื ืชืื ื ืืช ืืืืคืืกื ืฉืืืคืฉืช find ืืฉื ืคืื ืงืฆืื ืืืชืื ืขืืื
.ืคืืื ืฆืืืื ืืงืื ื ืืืชืืืืืช ืืืืื ืืืช
:ืืืืื ืืคืจืืืจืื ืืช ืืงืืืช ืืคืื ืงืฆืื
ืืืื ,ืืืืื ืืืช ืื ืขื ืืืืข ืฉืืืื Car ืืกืื ืืื ืื ืืขืจื
ืฉื ืช ,ืืฉืื ืืืื ืฉืืงืื ื ืืืืจืื ืืืืืจ ,ืืืงืื ืืื ืขื ืืืืืงืฉ
.ืืื ืืืืืช ืืฆืืจ
ืืืืจ ืืขื ืืืืืงืฉ ืืืื ืืช ืืืืื ืืืช ืืืขืจื ืชืืคืฉ ืืคืื ืงืฆืื
ืืฉื ืช ืฉืืื ืื ืืืืืจืช ืืฆืืจ ืืฉื ืช ืืืจืื ืืืืืจ ืฉืืื ืื ืงืื
ืฉืคืจืืืื ืืืืื ืืืช ืืกืคืจ ืืช ืชืืืืจ ืืคืื ืงืฆืื .ืืืื ืืืืืช ืืืฆืืจ
.ืืืืคืกื
SCE-Chapter-10-Structs
Shayke Bilu PhD
110
ืชืจืืื ืืืชื
:ืืืื ืืฆืืจื Film ืืืื ื ื ืชืื4.
#define SIZE 20
typedef struct film
{
char title[SIZE], director[SIZE];
int budget, year;
}Film;
:ืืืฉืจ, ืืืื ื ืืชืืจ ืืืืข ืขื ืกืจื
title โ ืืกืจืืฉื ,director โ ืืืืืืฉื ,budget โ
ืฉื ืช ืืฆืืื ืืืืจ โ year, ืืกืจืืชืงืฆืื SCE-Chapter-10-Structs
Shayke Bilu PhD
111
ืชืจืืื ืืืชื
ืกืจืืื N ืฉื ื ืชืื ืื ืฉืืืืกื N ืืืืื allFilms ืืขืจื ื ืชืื
.ืฉืื ืื
ืืืื ืื ืืขืจื ืืช ืืืงืืืช funFilm ืคืื ืงืฆืื ืืืชืื ืขืืื
allFilms ืืกืื Film ืืืืื N, ืืืืจ ืืฆืืื ืืฉื ืช ืืืืื ืฉื.
ืืขื ืชืงืฆืื ืขื ืืืืื ืืืชื ืฉื ืกืจืืื ืืฉ ืืื ืืืืงืช ืืคืื ืงืฆืื
.2005 ืืืืจ ืฉืืื ืืืืจ ืืืฆืืื ืืฉื ืช 2500000
ืืชืงืฆืื ,ืืกืจื ืฉื :ืืกืจื ื ืชืื ื ืืช ืืืคืืกื ืืคืื ืงืฆืื ,ืื ืื
.ืืืืจ ืืืฆืืื ืืฉื ืช
ืื ืืกืฃ .ืืคืื ืงืฆืื ืืชืื ืืืืขื ืืืืคืืก ืืฉ ,ืืชืืื ืื ืกืจื ืืฃ ืื
ืฉื ืกืจืืื ืชืงืฆืืื ืืืืืฆืข ืืช ืืืืคืืกื ืืืฉืืช ืืคืื ืงืฆืื ,ืืื
.ืืืชืืืืื ืืกืจืืื ืืืกืคืจ ืืช main-ื ืืืืืืจื ืืืื ืืืชืSCE-Chapter-10-Structs
Shayke Bilu PhD
112
ืชืจืืื ืืืชื
:ืืืื ืืฆืืจื Student ืืืื ื ื ืชืื5.
#define SIZE 20
typedef struct student
{
char name[SIZE], department[SIZE+10];
double grades[SIZE-10];
}Student;
:ืืืฉืจ, ืืืื ื ืืชืืจ ืืืืข ืขื ืกืืืื ื
name - ืืืืืืืชืืืื ืฉืืืืกื ืฉื ืฉื ืกืืืื ื ืืขืจื ,
department - ืืกืืืื ืืืืืืงื ืื ืืืื ืฉื ,grades -
.ืงืืจืกืื ืืืชื ืืื ืืืื 10 -ืฉืืืืกื ืืช ืฆืืื ื ืืกืืืื ื ืืืขืจื SCE-Chapter-10-Structs
Shayke Bilu PhD
113
ืชืจืืื ืืืชื
N ืืืืื ืืขืจื ืฉืืงืืืช average ืคืื ืงืฆืื ืืืชืื ืขืืื
ืืืฉืืืืช ืืช ืืืืฆืขืช ืืืืืื ืกืืืื ืืื N ืฉื ื ืชืื ืื ืฉืืืืกื
:ืืืืืช
ืืืืืงื ืืืืืืื ืืืกืืืื ืืื ืืื ืื ืฉื ืืืืืฆืข ืืช ืชืืฉื
"Mechanical Eng" ืฉืื ืืืืืืฆืข ืืกืืืื ื ืฉื ืืช ืืชืืคืืก
.ืื ืืืืืงื ืืืืืืื ืืกืืืื ืืื ืืกืคืจ ืืช ืืื ืืืืืจ
".Mechanical Eng" ืืืืืงื ืืกืืืื ืืื ืฉืืืช ืืช ืชืืคืืก
.ืฉืืื ืืืืืฆืขืื ืืืช ืืืืชืจ ืืื ืืื ืืืืชืจ ืืืืื ืืืืฆืข ืืขืื
ืืงืืจืก ืืืืืื ืืกืืืื ืืื ืืื ืฉื ืืืืืฆืข ืืช ืืชืืคืืก ืชืืฉื
ืืืขืจื (1 ืืื ืืงืก ืืขื) ืืฉื ื ืืืงืื ืจืฉืื ืืงืืจืก ืฆืืื .ื"ืืื
.ืืฆืืื ืื
SCE-Chapter-10-Structs
Shayke Bilu PhD
114
ืชืจืืื ืืืชื
:ืืืื (Book) ืืกืคืจืืื ืกืคืจ ืืื ื ืืืืจืช ื ืชืื ื6.
#define SIZE 20
typedef struct book
{
char name[30], author[20];
int copies, year;
}Book;
:ืืืฉืจ, ืืชืืจ ืืืืข ืขื ืกืคืจืื ืืกืคืจืืืช ืืฉืืื ืืืืื ื
name โ ืืกืคืจืฉื ,author โ ืืกืืคืจืฉื ,copies โ ืืกืคืจ
ืฉื ืช ืืืฆืืช ืืกืคืจ โ year, ืืกืคืจืืืืืขืืชืงืื ืฉื ืืกืคืจ SCE-Chapter-10-Structs
Shayke Bilu PhD
115
ืชืจืืื ืืืชื
ืืช ืืืืื 1000 ืืืืื ืืืขืจื ืจืฉืืืื ืืกืคืจืืื ืืกืคืจืื ืคืจืื ืื
ืืกืคืจ ืืช ืืกืื ืืืขืจื ืืชื ืืกืคืจ ืืืฉืจ ,ืืกืคืจืื ืืกืคืจืื ืืืืจ
.ืืกืืื ืกืคืจ ืฉื ืขืืชืงืื ืืื ืืื ืื ืืืืฃ
ืืืจืืืื ื ืืืงืืืช ,checkBook ืืฉื ืคืื ืงืฆืื ืืืชืื ืขืืื
ืืกืคืจ ืฉื ืืืช ืืืขืจื ืืืื ืืช ,Book ืืืืคืืก ืืื ืื ืฉื ืืขืจื
ืืืืจ ืืช ืกืืจืงืช ืืคืื ืงืฆืื .ืืกืคืจืืื ืืงืื ืืื ืขื ืืืืืงืฉ
.ืืืืืงืฉ ืืกืคืจ ืืืคืืฉ ืืืจื ืืืขืจื ืืงืืื ืืกืคืจืื
ืืกืคืจ ,ืืกืคืจ ืืงืื ืืช ืืืืืจื ืืคืื ืงืฆืื ืืกืคืจืืื ืืฆืื ืืกืคืจ ืื
ืืืขืจื ืืืืืงืฉ ืืกืคืจ ืฉื ืืืื ืืงืก ืืกืคืจ ืื ืฉืืื ืืืืฃ
ืื .ืืกืคืจืืื ืืงืืืืื ืืกืคืจ ืฉื ืืขืืชืงืื ืืกืคืจ ืืช ืืืืคืืกื
.โ1 ืืืืืจื ืืคืื ืงืฆืื ืืกืคืจืืื ืงืืื ืืื ื ืืกืคืจSCE-Chapter-10-Structs
Shayke Bilu PhD
116
ืชืจืืื ืืืชื
ืืืืืื ืฉืื ืื ืืืืืืื ืืืืื N ืจืฉืืืื ืฉืืื ืชื ืก"ืืืชื 7.
:ืืื ืืืื ื ื"ืข ืืืืืจืช ืืืช ืจืฉืืื .ืฆืืจืืื ืฉืืืืจ
#define SIZE 20
typedef struct person
{
char firstName[SIZE/2], lastName[SIZE];
int ageMon, ageYear;
}Person;
ืฉื ืืฉื ืืฉืคืื โ lastName -ื firstName :ืฉืืืช ืืืื ื
ืฉื ืื ืืืกืคืจ : ืืื ืฉื ืืื โ ageMon -ื ageYear -ื ืืืืืฉื
.ืืืืฉืืSCE-Chapter-10-Structs
Shayke Bilu PhD
117
ืชืจืืื ืืืชื
.ืก"ืืืชื ืืืืื N ืจืฉืืืช ืฉืืงืืืช ืคืื ืงืฆืื ืืืชืื ืขืืื
ืฉืืืคืืข ืืืืชืจ ืืฆืขืืจ ืืืื ืฉื ืืืื ืืช ืชืืคืืก ืืคืื ืงืฆืื
;(ืืืืฉืื ืืืกืคืจ ืื ืืืชืืฉื ืืฉ) .ืืจืฉืืื
ืก"ืฉืืืชื ืืืืืื ืฉื ืืืืืฆืข ืืืื ืืช ืืชืืคืืก ืชืืฉื ืืคืื ืงืฆืื
;(ืืืืฉืื ืืืกืคืจ ืื ืืืชืืฉื ืืฉ)
ืืืืื ืฉืืืื ืืืืืื ืฉื ืื ืชืื ืื ืื ืืช ืืชืืคืืก ืชืืฉื ืืคืื ืงืฆืื
ืืืกืคืจ ืื ืืืชืืฉื ืืฉ) ืืกืคืจื ืืช ืืชืืืืจ 12 -ื 10 ืืื
.(ืืืืฉืื
.ืื ืขื ืืืืขื ืืืคืืกื ืืคืื ืงืฆืื ืืื ืืืืืืื ืืืืื ืืื ืื
SCE-Chapter-10-Structs
Shayke Bilu PhD
118
ืชืจืืื ืืืชื
ืืืืืฉื ืืฉืืืืข ืฉืืืฉืจื ืื ืืืื ืืฉืจื ืฉืืืืืื ืชืืื ืืชืืชืื 8.
:ืืงืืืืช ืืืืืืช ืืช ืืคืจืืื ืืืืื ืืื ืืงืืืืจืืกืช ืงืืืืช
ืืืฆืื ืื ืืฉ ืืงืื ืืืฉ ืืืฉืจ ืืืืข . ืืื ืืชืืื ืืชืขื ืืื ืืช, ืืื, ืฉื
:ืคืจืืฉืืื ืืื ืืชืืื , ืืืืจืืื ื ืืื ืืชืืืืื ืืืื ืืงืืืืช
ืื ืืืื ืืฉื ื ืืืงืื ืืืืฉโข
ืฉื ืื 10ืืคืจืฉ ืืืืืื ืืื ื ืืืื ืืืงืื ืืืืฉ ืื ืขืืื ืขื โข
.ืืฉ ืื ืชืืื ืืชืขื ืืื ืืช ืืฉืืชืฃ ืขื ืืืงืื ืืืืฉโข
ืฆืจืืื ืืงืืื ืืช ืื ืชืื ืื ืฉื ืื ืืืงืืืืช ืืฉื ืืืงืื ืืชืืื ืืช
ืืืงืื ืืืืฉ ืื ืืืื ืืืชืืืืื ืืืืฉ ืืืืืคืืก ืจืฉืืื ืฉื ืื ื
.ืืืืฉืืืืขื ืืชืืืื ืืืงืจื ืฉืืื ืืฃ ืืื ืืชืืื ืืืงืื
SCE-Chapter-10-Structs
Shayke Bilu PhD
119
ืชืจืืื ืืืชื
:ืืืื( Apartment)ืืืืจืช ืืื ื ืืืจื ื ืชืื ื 9.
#define SIZE 30
typedef struct apartment
{
char address[SIZE];
float rooms;
double price;
}Apartment;
:ืืืฉืจ, ืืืชืืจืช ืืืืข ืขื ืืืจื ืืืืืจื ืืืฉืจื ืชืืืื
address โ ืืืืืจืืืืชืืืช ืฉื ืืืืจื ,rooms โ ืืกืคืจ
ืืืืจ ืืืืจื โ price, ืืืืจืืืืืจืื SCE-Chapter-10-Structs
Shayke Bilu PhD
120
ืชืจืืื ืืืชื
ืืกืื ืืื ืื ืฉื ืืขืจื ืืคืจืืืจืื ืืืงืืืช ืคืื ืงืฆืื ืืืชืื ืขืืื
apart ืืืขืจื ืืืื ืืืช.
ืืจืฆืื ืืืืจืื ืืกืคืจ ืืช ืืคืจืืืจืื ืืงืืืช ืืคืื ืงืฆืื ,ืื ืืื
.ืืฉืื ืืืื ืฉืืงืื ื ืืืงืกืืืื ืืืืืจ ืืืช ืืงืื ื
ืืื ื ืฉืืืืจื ืืืืจืืช ืื ืขื ืืงืืื ืืืืืข ืื ืืช ืืืคืืกื ืืคืื ืงืฆืื
.ืืืืืงืฉ ืืื ืืืจืืื ืืฉืืกืคืจ ืืืงืกืืืื ืืืืืจ ืขื ืขืืื
,ืื ืืจืฉืื ืืงืจืืืจืืื ืื ืขื ืืขืื ืืช ืืืจืืช ืืืืืจ ื ืืฆืื ืืื ืืืืื
.ืืชืืืื ืืืืขื ืชืืืคืก
.ืืืืคืกื ืฉืคืจืืืื ืืืืจืืช ืืกืคืจ ืืื ืืืืืืจ ืืขืจื
SCE-Chapter-10-Structs
Shayke Bilu PhD
121
ืชืจืืื ืืืชื
ืืืืืื ืืืืฉื ืืช ื ืชืื ื ืืจืืคืืื " ืืคืืขื"ืืืืื ืืงืืคืช 10.
. ืืืคืฆืืื ืืื
:ืฉืืืงืื ืืืืืจื ืฉื ื ืืืื ืื ืืืืืืืืขืจืืช
ืจืืคื
(ืกืคืจืืช 8ืืกืคืจ ืฉืื ืขื )ืจืืคื ืจืฉืืืืืกืคืจ -
(ืชืืืื 50ืืืจืืืช ืขื )ืฉื ืจืืคื -
(ืชืืืื 50ืืืจืืืช ืขื )ืืชืืืืช -
(ืืกืคืจ ืฉืื)ืืืชืง -
SCE-Chapter-10-Structs
Shayke Bilu PhD
122
ืชืจืืื ืืืชื
ืคืฆืืื ื
(ืกืคืจืืช 9ืืกืคืจ ืฉืื ืขื , ืชืขืืืช ืืืืช)ืืกืคืจ ืืืืื -
(ืชืืืื 50ืืืจืืืช ืขื )ืฉื ืืื -
ืืขืจื ืฉื ืืกืคืจืื )ืจืฉืืืช ืืจืืคืืื ืืฆืื ืืืงืจ ืืฉื ื ืืืืจืื ื -
(ืฉื ืืจืืคืืื ืืฆืื ืืืงืจ ืืจืฉืืืืฉืื ืืกืคืจื , ืฉืืืื
ืืืืฆื , ืืกืคืจ ืฉืื)ืืกืคืจ ืืืืงืืจืื ืืฆื ืจืืคืืื ืืฉื ื ืืืืจืื ื -
(ื"ืื ืืช ืืืจื ืืืขืจื ืื
: ืืืขืจืืช ืืืืืจื ืฉื ื ืืขืจืืื ืืืืืืืื
ื ืชืื ื 3000ืืืืฆืื ื ืชืื ื ืืจืืคืืื ืืืขืจื ืฉื 50ืืืืจื ืืขืจื
. ืืคืฆืืื ืืื
.ืืื ืื ืื ืืืขืจืืื ืืืืื ืื ืชืื ืืื ืืชื
SCE-Chapter-10-Structs
Shayke Bilu PhD
123
ืชืจืืื ืืืชื
:ืืืืืช ืืืฉืืืืช ืืช ืืืฆืข ืืฉ
.ื"ืื ืื ืชืื ืื ืืื ื ืืช ืืืืืืจโข
ืืขื ืืจืืคื ืฉื ืืจืืฉืื ืืกืคืจ ืืช ืืืืืืจื ืคืื ืงืฆืื ืืืชืื ืืฉโข
.ืืื ืืื ืืืืืง ืฉืงืืื ืื ื .ืืืงืกืืืื ืืืืชืง
ืืื ืืืงืจื ืฉืืฆืื ืืจืืคื ืฉื ืืช ืืืืคืืกื ืคืื ืงืฆืื ืืืชืื ืืฉโข
.ืืืืจืื ื ืืฉื ื ืคืฆืืื ืืื ืืจืื
ืืช ืืืคืก ,ืืืงืจืื ืฉื ืืืืช ืืืชื ืฉืืื ืจืืคืืื ืืกืคืจ ืืฉ ืืโข
.ืืืื ืฉืืืช
SCE-Chapter-10-Structs