More Related Content More from Tuguldurbayar Gantogoo More from Tuguldurbayar Gantogoo (12) Lecture 122. Õè÷ýýëèéí Àãóóëãà
Òºðºëò çààã÷
Òºðºëò áèø çààã÷
Õºðâ¿¿ëýëò õèéõ
Ôóíêö ðóó õàÿãààð äàìæóóëàõ
Ôóíêöûí çààã÷
Çààã÷ áà ìàññèâ
[ ] ¿éëäýë
2
3. Çààã÷ äýýðõ ¿éëäë¿¿ä 3
Äàðààõ ¿éëäë¿¿äèéã çààã÷èä çºâøººðäºãã¿é.
Õî¸ð çààã÷èéã íýìýõ
ßëãààòàé îáüåêò äýýðõ 2 çààã÷èéã õàñàõ
Áîäèò òîîòîé çààã÷èéã íýìýõ
Çààã÷èéã ¿ðæ¿¿ëýõ
Çààã÷èéã õóâààõ
Çààã÷èéã øèëæ¿¿ëýõ ¿éëäýë
4. Òºðºëò çààã÷
4
Òºðºëò çààã÷èéã àøèãëàí ººð òºðºëòýé
îáüåêòîä õàíäàæ áîëíî.
#include <stdio.h>
main()
{ char c[10]=”ababababab”;
int i, *p1=c;
for(i=0;i<5;i++)
printf(“%c ”,*p1++);
}
¯ð ä¿í:
a a a a a
charòºðëèéí îáüåêò
int òºðëèéí çààã÷
int òºðëèéí õýìæýýãýýð íýìýãäýõ
6. Òºðºëò áèø çààã÷
• Òºðºë íü òîäîðõîéëîãäîîã¿é çààã÷èéã òºðºëò áèø çààã÷
ãýíý.
• Èéì çààã÷èéã àøèãëàí á¿õ òºðëèéí îáüåêòîä õàíäàõ
áîëîìæòîé.
• Òºðºëò áèø çààã÷èéã çàðëàõäàà void ò¿ëõ¿¿ð ¿ãèéã
àøèãëàäàã.
6
7. Æèøýý
#include <stdio.h>
int x=567; double y=56.23;
main()
{ void *p;
p=&x;
printf(“x=%d n”,*(int *)p);
p=&y;
printf(“y=%lf n”,*(double *)p);
}
7
Òºðºëò áèø çààã÷
int òºðëèéí îáüåêòûã çààëãàõ
double òºðëèéíîáüåêò çààëãàõ
8. Òºðºëò áèø çààã÷
• Òºðºëò áèø çààã÷èéíçààæ áóé îáüåêòîäõàíäàõäààçààâàëõºðâ¿¿ëýëò õèéæ
ºãíº.
• Õºðâ¿¿ëýëò õèéõ ¿éëäýë íü åðäèéí õóâüñàã÷ äýýð õèéäýã ¿éëäýëòýé
òºñòýé.
• int i; float f;
f=(float)i/2;
• Çààã÷îáüåêò äýýð õºðâ¿¿ëýëò õèéõäýý äàðààõõºðâ¿¿ëýëò õèéõäýý
äàðààõáè÷ëýã àøèãëàíà.
• Áè÷ëýã : (Òºðºë*)
8
Åðäèéí îáüåêòäýýðõºðâ¿¿ëýëòõèéõ
9. Õºðâ¿¿ëýëò õèéõ
Äýýðõ áè÷ëýãèéã àøèãëàí òºðºëò áèø p çààã÷ äýýð
õºðâ¿¿ëýëò õèéâýë :
• int òºðëèéí çààã÷ áîëãîõ
(int *)p
• int òºðëèéí çààã÷ áàéäëààð õàíäàæ óòãûã óíøèõ
*(int *)p
• double òºðëèéí çààã÷ áàéäëààð õàíäàæ óíøèõ
*(double *)p
9
11. Ôóíêö ðóó õàÿãààð äàìæóóëàõ
• Æèøýý : 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]);
}
11
12. Ôóíêöèéí çààã÷
• Ñè õýëýíä ôóíêöèéã äóóäàõ 2 àðãà áàéäàã.
• Øóóä äóóäàõ
• Øóóä áóñ äóóäàõ
• Áèä ºìíº íü ôóíêöèéã øóóä äóóäàæ áàéñàí . ª.õ
øóóä íýðýýð íü õàíäàæ äóóäíà.
int Sum(int x,int y) { . . . }
main()
{ Sum(5,6); /* Øóóä íýðýýð íü äóóäàõ */
}
12
13. Ôóíêöûí çààã÷
• Ôóíêöèéã øóóä áóñààð äóóäàõäàà ôóíêöèéí çààã÷
ãýæ íýðëýãäýõ çààã÷ õóâüñàã÷èéã àøèãëàäàã.
• Ôóíêöèéí çààã÷èéã çàðëàõ :
<Áóöààõ òºðºë> (*<ÔóíêöèéíÍýð>)(<Òºðºë>, ..);
• Øóóä áóñààð äóóäàõ ãýæ áàéãàà ôóíêöûí çàðëàëò
ÿìàð áàéíà, ÿã òèéì áàéäëààð çàðëàäàã.
13
14. Ôóíêöûí çààã÷
• /* int ºãºãäºë áóöààäàã, àðãóìåíòã¿é ôóíêöèéã
äóóäàõàä àøèãëàõ ôóíêöèéí çààã÷ */
• int (*func)();
• Óòãà îëãîõäîî :
• <Ôóíêöèéí çààã÷>=&<Ôóíêö>;
• Àæèëëóóëàõäàà áóþó äóóäàõäàà :
• <Ôóíêöèéí çààã÷>( [àðãóìåíòóóä] );
14
15. Ôóíêöûí çààã÷
• Æèøýý : 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 */
}
15
Çàðëàõ
Óòãà îëãîõ áóþó çààëãàõ
Ôóíêö äóóäàõ
16. Çààã÷ áà ìàññèâ
• Ìàññèâûí ýõíèé ýëåìåíòèéí õàÿã íü ìàññèâûí íýð
áàéäàã.
• Íýã õýìæýýñò ìàññèâ ñàíàõ îéä äàðààëæ
áàéðëàäàã.
À Ìàññèâûí 0-ð ýëåìåíòèéí õàÿã áóþó &À[0]
A+1 1-ð ýëåìåíòèéí õàÿã áóþó &A[1]
A+2 2-ð ýëåìåíòèéí õàÿã áóþó &A[2]
A+3 3-ð ýëåìåíòèéí õàÿã áóþó &A[3]
. . .
A+i i-ð ýëåìåíòèéí õàÿã áóþó &A[i]
16
17. Çààã÷ áà ìàññèâ
17
Ýíäýýñ ìàññèâûí ýëåìåíòýä õàíäàõäàà äàðààõ 2 àðãààð õàíäàæ
áîëîõ íü õàðàãäàæ áàéíà.
A[i]=10; ýñâýë *(A+i)
A[50] Ìàññèâûã õýâëýâýë :
for(i=0; i<50; i++) printf(“%d n”, *(A+i));
À ìàññèâûí ýõëýëèéí õàÿãààñ ýõëýí i-ð
ýëåìåíòèéã óíøèõ
19. Çààã÷ áà ìàññèâ
• Ýíý á¿õíýýñ ä¿ãíýæ¿çâýë ìàññèâûí íýð áîë çààã÷ õóâüñàã÷áîëæ áàéíà.
• Áèä 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] ¿éëäë¿¿ä èæèë ¿ð ä¿íòýé.
19
20. Æèøýý : [ ] ¿éëäýë
#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 */
20