Wednesday, December 9, 2009

Лекц №12

Ãðàôèê ãîðèì

Ñòàíäàðò ãàðàëòûí òºõººðºìæ áóþó äýëãýöýíä ºãºãäºë ãàðãàõàä òåêñò áà ãðàôèê ãýñýí ¿íäñýí 2 ãîðèìä äàðààõ áîëîìæòîé. Òåêñò ãîðèìä äýëãýöýíä ä¿ðñëýõ ìýäýýëëèéí íýãæ íü òýìäýãò áàéäàã áîë ãðàôèê ãîðèìä ìýäýýëëèéã ä¿ðñëýõ íýãæ íü öýã áàéäàã. Ãðàôèê ñèñòåìòýé àæèëëàõûí òóëä ýõëýýä ãðàôèê ãîðèì òîãòîîõ õýðýãòýé.

Ãðàôèê ãîðèì:
Äýëãýö¿¿ä íü èéì ÿëãààòàé áàéäãààñ áîëæ òýäãýýðèéã óäèðäàõ ïðîãðàìóóä ÿëãààòàé áàéäàã. ªºðººð õýëáýë òóõàéí äýëãýöèéí òºõººðºìæ áîëãîíû îíöëîãîîñ øàëòãààëæ òýäãýýðòýé õàðüöàõ àëãîðèòì, óäèðäàãäàõ ºãºãäºë¿¿ä ººð÷ëºãääºã. Ò¿¿íä òîõèðñîí ãîðèì òîãòîîõ õýðýãòýé. Ãîðèì òîãòîîñíîîð òóõàéí äýëãýöòýé àæèëëàõ áîëîìæòîé áîëäîã: Turbo ñè õýë íü äàðààõ òºðëèéí äýëãýö¿¿äòýé àæèëëàäàã.
 CGA-íýã äýëãýöèéã 2 áèòýýð ä¿ðñýëäýã.Äýëãýö áóþó 4 ºíãèéí öýã ä¿ðñëýõ øààðäëàãàòàé.
 EGA-16 ºíãº.
 HERCMONO- ìîíîõðîì áóþó 2 ºí㺠ä¿ðñýëíý.
 VGA-video graphics adapter.Öýãèéã 256 ºí㺺ð ä¿ðñýëíý.
 MCGA, IBM 8514 ãýõ ìýò äýëãýö¿¿ä àøèãëàäàã.
Äýëãýöèéí ºí㺠ä¿ðñëýõ ÷àäâàð áîëîí ìýäýýëëèéã ä¿ðñëýõ õýìæýý 2 õàðèëöàí óðâóó.
Íýã öýãèéí ºíãèéã ñàéí ä¿ðñëýõèéí òóëä îëîí áèò õýðýãòýé áîëíî. 1 öýãèéã îëîí áèòýýð òýìäýãëýõ ó÷èð õýìæýýñ áàãàñíà.Ó÷ñð íü òóõàéí äýëãýöèéí ºí㺠ä¿ðñëýõ ÷àäâàð , ìýäýýëëèéã ä¿ðñëýõ õýìæýýñ íü âèäåî ñàíàõ îéí õýìæýýíýýñ õàìààðíà.
Ñè õýëýíä ãðàôèê ãîðèì òîãòîîäîã ôóíêö íü:
init graph (int far *graphdriver, int far*graphmode, char far *pathtodriver);
graphdriver-ÿìàð òºðëèéí äýëãýö àøèãëàõûã çààæ ºãºõ õóâüñàã÷ .
graphmode-òóõàéí äýëãýö äýýð ÿìàð ãîðèì òîãòîîõûã çààíà.
Pathtodriver-òóõàéí ãðàôèê äýëãýöòýé àæèëëàõàä øààðäëàãàòàé ìýäýýëëèéã àãóóëñàí.
*BGI ôàéëóóä áàéðëàõ çàì .



initgraph ôóíêö
Ýíý ôóíêö íü *.bgi ôàéëààñ òóõàéí ãðàôèê ãîðèìòîé àæèëëàõàä øààðäëàãàòàé àëãîðèòì ìýäýýëë¿¿äèéã àâäàã. *.bgi ôàéëûã pathtodriver-ò çààñàí çàìààñ õàéãààä îëîõã¿é áîë èäýâõòýé ñàíãààñ õàéíà.
Ýíý ôóíêö íü ãðàôèç ãîðèìûí ºíãºíèé òîõèðãîî , èäýâõòýé áàéðëàëóóä , çààã÷èä , öîíõíû òîõèðãîîíû ìýäýýëë¿¿äèéã ¿¿ñãýæ , àíõíû óòãûã òîãòîîæ ºãäºã. Ýíý ôóíêöýä ÷ìàð äýëãýö àøèãëàõàà øóóä çààæ ºã÷ áîëíî. Ýñâýë ôóíêöýý𠺺ðººð íü òàíèóëæ áîëíî.

1.Øóóä çààæ ºãºõ .
int gdriver=VGA , gmode=VGAHi;
initgraph(&driver , &gmode, “c:\tc”);
2.Ôóíêöýý𠺺ðººð íü òàíèóëàõ
int gdriver=DETECT , gmode ;
initgraph(&gdriver ,&gmode , “ ”);
Graphresult , grapherrormsg ôóíêö
Graphresult –ôóíêö íü ¿éëäýë ã¿éöýòãýãäñýí òºëâèéã òîäîðõîéëíî.
Grapherromsg – ôóíêö íü àëäààíû òàéëáàð òýìäýãò ìºðèéã áóöààíà.
int gdriver=DETECT,gmode,er;
initgraph(&gdriver, &gmode, “ ”);
er=graphresult( );
if(er!=grOK) /* Àëäàà äàðààõ */
{ printf(“Graphics error :%s\n”, grapherrormsg(er));
exit (1);
}
Closegraph ôóíêö
Ýíý ôóíêöýýð ãðàôèê ãîðèìûí õààõ áóþó àøèãëàãäàæ áàéñàí á¿õ ºãºãäºë, ñàíàõ îéã ÷ºëººëºõ ¿éë àæèëëàãààã õýëíý. ̺í ãðàôèê ãîðèìûã õààñíààð òåêñò ãîðèìä øèëæèõ áà initgraph-ûã äóóäàõààñ ºìíº áàéñàí äýëãýöèéí ìýäýýëëèéã ñýðãýýíý.
int gdriver=DETECT, gmode;
initgraph(&gdriver , &mode, ” ”);

closegraph( );

Öýãòýé àæèëëàõ ôóíêö¿¿ä
 Putpixel( x,y,color )-õ,ó êîîðäèíàòàä color ºí㺺ð öýã çóðàõ
 Getpixel(x,y)- õ,ó êîîðäèíàòàä ÿìàð ºíãºòýé öýã áàéãààã îëîõ
 Lineto (x,y)-èäýâõòýé áàéðëàëààñ ýõëýí õ,ó öýã õ¿ðòýë øóëóóí òàòàõ
 Moveto(x,y)-èäýâõòýé áàéðëàëûã õ,ó öýãò òîãòîîõ
 Line(x1,y1,x2,y2)-õ1,ó1-ýýñ õ2, ó2 õ¿ðòýë øóëóóí òàòàõ .
Òýãø ºíöºãò¿¿ä çóðàõ
int gd=VGA , gm=VGAH1;
initgraph(&gd,&gm, “ ”);
setfillstyle(SLASH_FILL,7);
rectangle(0,0,94,94);--òýãø ºíöºãò
ba(4,4,90,90);--áºãëºõ , õýëáýð àâàõ
bar3d(104,4,190,90,5,5);--3 õýìæýýñò
getch(); çóçààí
closegraph();
Îëîí ºíöºãò çóðàõ
int a[10]={0,0,10,40,30,60,70,40,0,0};
int b[10]={5,5,10,32,25,50,65,39,5,5};
int gd=VGA, gm=VGAH1;
initgraph(&gd,&gm, “ ”);
setfillstyle(LINE_FILL,7);
drawpoly(5,a); fillpoly(5,b);
rectangle(100,10,150,60);
floodfill(102,12,15);
closegraph( );

Òîéðîã ýëèïñ , ìóðóé çóðàõ
int gd=VGA, gm=VGAH1;
initgraph(&gm,&gd, “ ”);
setfillstyle(LINE_FILL,7);
circle(60,60,50); floodfill(60,60,15);
arc(130,60,0,270,50);
getchar( ); ãðàäóñ
closegraph( );

int gd=VGA, gm=VGAH1;
initgraph(&gd,&gm, “ ”);
ellipse(60,60,0,360,50,30);
floodfill(60,60,15);
fillellipse(150,60,30,50);-- ä¿¿ðãýãäñýí ýëèïñ
pieslice(60,100,180,360,50);



ªí㺠áîëîí ïàëèòðòàé àæèëëàõ
#include
main( ) { int gd=DETECT , gm

Лекц №11

Ôàéëòàé àæèëëàõ
Ôàéë íýýõ
Ôàéëààñ óíøèõ Read (“a.dat,…”)
Ôàéëä áè÷èõ
Ôàéë õààõ

Íýýõ óíøèõ áè÷èõ ¿éë àæèëëàãààíä àøèãëàãäàõ áóôåð
 Èäýâõòýé áàéðëàë
 Àëäààíû íºõöºë áàéäàë òºëºâ
Ôàéëûí àòòðèáóòóóäûã àâñíààð õºíãºâ÷èëæ ºãäºã.Ñè õýëýíä file-òàé àæèëëàõ 2,3 àðãà áàéäàã.
 string(óðñãàë) File
Ôàéë íýýõ ñòàíäàðò ôóíêö áàéäàã. Fopen
Æèøýý íü :
f=fopen(“example.dat”,rwt);-ôàéë íýýñýí


Ãîðèì:




FILE-á¿òýö òºðºë
Ôàéë á¿òöýýñ óíøèõ æèøýý:
include
FILE*f; char s[100];
main()
{ f=open (“noname.c”,”rt+”);
fscanf(f,”%s”,s);
printf(“\n BUFFER:%s\n\n”, f buffer);
printf(“”\n POSITION: %s\n\n”,f curp);
fclose(f);
}
buffer- 1 õýìæýýñò ìàññèâ
curp-èäýâõòýéãýýð õààíààñ óíøèõ
Ôàéëûã ÿìàð ãîðèìä íýýõ âý ?
#include
“___ ”
r-óíøèõààð
w-õýðýâ óã òîäîðõîéëñîí íýðòýé ôàéë áàéõã¿é áîë ¿¿ñãýíý. Áàéâàë áè÷ãýýð íýýõ áîëîâ÷ ôàéëûí äîòîðõ àãóóëãûã óñòãàíà. Øèíýýð ¿¿ñãýíý.
a-add ôàéëûí òºãñãºëä áè÷èëò õèéõýýð íýýõ
+- ôàéëä óíøèõ , áè÷èëò õèéõýýð õàíäàõ
r+-ôàéëä çàñâàð õèéõýýð íýýõ , óíøèíà áè÷èíý
w+-óíøèæ áè÷èõýýð øèíý ôàéë íýýõ
b-ôàéëûã 2-òûí ãîðèìä íýýõ (binary)
t-ôàéëûã text ãîðèìä íýýõ
text , binary ãîðèì 2-ûí ÿëãàà íü 0D,0A-ð ÿëãààòàé.
Text ãîðèìä áè÷âýë 0D,0A-ã òàâèõàä 2 ìºð
Binary ãîðèìä áè÷âýë 0D,0A-ã òàâèõàä 1 ìºð äîîøëîíî.
rt+
wr+ øèíý text ãîðèì ¿¿ñãýõ.
Ôàéëûã íýýõ ¿éëäýë õèéõýýð çààâàë àëäàà øàëãàíà.
Æèøýý :
File *f;
f=fopen(“noname.c”,”rt+”);
if(f==Null)
{ printf(“Ôàéë íýýõýä àëäàà ãàðàâ \n”);
exit (1);}
null-òóõàéí îáüåêòûã ÿìàð ÷ þì çààãààã¿é .Àëäààã áàñ ººð ç¿éëä øàëãàäàã. Åðºíõèé øàëãàõ
File *f;
f=fopen(“noname.c”,”rt+”);
{ if(ferror(f))
}
Íýýõýä :
Óðüä÷èëààä íýýãäñýí ôàéëóóä áàéäàã.
-stdin ñòàíäàðò îðîëòûí òºõººðºìæ
-stdout ãàðàëòûí òºõººðºìæ
-stderr àëäààíû òºõººðºìæ
-stdaux ãàäíààñ õîëáîãäîæ áàéãàà íýìýëò ç¿éë
-stdprn ïðèíòåð
fprintf(stdout “Äýëãýöýíä õýâëýâ”);
fprintf(stdprn ””Ïðèíòåðò õýâëýâ”);
Ôàéë õààõ :
fclose(f);
Ôàéëààñ óíøèõ 5 ôóíêö áàéäàã.
-fscanf ôîðìàòëàñàí ºãºãäºë óíøèõ
-fread øóóä ôàéëààñ òîäîðõîé n byte óíøèíà. Îëîí ºãºãäºë.
-fgets òýìäýãò ìºð
-fgetchar
-fgetc ôàéëààñ íýã òýìäýãò óíøèíà.
Æèøýý íü:
FILE *f;
Char s[100]; int mm, dd,yy; int A[20];
main( )
{
f=fopen(“mydoc.txt”,”rt+”);
fscanf(f,”%s”,s);
fscanf(f,”%d / %d/ %d”,&mm,&dd,&yy);
fread(A,sizeof(int),20,f);
fclose(f);
}
Ôàéëä áè÷èõ :
-fprintf
-fwrite
-fputs
-fputchar
-fputc
fwrite-í æèøýý:
File *f; int A[200];
main( )
{ f=fopen(“mydoc.txt”,”rt+”);
if(fwrite(A,sizeof(int),200,f )==200)
printf(“Àìæèëòòàé áè÷èâ”);
else printf(“Áè÷èõýä àëäàà ãàðàâ”);
fclose(f); }
Ôàéëûí çààã÷
Óíøèõ áè÷èõ ¿éëäýë õèéõýä ôàéëûí çààã÷èéã òîäîðõîéëäîã. Õýäýí byte óíøèæ áè÷ñýí õýìæýýãýýð øèëæäýã.
fopen ãýâýë õàìãèéí ýõýíä øèëæèíý.
Óíøèõäàà ôàéëûí çààã÷èéí áàéðëàëûã øàëãàõ õýðýãòýé.
Feof-ôóíêö
Æèøýý íü :
f=fopen (“mydoc.txt”,”rt+”);
while()

Лекц №10

Á¿òýö òºðºë áà çààã÷
 Á¿òýö òºðëèéí çààã÷ çàðëàõ:
struct <á¿òöèéí íýð> * <çààã÷èéí íýð>
 Á¿òýö òºðëèéí çààã÷ îáüåêòûí ãèø¿¿í ýëåìåíòýä õàíäàõ
á¿òöèéí íýð ãèø¿¿í õóâüñàã÷;
Æèøýý:
include
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 grade);
printf(“Grade=%d\n”,p grade)’
}
Á¿òýö òºðºë áà çààã÷

Äàðààõ àðãààõ õàíäàæ áîëäîã.
(*Á¿òöèéí íýð). Ãèø¿¿í õóâüñàã÷;
Æèøýý:
main()
{ scanf(“%s”,(*p).Name); scanf(“%d”,&(*p).grade);
printf(“\n Name=%s”,(*p).grade);
printf(“Grade=%d\n”,(*p).grade);
}
¿éëäýë :
Ýíý ¿éëäýë íü ( )¿éëäëýýñ áàãà çýðýãëýëòýé.Õàðèí óíàð ¿éëäë¿¿äýýñ ºíäºð çýðýãëýëòýé ¿éëääýë þì. Èéìä:
++ð Age èëýðõèéëýëèéí õóâüä ð çààã÷èéí óòãà áèø , Age õóâüñàã÷èéí óòãà ººð÷ëºãäºíº.
Õàðèí (++p) Age èëýðõèéëëèéí õóâüä ð çààã÷èéí óòãà íýìýãäýíý.
include
struct Instit {
char*depart ; int total;
char*depart 1; int total;
} stand={“Ïðîãðàì õàíãàìæ ” ,120, “Òåõíèê õàíãàìæ ”,80};
int sum(dep_num)
struct Instit*dep_num;
{ return (dep_num Total+dep_num Total);
}
main()
{ printf(“Total:%d”,sum(&stand)); }
Îëîí õýìæýýñò ìàññèâ áà çààã÷
Ñè õýëýíä 2 õýìæýýñò ìàññèâûã 1 õýìæýýñò ìàññèâóóäûí ìàññèâ áàéäëààð ä¿ðñýëäýã. Òèéìýýñ ìàññèâò çààã÷ àøèãëàí õàíäàõäàà äàðààõ áàéäëààð õàíääàã.
*(A+i) áîë i-ð ìºðèéí ýõíèé ýëåìåíòèéí õàÿã
*(A+i)+j áîë i-ð ìºðèéí j-ð ýëåìåíòèéí õàÿã
*(*(A+i)+j áîë i-ð ìºðèéí j-ð ýëåìåíòèéí óòãà
Îëîí õýìæýýñò ìàññèâ áà çààã÷
ªºðººð õýëáýë äàðààõ áè÷ëýã¿¿ä àäèëõàí.
&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)
Æèøýý 1 : 2 õýìæýýñò ìàññèâûã õýâëýõ .
for(i=0; i<10; i++)
{ for (j=0;j<10; j++) printf(“%d”,*(*(A+i)+j));
printf(“\n”);
}
Æèøýý 2: 2 õýìæýýñò ìàññèâò óòãà îëãîõ.
for(i=0;k=0; i<10;i++)
for(j=0; j<10; j++) *(*(A+i)+j)=k++;
Çààã÷èéí çààã÷
 Çààã÷èéã çààõ õóâüñàã÷ûã çààã÷èéí çààã÷ ãýíý. ªºðººð õýëáýë çààã÷ îáüåêòûã çààäàã õóâüñàã÷ þì.
 Èéì õýëáýðèéí çààã÷èéã îëîí õýìæýýñò ìàññèâ áà ìºð òýìäýãòèéí õóâüä õýðýãëýõýä òîõèðîìæòîé áàéäàã.
Çààã÷èéí çààã÷ õóâüñàã÷ûã çàðëàõ:
<òºðºë>**<çààã÷èéí íýð>;
æèøýý íü : int **p;
çààã÷èéí çààã÷èä óòãà îëãîõ :
<çààã÷èéí íýð>=&<õóâüñàã÷èéí íýð>
æèøýý íü : p=&array;
æèøýý íü :
int a[4]={1,2,3,4};

int*p[4]={a,a+1,a+2,a+3};

int **pp=p; çààã÷èéí ìàññèâ

çààã÷èéí çààã÷ õóâüñàã÷
pp++;
printf(“%d”,*pp); /*2*/
printf(“%d”,**pp++); /*2*/
2. int a[4]={1,2,3,4};

int *p[4]={a,a+1,a+2,a+3};
a+2
int **pp=p;
**++pp; /*4*/
++**pp; /*5*/
*(--*pp); /*3*/

Õºðâ¿¿ëýëò õèéõ
-æèøýýíä int òºðºëò p çààã÷èéí çààã÷ àøèãëàâ.
-Õàðèí òºðºëò áèø çààã÷ áóþó void òºðëèéí çààã÷èéí çààã÷ àøèãëàõ ìºí ÿëãààòàé òºðºëòýé çààã÷ààð îáüåêòîä õàíäàõ ¿åä õºðâ¿¿ëýëò õèéíý.
-çààã÷èéí çààã÷ õóâüñàã÷ äýýð õºðâ¿¿ëýëò õèéõäýý äàðààõ áè÷ëýã àøèãëàíà.
-áè÷ëýã: (òºðºë**)
Çààã÷èéí çààã÷ äýýð õºðâ¿¿ëýëò õèéõ .
include
int a[4]={1,2,3,4}; int *p[4]={ a,a+1,a+2,a+3};
int **ip=p;
char **cp=(char**p);
void **pp=(void**)p;
main()
{ printf(“int: %d\n”,**ip);
printf(“char: %d\n”,**(int**)cp);
printf(“void: %d\n”, **(int**)pp);
}
Òýìäýãò ìºð ìàññèâ
Òýìäýãò ìºðò çààã÷ àøèãëàí õàíäàõ íü 1 õýìæýýñò ìàññèâò çààã÷ àøèãëàí õàíäàõòàé èæèë.Õàðèí òýìäýãò ìºð òºðëèéí ìàññèâûí ýëåìåíò¿¿äýä çààã÷èéí çààã÷ àøèãëàí õàíäâàë èë¿¿ òîõèðîìæòîé.

char*c[ ]={“Input”, “Add”,”Data”,”Debug”};
char **cp[ ]={c,c+1,c+2,c+3};
char***cpp=cp;
Òýìäýãò ìºð ìàññèâ
char *c[ ]={“Input”,”Add”,”Data”, ”Debug”};

char**cp[ ]={ c,c+1,c+2,c+3};

char ***cpp=cp;
-printf(“%s\n”,*(*(++cpp))); /*Add*/
/* ++cpp; **cpp; */
-printf(“%s\n”, (*(--(*(++cpp))))+1; /*dd*/
/* ++cpp; --*cpp; **cpp+1; */

Лекц №9

Òýìäýãò ìºð
Òýìäýãò ìºð íü ASCII ñèñòåìýýð êîäëîãäñîí òýìäýãòèéí äàðààëàë þì.
Òýìäýãò¿¿ä íü :
¿ñýã: ABC….XYZ,abc…xyz
öèôð: 0123…9
Òóñãàé òýìäýãò: +, - ,*, / , \ , $, #
Òýìäýãò ìºð òºðëèéí õóâüñàã÷ûã Ñè õýëýíä Char ò¿ëõ¿¿ð ¿ãýýð , ìàññèâ õýëáýðýýð çàðëàíà.
char a[15];
Àíõíû óòãà îëãîõ
Òýìäýãò ìºðä äàðààõ õýëáýð¿¿äýýð àíõíû óòãà îëãîæ çàðëàäàã.
char a[8]=”Tsakhim;
char name[25]=”Dorj”;
char grades[5]={‘A’,’B’,’C’,’D’,’\ 0};
Òýìäýãò ìºðèéã ãàðààñ óíøèõäàà & òýìäýãòèéã scanf-ä àøèãëàäàãã¿é.
scanf(“%s”,a);
Ó÷èð òýìäýãò ìºð íü ìàññèâ ó÷èð òýìäýãò ìºðèéí íýð íü ººðºº õàÿã áàéäàã. Èéìýýñ õàÿã àâàõ ¿éëäýë øààðäëàãàã¿é.

Èëýðõèéëýëä àøèãëàõ

-Òýìäýãò ìºð òºðëèéí õóâüñàã÷äûã øóóä èëýðõèéëýëä îðîëöóóëàõ áîëîìæã¿é.
-ººðººð õýëáýë òýìäýãò ìºð òºðºë íü îëîí ýëåìåíòýýñ á¿ðäýõ íèéëìýë òºðºë ó÷èð 1 ýëåìåíò íü ë èëýðõèéëýëä îðîëöîõîîñ áèø á¿õëýýðýý á¿õëýýðýý èëýðõèéëýëä îðîëöäîãã¿é.
-èéìä ¿éëäë¿¿ä íü áîëîìæã¿é ¿éëäë¿¿ä þì.
char a[15];
a=”Hello!!! ”; a=a+”world”;
-èéìä ýäãýýð ¿éëäë¿¿äèéã ôóíêöýýð ã¿éöýòãýäýã.

Òýìäýãò ìºðä óòãà îëãîõ
Strcpy () ôóíêö
Áè÷èãäýõ õýëáýð: char*strcpy (char*s1, const char*s2); /*S2 òýìäýãò ìºðèéí óòãûã S1 òýìäýãò ìºðò îëãîõ */

#include
char str[ ]=”Ñåìèñòð 1”, str [ ]= ”Ñåìèñòð 2 ”;
main( )
{ strcpy(str , str 1); /*str=str1*/
printf(“Òýìäýãò ìºð =%s\n”, str);
}
¯ð ä¿í: Ñåìèñòð 2

Òýìäýãò ìºð¿¿äèéã çàëãàõ strcat ôóíêö

Áè÷èãäýõ õýëáýð: char strcat (char S1, const char*S2);
include
char str [100], str [100];
main()
{ printf(“str=”); scanf(“%s”,&str); /*ñåìèñòð 1*/
strcat(str ,”õàâàð”); /* S1=S1+S2 */
printf(“%s \n”,str);
} ¯ð ä¿í: Ñåìèñòð õàâàð .

Òýìäýãò ìºð õàðüöóóëàõ strcmp ôóíêö
Áè÷èãäýõ õýëáýð: int strcmp (const char* S1, const char*S2);
Õýðýâ áóöààõ óòãà íü :
==0 áîë S1==S2 (òýíö¿¿)
>0 áîë S1>S2 (S1 íü èõ)
<0 áîë S1
i=strcmp(“ààð ”,”ààñ”);
if(I==0) printf(“Òýìäýãò ìºð¿¿ä èæèë ”);
else() if(i>=0) printf(“ \’ààð \’ íü èõ áàéíà ”);
printf(“ \’ààc \’ íü èõ áàéíà ”);

Òýìäýãò ìºðèéí óðòûã òîäîðõîéëîõ strlen ôóíêö
Áè÷èãäýõ õýëáýð: int strlen (char*s);
Òýìäýãò ìºðèéí óðòûã òîîöîõäîî òºãñãºëèéí “ \0 ”òýìäýãòèéã òîîöîõã¿é.
#include
char str[ ]=”Ñåìèñòð õàâàð ”; int count;
main()
{ count=strlen(str);
printf(“Òýìäýãò ìºðèéí óðò =%d”, count);
} ¿ð ä¿í: Òýìäýãò ìºðèéí óðò 13
Á¿òýö òºðºë
Á¿òýö òºðºë íü óòãûí õóâüä õîîðîíäîî óÿëäàà õîëáîîòîé îëîí òºðëèéí õóâüñàã÷ûí îëîãëîãîîñ òîãòîõ íèéëìýë òºðºë. Á¿òýö ãýæ íýðëýãäýõ ºãºãäëèéí õýëáýð íü ÿíç á¿ðèéí òºðºëòýé ºãºãäë¿¿äèéã õàìòàòãàí òîäîðõîéëæ øèíý òºðëèéã ¿¿ñãýõýä õýðýãëýãäýíý.
Òîäîðõîéëîõ õýëáýð íü :
struct[<Á¿òöèéí íýð >] {
[<òºðºë 1><õóâüñàã÷èéí íýð 1>]
[<òºðºë 2><õóâüñàã÷èéí íýð 2>]
[<òºðºë 3><õóâüñàã÷èéí íýð 3>]

[<òºðºë n><õóâüñàã÷èéí íýð n>]
Îþóòíû ìýäýýëýë õàäãàëàõ á¿òýö ¿¿ñãýõ æèøýý àâ÷ ¿çüå.
struct student {
char name [20];
int age;
float GPA;
}
Á¿òöýä àãóóëàãäàõ õóâüñàã÷äûã á¿òöèéí ãèø¿¿í ãýíý.
Á¿òýö òºðëèéí õóâüñàã÷ çàðëàõ :

struct<á¿òöèéí íýð > <õóâüñàã÷ûí íýð >;

æèøýý íü :

struct student sum ;



Çàðëàëò 2
struct student { char name[15];
int age;
} sum;
Çàðëàëò 3
Struct { char name [15];
int age;
} sum;
Àíõíû óòãà îëãîõ
Á¿òýö òºðëèéí õóâüñàã÷èä äàðààõ õýëáýðýýð àíõíû óòãà îëãîíî.
struct student sum={ “Bat”,15};
struct student {
char name[20];
int age;
} sum={”Bold”,20};
Á¿òöèéí ãèø¿¿í ýëåìåíòýää õàíäàõ
Á¿òýö äîòîðõ ýëåìåíòýä õàíäàõûí òóëä òýìäãèéí õýðýãëýíý.
sum.age=18;
sum.GPA=3.0;
printf(“Name:%s”,sum.name);
printf(“Name:%d”,sum.age);
printf(“Name:%f”,sum.gpa);
Á¿òýö òºðºëòýé ìàññèâ
Á¿òýö òºðºëòýé ìàññèâûã çàðëàõ õýëáýð:
struct<Á¿òýö òºðºë><ìàññèâûí íýð>[õýìæýý];
struct student {
char name[20];
int grade;
}; -Á¿òýö òºð뺺 òîäîðõîéëîõ
srtuct student sw323[50]-ìàññèâàà çàðëàõ
Á¿òýö òºðºëòýé ìàññèâûí ýëåìåíòýä õàíäàõ:
Sw323[0].name sw323[0].grade
……………… ………………..
Sw323[50].name sw323[50].grade
Æèøýý:
include
struct student {
char name [20];
int age;
float GPA;
};
struct student Who; /*Õóâüñàã÷ çàðëàõ*/
int i,j;
main()
{ printf(“Îþóòíû íýð:”); scanf(“%s”,Who.name);
printf(“Îþóòíû íàñ:”); scanf(“%d”,&Who.age);
printf(“Îþóòíû ä¿í:”); scanf(“%f”, &Who.GPA);
printf(“Îþóòíû íýð:%s\n”,Who.name);
printf(“Îþóòíû íàñ:%d\n”,Who.age);
printf(“Îþóòíû ä¿í:%f”,Who.GPA);
}

Лекц №8

Ìàññèâ
Èæèë çîðèëãîîð õýðýãëýãääýã îëîí óòãûã àøèãëàõ õàäãàëàõäàà äàðààõ áàéäëààð îëîí õóâüñàã÷èä çàðëàæ áîëíî.
Int name 1=101 ; int name 2=202; int name 3=303;
Õóâüñàã÷äûí òîî èõñýõ ¿åä òýäãýýðòýé àæëóóä èõ õ¿íäðýëòýé áàéäàã áà ýíý ¿åä ìàññèâ ãýæ íýðëýãäýõ íèéëìýë òºðëèéã àøèãëàõ íü òîõèðîìòîé.
Èæèë òºðëèéí îëîí óòãûã õàäãàëàõ áîëîìæòîé ºãºãäëèéí íèéëìýë òºðëèéã ìàññèâ ãýíý. Ìàññèâ íü îëîí ýëåìåíòòýé ìàòðèö ìýòýýð òºñººëºãäºõ áºãººä ýëåìåíòýä íü õàíäàõûí òóëä òóñãàé äóãààðààð õàíäàíà.ªºðººð õýëáýë ìàññèâèéí ýëåìåíò á¿ð òîäîðõîé äóãààðòàé áàéíà.Ìàññèâèéã çàðëàõûí òóëä õóâüñàã÷ûí íýðèéí àðä [ ] àøèãëàíà. Õîñ õààëòàíä òóõàéí ìàññèâûí ýëåìåíòèéã òîîã áè÷íý.

Íýã õýìæýýñò ìàññèâûã çàðëàõ
Íýã õýìæýýñò ìàññèâ ãýäýã íü øóãàìàí ìàññèâ þì.
< òºðºë >< íýð > [< èíäåêñ >]
Æèøýý: int a[5];
Int b[100];

Òºðºë ýëåìåíòèéã òîî

Ìàññèâ ñàíàõ îéä áàéðëàõ
Íýã õýìæýýñò ìàññèâ íü ñàíàõ îéä äàðààëñàí áàéðëàëòàé áàéíà.
int a[5] ìàññèâ ñàíàõ îéä áàéãàà íü:

A[0] A[1] A[4] …
Õýðýâ sizeof ¿éëëèéã àøèãëàí À-ãèéí õýìæýýã îëáîë 10 ãýñýí ¿ð ä¿íã ¿ç¿¿ëíý. Ó÷èð íü int òºðºë íü 2 byte õýìæýýòýé áà íèéò 5 ýëåìåíòòýé òóë 5*2=10 byte

Ìàññèâèéí àíõíû óòãûã îëãîõ , çàðëàõ
Ìàññèâèéí ýëåìåíòèéí àíõíû óòãûã { } õààëòàíä áè÷äýã.
int val[ 5]={ 10,40,70,90,120 };
Èíãýæ çàðëàñàí íü ìàññèâûí ýëåìåíò¿¿äýä äàðààõ áàéäëààð óòãà îëãîñîíòîé òýíö¿¿.
val[0]=10; val[1]=40;
val[2]=70; val[3]=90; val[4]=120;
Ñè õýëýíä ìàññèâûí ýëåìåíò¿¿äèéã 0-îîñ ýõëýí äóãààðëàäàã.
Æèøýý íü :
-int a[5]={1,2,3,4,5}; /ýõíèé 5-í ýëåìåíòýä óòãà îëãîõ. /
-int b[20]={0,1,2,3,4,5,6,7,8,9}; /ýõíèé 10 ýëåìåíòýä óòãà îëãîæ áàéíà , áóñàä ýëåìåíò¿¿ä íü 0 óòãàòàé áîëíî. /
-float money [10]={6.23, 2.45, 8.01, 2.97, 6.41};
-char grades[5]={‘A’,’B’,’C’,’D’,\ 0’ };
-char grades[5]=”ABCD'

Àíõíû óòãà îëãîæ çàðëàõ

Ìàññèâûã çàðëàõäàà õîñ õààëòàíä ¿ðãýëæ ýëåìåíòèéí òîîã áè÷èæ áàéõ ¸ñòîé.Õàðèí ìàññèâò àíõíû óòãûã îëãîæ çàðëàõäàà ë òîîã áè÷èõã¿é áàéæ áîëíî.
int ages[5]={5,2,7,40,65,92 } / *Ǻâ* /
int ages[ ]; / *Áóðóó* /
int ages[ ]={5,27,40,65,92}; / *Ǻâ* /
Õýðýâ ìàññèâûí á¿õ ýëåìåíòèéã 0-îîð ä¿¿ðãýõèéã õ¿ñâýë äàðààõ áè÷ëýãèéã àøèãëàíà
foat A[100]={0,0} ; / *Á¿õ ýëåìåíòèéã òýãëýõ * /
Æèøýýíä ìàññèâûí ýõíèé íýã ýëåìåíòýä óòãà îëãîæ áàéíà. Ãýâ÷ ìàññèâèéí ÿäàæ íýã ýëåìåíòýä àíõíû óòãûã íü îëãîâîë Ñè áóñàä ýëåìåíòèéã íü òýãýýð ä¿¿ðãýíý.

Ìàññèâûí ýëåìåíòýä óòãà îëãîõ
Ìàññèâûí ýëåìåíòýä óòãà îëãîõ ìºí ýëåìåíò äýýðõ ¿éëäë¿¿ä íü åðäèéí õóâüñàã÷èä óòãà îëãîõ , èëýðõèéëýëä îðîëöîõ õýëáýðòýé èæèë áàéíà.
a[1]=20; a[6]=a[2]; a[0]=i; a[1]=b[i];
x=y+a[3]*a[i]; printf(“3-ð ýëåìåíò íü :%d”, a[3] );

Ìàññèâûí ýëåìåíòéèã ãàðààñ óíøèõ
Ìàññèâûí ýëåìåíòèéã õýðýãëýõ íü õóâüñàã÷ àøèãëàõ õýëáýðòýé èæèë ó÷èð ýëåìåíò¿¿¿äèéã ãàðààñ óíøèõäàà äàðààõ áàéäëààð óíøèíà.
scanf(“%d”,& a[1] );
scanf(“%d”,& a[2] );
scanf(“%d”,& a[3] );
Ìàññèâûí ýëåìåò¿¿äèéã ãàðààñ óíøèõäàà öèêë àøèãëàõ íü òîõèðîìæòîé.
Æèøýý íü:
Æèøýýíä öèêëèéí òîîëóóð 0-îîñ 9 õ¿ðòýëõ óòãûã àâàõ áºãººä scanf ôóíêö íü a[0]…a[9] ýëåìåíò¿¿äèéí óòãûã ãàðààñ óíøèíà.
int a[10], i;
for (i=0; i<10; i++)
{ printf(“a[%d]=”, i);
scanf(“%d”, &a[i]);
} ¯ð ä¿í : a[0]=101 a[1]=122 … a[9]=222

Ìàññèâûí ýëåìåíò¿¿äèéã õýâëýõ
Ìàññèâûí çàðèì ýëåìåíò¿¿äèéã õýâëýõäýý äàðààõ áàéäëààð õýâëýíý.
printf(“%d”,a[0] );
printf(“%d”,a[1] );
printf(“%d”, a[2] );
Ìàññèâûí á¿õ ýëåìåíò¿¿äèéã õýâëýõäýý öèêë àøèãëàõ íü òîõèðîìæòîé.
int a[10],i ;
for(i=0; i<10; i++) printf(“A[%d]=%d\n ”, i, a[i]);

Õî¸ð õýìæýýñò ìàññèâ
Ñè õýëýíä íýãýýñ îëîí õýìæýýñò ìàññèâ çàðëàí àøèãëàõ áîëîìæòîé áàéíà.
Îëîí õýìæýýñò ìàññèâ äýýð õýðõýí ààæèëëàõûã õî¸ð õýìæýýñò áóþó õ¿ñíýãò ìàÿãìéí ìàññèâ äýýð àâ÷ ¿çüå.
Èéì ìàñèâûã ýëåìåíòýä ìºð , áàãàíà ãýñýí 2 äóãààðààð õàíäàíà. Äóãààðëàõ óòãà íü ìºí ë 0-îîñ ýõýëíý.


Õî¸ð õýìæýýñò ìàññèâ
À Ìàññèâ (3 ìºð, 4 áàãàíàòàé )

A[0][0] A[0][1] A[0][2] A[0][3]
A[1][0] A[1][1] A[1][2] A[1][3]
A[2][0] A[2][1] A[2][2] A[2][3]


Õî¸ð õýìæýýñò ìàññèâ ñàíàõ îéä
2 õýìæýýñò ìàññèâ ñàíàõ îéä áàéðëàõ íü
A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1]
Õî¸ð õýìæýýñò ìàññèâûí ñàíàõ îé äàõü õýìæýýã äàðààõ áàéäëààð îëíî.
̺ðèéí òîî* áàãàíûí òîî*òºðëèéí õýìæýý

Õî¸ð õýìæýýñò ìàññèâûã çàðëàõ
<òºðºë><íýð>[<èíäåêñ>][<èíäåêñ>]
ýñâýë
<òºðºë><íýð>[<èíäåêñ>]
Æèøýý íü:
int a[3][4];
int b[2][5];

ìºðèéí òîî áàãàíûí òîî

Ìàññèâò àíõíû óòãà îëãîõ
2 õýìæýýñò ìàññèâûí àíõíû óòãûã îëãîõäîî íýã õýìæýýñò ìàññèâò àíõíû óòãà îëãîäîãòîé òºñòýé áóþó ýíý ìàññèâûã íýã õýìæýýñò ìàññèâóóäûí ìàññèâ áàéäëààð îéëãîõîîð áè÷ëýãòýé áàéäàã.

int a[3][2]={{1,2} , {3,4} ,{5,6}};
int b[3][3]={{1,2,3} , {4,5,6} ,{7,8,9}};
int A[3][3]={1,2,3,4,5,6,7,8,9};
Óòãà îëãîõ , èëýðõèéëýëä àøèãëàõ

a[1][1]=20; a[0][2]=I; a[1][1]=b[i][1];
x=y+a[3][1]*a[i][1]; printf(“[1,3]-ð ýëåìåíò íü :%d”, a[1][3] );
scanf(“%d”, & a[1][1]);
scanf(“%d”, & a[2][1]);
scanf(“%d”, & a[3][1]);
Ãàðààñ óíøèõ
2 õýìæýýñò ìàññèâûí ýëåìåíò¿¿äèéã ãàðààñ óíøèõäàà äàâõàð öèêë àøèãëàõ íü ç¿éòýé. 1 öèêë íü ìºðèéí äóãààðûã òîäîðõîéëíî.ͺ㺺 íü áàãàíûí äóãààðûã òîäîðõîéëíî.
int a[2][2],I,j; ¯ð ä¿í íü :
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{ printf(“a[%d][%d]=”,i,j );
scanf(“%d”,& a[i][j]); }




2 õýìæýýñò ìàññèâûã õýâëýõ
Íýã öèêë íü ìºðèéí äóãààðûã òîäîðõîéëíî .ͺ㺺 íü áàãàíûí äóãààðûã òîäîðõîéëíî.
int a[2][2],I,j; ¯ð ä¿í íü :
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{ printf(“%7d”,a[i],[j] );
printf(“\n”); }

Лекц №7

Õàäãàëàõ àíãèëàë
Õàäãàëàõ àíãèëàë íü õóâüñàã÷ûí àæèëëàõ õ¿ðýý áà àìüäðàëûí õóãàöààã òîäîðõîéëäîã. Default áóþó àíõäàã÷ õàäãàëàõ àíãèëàë íü auto àíãèëàë áîëíî. ªºðººð õýëáýë õóâüñàã÷ûã çàðëàõäàà õàäãàëàõ àíãèëàëûã íü çààæ ºãººã¿é áîë òýð õóâüñàã÷ íü øóóä auto õàäãàëàõ àíãèëàëààð çàðëàãäàíà. Èéì õàäãàëàõ àíãèëàëòàé çàðëàãäñàí õóâüñàã÷ûí àæèëëàõ õ¿ðýý íü

Static õóâüñàã÷
Óòãà íü òóõàéí ïðîðàìûí àìüäðàëûí õóãàöààíä õàäãàëàãääàã , õàðèí àæèëëàõ õ¿ðýý íü íýã ôóíêöûí õ¿ðýýãýýð òîäîðõîéëîãääîã õóâüñàã÷ûã ñòàòèê õóâüñàã÷ ãýíý. Ǻâõºí õóâüñàã÷ áèø , ôóíêöûã ñòàòèê àíãèëàëààð çàðëàæ áîëíî.Õýðýâ Ñè ïðîãðàì õýä õýäýí ôàéëààñ òîãòäîã áîë ñòàòèê àíãèëàëààð çàðëàãäñàí ôóíêöûã òóõàéí ôàéëä ë õýðýãëýõ áóþó áóñàä ôàéëààñ ýíý ôóíêöûã àæèëëóóëàõ áîëîìæã¿é áîëíî.
Æèøýý íü :
#include
count()
{ static int k=1; print(“k=%d\n”, k++) ; }
main()
{count (); count (); / *k=1 * / / *k=2* /
count(); / *k=3* /
count(); / *k=4* /
count(); / *k=5* /
}

Extern õóâüñàã÷
-ãàäààä õóâüñàã÷ áîëîí ãàäààä ôóíêöûã àøèãëàõäàà ò¿¿íèéã ò¿ëõ¿¿ð ¿ñãýýð çàðëàäàã.
-ººðººð õýëáýë òàíû àøèãëàõ ãýæ áóé ôóíêö , õóâüñàã÷ ýíý ôàéëä áèø ººð áóñàä ôàéëóóä áàéðëàäàã ¿åä ýíý ò¿ëõ¿¿ð ¿ãèéã àøèãëàí çàðëàñíààð òýäãýýðèéã àøèãëàõ áîëîìæòîé áîëíî.
-çºâõºí ãëîáàëü õóâüñàã÷äûã ë õàäãàëàõ àíãèëàëààð òîäîðõîéëæ ºãíº.
Õàäãàëàõ àíãèëàëóóä

Ò¿ëõ¿¿ð ¿ã Àæèëëàõ õ¿ðýý Àìüäðàëûí õóãàöàà
Auto Ëîêàëü Ôóíêöûí õóãàöàà
Static Ëîêàëü Ïðîãðàìûí òóðøèä
Register Ëîêàëü Ïðîãðàìûí òóðøèä
External Á¿õ ôàéëóóäàä Áàéíãà
External static Íýã ôàéëä Áàéíãà

Æèøýý íü :
/ * prg1.c */
#include
int max , sum ;
sim( int a , int b );
{ sum=a+b;
max (int a , int b)
{ max=a>b ? a:b ;
}
/ * prg2.c */
#include
extern int max , sum ;
extern int sum( int a , int b );
extern int Max (int , int );
main()
{ sum(2,3); Max(2,3);
printf(“Sum:%d\n”, sum);
printf(“Max:%d\n”, sum);
}
PROJECT- ôàéë òîäîðõîéëîõ
-äýýðõ ôàéëóóäûã íýãòãýí ïðîãðàì ¿¿ñãýõèéí òóëä äàðààõ àãóóëãà á¿õèé ôàéë ¿¿ñãýõ øààðäëàãàòàé.
-/ *myprog.prj ôàéëûí àãóóëãà /




prj –ôàéë òîäîðõîéëîõ
-prj ôàéëóóä .c áîëîí .obj ºðãºòãºëòýé ôàéëûã çààæ ºã÷ áîëíî.ªºðººð õýëáýë èéì ôàéëûã íýãòãýí ïðîðàì ¿¿ñãýõ áîëîëöîîòîé.
-¿¿ñãýñýí ôàéëàà ðåäàêòîðûí öýñèéí ãýñýí ñîíãîëòîíä áè÷èæ ºãíº.

Áëîê á¿òýö
-õóâüñàã÷èä íü ôóíêö äîòîð òîäîðõîéëîãäâîë ëîêàëü àæèëëàõ õ¿ðýýòýé áîëäîã.
-òýãâýë áëîê äîòîð ëîêàëü àæèëëàõ õóâüñàã÷ çàðëàõ áîëîìæ ñè õýëýíä áàéäàã.
-èéì õóâüñàã÷ íü çºâõºí òóõàéí áëîê äîòîð ë àæèëëàõ áà áëîêîîñ ãàðàõàä óñòàæ ¿ã¿é áîëäîã.
Æèøýý íü:
int exam (a1,a2)
int a1, a2
{ int I, n;

{ int i , temp;
for (i=1; i }

}
Ðåêóðñ ôóíêö
Õýðýãëýã÷èéí ôóíêö áîëîí øóóä áóñ àðãàà𠺺𺺠ººðèé㺺 äóóäàõ áîëîìæ Ñè õýëýíä áàéäàã áà ¿¿íèéã ðåêóðñ ãýæ íýðëýíý. Òîîã òýìäýãò ìºð áîëãîí õýâëýäýã ôóíêö äýýð æèøýý àâ÷ ¿çüå.
• Ýõëýýä òîîíû öèôð¿¿äèéã îëæ õýâëýõ øààðäëàãàòàé áà öèôð¿¿äèéã îëîõîä òýäãýýð íü óðâóó äàðààëàëààð áóþó õîéíîîñîî ýõýëæ îëääîã.
• Èéìýýñ òýäãýýðèéã çºâ äàðààëàëä îðóóëàí õýâëýõ øààðäëàãàòàé.
Æèøýý: Òîîíû öèôð¿¿äèéã îëîõ .(øóóä )
include
void pr (Long n )
{ if (n<0) {putchar (‘-’); n= -n; }
if(n/10) pr (n/10);
putchar (n%10+’0’);
}
main()
{ clrscr(); pr(1234); printf(“\n”);
pr(7654321); printf(“\n”);
pr(-1234567); printf(“\n”);
}
-Ðåêóðñ ôóíêö íü ººðºº ººðèé㺺 äóóäàõ ¿åä øèíýýð äóóäàãäàõ ôóíêö íü ººðèéí á¿õ ëîêàëü õóâüñàã÷äàà àíõíû óòãûã íü òîãòîîí øèíýýð ¿¿ñãýäýã.
-ýíý ¿¿ññýí õóâüñàã÷èä íü ºìíºõ ôóíêöûí õóâüñàã÷äààñ ÿëãààòàé.
-ººðººð õýëáýë ôóíêö á¿ðèéí õóâüñàã÷ õàäãàëäàã ìóæ íü ÿëãààòàé áóþó ººð ººð ãàçàð áàéðëàäàã.
Æèøýýíèé òàéëáàð:
1. pr (1234/10) n=1234 áàéíà. Ôóíêö ðóó 123 ãýñýí óòãà äàìæèíà.
2. pr (123/10) n=123 áàéíà. Ôóíêö ðóó 12 ãýñýí óòãà äàìæèíà.
3. pr (12/10) n=12 áàéíà. Ôóíêö ðóó 1 ãýñýí óòãà äàìæèíà.
4. putchar (‘1’) n=1 , n%10 1
5. putchar (‘2’) n=12 , n%10 2
6. putchar (‘3’) n=123 , n%10 3
7. putchar (‘4’) n=1234 , n%10 4
Æèøýýã àëõàìààð ¿ç¿¿ëýâ.

1. pr(1234)
2. if(1234/10)
3. pr (123)
4. if(123/10)
5. pr(12)
6. if(12/10)
7. pr(1)
8. if(1/10) /*õóäàë*/
9. putchar(1%10+’0’)

Øóóä áóñ àðãà
Øóóä áóñ àðãààð ðåêóðñ ¿¿ñãýæ áîëäîã áà ýíý íü òóõàéí ôóíêö íü ººðèé㺺 øóóä äóóäàõ áóñ ò¿¿íèéã äóóäñàí ººð íýã ôóíêöýýñ òóõàéí ôóíêöûã äóóääàã àðãà þì.






Func 1 ( )
{

Func 2 ( )

}
Func 2 ( )
{

Func 1 ( )

}
Ôóíêö íýã íü àæèëëàõ ÿâöäàà Func 2 ôóíêöèéã äóóäàõ áà òýð ôóíêö íü ýðãýýä func 1-èéã äóóäàõ çàìààð ðåêóðñ ¿¿ñãýæ áàéíà.

Ðåêóðñûí à÷ õîëáîãäîë
-ïðîãðàìûí êîä÷èëîëûã áàãà õýìæýýòýé áîëãîõ
-áè÷èõ îéëãîõîä õÿëáàð áîëãîõ
-ìîä ãýõ ìýòèéí øàòëàñàí çîõèîí áàéãóóëàëòòàé á¿òö¿¿äòýé àæèëëàõ áîëîìæèéã á¿ðä¿¿ëæ ºãäºã.
Typedef Êîìàíä
Øèíýýð òºðºë òîäîðõîéëîõ áîëîìæòîé.
Áè÷èãäýõ õýëáýð :
Typedef <òºðºë><øèíý òºðºë >;
Æèøýý: typedef float real;
Ýíý Êîìàíä íü õààíà çàðëàãäñàíààñ øàëòãààëæ àæèëëàõ õ¿ðýý íü òîäîðõîéëîãääîã. ªºðººð õýëáýë ôóíêö äîòîð çàðëàãäâàë àæèëëàõ íü ëîêîëü ôóíêöýýñ ãàäíà çàðëàãäâàë ãëîáàëü áàéíà.
Void ff ( )
{ typedef short int integer ; }




Лекц №6

Õýðýãëýã÷èéí ôóíêö
Ôóíêö íü ïðîãðàìä îëîí áàãòàõ õèéãäýõ ¿éëäëèéã áàãàñãàæ , ¿éëäë¿¿äèéã á¿ëýãëýæ ºãäºã.
Ôóíêö òîäîðõîéëîõ áè÷ëýã :
<áóöààõ óòãûí òºðºë > < Ôóíêö íýð > (< Àðãóìåíòóóä >)
< Àðãóìåíòûí çàðëàëò >
{< Ëîêàëü õóâüñàã÷äûã çàðëàõ > ;
< Ôóíêöûí ¿íäñýí áèå áóþó êîìàíäóóä > ;

return ( áóöààõ óòãà );
}
• Õýðýâ ôóíêö óòãà áóöààõ øààðäëàãàòàé áîë ôóíêöûí íýðèéí ºìíº òóõàéí ôóíêöýýñ áóöààõ óòãûí òºðëèéã áè÷èæ ºãíº.
• Õýðýâ ôóíêö óòãà áóöààäàãã¿é áîë ò¿¿íèé íýðèéí ºìíº íü void ò¿ëõ¿¿ð ¿ãèéã áè÷èæ ºãíº ýñâýë åðººñºº ò¿ëõ¿¿ð ¿ã áè÷èõã¿é.
• Õýðýâ ôóíêö ðóó àëèâàà óòãà äàìæäàã áîë ò¿¿íèéã õ¿ëýýæ àâàõ õóâüñàã÷äûã àðãóìåíòóóä ãýæ íýðëýäýã áà õóâüñàã÷äûã ôóíêöûí íýðèéí àðä ( ) õààëòàíä òàñëàëààð çààãëàæ áè÷èæ ºãíº.
• Õýðýâ ôóíêö óòãà õ¿ëýýí àâäàãã¿é áîë () õààëòàíä þó ÷ áè÷èõã¿é.Àðãóìåíòóóäûí òºðëèéã áóþó òýäíèé çàðëàëòûã äàðààãèéí ìºðä õóâüñàã÷ çàðëàäàã øèãýýð çàðëàæ ºãíº.
• Ëîêàëü õóâüñàã÷äûã çàðëàõ õýñýãò òóõàéí ôóíêö äîòîð ë õýðýãëýãäýõ õóâüñàã÷äûã çàðëàæ ºãíº.
• Ôóíêöûí áèåèéã {} õààëòàíä áè÷èæ ºãíº.

Õýðýãëýã÷èéí ôóíêö


int Max ( a, b )
int a, 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); / Èëýðõèéëýëä àøèãëàõ


Ôóíêöýýñ óòãà áóöààõ ¿éëäýë
Ñè õýëýíä ôóíêöýýñ óòãà áóöààõäàà return ò¿ëõ¿¿ð ¿ãèéã õýðýãëýäýã.
Áè÷èãäýõ õýëáýð :
Return [(]<èëýðõèéëýë > [ )];
Æèøýý : return a+b;
return (a+b);
return a;
return (a);
Return ¿éëäýë ã¿éöýòãýõýä óäèðäëàãà òóõàéí ôóíêöýýñ ãàðíà.ªºðººð õýëáýë íýã áëîêò ò¿¿íèé àðä áè÷èãäñýí ¿éëäë¿¿ä áèåëýõã¿é.

Int sum(int a, int b)
{ int k ;
k=a+b;
return k;
printf(“sum=%d ”, k); ýíý ¿éëäýë õýçýý ÷ áèåëýãäýõã¿é.

Ôóíêöûã çàðëàõ
• Õýðýâ ôóíêö int –ýýñ ÿëãààòàé óòãà áóöààäàã áîë ò¿¿íèéã çààâàë çàðëàõ øààðäëàãàòàé.
• Ôóíêöûã çàðëàõäàà òóõàéí ôóíêö ðóó äàìæèõ àðãóìåíòèéí áîëîí áóöààõ óòãûí òºðëèéã çààíà.
• Ôóíêö çàðëàõ áè÷ëýã
< áóöààõ òºðºë > <ôóíêöûí íýð >(< àðãóìåíòèéí òºðºë>,...)
Æèøýý :
int sum (int , int);
Æèøýý :
int max (int , int);
main()
{ printf(“Sum=%d”, sum( 5,7 ));
printf(“Max=%d”,Max ( 5,7 ));
}
Ôóíêöûã çàðëàõ
Õýðýâ ôóíêö ¿íýõýýð þó ÷ áóöààäàãã¿é áîë ò¿¿íèéã çàðëàõäàà íýðèéíõ íü ºìíº void ò¿ëõ¿¿ð ¿ãèéã õýðýãëýíý.
Void print_it (n)
Void ãýæ òîäîðõîéëæ ºãñíººð ôóíêö çàðëàëò áà ôóíêö äóóäàëòûã ÿëãàæ ºãíº.
int i, j ;
wizard();
Ýíý ôóíêö íü óòãà áóöààäàãã¿é ó÷èð ò¿¿íèéã çàðëàõäàà òºðºë áè÷èõã¿é ãýâýë ýíý íü ôóíêö äóóääàã áè÷ëýãòýé àäèëõàí áîëîõ þì.
int i , j;
void wizard();
̺í àðãóìåíò ãàäààä¿é ôóíêöûã çàðëàõäàà ÷ void ò¿ëõ¿¿ð ¿ãèéã àøèãëàäàã.
Void Sum (void);
Main()
{ sum ();
}
sum()
{printf(“Sum=%d”,a+b);}
Ôóíêöûí àðãóìåíòóóä
Ñè õýëýíä æèíõýíý àðãóìåíòóóäûí òîî íü òîäîðõîéëñîí òîîíîîñîî áàãà áàéæ áîëíî.
Çàðèì ñòàíäàðò ôóíêö áóþó printf , scanf íü õóâüñàõ òîîíû æèíõýíý àðãóìåíòóóäòàé áàéäàã.
include
{ sum (i, j , k , n);
int i , j, k, n;}
{ return(i+j+k+n);}
main()
{printf(“sum:%d ”, sum(1,2,3));}
Àðãóìåíòèéí òºðºë
Æèíõýíý àðãóìåíòèéí òºðºë íü òîäîðõîéëñîí òºðºëòýéãýý èæèë áàéõ àëáàã¿é.
Float max( a,b )
Float a,b;
{if (a>b) return a;
else return b;
}
printf(“%d\n”,(int) max ((float) 2 , (float) 3));
printf(“%f\n”, max((float ) 5.23 , (float ) 6.28) ;

Óòãààð äàìæóóëàõ
-Áèäíèé ºìíº ¿çñýí áàéäëààð ôóíêöýä àðãóìåíò äàìæóóëàõàä òóõàéí óòãóóä íü ôóíêöûí ìóæèä äàõèí íýã õóâü õóóëàãääàã.
-Èéìýýñ ýíý àðãóìåíòèéí óòãûã ººð÷èëñºí ÷ òóõàéí ôóíêöýä óòãàà äàìæóóëñàí ¿íäñýí õóâüññàã÷ûí óòãà ººð÷ëºãääºãã¿é.
-èéì áàéäëààð ôóíêöýä àðãóìåíò äàìæóóëàõûã óòãààð äàìæóóëàõ ãýíý.

Õàÿãààð äàìæóóëàõ
Õàðèí õóâüñàã÷ûí óòãûã ôóíêö äîòðîîñ ººð÷ëºõèéí òóëä õàÿãààð äàìæóóëàõ ãýäýã àðãûã õýðýãëýäýã.Ýíý àðãûí ãîë ìºí ÷àíàð íü ôóíêöýä õóâüñàã÷ûí óòãà äàìæóóëàõûí îðîíä õóâüñàã÷ûí õàÿãèéã äàìæóóëäàã.Õóâüñàã÷ûí óòãûã ººð÷ëºõ人 òóõàéí õóâüñàã÷ûí õàÿãààð íü õàíäàæ ººð÷èëíº.
Æèøýý : 2 á¿õýë òîîí õóâüñàã÷èéí óòãûã ñîëüäîã ôóíêö .

Swap (m, n)
Int *m , *n;
{ int temp;
temp=*m;
*m= *n;
*n=temp;
} *-çààã÷ õóâüñàã÷ (õàÿã)
Æèøýý : Ýíý ôóíêöûã äóóäàõäàà swap(&m , &n); äóóäíà.
ªºðººð õýëáýë òóõàéí ôóíêöýä õóâüñàã÷äûí óòãûã áèø òýäãýýðèéí õàÿãèéã äàìæóóëàõ ¸ñòîé ó÷ðààñ & ¿éëäëèéã àøèãëàí õàÿãèéã íü àâ÷ ôóíêöýä äàìæóóëæ áàéíà.


Æèøýý :
Temp =*m; /*m-èéí àãóóëæ áàéãàà õàÿãò áàéãàà óòãûã temp- õèéæ áàéíà.*/
*m=*n; /*n-èéí àãóóëæ áàéãàà õàÿãò áàéãàà óòãûã m õàÿãò õèéæ áàéíà.*/
*m=temp; /*temp-èéí óòãûã m- àãóóëæ áàéãàà õàÿãò õèéæ áàéíà.