Saturday, October 2, 2010

Си програмын бүтэц


Ерөнхий бүтэц
Си програм бол ямар нэг текст мөрүүдэд хуваагдсан байна. програмын дунд main гэсэн нэртэй нэг функц үндсэн програмын үүргийг гүйцэтгэнэ. Үндсэн функц нь ямар ч Си програмд дандаа оршиж байх ёстой. Үндсэн функцын нэрийг дураар сонгож болохгүй бөгөөд ямагт main гэсэн нэртэй байна.
директивүүд                 /* препроцессорын командууд */
main( )                                      /* үндсэн функцын толгой хэсэг (заавал бичих ёстой!) */
{                                                /* функцын биеийн эхлэл (заавал бичих ёстой!) */
       өгөгдлийг_зарлах;              /* хувьсагчууд, тогтмолууд г.м. */
       биелэгдэх_операторууд;     /* үйлдлүүд */
}                                                 /* функцын биеийн төгсгөл (заавал бичих ёстой!) */
гэсэн хэлбэртэй.

Бяцхан програмын бүтэц
/* Ene minii anhii C program */
#include<stdio.h>
main()
{
       printf(“Bi bol HAAGII”);
       return 0;
}
Bi bol HAAGII

/* Ene minii anhii C program */
#include<stdio.h>
#include<conio.h>
main()
{
       printf(“Bi bol HAAGII”);
       getch();
       return 0;
}
Bi bol HAAGII

Стандарт толгой файлууд
alloc.hсанах ойтой ажиллах        
assert.hпрограмыг шинжлэх
conio.hтекст горимд оролт, гаралтын төхөөрөмжтэй ажиллах
ctype.hтэмдэгттэй ажиллах
dos.h – MSDOS үйлдлийн системтэй ажиллах
errno.hалдаа шалгах
float.h – бодит тоон өгөгдөлтэй ажиллах
graphics.hграфик горимд ажиллах
limits.h - бүхэл тоон өгөгдлийн хязгаарын утгууд
math.hматематик тооцоо хийх
signal.hонцгой тохиолдлуудыг шийдвэрлэх
stdarg.h – хувьсах тооны аргументууд бүхий функцтэй ажиллах
stdio.hоролт, гаралтын хэрэгслүүд
stdlib.h – ерөнхий хэрэглээний функцууд (мөн санах ойтой ажиллах)
string.hтэмдэгт мөртэй ажиллах
time.h – он, сар, өдөр болон хугацаатай ажиллах

Си хэлний операторууд
Утга олгох оператор ( = )
  int a, b;     /*   a:?  b:?   */
  a = 10;           /*   a:10 b:?  */
  b = 4;             / a:10 b:4  */
  a = b;             / a:4 b:4    */
  b = 7;             / a:4 b:7     */
Арифметик оператор ( + - * / )
Нийлмэл утга олгох оператор (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
      a += 1;    (a = a + 1;)
a -= 5;
   (a = a - 5;)
a /= b;
   (a = a / b;)
price *= units + 1;
  (price = price * (units + 1);)
Нэмэгдүүлэх ба хорогдуулах оператор ( ++ -- )
  B=3;  A=++B;  /*  A=4, B=4 */
  B=3;  A=B++;  /*  A=3, B=4  */
  i=1;  i++;  /*  i=2  */
Харьцуулах оператор
  ==  Тэнцүү  !=   Тэнцүү биш  >    Их 
  <    Бага   >=   Их буюу тэнцүү  <=  Бага буюу тэнцүү

Хоосон оператор (;)
  Цэгтэй таслал нь хоосон операторын үүрэг гүйцэтгэдэг. Бид оператор үйлдлүүдийн ард цэгтэй таслал тавьдаг. Тэгвэл энэ цэгтэй таслалыг операторгүй үед тавих буюу нэг операторын ард хоёр цэгтэй таслал тавих юм бол сүүлийн цэгтэй таслал нь хоосон оператор болж програмын үйлдэлд нөлөөлдөг. Тиймээс хаана цэгтэй таслал тавих тухайгаа програм зохиогч мэдэж байх шаардлагатай.

Блоклох оператор { }
  Програмын явцад хэд хэдэн үйлдлүүдийг нэгтгэж нэг бүлэг үйлдэл болгох  операторыг хэлнэ.
Жишээлбэл:
  {
  Үйлдэл 1;
  Үйлдэл 2;
  Үйлдэл 3;
  } 

Оролт гаралтын scanf( );   printf() ; функцүүд
  Эдгээр функцүүдийн бичигдэх хэлбэр нь:

scanf ( % ФОРМАТ , &  ОРУУЛАХ  ХУВЬСАГЧИЙН  НЭР );
printf ( % ФОРМАТ ,  ГАРГАХ  ХУВЬСАГЧИЙН  НЭР )

printf( “Bi bol HAAGII” );

 “%d” , “%i”– int төрлийн бүхэл утга
 “%u” – unsgned int төрлийн бүхэл утга
 “%c” – char төрлийн бүхэл утга
 “%f” – float төрлийн бодит утга
 “%lf” – double төрлийн бодит утга
 “%s” – string буюу тэмдэгтүүдийн дараалал

printf ( “ % ФОРМАТ ”, ГАРГАХ  ХУВЬСАГЧИЙН  НЭР)

\n – шинэ мөр буюу дараагийн мөрөнд шилжүүлэх
\a – дохио дугаргах
\t tab товчны үүрэг гүйцэтгэнэ.
\ooo – тоог 8тийн тооллын системд хэвлэх
\xHH – тоог 16тийн тооллын системд хэвлэх гэх мэт

/* Ooriinhoo ner ovogiig garaas oruulaad hevleh. */
#include<stdio.h>
#include<conio.h>
main()
{
      char x[10],y[10];
      printf("Ta aaviinhaa neriig oruulna uu:");
      scanf("%s",&x);
      printf("Ta ooriinhoo neriig oruulna uu:");
      scanf("%s",&y);
      printf("Taniig %s-iin %s gedeg.",x,y);
      getch();
}
Ta aaviinhaa neriig oruulna uu:Gansukh
Ta ooriinhoo neriig oruulna uu:Munkhbat
Taniig Gansukh-iin Munkhbat gedeg.
/* a huvisagchiin utgiig oorchloy. */
#include<stdio.h>
#include<conio.h>
main()
{
       int a=5;
       printf(“%d \n”,a);
       a=2+9;
       printf(“%d \n”,a);
       getch();
}
5
11
_

/* Nemegduuleh horogduulah uildluudiin haritsuulalt*/
#include<stdio.h>
#include<conio.h>
int a,b;
main()
{
        a=b=5;
        printf(”\n %d     %d”, a--, --b);
printf(“\n %d     %d”, a--, --b);
printf(“\n %d     %d”, a--, --b);
printf(“\n %d     %d”, a--, --b);
        printf(“\n %d     %d”, a--, --b);
       getch();
}
5         4
4          3
3          2
2          1
1          0

Хуваах үйлдлийн жишээ.

#include<stdio.h>
#include<conio.h>
main()
{
      int a,b,s;
      float x,y,z;
      printf("buhel utguud-> ");
      scanf("%d%d",&a,&b);
      printf("bodit utguud-> ");
      scanf("%f%f",&x,&y);
      s=a/b;
      z=x/y;
      printf("Ur dun 1-> %d\n",s);
      printf("Ur dun 2-> %.2f",z);
      getch();
}
buhel utguud-> 10    3
bodit utguud->  10    3
Ur dun 1-> 3
Ur dun 2-> 3.333333

Өгсөн 4 оронтой бүхэл тооны цифрүүдийн үржвэр нийлбэрийг ол.

#include<stdio.h>
#include<conio.h>
main()
{
      int m,a,b,c,d,s,v;
      printf("Ta 4 orontoi too oruul:");
      scanf(“%d",&m);
           a=m/1000;
           b=m/100%10;
           c=m/10%10;
           d=m%10;
            s=a+b+c+d;
            v=a*b*c*d;
      printf(“Niilber = %d Urjver = %d“,s,v);
      getch();
}
Ta 4 orontoi too oruul:4562
Niilber = 17 Urjver = 240
Ta 4 orontoi too oruul: 1234
Niilber = 10
Urjver = 24

Харьцуулах үйлдлүүд ашигласан жишээ.

#include<stdio.h>
#include<conio.h>
main()
{
      int a,b;      int m,n,l,i,j,k;
      printf(“2 buhel too oruul -> ");
      scanf(“%d",&a,&b);
           m=a
           n=a>b;
           l=a!=b;
           i=a==b;
           j=a<=b;
           k=a=>b;
      printf(“Ur dund analiz hii\n”);
      printf(“%d\n%d\n%d\n%d\n%d\n%d”,m,n,l,I,j,k);
      getch();
}
2 buhel too oruul -> 5 6
Ur dund analiz hii
1
0
1
0
1
0
2 buhel too oruul -> 4 2
Ur dund analiz hii
1
0
1
0
1
0

math.h сангийн  sqrt  функцүүдийг ашигласан жишээ.  

#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
      int a,b;    
      float k;
      printf(" too oruul -> ");
      scanf("%d",&a);
            b=sqrt(a);
             k=sqrt(a); 
      printf("Ur dund analiz hii\n");
      printf("%f\n%d",k,b);
      getch();
}
too oruul -> 9
Ur dund analiz hii
3.000000
3
 too oruul -> 12
Ur dund analiz hii
3.464102
3

Бие Даалт
1.Өгөгдсөн a, b хоёр бодит тооны үржвэрийг олох програм зохио.
2.Өгсөн а тоог квадрат зэрэг дэвшүүлэх програм зохио.
3.Гурван оронтой m тоо өгөгдсөн бол түүний цифрүүдийг хэвлэх програм зохио.
4.4 оронтой  тооны хөрөвсөн тоог үүсгэх програм зохио.
5.5 оронтой тооны хөрөвсөн тоог үүсгэх програм зохио.
6.6 оронтой тооны цифрүүдийн нийлбэр ба үржвэрүүдийг хэвлэх програм зохио.
7.6 орнтой тооны захын 2 цифрийн үжрвэрийг ол.
8.4 орнтой тооны голын 2 цифрийн нийлбэрийг квадрат зэрэг дэвшүүлэх програм зохио.

















 
 

 

No comments:

Post a Comment