C lects (4)

1,595 views

Published on

Published in: Technology, Health & Medicine
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,595
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
55
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

C lects (4)

  1. 1. Functions Функц
  2. 2. Functions- функц  Тодорхой нэртэй бүлэг коммандууд  Тодорхой утга зорилготой байна.  Дэд програм  main нь функц юм  main дотроос өөр функцуудыг дуудна  Функцийн дотроос бусад функцийг дуудаж болно гэх мэтээр…
  3. 3. Жишээ - Квадрат #include <stdio.h> double square(double a) Main –н гадаа { return a*a; тодорхойлогдсон функц } int main(void) { double num; printf("enter a numbern"); Square функцийг scanf("%lf",&num); дуудаж байна printf("square of %g is %gn",num,square(num)); return 0; }
  4. 4. Яагаад функц хэрэглэх шаардлагатай вэ?  Бодлогыг жижиг хэсгүүдэд хувааж өгдөг  Том хэмжээний бодлогыг бодох хялбар арга  Дахин дахин хэрэглэгдэх зааврууд  Бид нэг ижил зүйлийг дахин дахин бичих хэрэггүй  printf ба scanf …  Програмыг уншиж ойлгоход хялбар болно
  5. 5. Функц бичигдэх хэлбэр return-type name(arg_type1 arg_name1, arg_type2 arg_name2, …) { function body; return value; } double square(double a) int main(void) { { return a*a; … } }
  6. 6. Return комманд  Return биелэхэд функцийн биелэлт дуусаж дуудсан функцэд утгыг буцааж өгдөг  Буцах утгын төрөл функцийн төрөлтэй адил байх ѐстой
  7. 7. Дасгал Өгөгдсөн эерэг бүхэл тоо хүртлэх анхны тоонуудыг хэвлэх програм бич. (Хэрэв параметр нь анхны тоо бол нэг бусад тохиолдолд 0 утгыг буцаадаг функц ашигла)
  8. 8. Бодолт is_prime_func.c
  9. 9. Void төрөл  Зарим үед функц утга буцаах шаардлагагүй байдаг  Энэ үед ‘void’ төрлийн утгыг буцаана  ‘return’ үг таарвал функцийн биелэлт утга буцаахгүйгээр дуусна
  10. 10. Void  Хэрэв функц параметр авдаггүй бол ‘void’ гэж бичиж болно
  11. 11. Жишээ void ShowHelp(void) { printf("This function explains what this program does…n"); printf(“hgjdgshgdfj sjdgf jsf"); /* ... */ } int main(void) { char choice; printf("Please enter your selection: "); scanf("%c", &choice); if (choice==‘h’) ShowHelp(); else if /* Program continues … */ }
  12. 12. Утгаар дамжуулах  Функц аргументийг хүлээн авахдаа түүний хуулбарыг авч болно  энэ үед функц дотор уг аргументыг өөрчлөхөд эх хувь үл өөрчлөгдөнө  Жишээ нь – add_one.c
  13. 13. add_one – алхам алхмаар int add_one(int b) main() memory state { b=b+1; a b return b; } 34 1 int main(void) { int a=34,b=1; a = add_one(b); printf("a = %d, b = %dn", a, b); return 0; }
  14. 14. add_one – алхам алхмаар int add_one(int b) main() memory state { b=b+1; a b return b; } 34 1 int main(void) { int a=34,b=1; a = add_one(b); printf("a = %d, b = %dn", a, b); return 0; }
  15. 15. add_one – алхам алхмаар int add_one(int b) main() memory { state b=b+1; a b return b; } 34 1 int main(void) add_one memory { state int a=34,b=1; b a = add_one(b); 1 printf("a = %d, b = %dn", a, b); return 0; }
  16. 16. add_one – алхам алхмаар int add_one(int b) main() memory state { b=b+1; a b return b; } 34 1 int main(void) add_one memory state { int a=34,b=1; b a = add_one(b); 2 printf("a = %d, b = %dn", a, b); return 0; }
  17. 17. add_one – алхам алхмаар int add_one(int b) main() memory { state b=b+1; a b return b; } 34 1 int main(void) add_one memory { state int a=34,b=1; b a = add_one(b); 2 printf("a = %d, b = %dn", a, b); return 0; }
  18. 18. add_one – алхам алхмаар int add_one(int b) main() memory { state b=b+1; a b return b; } 2 1 int main(void) { int a=34,b=1; a = add_one(b); printf("a = %d, b = %dn", a, b); return 0; }
  19. 19. add_one – алхам алхмаар int add_one(int b) main() memory { state b=b+1; a b return b; } 2 1 int main(void) { int a=34,b=1; a = add_one(b); printf("a = %d, b = %dn", a, b); return 0; }
  20. 20. Үүнийг тайлбарла #include <stdio.h> int main(void) { int factorial(int n) int n; { int fact = 1; printf("enter a numbern"); scanf("%d",&n); while (n>1) { printf("%d!=%dn", n, fact *= n; factorial(n)); n--; } /* What will this print? */ printf("n = %dn", n); return fact; return 0; } }
  21. 21. Хувьсагчийн үйлчлэх хүрээ  Функц дотор зарлагдсан хувьсагч ижил нэртэй бусад газар зарлагдсан хувьсагчаас үл хамаарна  Өөр функц дотор зарлагдсан хувьсагч руу функц хандаж чадахгүй  Жишээ – scope.c
  22. 22. Scope.c int do_something(void) int main(void) { { int a; int res, a = 34; printf("Entered do_somethingn"); printf("Entered mainn"); a = 7; printf("In main, a = %dn",a); printf("In do_something, a = %dn", a); res = do_something(); printf("do_something returned %dn", res); printf("Exiting do_somethingn"); return a; printf("In main, a = %dn", a); } printf("Exiting main...n"); return 0; }
  23. 23. Энд юу буруу байна вэ? int add_one(int b) { a=b+1; } int main(void) { int a=34,b=1; add_one(b); printf("a = %d, b = %dn", a, b); return 0; }
  24. 24. Функцийн зарлалт  C бичсэн сайн програм нь олон файлуудаас бүрддэг  Бид аль нэг файлд функцийг бичээд бусад файлуудад ашиглаж болно
  25. 25. Функцийн зарлалт  Функц нь түүнийг хэрэглэхээр дуудахаас өмнө заавал зарлагдсан байх ѐстой  Зарлалт нь: биегүй байна return_type Function_name(argument types);
  26. 26. Функцийн зарлалт #include <stdio.h> int factorial(int a); /* Функцийн зарлалт! */ int main(void){ int num; printf("enter a numbern"); scanf("%d", &num); printf("%d != %dn", num, factorial(num)); return 0; } int factorial(int a){ int i, b = 1; for(i = 1; I <= a; i++) b = b*i; return b; }
  27. 27. Функцийн зарлалт  stdio.h файлд олон тооны функцийн зарлалт байдаг  #include нь дуудагдсан функцийн зарлалтыг хөрвүүлэгчид оруулж өгнө
  28. 28. math сан  Математик функцуудын сан  Ашиглахдаа (#include <math.h>)  Жишээ нь. double s,p; s = sqrt(p);  math.h санд уг функц зарлагдсан: double sqrt (double x);
  29. 29. math сангийн зарим функц  sin(x), cos(x), tan(x)  x радианаар өгөгднө  asin(x), acos(x), atan(x)  log(x)  sqrt(x)  pow(x,y) – x-н yзэрэгт.  ceil(x), floor(x) …гэх мэт
  30. 30. Дасгал Дараах томъѐог ашиглан π2 1 1 1 1 2 1  6 n 1 n 4 9 16 -г ойролцоогоор бодох програм бич. Функцийн аргумент n –г хүлээн авч бодолтыг хийнэ. Буцах утга нь байна.
  31. 31. Дасгал Өмнөх бодлогыг тодорхой нарийвчлалд хүргэж боддог болго. Функцийн аргумент нь нарийвчлалын утга байна.

×