123
Shayke Bilu PhD SCE-Chapter-10-Structs ืคืจืง10 ืžื‘ื ื™ ื ืชื•ื ื™ื- ืžื‘ื ื™ืStrut's ื“" ืจ ืฉื™ื™ืงื” ื‘ื™ืœื• ื™ื•ืขืฅ ื•ืžืจืฆื” ื‘ื›ื™ืจ ืœืžื“ืขื™ ื”ืžื—ืฉื‘ ื•ื˜ื›ื ื•ืœื•ื’ื™ืช ืžื™ื“ืข ืžื•ืžื—ื” ืœืžืขืจื›ื•ืช ืžื™ื“ืข ื—ื™ื ื•ื›ื™ื•ืช, ืืงื“ืžื™ื•ืช ื•ืžื ื”ืœื™ื•ืช ืงื•ืจืก ื™ืกื•ื“ื•ืช ื”ืชื›ื ื•ืช ื‘ืฉืคืชC 1

C Programming chapter 10

  • 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

SCE-Chapter-10-Structs Shayke Bilu PhD

?ื”ืงื•ื“ื ื”ืฉืขื•ืจืฉืืœื•ืช ืขืœ

16

ื ื•ืฉืื™ ื”ืคืจืง ืžื‘ื ื™ื

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

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

29

ืคืขื•ืœื•ืช ืขืœ ืžื‘ื ื™ื

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

?ืžื” ืขื•ืฉื” ื”ืชื•ื›ื ื™ืช ื”ื‘ืื” โ€“ื“ื•ื’ืžื ืœืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ื

SCE-Chapter-10-Structs Shayke Bilu PhD

37

?ืฉืืœื•ืช

ืคื•ื ืงืฆื™ื•ืช ื•ืžื‘ื ื™ื

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

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

48

ืžื‘ื ื™ื ื•ืžืฆื‘ื™ืขื™ื

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

SCE-Chapter-10-Structs Shayke Bilu PhD

61

?ืฉืืœื•ืช

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

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

65

ืžื‘ื ื” ื‘ืชื•ืš ืžื‘ื ื”

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

SCE-Chapter-10-Structs Shayke Bilu PhD

69

?ืฉืืœื•ืช

ืžืขืจืš ืฉืœ ืžื‘ื ื™ื

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

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

77

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:

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

85

ืกื™ื›ื•ื

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;

}

SCE-Chapter-10-Structs Shayke Bilu PhD

?ืฉืืœื•ืช

94

ืขื•ื“ ื“ื•ื’ืžื โ€“ืžื‘ื ื™ื

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