More Related Content
More from Tuguldurbayar Gantogoo
More from Tuguldurbayar Gantogoo (13)
Lecture 13
- 3. Á¿òýö òºðºë áà çààã÷
3
Á¿òýö òºðëèéí çààã÷ çàðëàõ :
struct <Á¿òöèéí íýð> *<Çààã÷èéíÍýð>);
Á¿òýö òºðëèéí çààã÷ îáüåêòûí ãèø¿¿í
ýëåìåíòýä õàíäàõ
Á¿òöèéí íýð -> Ãèø¿¿íÕóâüñàã÷;
- 4. Æèøýý 4
#include<stdio.h>
struct Student {
char Name[20];
int grade;
}SW;
struct Student *p=&SW;
main()
{ scanf("%s",p->Name); scanf("%d",&p->grade);
printf("n Name =%s ",p->Name);
printf(" Grade =%d n",p->grade);
}
Á¿òýö òºðëèéí çààã÷
çàðëàõ
Ãèø¿¿í ýëåìåíòýä íü
õàíäàõ
- 5. Á¿òýö òºðºë áà çààã÷
Á¿òýö òºðëèéí ãèø¿¿í ýëåìåíòýä ìºí äàðààõ
àðãààð õàíäàæ áîëíî.
(*Á¿òöèéí íýð) . Ãèø¿¿íÕóâüñàã÷;
Æèøýý :
main()
{ scanf("%s",(*p).Name); scanf("%d",&(*p).grade);
printf("n Name =%s ",(*p).Name);
printf(" Grade =%d n",(*p).grade);
}
5
- 6. -> ¿éëäýë
Ýíý ¿éëäýë íü ( ) ¿éëäëýýñ áàãà çýðýãëýëòýé , õàðèí óíàð
¿éëäë¿¿äýýñ ºíäºð çýðýãëýëòýé ¿éëäýë þì. Èéìä :
++p->Age èëýðõèéëëèéí õóâüä p çààã÷èéí óòãà áèø, Age
õóâüñàã÷èéí óòãà ººð÷ëºãäºíº.
Õàðèí (++p)->Age èëýðõèéëëèéí õóâüä p çààã÷èéí óòãà íýìýãäýíý.
6
- 7. Æèøýý
#include <stdio.h>
struct Instit {
char *depart; int Total;
char *depart1; int Total1;
}stand = {“Ïðîãðàìì õàíãàìæ”, 23400,
“Òåõíèê õàíãàìæ”, 4500 };
int Sum(dep_num)
struct Instit *dep_num;
{ return (dep_num->Total + dep_num->Total1); }
main()
{ printf(“Total: %d”,Sum(&stand)); }
7
- 8. Îëîí õýìæýýñò ìàññèâ áà
çààã÷
Ñè õýëýíä 2 õýìæýýñò ìàññèâûã íýã
õýìæýýñò ìàññèâóóäûí ìàññèâ áàéäëààð
ä¿ðñýëäýã. Òèéìýýñ ìàññèâò çààã÷ àøèãëàí
õàíäàõäàà äàðààõ áàéäëààð õàíääàã.
*(A+i) áîë i-ð ìºðèéí ýõíèé ýëåìåíòèéí
õàÿã
*(A+i)+j áîë i-ð ìºðèéí j-ð ýëåìåíòèéí õàÿã
*(*(A+i)+j) áîë i-ð ìºðèéí j-ð ýëåìåíòèéí
óòãà
8
- 9. Îëîí õýìæýýñò ìàññèâ áà
çààã÷
ªºðººð õýëáýë äàðààõ áè÷ëýã¿¿ä àäèë ÷àíàðòàé .
&A[i][j] == *(A+i)+j
A[i][j] == *(*(A+i)+j)
A[i] == &A[i][0]
A[i][0] == *A[i]
A[i][j] == *(A[i] + j)
9
- 10. Îëîí õýìæýýñò ìàññèâ áà
çààã÷
Æèøýý : 2 õýìæýýñò ìàññèâûã õýâëýõ
for(i=0;i<10;i++)
{ for(j=0;j<10;j++) printf(“%d ”, *(*(A+i)+j));
printf(“n”);
}
Æèøýý : 2 õýìæýýñò ìàññèâò óòãà îëãîõ
for(i=0,k=0; i<10; i++)
for(j=0; j<10; j++) *(*(A+i)+j)=k++;
10
- 11. Çààã÷èéí çààã÷
Çààã÷èéã çààõ õóâüñàã÷èéã çààã÷èéí çààã÷ ãýíý. ªºðººð õýëáýë çààã÷
îáüåêòûã çààäàã õóâüñàã÷ þì.
Èéì õýëáýðèéí çààã÷èéã îëîí õýìæýýñò ìàññèâ áà ìºð òýìäýãòèéí
õóâüä õýðýãëýõýä òîõèðîìæòîé áàéäàã.
11
- 12. Õºðâ¿¿ëýëò õèéõ
Äýýðõ áè÷ëýãèéã àøèãëàí òºðºëò áèø p çààã÷ äýýð
õºðâ¿¿ëýëò õèéâýë :
int òºðëèéí çààã÷ áîëãîõ
(int *)p
int òºðëèéí çààã÷ áàéäëààð õàíäàæ óòãûã óíøèõ
*(int *)p
double òºðëèéí çààã÷ áàéäëààð õàíäàæ óíøèõ
*(double *)p
12
- 13. Æèøýý
#include <stdio.h>
char c[12]="ababababab"; int i=10;
void *p1=(void *)c;
main()
{ for(i=0;i<3;i++)
{ printf("%c ",*(char *)(p1));
(long *)p1=(long *)p1+1; /* ((long *)p1) ++ */
}
}
/* ¯ð ä¿í íü : a a a */
13
char òºðëèéí çààã÷
áàéäëààð õàíäàõ
long òºðëèéí çààã÷ààð
õàíäàæ çààã÷èéã
øèëæ¿¿ëýõ
- 14. Ôóíêö ðóó õàÿãààð äàìæóóëàõ
Æèøýý : A[N] ìàññèâûí MAX ýëåìåíòèéã ìàññèâûí
òºãñãºëä àâàà÷.
#include<stdio.h>
Swap(int *p1, int *p2)
{ int tmp; tmp=*p1; *p1=*p2; *p2=tmp; }
main()
{ int A[10]={4,2,5,1,3,1,3,6,2,1}, n=10, i;
for(i=0;i<n-1;i++) if(A[i]>A[i+1])
Swap(&A[i], &A[i+1]); printf(“MAX=%d”,A[n-1]);
}
14
- 15. Ôóíêöèéí çààã÷
Ñè õýëýíä ôóíêöèéã äóóäàõ 2 àðãà áàéäàã.
Øóóä äóóäàõ
Øóóä áóñ äóóäàõ
Áèä ºìíº íü ôóíêöèéã øóóä äóóäàæ áàéñàí . ª.õ
øóóä íýðýýð íü õàíäàæ äóóäíà.
int Sum(int x,int y) { . . . }
main()
{ Sum(5,6); /* Øóóä íýðýýð íü äóóäàõ */
}
15
- 16. Ôóíêöûí çààã÷
Ôóíêöèéã øóóä áóñààð äóóäàõäàà ôóíêöèéí
çààã÷
ãýæ íýðëýãäýõ çààã÷ õóâüñàã÷èéã àøèãëàäàã.
Ôóíêöèéí çààã÷èéã çàðëàõ :
<Áóöààõ òºðºë> (*<ÔóíêöèéíÍýð>)(<Òºðºë>, ..);
Øóóä áóñààð äóóäàõ ãýæ áàéãàà ôóíêöûí
çàðëàëò ÿìàð áàéíà, ÿã òèéì áàéäëààð
çàðëàäàã.
16
- 17. Ôóíêöûí çààã÷
/* int ºãºãäºë áóöààäàã, àðãóìåíòã¿é ôóíêöèéã
äóóäàõàä àøèãëàõ ôóíêöèéí çààã÷ */
int (*func)();
Óòãà îëãîõäîî :
<Ôóíêöèéí çààã÷>=&<Ôóíêö>;
Àæèëëóóëàõäàà áóþó äóóäàõäàà :
<Ôóíêöèéí çààã÷>( [àðãóìåíòóóä] );
17
- 18. Ôóíêöûí çààã÷
Æèøýý : 2 òîîíû íèéëáýð îëîõ
#include<stdio.h>
int Sum(int a,int b)
{ return (a+b); }
main()
{ int (*func)(int,int);
func=∑
printf("%d", func(5,3)); /* 8 */
}
18
Çàðëàõ
Óòãà îëãîõ áóþó
çààëãàõ
Ôóíêö äóóäàõ
- 19. Çààã÷ áà ìàññèâ
Ìàññèâûí ýõíèé ýëåìåíòèéí õàÿã íü ìàññèâûí íýð
áàéäàã.
Íýã õýìæýýñò ìàññèâ ñàíàõ îéä äàðààëæ áàéðëàäàã.
À Ìàññèâûí 0-ð ýëåìåíòèéí õàÿã áóþó &À[0]
A+1 1-ð ýëåìåíòèéí õàÿã áóþó &A[1]
A+2 2-ð ýëåìåíòèéí õàÿã áóþó &A[2]
A+3 3-ð ýëåìåíòèéí õàÿã áóþó &A[3]
. . .
A+i i-ð ýëåìåíòèéí õàÿã áóþó &A[i]
19
- 20. Çààã÷ áà ìàññèâ 20
Ýíäýýñ ìàññèâûí ýëåìåíòýä õàíäàõäàà
äàðààõ 2 àðãààð õàíäàæ áîëîõ íü õàðàãäàæ
áàéíà.
A[i]=10; ýñâýë *(A+i)
A[50] Ìàññèâûã õýâëýâýë :
for(i=0; i<50; i++) printf(“%d n”, *(A+i));
À ìàññèâûí ýõëýëèéí
õàÿãààñ ýõëýí i-ð
ýëåìåíòèéã óíøèõ
- 22. Çààã÷ áà ìàññèâ
Ýíý á¿õíýýñ ä¿ãíýæ ¿çâýë ìàññèâûí íýð áîë
çààã÷ õóâüñàã÷ áîëæ áàéíà.
Áèä a[i] ìàññèâûí ýëåìåíòýä èíãýæ õàíääàã.
Òýãâýë [ ] ¿éëäýë ìààíü à õàÿãààñ ýõëýí i -ð
øèëæèëòýä áóé îáüåêòûí óòãûã àâäàã ¿éëäýë
áîëæ áàéíà.
int i=259; char *p=&i;
printf(" p[0] = %d ",p[0]); /* 3 */
printf(" p[1] = %d ",p[1]); /* 1 */
ª.õýëáýë *(p+1) = p[i] ¿éëäë¿¿ä èæèë ¿ð
ä¿íòýé.
22
- 23. Æèøýý : [ ] ¿éëäýë
#include <stdio.h>
char c[12]="ababababab"; int i=10;
void *p1=(void *)c;
main()
{ clrscr();
for(i=0; i<12; i+=2)
printf("%c ",((char *)p1)[i]);
} /* ¯ð ä¿í íü : a a a a a */
23