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

More Related Content

PDF
PDF
PDF
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
PPT
Lecture914
PPT
PDF
A Methodology of Reproducible Research of Simulation Test Models and Communic...
PPTX
PDF
lecture 4
TMPA-2015: The Verification of Functional Programs by Applying Statechart Dia...
Lecture914
A Methodology of Reproducible Research of Simulation Test Models and Communic...
lecture 4

What's hot (14)

PDF
резидентные разрешения
PPT
Alg Undes 1
PDF
Òðàíñôîðìàòîðûí àæèëëàõ çàð÷èì
PDF
Bie daah bodloguud
PDF
20101021 proof complexity_hirsch_lecture05
PDF
ODT
Bie daah bodloguud
PPTX
ورقة عمل أسماء الإشارة
PPT
PPT
Recursive
PDF
тэгш өнцөгт гурвалжин
PPT
Lecture1 kомпьютерт мэдээлэл_дүрслэх
PDF
پُٽ هجي ته اهڙو!
резидентные разрешения
Alg Undes 1
Òðàíñôîðìàòîðûí àæèëëàõ çàð÷èì
Bie daah bodloguud
20101021 proof complexity_hirsch_lecture05
Bie daah bodloguud
ورقة عمل أسماء الإشارة
Recursive
тэгш өнцөгт гурвалжин
Lecture1 kомпьютерт мэдээлэл_дүрслэх
پُٽ هجي ته اهڙو!
Ad

Viewers also liked (9)

PPTX
Presentacion uranio
PDF
Trabajo imformatica
PDF
Mijn talk voor Veerstichting Antwerpen - Ondernemen in een stad
PPT
ระบบแอร์
DOCX
Incidente (1)
Presentacion uranio
Trabajo imformatica
Mijn talk voor Veerstichting Antwerpen - Ondernemen in een stad
ระบบแอร์
Incidente (1)
Ad

Lecture 7

  • 2. Õè÷ýýëèéí Àãóóëãà  Õýðýãëýã÷èéí ôóíêö òîäîðõîéëîõ  Óòãà áóöààõ ¿éëäýë  Ôóíêöûã çàðëàõ  Ôóíêöûí àðãóìåíòóóä  Òºðºë øàëãàõ  Ôóíêöýýñ óòãà áóöààõ 2
  • 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