Lecture 7
- 3. Õýðýãëýã÷èéí ôóíêö
3
Ôóíêö íü ïðîãðàììä îëîí äàâòàí õèéãäýõ
¿éëäë¿¿äèéã áàãàñãàæ, ¿éëäë¿¿äèéã á¿ëýãëýæ ºãäºã.
Ôóíêö òîäîðõîéëîõ áè÷ëýã :
<áóöààõ óòãûí òºðºë> <ÔóíêöÍýð>(<Àðãóìåíòóóä>)
<Àðãóìåíòóóäûí çàðëàëò>
{ <Ëîêàëü õóâüñàã÷äûã çàðëàõ>;
<Ôóíêöûí ¿íäñýí áèå áóþó Êîìàíäóóä >;
. . .
return (áóöààõ óòãà);
}
- 4. Õýðýãëýã÷èéí ôóíêö
4
Õýðýâ ôóíêö óòãà áóöààõ øààðäëàãàòàé áîë ôóíêöûí
íýðèéí ºìíº òóõàéí ôóíêöýýñ áóöààõ óòãûí òºðëèéã áè÷èæ
ºãíº.
Õýðýâ ôóíêö óòãà áóöààäàãã¿é áîë ò¿¿íèé íýðèéí ºìíº
íü void ò¿ëõ¿¿ð ¿ãèéã áè÷èæ ºãíº ýñâýë åðººñºº ò¿ëõ¿¿ð
¿ã áè÷èõã¿é байж болно.
Õýðýâ ôóíêö ðóó àëèâàà óòãà äàìæäàã áîë ò¿¿íèéã
õ¿ëýýæ àâàõ õóâüñàã÷äûã àðãóìåíòóóä ãýæ íýðëýäýã áà
õóâüñàã÷äûã ôóíêöûí íýðèéí àðä ( ) õààëòàíä төрлийг нь
тодорхойлж òàñëàëààð çààãëàí áè÷èæ ºãíº.
- 5. Õýðýãëýã÷èéí ôóíêö
Õýðýâ ôóíêö óòãà õ¿ëýýí àâäàãã¿é áîë
( ) õààëòàíä þó ÷ áè÷èõã¿é. Хэрэв
функц дотор хувьсагч хэрэглэх
болбол функцийн эхэнд зарлаж өгнө
Функц дотор зарласан хувьсагч нь
тухайн функцийн бие буюу блок
дотроо л хүчинтэй гэдгийг
анхаараарай
Ôóíêöûí áèåèéã { } õààëòàíä áè÷íý.
5
- 6. Õýðýãëýã÷èéí ôóíêö
6
int Max(int a,int b)
{
int k;
k=(a>b) ? a : b;
printf( “Max= %d ”, k);
return k;
}
Áóöààõ
төрөл
Àðãóìåíòóóä
Ëîêàëü õóâüñàã÷
Óòãà áóöààõ ¿éëäýë
- 7. Õýðýãëýã÷èéí ôóíêö
Ôóíêöûã ò¿¿íèé íýðýýð, àðãóìåíòèéã íü äàìæóóëàí
äóóäíà.
Sum(); /* Àðãóìåíòã¿é ôóíêö äóóäàõ */
Sum(5,7); /* Òîãòìîë óòãûã ôóíêöýä äàìæóóëàõ */
Sum(i,k); /* Õóâüñàã÷äûí óòãûã äàìæóóëàõ */
i=Sum(5,7); /* Óòãà áóöààäàã ôóíêöûã àøèãëàõ */
i=Sum(i,k);
i=m+Sum(5,k); /* Èëýðõèéëýëä àøèãëàõ */
7
- 8. Ôóíêöýýñ óòãà áóöààõ ¿éëäýë
Ñè õýëýíä ôóíêöýýñ óòãà áóöààõäàà return ò¿ëõ¿¿ð ¿ãèéã
õýðýãëýäýã.
Áè÷èãäýõ õýëáýð :
return[( ]<èëýðõèéëýë> [)];
Æèøýý : returna+b;
return(a+b);
returna;
return(a);
8
- 9. Óòãà áóöààõ ¿éëäýë
return ¿éëäýë ã¿éöýòãýãäýõýä óäèðäëàãà òóõàéí ôóíêöýýñ ãàðíà.
ªºðººð õýëáýë íýã áëîêò ò¿¿íèé àðä áè÷èãäñýí ¿éëäë¿¿ä
áèåëýãäýõã¿é.
int Sum(int a,int b)
{ int k;
k=a+b;
return k;
printf(“Sum=%d”,k); ¯éëäýë õýçýý ÷ áèåëýãäýõã¿é
}
9
- 10. Ôóíêöûã çàðëàõ
Ôóíêöûã çàðëàõäàà òóõàéí ôóíêö ð¿¿ äàìæèõ àðãóìåíòûí áîëîí
áóöààõ óòãûí òºðëèéã çààæ ºãäºã.
Ôóíêö çàðëàõ áè÷ëýã :
<áóöààõ òºðºë><ÔóíêöÍýð>(<Àðãóìåíòèéí òºðºë> , . . .);
Æèøýý :
int Sum(int a, int b);
10
- 11. Æèøýý
main()
{ printf(“Sum = %d”, Sum(5,7));
printf(“Max = %d”,Max(5,7));
}
int Max(int a, int b)
{ return (a>b) ? a : b; }
11
- 12. Ôóíêöûã çàðëàõ
Õýðýâ ôóíêö ¿íýõýýð þó ÷ áóöààäàãã¿é áîë ò¿¿íèéã
çàðëàõäàà íýðèéíõ íü ºìíº void ò¿ëõ¿¿ð ¿ãèéã õýðýãëýäýã.
voidprint_it(n)
voidãýæ òîäîðõîéëæ ºãñíººð ôóíêö çàðëàëò áà ôóíêö äóóäàëòûã
ÿëãàæ ºãíº .
12
- 13. Ôóíêöûã çàðëàõ
int i,j;
wizard();
Ýíý ôóíêö íü óòãà áóöààäàãã¿é ó÷ðààñ ò¿¿íèéã çàðëàõäàà
òºðºë áè÷èõã¿é ãýâýë ýíý íü ôóíêö äóóääàã áè÷ëýãòýé
àäèëõàí áîëîõ þì.
int i,j;
void wizard();
13
- 14. Ôóíêöûã çàðëàõ
̺í àðãóìåíò àâäàãã¿é ôóíêöûã çàðëàõäàà ÷ void ò¿ëõ¿¿ð ¿ãèéã
àøèãëàäàã.
void Sum(void);
main()
{ Sum();
}
Sum()
{ printf(“ Sum= %d”, a+b); }
14
- 15. Ôóíêöûí àðãóìåíòóóä
15
Ôóíêöûí òîäîðõîéëîëòîíä òóõàéí ôóíêöûí àðãóìåíòóóäûã
æàãñààæ òîäîðõîéëæ ºãäºã.
print_n(int x,int y,int k)
{
}
Òîäîðõîéëñîí áîëîí æèíõýíý àðãóìåíòóóä òîîãîîðîî ìºí òºð뺺ðºº
õàðãàëçàí òýíö¿¿ áàéõ ¸ñòîé
- 16. Ôóíêöûí àðãóìåíòóóä
Ñè õýëýíä æèíõýíý àðãóìåíòóóäûí òîî íü òîäîðõîéëñîí òîîíîîñîî
áàãà áàéæ áîëíî. Çàðèì ñòàíäàðò ôóíêö áóþó printf , scanf íü
õóâüñàõ òîîíû æèíõýíý àðãóìåíòóóäòàé áàéäàã.
#include<stdio.h>
Sum(int i, int j, int k, int n) {
return i+j+k+n; }
main()
{ printf("Sum : %d",Sum(1,2,3,4)); }
16
- 17. Àðãóìåíòèéí òºðºë
17
Æèíõýíý àðãóìåíòóóäûí òºðºë íü òîäîðõîéëñîí
òºðºëòýéãýý èæèë áàéõ àëáàã¿é.
floatmax(floata, floatb)
{
if(a>b)return a;
elsereturn b;
}
printf("%dn",(int)max((float)2,(float)3));
printf("%fn",max((float)2.35,(float)3.53));
- 18. Óòãààð äàìæóóëàõ
18
Áèäíèé ºìíº ¿çñýí áàéäëààð ôóíêöýä àðãóìåíò
äàìæóóëàõàä òóõàéí óòãóóä íü ôóíêöûí ìóæèä äàõèí íýã
õóâü õóóëàãääàã.
Èéìýýñ ýíý àðãóìåíòèéí óòãûã ººð÷èëñºí ÷ òóõàéí
ôóíêöýä óòãàà äàìæóóëñàí ¿íäñýí õóâüñàã÷èéí óòãà
ººð÷ëºãääºãã¿é.
Èéì áàéäëààð ôóíêöýä àðãóìåíò äàìæóóëàõûã óòãààð
äàìæóóëàõ ãýæ íýðëýäýã.
- 19. Õàÿãààð äàìæóóëàõ
Õàðèí õóâüñàã÷èéí óòãûã ôóíêö äîòðîîñ ººð÷ëºõèéí òóëä õàÿãààð äàìæóóëàõ ãýäýã
àðãûã õýðýãëýäýã.
Ýíý àðãûí ãîë ìºí ÷àíàð íü ôóíêöýä õóâüñàã÷èéí óòãà äàìæóóëàõûí îðîíä õóâüñàã÷èéí
õàÿãèéã äàìæóóëäàã.
Õóâüñàã÷èéí óòãûã ººð÷ëºõ人 òóõàéí õóâüñàã÷èéí õàÿãààð íü õàíäàæ ººð÷èëíº.
19
- 20. Æèøýý
Äàðààõ æèøýýíä õî¸ð á¿õýë òîîí
õóâüñàã÷èéí óòãûã ñîëüäîã ôóíêöûã
¿ç¿¿ëýâ.
swap(m,n)
int *m,*n;
{ inttemp;
temp=*m;
*m=*n;
*n=temp;
}
20
- 21. Æèøýý
Ýíý ôóíêöûã äóóäàõäàà
swap(&m,&n); áàéäëààð äóóäíà.
ªºðººð õýëáýë òóõàéí ôóíêöýä
õóâüñàã÷äûí óòãûã áèø òýäãýýðèéí
õàÿãèéã äàìæóóëàõ ¸ñòîé ó÷ðààñ &
¿éëäëèéã àøèãëàí õàÿãèéã íü àâ÷ ôóíêöýä
äàìæóóëæ áàéíà.
21
- 22. Æèøýý
temp=*m;
/* m –ûí àãóóëæ áàéãàà õàÿãò áóé óòãûã temp –ä õèéæ áàéíà
*/
*m = *n;
/* n –ûí àãóóëæ áàéãàà õàÿãò áàéãàà óòãûã m õàÿãò õèéæ
áàéíà */
*m=temp;
/* temp-ûí óòãûã m –ûí àãóóëæ áàéãàà õàÿãò õèéæ áàéíà */
22