Join Us on Facebook Follow us on Twitter Add to Circles

Monday, December 29, 2014

C Program: មេរៀនទី៦: អនុគមន៍ និង ម៉ាក្រូ




6.1. សញ្ញាណទូទៅនៃ Sub Program
                   តើហេតុអ្វីបានជានៅក្នុងកម្មវិធីធំៗអ្នកសរសេកម្មវិធីតែងតែបែងចែកទៅជា Sub Program​​ តូចៗច្រើនម្លេះ​ន៌?
-កាត់បន្ថយភាពស្មុគស្មាញ
-ងាយស្រួលក្នុងការស្វែង និង កែសម្រួលកំហុស
-សរសេមួយដងអាចហៅទៅប្រើច្រើនដង


6.2. អនុគមន៍ (Function)
-Function មាន២ប្រភេទៈ standard function និង self define function.
-អនុគមន៍អាចមាន ឬ គ្មានតំលៃត្រលប់(ដូចជា អនុគមន៍ ប្រភេទ void ជាដើម)
-ទំរង់
int sum(int  x, int  y)
{
  
}

-int ប្រភេទអនុគមន៍
-int x,int y ជាប៉ារ៉ាម៉ែត
-sum ឈ្មោះអនុគមន៍
- { ចាប់ផ្ដើមអនុគមន៍
-  }​ បញ្ចប់អនុគមន៍
-  ……   តួខ្លួនអនុគមន៍
Ex:
void main()
{
  
}

Ex:
void hello()
{
   printf(“Hello “);
}
Ex:
int sum(int x, int y)
{
    return x+y;
}

Ex:
#include<stdio.h>
#include<conio.h>
int sum(int x, int y)
{
   return x+y;
}
void main()
{
    printf(“Value of sum =%d”,sum(3,7));
    getch();
}
Ex:
#include<stdio.h>
#include<conio.h>
void sum(int x, int y)
{
   int z;   z=x+y;
   printf(“z=%d”,z);
}
void main()
{
   sum(3,7);
    getch();
}
Ex:
#include<stdio.h>
#include<conio.h>
int sum(int x,int y)
 {
    return x+y;
 }
int mult(int x, int y)
 {
    return x*y;
 }
 int div(int x,int y)
 {
     return x/y;
 }
Ex:
void main( )
 {
      int a,b;
      printf(“Enter a,b=“);scanf(“%d%d”,&a,&b);
      printf(“Result Sum=%d”,sum(a,b));
      printf(“Result Mult=%d”,mult(a,b));
      printf(“Result Div=%d”,div(a,b));
   getch( );
}

6.3. ដែនកំណត់របស់អថេរ
-អថេរក្រៅ(Global Variable)
គឺជាអថេរដែលអាចអោយយើងប្រើប្រាស់បានគ្រប់ទីកន្លែងទាំងអស់នៅក្នុងកម្មវិធី
Ex:ចូរពិនិត្យកម្មវិធីខាងក្រោម៖
#include<stdio.h>
#include<conio.h>
int x,y,a;
void test()
{
printf(“Enter x,y“);
scanf(“%d%d”,&x,&y);
a=x+y;
}
void main()
{
test();
printf(“Result a=%d”,a);
getch();
}

-អថេរក្នុងតំបន់(Local Variable)
គឺជាអថេរដែលអាចប្រើប្រាស់បានតែនៅក្នុងអនុគមន៍ដែលបានប្រកាសវាតែប៉ុន្នោះ
Ex:ចូរពិនិត្យកម្មវិធីខាងក្រោម៖
#include<stdio.h>
#include<conio.h>
int x=2,y=4;
void f1()
{
   int x=10;
   printf(“X in F1 is:%d“,x);
}
void f2()
{
   int x=5;
   printf(“X in F2 is:%d“,x);
   printf(“Y in F2 is:%d“,y);
}
void main()
{
  f1();
  f2();
  getch();
}

    6.4. លក្ខណៈ Recursion នៃ Sub-Program
លក្ខណៈ Recursion នៃ Sub-Program មានន័យថា function អាចហៅខ្លួនឯងមកប្រើបាន

Ex:គណនាតំលៃនៃ N!
N!=?
N!=1 ពេល N=0
N!=(N-1)!.n ពេល N>=1
long int fac(int n)
{
    if(n==0)
       return 1;
   else
       return (fac(n-1)*n);
}

void main()
{
   int n;
   printf(“Enter n=“); scanf(“%d”,&n);
   printf(“ Value n!=%d”,fac(n));
   getch();
}

6.5. Macro
-Macro គឺជាសំណុំនៃ statement និងកន្សោមដែលត្រូវបាន​តំណាងដោយឈ្មោះណាមួយ
-ពេល compile ប្រសិនបើ compiler បានជួបបណ្តាឈ្មោះម៉ាក្រូ នោះវានឹងជំនួសកន្លែងនោះដោយបណ្តា statement ដែលបានប្រកាសពីរួចមុន បន្ទាប់មកទើបអនុវត្តការងារបន្ត
-ទំរង់
#define <ឈ្មោះម៉ាក្រូ> <បណ្តា statment>
Ex:
#include<stdio.h>
#include<conio.h>
#define welcom printf(“Welcome Every One\n”);
#define byby printf(“By By”);
Void main()
{
      clrscr();
      welcom;
      printf(“How r u ?\n”);
      byby;
      getch();
}

No comments:

Post a Comment