More Related Content Similar to Lecture 9 (20) More from Tuguldurbayar Gantogoo More from Tuguldurbayar Gantogoo (14) Lecture 94. Review
Хэрэглэгчийн функц гэж юу вэ?
Энэ нь програмын биеэ даасан нэг хэсэг болж
олон дахин давтагддаг үйлдлийн кодыг ахин
дахин бичих ажлыг хөнгөвчилдөг давуу талтай.
Функцийг ашигласнаар
Хугацаа хэмнэнэ
Код бичилтийг багасгана
Эмх цэгцтэй ойлгомжтой болгоно
Бүхий л програмчлалын хэлүүд функлэг хэлбэрээр
програмчладаг учир функцтэй хэрхэн ажиллах тал дээр
туршлагатай хүн ямар ч програмчлалын хэлийг анхан
шатанд ойлгох боломжтой
4
5. Функцийг зарлах
Main() Функцийн өмнө нь ихэвчлэн функцийг
зарлаж тодорхойлдог. Функ зарлагдсанаас
хойших програмын аль ч хэсэгт функцийг
нэрээр нь дуудаж ажиллуулж болно.
Функцийг зарлах хэлбэр:
<Буцах-утгын-төрөл> <Функцийн-Нэр>(Параметрүүд)
{
<үйлдлүүд>
Return [<Буцах-утга>];
}
5
6. Функцийг зарлах - үргэлжлэл
Жишээ нь: float yazguur(int a)
{ return sqrt(a); }
Буцах утгын
төрөл
void
int
float
double
char
unsigned int
unsigned float
unsigned double
Функцийн
нэрутга бүхий
дурын нэр
Kvadrat
Kub-oloh
Too
hevleh
MyFunction
Функцруу
дамжуулах утга
(int a)
(int a, int b)
(int a, float b)
(int a, float b, int c)
()
(void)
6
7. Функын хэрэглээ
Жишээ 1.
Өгөгдсөн тооны кубыг олох
#include <stdio.h>
long cube(long x)
{
long x_cubed
x_cubed = x*x*x;
long x_cubed;
}
long in, ans;
void main()
{
printf(“Too oruulna uu: ”);
scanf(“%d”,&in);
ans= cube(in);
printf(”n%1d toonii
kub=%ldn”,in,ans);
return 1;
}
Үр дүн:
Too oruulna uu: 30
30 toonii kub= 27000
7
8. Жишээ 2
Хоёр тооны ихийг ол: үүнд функ ашиглах
#include <stdio.h>
int x,y,z;
int ihiig_oloh(int a, b){
if(a>b)
return a;
else return b; }
int main(){
puts(“hoyr too oruul”);
scanf(“%d%d”,&x,&y);
z=ihiig_oloh(x,y);
printf(“n ih n %d”,z);
return 1;
}
8
9. Review of Function
Локаль ба глобаль хувьсагч
Массив
9
10. Локаль ба глобаль хувьсагч
Хувьсагчийг функцийн эхэнд зарладаг тухай бид
үзсэн билээ. Ийм зарлалтаас гадна толгой
файлуудыг дуудсаны дараа зарлаж болдог.
Жишээ нь:
#include <stdio.h>
int a,b,c,d,e; //edgeer n global huvisagch bolno
Глобаль хувьсагчийн онцлог нь програмын аль ч
талбар, функц, блокуудад ашиглах боломжтой
болдог.
Жишээлбэл:
Main(){
int a;} а хувьсагч нь зарлагдсан блокдоо л хүчинтэй
10
11. Локаль ба глобаль хувьсагч
Глобаль хувьсагчийн хувьд програм дуустал
санах ойгоос устахгүй
Харин дотоод буюу функц дотор зарлагдсан
аливаа хувьсагчийг локаль хувьсагч гэх ба тэр
функц биелэж дууссаны дараа санах ойгоос
устдаг байна
11
12. Жишээ 3.
#include<stdio.h>
int x=1,y=2;
void demo();
{
int x=88,y=99;//Локаль хувьсагч зарлах
/*Локаль хувьсагчийг хэвлэх*/
printf(“ndemo() dotor: x=%d, y=%d”,x,y);
}
void main(){
printf(“ndemo() duudahiin omno: x=%d,y=%d”,x,y);
demo();
printf(“ndemo() duudsnii daraa: x=%d,y=%d”,x,y);
return 0;
}
Үр дүн:
demo() duudahiin omno: x=1,y=2
demo() dotor: x=88,y=99
demo() duudsnii daraa: x=1,y=2
Функ дахь локаль
хувьсагч
12
13. Блок дахь локаль хувьсагч
#include<stdio.h>
int c=0;
printf(“nmain() funktsiin c=%d”,c);
{//blockiin ehlel
int c= 5555;
printf(“nBlock dotorh c=%d”,c);
}//blockiin togsgol
printf(“nBlockiin gadna c=%d”,c);
return 0;
}
Үр дүн:
main funktsiin c=0
Block dotorh c=5555
Blockiin gadna c=0
13
14. Review of Function
Локаль ба глобаль хувьсагч
Массив
14
15. Массив төрөл
Ижил төрлийн элементүүдийн цуглуулгыг
массив гэнэ. Массивийг нэг хэмжээст буюу
шугаман, хоёр хэмжээст буюу тэгш өнцөгт мөн
олон хэмжээст гэж ангилж болно.
15
16. 16
Ìàññèâ
Èæèë çîðèëãîîð õýðýãëýãäýõ îëîí óòãûã àøèãëàõдаа дараах
байдлаар зарлаж áîëíî.
int name1=101;
int name2=202;
int name3=303;
Гэвч хóâüñàã÷äûí òîî èõñýõ òîõèîëäîëä òýäãýýðòýé
àæèëëàõàä ìàø èõ õ¿íäðýëòýé áîëäîã áà ýíý òîõèîëäîëä ìàññèâ ãýæ
íýðëýãäýõ íèéëìýë òºðëèéã àøèãëàõ íü òîõèðîìæòîé.
17. 17
Ìàññèâ
Èæèë òºðëèéí îëîí óòãûã õàäãàëàõ áîëîìæòîé, ºãºãäëèéí íèéëìýë
òºðëèéã ìàññèâ ãýíý.
Ìàññèâ íü îëîí ýëåìåíòòýé ìàòðèö ìýòýýð òºñººëºãäºõ áºãººä
ýëåìåíòýä íü õàíäàõûí òóëä òóñãàé äóãààðààð õàíäàíà.
Ìàññèâûã çàðëàõûí òóëä õóâüñàã÷èéí íýðèéí àðä [ ] áóþó õîñ
õààëò àøèãëàíà. Õîñ õààëòàíä òóõàéí ìàññèâûí ýëåìåíò¿¿äèéí òîîã
áè÷èæ ºãíº.
18. 18
Íýã õýìæýýñò ìàññèâûã çàðëàõ
Íýã õýìæýýñò ìàññèâ ãýäýã íü øóãàìàí ìàññèâ þì.
<òºðºë> <íýð>[<èíäåêñ>]
Æèøýý : int a[5];
int b[100];
Ìàññèâûí àãóóëæ ÷àäàõ
ýëåìåíòèéí òîî
Ìàññèâûí
ýëåìåíòèéí
òºðºë
19. 19
Ìàññèâ ñàíàõ îéä áàéðëàõ
Íýã õýìæýýñò ìàññèâ íü ñàíàõ îéä äàðààëñàí áàéðëàëòàé
áàéíà.
int À[5] ìàññèâ ñàíàõ îéä áàéãàà íü :
Õýðýâ sizeof ¿éëäëèéã àøèãëàí À-ãèéí õýìæýýã îëáîë 10
ãýñýí ¿ð ä¿íã ¿ç¿¿ëíý.
Ó÷èð íü int òºðºë íü 2 byte õýìæýýòýé áà íèéò 5
ýëåìåíòòýé òóë 5*2=10 byte þì.
A[0] A[1] A[2] A[3] A[4] . . .
20. 20
Ìàññèâûí àíõíû óòãûã îëãîí çàðëàõ
Ìàññèâûí ýëåìåíò¿¿äèéí àíõíû óòãûã { } õîñ õààëòàíä
áè÷äýã.
int val[5]={ 10, 40, 70, 90, 120 };
Èíãýæ çàðëàñàí íü ìàññèâûí ýëåìåíò¿¿äýä äàðààõ áàéäëààð óòãà
îëãîñîíòîé èæèë þì.
val[0] = 10; val[1] = 40;
val[2] = 70; val[3] = 90; val[4] = 120;
Ñè õýëýíä ìàññèâûí ýëåìåíò¿¿äèéã 0-ýýñ ýõëýí
äóãààðëàäàã
21. 21
Æèøýý
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”;
22. 22
Àíõíû óòãà îëãîæ çàðëàõ
Ìàññèâûã çàðëàõäàà õîñ õààëòàíä ¿ðãýëæ ýëåìåíòèéí òîîã
áè÷èæ áàé.
Õàðèí ìàññèâò àíõíû óòãûã îëãîæ çàðëàõäàà ë òîîã áè÷èõã¿é
áàéæ áîëíî.
int ages[5]={ 5,27,40,65,92 }; /* Ǻâ */
int ages[]; /* Áóðóó */
int ages[5]={ 5,27,40,65,92 }; /* Ǻâ */
23. 23
Àíõíû óòãà îëãîæ çàðëàõ
Õýðýâ ìàññèâûí á¿õ ýëåìåíòèéã 0-ýýð ä¿¿ðãýõèéã
õ¿ñâýë, äàðààõ áè÷ëýãèéã àøèãëàíà.
float A[100]={0.0}; /* Á¿õ ýëåìåíòèéã òýãëýõ */
Æèøýýíä ìàññèâûí ýõíèé íýã ýëåìåíòýä ë óòãà îëãîæ
áàéíà.
Ãýâ÷ ìàññèâûí ÿäàæ íýã ýëåìåíòýä àíõíû óòãûã íü
îëãîâîë Ñè áóñàä ýëåìåíòèéã íü 0-ýýð ä¿¿ðãýäýã.
24. 24
Ìàññèâûí ýëåìåíòýä óòãà îëãîõ
Ìàññèâûí ýëåìåíòýä óòãà îëãîõ ìºí ýëåìåíò äýýðõ ¿éëäë¿¿ä
íü åðäèéí õóâüñàã÷èä óòãà îëãîõ, èëýðõèéëýëä îðîëöîõ
õýëáýðòýé èæèë áîëíî.
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]);
25. 25
Ìàññèâûí ýëåìåíòèéã ãàðààñ óíøèõ
Ìàññèâûí ýëåìåíòèéã õýðýãëýõ íü õóâüñàã÷ àøèãëàõ
õýëáýðòýé èæèë ó÷èð ýëåìåíò¿¿äèéã ãàðààñ óíøèõäàà
äàðààõ áàéäëààð óíøèíà.
scanf(“%d”,&a[1]);
scanf(“%d”,&a[2]);
scanf(“%d”,&a[3]);
Ìàññèâûí ýëåìåíò¿¿äèéã ãàðààñ óíøèõäàà öèêë àøèãëàõ íü
òîõèðîìæòîé.
26. 26
Æèøýý
Æèøýýíä öèêëèéí òîîëóóð 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
27. 27
Ìàññèâûí ýëåìåíò¿¿äèéã õýâëýõ
Ìàññèâûí çàðèì ýëåìåíòèéã õýâëýõäýý äàðààõ áàéäëààð õýâëýíý.
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]);
28. 28
Õî¸ð õýìæýýñò ìàññèâ
Ñè õýëýíä íýãýýñ îëîí õýìæýýñò ìàññèâ çàðëàí àøèãëàõ
áîëîìæòîé áàéäàã.
Îëîí õýìæýýñò ìàññèâ äýýð õýðõýí àæèëëàõûã 2 õýìæýýñò
áóþó õ¿ñíýãò ìàÿãèéí ìàññèâ äýýð àâ÷ ¿çüå.
Èéì ìàññèâûí ýëåìåíòýä ìºð, áàãàíà ãýñýí 2 äóãààðààð
õàíäàíà. Äóãààðëàõ óòãà íü ìºí ë 0-ýýñ ýõýëíý.
29. 29
Õî¸ð õýìæýýñò ìàññèâ
À ì àññèâ (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]
30. 30
Õî¸ð õýìæýýñò ìàññèâ ñàíàõ îéä
2 õýìæýýñò ìàññèâ ñàíàõ îéä áàéðëàõ
ªºðººð õýëáýë :
Õî¸ð õýìæýýñò ìàññèâûí ñàíàõ îé äàõü õýìæýýã äàðààõ
áàéäëààð îëæ áîëíî.
̺ðèéí òîî * Áàãàíûí òîî * Òºðëèéí õýìæýý
1-ð ì ºð 2-ð ì ºð 3 ì ºð
A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1]
31. 31
Õî¸ð õýìæýýñò ìàññèâûã çàðëàõ
Çàðëàõ õýëáýð :
<òºðºë> <íýð>[<èíäåêñ>][<èíäåêñ>]
ýñâýë
<òºðºë> <íýð>[ ][<èíäåêñ>]
Æèøýý :
int a[3][4];
int b[2][5];
̺ðèéí òîî Áàãàíûí òîî