SlideShare a Scribd company logo
1 of 9
Download to read offline
Агуулга
Агуулга ............................................................................................................................................... 1
Си хэлний тухай суурь ойлголтууд ................................................................................................. 2
   Си хэлний элементүүд ...................................................................................................................2
   Си хэлний цагаан толгой ...............................................................................................................2
   Идентификатор ..............................................................................................................................2
   Түлхүүр үг ......................................................................................................................................2
   Програмд тайлбар хийх .................................................................................................................3
   Програмын бүтэц ...........................................................................................................................3
Өгөгдийн төрөл .................................................................................................................................. 3
   Бүхэл тоон төрөл ............................................................................................................................4
   Бодит тоон төрөл ...........................................................................................................................4
   Тоочих төрөл ..................................................................................................................................4
   Хоосон төрөл ..................................................................................................................................5
   Төрөл хувиргах ..............................................................................................................................5
Өгөгдлийг оруулах ба гаргах ............................................................................................................ 5
   Printf функц ....................................................................................................................................5
   Puts функц.......................................................................................................................................5
   Курсор удирдах ..............................................................................................................................6
   Scanf функц Өгөгдлийг оруулах...................................................................................................6
Илэрхийлэл ба үйлдэл ....................................................................................................................... 6
   Үйлдэл.............................................................................................................................................6
   Утга олгох .......................................................................................................................................6
   Нэмэгдүүлэх ба хорогдуулах үйлдэл ...........................................................................................7
Нөхцөл шалгах ба сонголтын операторууд..................................................................................... 7
   Харьцуулах үйлдлүүд:...................................................................................................................7
   Нөхцөл шалгах if оператор ...........................................................................................................7
   Логик нөхцөл..................................................................................................................................8
   ? : үйлдэл.........................................................................................................................................8
   Сонголтын оператор switch ..........................................................................................................8
   Break оператор. ..............................................................................................................................9




                                                                           1
Си хэлний тухай суурь ойлголтууд
Си хэлний элементүүд
Програмчлалын Си хэлний элемент гэдэгт тухайн хэлэнд ашиглаж байгаа суурь бүтцийг
хэлнэ. Си хэлний элементүүдэд
1. Цагаан толгой
2. Тогтмолууд
3. Идентификатор
4. Түлхүүр үгс
5. Програмын тайлбар зэрэг орно.
Си хэлний цагаан толгой
Үүнд том жижиг латин үсгүүд, 0-9 гэсэн цифрүүд, хоосон зайн тэмдэгт, tab, мөр шилжүүлэх,
мөрийн төгсгөлийн тэмдэгтүүд, мөн зарим тусгай тэмдэгтүүд орно.
   n    шинэ мөрөнд шилжих буюу Enter товчыг дарсантай ижил үүрэг гүйцэтгэнэ.
   t    tab товчлууртай ижил үүрэг гүйцэтгэнэ.
   v    босоо мөрөнд tab зай шилжинэ.
   b    нэг тэмдэгт урагшаа шилжинэ. (back space)
   r    курсорыг шинэ мөрөнд аваачна, мөрийн эхэнд шилжинэ.
   a    сигнал буюу дохио өгнө.
   ‟    дан хашилтыг хэвлэнэ.
   ”    давхар хашилтыг хэвлэнэ.
       ташуу зураасыг хэвлэнэ.
   ddd 8-тын тооллын системд байтыг бичих
   xddd 16-тын тооллын системд байтыг бичих
Тусгай тэмдэгтүүд: , . : ? ‟ ( ) { } [ ] !  / ~ # $ % & ^ _ + *
Идентификатор
   Хэрэглэгч програмдаа ашиглаж байгаа хувьсагч, тогтмол, функц, макро зэрэгтээ өгсөн
   нэр болох тэмдэгтүүдийн дарааллыг хэрэглэгчийн идентификатор гэдэг. Хэрэглэгчийн
   идентификаторыг програмдаа заавал тодорхойлох ба дараахь шаардлагыг хангасан
   байна. Үүнд:
   - Идентификатор үсгээр эхэлнэ.
   - Нэг буюу хэд хэдэн латин үсэг, цифр, доод зурааснаас тогтоно.
   - Идентификатор дотор хоосон зай авч болохгүй. Хэрэв идентификатор нь 2 ба түүнээс
      дээш үгээс тогтох бол тэдгээрийг доогуур зураас (_)-аар холбон бичих хэрэгтэй.
   - Си хэлэнд том, жижиг үсгүүдийг ялгаатайд тооцно.
   - Идентификатор нь түлхүүр үгүүдтэй давхцах болохгүй.
   - Кирилл үсэг оруулж болохгүй.
Түлхүүр үг
   Энэ нь Си хэлний компилятор урьдчилан тодорхойлогдсон идентификаторууд юм. Си
   хэлэнд 32 ш стандарт түлхүүр үг байх ба тэдгээрийг хэрэглэх ялгаатай зааврууд байдаг.
        auto                 double                int                  struct
        break                else                  long                 switch
        case                 enum                  register             typedef
        char                 extern                return               union
        const                float                 short                unsigned
        continue             for                   signed               void
                                            2
default              go to               sizeof               volatile
           do                   if                  static               while
Програмд тайлбар хийх
   Энэ нь хоосон мөр мэтээр ойлгогдох тэмдэгтүүдийн дараалал юм. Тайлбарын эхлэх ба
   төгсгөлөг /* */ гэсэн тэмдгээр танидаг. Иймээс тайлбарын програмын альч хэсэгт хэрэглэж
   болно. Энэ нь програмын аль ч хэсэгт хэрэглэж болно. Энэ нь програмын аль нэг хэсгийг
   ойлгомжтой болгох үүднээс тайлбарлах зорилготой юм. Тайлбар дотор тайлбар бичиж
   болохгүй. Мөн програмчлалын си хэлний сүүлийн үеийн хувилбаруудад тайлбарыг  -аар
   эхлүүлж болно. Энэ нь бичигдсэн газраасаа хойш тухайн үгийг дуустал нь тайлбар болгох
   байна гэсэн үг.
Програмын бүтэц
   Си, програмын бүтцэд үндсэн програм , програмын файлууд, програмын биелэлт, програмын
   үйлчлэх хүрээ ба амьдрах хугацаа зэрэг орно.
   -Үндсэн програм
   Энэ нь дараах элементүүдыг агуулдаг.
   1) Препроцессорын удирдлагууд
   2) Компиляторын заалтууд
   3) Зарлалтууд
   4) Програмын бие
1. Препроцессорын удирдлагууд гэдэг нь компиляци хийхийн өмнө програмын текстыг өөрчлөх
   удирдамжууд байна.
2. Компиляторын заалтууд нь компиляци хийх явцад компиляцийн ажиллагааг удирдах тусгай
   удирдлагууд байна.
3. Зарлалтууд гэдэг нь хувьсагч тэмдэгт функцуудын зарлалт байна. Хувьсагчийн зарлалтаар
   ямар төрлийн хувьсагч байгаагаас хамаараад тухайн хувьсагчид зориулсан санах ой
   нөөцлөгддөг. Зарлах үед тухайн хувьсагчийн анхны утга нь тодорхой эсвэл тодорхой бус
   байж болно. Хувьсагчийн ангилалаас хамаараад автомат, регистр, статик, гадаад хувьсагч гэж
   ангилагддаг. Функцын зарлалтаар түүний нэр, функцийн буцаах утгын төрөл тодорхойлогдох
   ба түүнд дамжигдах параметрүүдийг тодорхойлж болдог. Програм дотор хичнээн ч функцыг
   тодорхойлж болох ба энэ нь тухайн програмын үүргээс хамаарна. Гэхдээ си хэлэн дээр
   бичигдсэн програм нь ажиллахын тулд хамгийн багадаа нэг функцтэй байна. Энэ функцыг
   үндсэн функц буюу main функц гэж нэрлэнэ. Өөрөөр хэлбэл Си дээр бичигдсэн програм нь
   ямагт main функцээсээ эхэлж ажилдаг.

                                    Өгөгдийн төрөл
       Програм нь бүхэл тоо болон бодит тоо гэх мэт төрөл бүрийн өгөгдлийг хадгалж
боловсруулж байдаг. Програмын хөрвүүлэг ч нь өгөгдсөн утга ямар төрлөөр өгөгдөх болохыг
мэдэж байх шаардлагатай. Үүний тулд өгөгдлүүдийг төрөлжүүлэх шаардлагатай болдог.
Програмчлалын “Си” хэлэнд объект гэдэг ухагдахуун нь санах ойд байрлаж байгаа утгыг өөрөөр
хэлбэл байтуудыг дарааллыг хэлдэг. Нэр оноосон объектийг хувьсагч гэж хэлдэг. Объектийн
төрөл нь тухайн объект санах ой дээр ямар хэмжээ эзлэх яаж кодлогдохыг хэлдэг. Жишээ нь:
Яг ижил биетүүдийн дараалал нь өгөгдлийн төрлөөсөө хамаараад тэмдэгтэй, тэмдэггүй ялгаатай
бүхэл тоонууд болж болдог. Си хэлэн дэх өгөгдлийн төрлүүдийг дараах байдлаар ангилдаг.
   1. Үндсэн төрөл. Үүнд: Стандарт болон өргөтгөсөн бүхэл тоон төрөл бодит болон хөвөгч
       цэгтэй тоон төрлүүд багтдаг.
   2. Тоочих төрөл
                                             3
3. Хоосон төрөл
   4. Нийлмэл төрөл
Нийлмэл төрөлд массив төрөл заагч төрөл заагч төрөл бүтэц төрөл, нэгдэл төрөл, функц төрлүүд
багтдаг.
Бүхэл тоон төрөл
       Бидний өдөр тутмын амьдралдаа хэрэглэдэг тоонууд нь бүхэл тоо юм. Дараах хүснэгтээр
бүхэл тоон төрлүүд тэдгээрийн санах ойд эзлэх хэмжээ авах утгын дээд доод хязгааруудыг
харуулъя.
       Char 1 byte 0.255
       Int    4 byte         ±32768
       Long 8 byte           ±2,147,483,648
       Unsigned int 4 byte 0.2,147,483,648
       Unsigned short 2 byte 0.65535
       Unsigned long 8 byte 0.1,294,665,295
Char төрөл нь тэмдэгтийг төлөөлөх боловч стандарт бүхэл тоон төрөл юм. Тэмдэгт төрөл дээр
бүхэл тооны арифметик үйлдлүүдийг хийх боломжтой. Өөрөөр хэлбэл зохиож байгаа програмаас
хамаараад тэмдэгт хувьсагчийг тэмдэгтээр эсвэл бүхэл тоогоор ашиглах боломжтой. Тэмдэгт
төрлийн хувьсагчийг тэмдэгт хэлбэрээр хэвлэхэд гаралтын Printf функцийг %C гэсэн
форматтайгаар, харин бүхэл тоон хэлбэрээр хэвлэх үед %D гэсэн форматтайгаар бичиж хэрэглэх
хэрэгтэй.
Int төрөл нь хамгийн тохиромжтой бүхэл тоон төрөл юм. Учир нь хэмжээ болон биет бүтцийнхээ
хувьд системын архитектурт маш сайн зохицдог. Иймээс онцын өөр шалтгаангүй үед Int төрлийг
ашиглаж байх хэрэгтэй.
Long гэдэг нь Int төрлийн өргөтгөсөн хэлбэр юм.
Бодит тоон төрөл
Си хэлэнд бүхэл тоо болон бодит тоог ялгахын тулд хөвөгч цэгийг ашигладаг. Дараах төрлийн
бодит тоо байна.
       Float        4 byte       ±3,4E+38    38 зэрэгт 6 орон
       Double       8 byte       ±1,7E+308   15 орон
       Long double 10 byte ±1,1E+4932 19 орон
Бодит тоо нь хязгаарлагдмал нарийвчлалтайгаар хадгалагддаг. Нарийвчлал нь тухайн бодит тоон
төрлийг дүрслэхэд ашиглагдаж байгаа бинар бүтэц түүнийг хадгалахад ашиглагдаж санах ойн
хэмжээнээс хамаарна. Бодит тоон хувьсагчийг Printf функцээр хэвлэхдээ %f, %g, %e гэсэн
форматуудыг ашигладаг.
Тоочих төрөл
Тоочих төрөл нь td тооны тогтмол утгуудын олонлог юм. Эдгээр утгууд нь оноосон нэртэй байх
ба хөрвүүлэгч нь бүхэл тоон утгуудыг автоматаар 0 ээс эхлэн нэг нэг алхмаар нэмэгдүүлэн
харгалзах утга бүрд дугаарыг оноодог. Өгөгдлийн тоочигдох төрлийг зарлах ерөнхий хэлбэр нь
дараах байдалтай байна.
                   Enum <төрлийн нэр>(утга1,…утга N)<өгөгдлийн төрөл>;
       Тоочих төрөл нь энгийн бүхэл тоон төрөлтэй тохирно. Тиймээс тоочих төрлийн
хувьсагчид арифметик үйлдлийг хийхийг зөвшөөрдөг.




                                             4
Хоосон төрөл
Void түлхүүр үг нь утга байхгүй, хоосон гэдгийг илэрхийлдэг. Өгөгдлийн Void төрөлтэй хувьсагч
болон тогтмолыг зарлах боломжгүй. Энэ нь зөвхөн функцын тодорхойлолт void төрлийн
илэрхийлэл, void төрлийн заагч зэрэгт ашиглагддаг.
Төрөл хувиргах
Си хэлэнд ялгаатай төрлийн хувьсагчдыг 1 илэрхийлэл дотор оруулах шаардлага гардаг. Ийм үед
програмын хөрвүүлэгч нь үйлдэл гүйцэтгэхийн өмнө. Нэгэн ижил төрөл рүү хувирлахыг
оролддог. Мөн зарим тохиолдолд зориудаар хувьсагчийн төрлийг хувиргах шаардлага гардаг.
Тоон төрлийн хувиргалтанд түүний зэргээс шалтгаалах ба төрлүүдийг зэргээр нь эрэмбэлвэл.
       1 Char
       2 Short
       3 Int
       4 Long
       5 Float
       6 Double
       7 Long double
Char төрөл нь хамгийн бага зэрэгтэй ба нэг том төрөл нь нөгөөгөөс том хэмжээтэй утгыг оноох
үед далд хувиргалт хийгдэнэ. Харин зарим тохиолдолд ил хэлбэрээр хувиргах шаардлага гарах ба
дараах хэлбэрээр бичнэ.
(төрөл) <илэрхийлэл>;
Энэ нь илэрхийллийн үр дүнд тооцоолоод дараа нь өгөгдсөн төрөл рүү хувиргахыг илэрхийлнэ.
Төрөл хувиргах үйлдэл нь бүхэл тоо болон бодит тоотой ажиллахад үед чухал байдаг.

                            Өгөгдлийг оруулах ба гаргах
Дэлгэц ба гар нь компьютерт мэдээллийг оруулах гаргах үндсэн төхөөрөмжүүд бөгөөд
тэдгээрийг стандарт оролт гаралт гэж хэлдэг. Програмын үр дүнг дэлгэц дээр хэвлэн харуулахын
тулд стандарт оролт гаралтын сангийн printf функцийг ашиглана. Си програмд стандарт оролт
гаралтыг санг stdio.h гэж нэрлэдэг.
Тухайлбал: int term=15;
              Printf(“%d*2=%d”,term,term*2);
гэсэн програмын хэсэг нь дэлгэц дээр 15*2=30 гэсэн мэдээллийг хэвлэх болно. Энд %d
тэмдэгтийг оруулагч тэмдэгт гэх ба функцын эхний параметрт бичигдсэн үг нь орлуулагч
тэмдэгтийг эс тооцвол нэг бүрчлэн хэвлэгдэнэ. Гэхдээ энд орчулагч тэмдэгтийг ашигласан,
учраас % санийн утга нь эхний %d-ийн байранд 2*term-ийн утга нь дараагын %d-ийн байранд
орлуулагдан хэвлэгдэх болно.
Printf функц
Мэдээллийг хэвлэх printf функцийн бичигдэх ерөнхий хэлбэр нь дараах байдалтай байна.
      printf(“format”,expression1,expression2,..);
      Энд format нь юуг яаж хэвлэхийг заах бол expression1, expression2 нь орлуулагч
      тэмдэгтийн оронд ямар элементүүд хэвлэгдэхийг заана.
Puts функц
      Puts функц нь өгөгдсөн текст мөрийг стандарт гаралт руу хэвлэнэ. Энэ функц нь стандарт
      оролт гаралт stdio.h сан дотор байрладаг. Puts функц нь текст мөрийг хэвлэхдээ шинэ
      мөрийн тэмдэгтийг оруулж хэвлэдэг. „n‟
      Функцийн бичигдэх ерөнхий хэлбэр нь: puts(“текст мөр”); гэсэн хэлбэрт байна.

                                             5
Курсор удирдах
      Курсор гэдэг нь компьютерийн дэлгэц дээр оролтын байрлалыг харуулах заагуур юм. Си
      хэл нь курсорын байрлалыг удирдах тусгай тэмдэгтүүдтэй байдаг бөгөөд тэдгээрийг
      escape тэмдэгтүүд гэж нэрлэдэг.
      Escape тэмдэгтүүд нь урвуу налуу зураасаар   () бусад тэмдэгтүүдээс ялгагдана.
             b     курсорыг нэг тэмдэгтээр буцаах
             f     шинэ хуудасны эхлэлд шилжих
             n     дараагын шинэ мөрт шилжих
             r     тухайн мөрийн эхэнд шилжих
             t     догол мөр үүсгэх
Scanf функц Өгөгдлийг оруулах
       Стандарт сангийн scanf функцын тусламжтайгаар өгөдлийг оруулах бөгөөд энэ функц нь
       printf-тэй ижил зарчимаар ажилладаг. Scanf функц нь өгөгдлийг хялбар оруулах боломж
       олгодог.
Scanf функцын бичигдэх ерөнхий хэлбэр нь:
       scanf(”оруулагч тэмдэгт”,&хувьсагчийн нэр);
Орлуулагч тэмдэгтүүд:
       %d      бүхэл тоо
       %i      бүхэл тоо
       %c      тэмдэг
       %s      тэмдэгт мөр
       %f      бодит тоо
       %g      бодит тоо
Хувьсагчийн нэрний өмнө &-ийн тэмдгийг заавал бичиж хаягийг заах хэрэгтэй.
scanf функцээр заасан хувьсагчийн утгыг өөрчлөх боломжийг олгодог.

                               Илэрхийлэл ба үйлдэл
       Илэрхийлэл нь энгийн тооцоолол хийхэд хэрэглэгдэнэ. Тогтмол утга, мөр тогтмол
хувьсагчид утга оноох зэрэг нь бүгд илэрхийлэл юм. Өөрөөр хэлбэл илэрхийлэл нь хувьсагч,
тогтмол, үйлдлүүдийн нийлэмжээс бүтдэг. Програм нь илэрхийллийн тусламжтайгаар анхдагч
өгөгдлүүдийг боловсруулж эцсийн үр дүнг гарган авдаг.
Илэрхийллийн төрөл гэдэг нь түүнийг үнэлээд гаргах утгын төрөл юм. Хэрэв илэрхийллээс үр
дүн гарахгүй бол тухайн илэрхийллийг void буюу хоосон төрлийн илэрхийлэл гэж үздэг.
Үйлдэл
Илэрхийлэлд арифметик үйлдлүүдийг түгээмэл хэрэглэх ба үржих хуваах, үлдэгдэл олох, нэмэх,
хасах, эерэг тэмдэг сөрөг тэмдгийг ашиглана. Эдгээр арифметик үйлдлүүдээс зөвхөн, үлдэгдэл
олох үйлдэл нь бүхэл тоон дээр хийгдэх ѐстой. Бусад үйлдэл нь дурын тоон төрөл дээр
хэрэглэгдэж болно.
Утга олгох
Энэ үйлдэл нь түүний үйлдлийн тэмдэг болох = тэмдгийн баруун гар талд байгаа илэрхийллийг
тооцоолоод, зүүн гар талын объектод онооно. Си хэлэнд энгийн, нийлмэл гэсэн 2 янзын утга
олгох үйлдэл байна.
Энгийн=
Нийлмэл +=; -=; *=; =; %=;
x+=y; => x=x+y;             x*=y; => x=x*y;

                                            6
Нэмэгдүүлэх ба хорогдуулах үйлдэл
         x  
x  x  1         x-ийн утгыг 1,1-ээр, нэмэгдүүлнэ.
           x
Гэхдээ х++ илэрхийллийн, утга нь х-ийг 1-ээр нэмэгдүүлхийн өмнөх утга.

         x  
x  x  1          ++х-ийн утга нь х-ийг 1-ээр нэмэгдүүлсний дараах утга байна.
           x

                    Нөхцөл шалгах ба сонголтын операторууд
Харьцуулах үйлдлүүд:
==     тэнцүү
!=     тэнцүү биш
>      эрс их
<      эрс бага
>=     их юмуу тэнцүү
<=     бага юмуу тэнцүү
Үйлдлүүдийг харьцуулах үйлдлүүд гэдэг бөгөөд эдгээр үйлдлүүдыг 2 түвшинд хуваадаг. Үүнд:
Дээд түвшний буюу өндөр зэрэглэийн үйлдлүүд: > < >= <=
Доод түвшний буюу нам зэрэглэийн үйлдлүүд: == !=
Илэрхийлэл доторхи дээд түвшний үйлдлүүд эхлэж биелэгдээд дараа нь доод түвшний үйлдлүүд
биелэгдэнэ.
Тоон төрлийн утгуудыг жишихдээ утгынх нь их багаар жишнэ. Харин тэмдэгтүүдийг жишихдээ
ASCII дугаараар нь жишдэг.
ASCII тэмдэгтүүдийн дарааллын заримаас нь дурдвал:
„A‟=65              „a‟=97
„B‟=66              „b‟=98
„Z‟=90              „z‟=122 гэсэн кодтой.

Жишээ нь:     „A‟>‟a‟     (худал)
              „z‟>‟B‟     (үнэн)
Нөхцөл шалгах if оператор
Нөхцөл шалгах операторыг логик оператор гэх ба энэ нь ямар нэгэн идентификаторын утгаас
хамаарч ялгаатай үйлдэл хийх үед хэрэглэгдэнэ. Нөхцөл шалгах оператор нь хураангуй ба
дэлгэрэнгүй гэсэн 2 хэлбэртэй.
          a) If (<логик нөхцөл>) үйлдэл;
Энэ хэлбэрийг нөхцөл шалгах, операторын хураангуй хэлбэр гэх ба шалгаж байгаа нөхцөл
биелэж байвал үйлдэл хийгдэх ба биелэхгүй бол дараагын операторт шилжих болно. Хэрэв
үйлдэл нь 2 ба түүнээс дээш бүлэг үйлдэл байвал Си хэлний блоклох оператороор хашиж өгнө.
Си хэлний блоклох оператор-ын хэлбэр: { оператор_1; оператор_2; . . . оператор_n; }
Си хэлэнд логик илэрхийлэл нь дурын илэрхийлэл байж болно. Харин бусад програмчлалын
хэлэнд зөвхөн үнэн, худал утга буцаах илэрхийллийг зөвшөөрдөг.
Жишээ нь: if(n>1000) printf(“n утга хязгаараас хэтэрлээ”)
          b) If (<логик нөхцөл>) <үйлдэл_1>;
              else<үйлдэл_2>;



                                              7
Дэлгэрэнгүй нөхцөл шалгах хэлбэр нь логик нөхцөл биелэж байвал <үйлдэл_1>-ийг биелэхгүй
бол <үйлдэл_2>-ийг гүйцэтгэх болно. үйлдэл_1 ба үйлдэл_2 нь блоклох оператор байж болно.
Логик нөхцөл
Логик нөхцөлд хэдэн нөхцлийг зэрэг шалгасан байж болох ба тэр тохиолдолд шалгагдаж байгаа
логик нөхцлүүд логик холбоосоор холбогдсон байх ѐстой. Си хэлэнд логик ба, логик буюу, логик
үгүйсгэл гэсэн холбоосууд байна.
-Логик ба үйлдэл нь шалгагдаж байгаа нөхцлүүд бүгд үнэн үед үнэн байна. Үр дүн нь int
төрлийн утгатай ба үнэн үед 1, худал үед 0 гэсэн харгалзах утгатай байна.
Бичигдэх хэлбэр: Илэрхийлэл 1 && илэрхийлэл 2
-Логик буюу үйлдэл нь шалгагдаж байгаа нөхцлүүдийн ядаж 1 нөхцөл нь үнэн бол үг дүн нь
үнэн байна. Харин нөхцлүүд бүгд худал үед үр дүн нь худал байна.
Бичигдэх хэлбэр: Илэрхийлэл 1 || илэрхийлэл 2
-Логик үгүйсгэл үйлдэлээр илэрхийллийн үр дүнг урвуугаар хөрвүүлнэ. Өөрөөр хэлбэл үнэн
утгыг худал худал утгыг үнэн болгоно.
Бичигдэх хэлбэр: ! (илэрхийлэл)
? : үйлдэл
Энэ нь гүйцэт нөхцөл шалгах оператортой төстэй бичигдэх хэлбэр нь:
(логик нөхцөл)?(үйлдэл 1):(үйлдэл 2);
Хэрэв логик нөхцөл үнэн бол үйлдэл 1-ийг, худал бол үйлдэл 2-ийг биелүүлэх болно.
Энд үйлдэл 1 ба үйлдэл 2 нь заавал 1 илэрхийллээс тогтсон байх ѐстой.
Сонголтын оператор switch
Сонголтын оператор else if цуваатай төстэй. Гэхдээ бүхэл эсвэл тэмдэгт төрлийн илэрхийллийн
утгаас хамаарч хэдэн үйлдлээс аль нэгийг нь сонгон биелүүлэх хэрэгтэй бол энэ операторыг
ашиглана.
Бичигдэх ерөнхий хэлбэр 1:
Switch (илэрхийлэл)
       { <case утга_1>:<үйлдэл_1>; break;
         <case утга_2>:<үйлдэл_2>; break;
           . . .
         <case утга_N>:<үйлдэл_N>; break;
       }
Бичигдэх ерөнхий хэлбэр 2:
Switch (илэрхийлэл)
       { <case утга_1>:<үйлдэл_1>; break;
         <case утга_2>:<үйлдэл_2>; break;
           . . .
         <case утга_N>:<үйлдэл_N>; break;
         default үйлдэл_m;
       }
Хэрэв илэрхийллийн утга нь утга_1= бол үйлдэл_1 биелэгдэнэ. Хэрэв утга_2= бол үйлдэл_2
биелэгдэнэ, гэх мэт ө/х илэрхийлэл нь бүхэл тоон төрөлтэй ба 1 удаа үнэлэгдээд case-үүдийн ард
бичигдсэн тогтмол утгуудтай харьцуулалт бичигдэнэ.
Хэрэв case тогтмолуудын аль нэг нь тохирч байвал програмын удирдлага тухайн case-ийн ард
бичигдсэн үйлдэлд шилжинэ. Хэрэв бүх утга тохирохгүй бол default-ийн ард бичигдсэн үйлдэлд
шилжинэ.

                                              8
Switch командыг тухайн хэрэглэх шаардлагаас хамаарч янз бүр бичиж болно. Үүнд:
   1. Break командыг бичихгүй байж болно.
   2. Default сонголт байхгүй байж болно.
   3. Хамгийн сүүлчийн сонголтын ард break оператор бичих шаардлагагүй.
   4. Switch-ийн арын илэрхийлэл нь int төрлийн утга буцаах ѐстой.
   5. Case түлхүүр үгийн хойно зөвхөн тэмдэгт болон тоон тогтмол бичнэ.
   6. Сонголтын утгууд нь өөр хоорондоо ялгаатай утгууд байх ѐстой.
Break оператор.
Switch доторх break оператор нь програмын биелэлтийг switch-ийг дараагийн операторт
шилжүүлсэн. Хэрэв switch дотор break операторыг бичихгүй бол тухайн утгаас хойш орших бүх
үйлдлүүдийг биелүүлдэг. Ер нь break оператор нь тухайн операторын ажиллагааг зогсоож
дараагийн операторт шилжүүлэх үүрийг биелүүлдэг.




                                            9

More Related Content

What's hot (14)

Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Programchlaliin c hel
Programchlaliin c helProgramchlaliin c hel
Programchlaliin c hel
 
Ci hel
Ci helCi hel
Ci hel
 
Ush 2014 new3
Ush 2014 new3Ush 2014 new3
Ush 2014 new3
 
Lec1 pragraming language
Lec1 pragraming languageLec1 pragraming language
Lec1 pragraming language
 
си хэлний ойлголт
си хэлний ойлголтси хэлний ойлголт
си хэлний ойлголт
 
Sw203 Lecture11 Casting
Sw203 Lecture11 CastingSw203 Lecture11 Casting
Sw203 Lecture11 Casting
 
лекц-3
лекц-3лекц-3
лекц-3
 
Лекц №5
Лекц №5Лекц №5
Лекц №5
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operator
 
C++
C++C++
C++
 
1
11
1
 
удирдах элементүүд
удирдах элементүүдудирдах элементүүд
удирдах элементүүд
 

Viewers also liked

Shinn deliavisualresumestoryboard
Shinn deliavisualresumestoryboardShinn deliavisualresumestoryboard
Shinn deliavisualresumestoryboardDelia Diaz
 
Jakob, martin, mattias pitch eng+swe backup
Jakob, martin, mattias pitch eng+swe backupJakob, martin, mattias pitch eng+swe backup
Jakob, martin, mattias pitch eng+swe backup961118
 
Atlantis projekt pdf
Atlantis projekt pdfAtlantis projekt pdf
Atlantis projekt pdf961118
 
Media pembelajaran bab6 r.a.vesitara k.
Media pembelajaran bab6 r.a.vesitara k.Media pembelajaran bab6 r.a.vesitara k.
Media pembelajaran bab6 r.a.vesitara k.Kamila Alzahra
 
Media pembelajaran bab5 r.a.vesitara k.
Media pembelajaran bab5 r.a.vesitara k.Media pembelajaran bab5 r.a.vesitara k.
Media pembelajaran bab5 r.a.vesitara k.Kamila Alzahra
 
Media pembelajaran bab7 r.a.vesitara k.
Media pembelajaran bab7 r.a.vesitara k.Media pembelajaran bab7 r.a.vesitara k.
Media pembelajaran bab7 r.a.vesitara k.Kamila Alzahra
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application DevelopmentRameez Ramzan
 
Media pembelajaran bab1 r.a.vesitara k.
Media pembelajaran bab1 r.a.vesitara k.Media pembelajaran bab1 r.a.vesitara k.
Media pembelajaran bab1 r.a.vesitara k.Kamila Alzahra
 
Media pembelajaran bab2 r.a.vesitara k.
Media pembelajaran bab2 r.a.vesitara k.Media pembelajaran bab2 r.a.vesitara k.
Media pembelajaran bab2 r.a.vesitara k.Kamila Alzahra
 
Ppt media pembelajaran bab4
Ppt media pembelajaran bab4Ppt media pembelajaran bab4
Ppt media pembelajaran bab4Kamila Alzahra
 
Ppt media pembelajaran bab1
Ppt media pembelajaran bab1Ppt media pembelajaran bab1
Ppt media pembelajaran bab1Kamila Alzahra
 
Tekniska system, presentation (hela)
Tekniska system, presentation (hela)Tekniska system, presentation (hela)
Tekniska system, presentation (hela)961118
 
หน่วยการเรียนรู้ที่ 7 ความสัมพันธ์ระหว่างประเทศ
หน่วยการเรียนรู้ที่  7  ความสัมพันธ์ระหว่างประเทศหน่วยการเรียนรู้ที่  7  ความสัมพันธ์ระหว่างประเทศ
หน่วยการเรียนรู้ที่ 7 ความสัมพันธ์ระหว่างประเทศแวมไพร์ แวมไพร์
 

Viewers also liked (16)

Kunstpdf
KunstpdfKunstpdf
Kunstpdf
 
Shinn deliavisualresumestoryboard
Shinn deliavisualresumestoryboardShinn deliavisualresumestoryboard
Shinn deliavisualresumestoryboard
 
Jakob, martin, mattias pitch eng+swe backup
Jakob, martin, mattias pitch eng+swe backupJakob, martin, mattias pitch eng+swe backup
Jakob, martin, mattias pitch eng+swe backup
 
Atlantis projekt pdf
Atlantis projekt pdfAtlantis projekt pdf
Atlantis projekt pdf
 
Lekts1
Lekts1Lekts1
Lekts1
 
Media pembelajaran bab6 r.a.vesitara k.
Media pembelajaran bab6 r.a.vesitara k.Media pembelajaran bab6 r.a.vesitara k.
Media pembelajaran bab6 r.a.vesitara k.
 
Media pembelajaran bab5 r.a.vesitara k.
Media pembelajaran bab5 r.a.vesitara k.Media pembelajaran bab5 r.a.vesitara k.
Media pembelajaran bab5 r.a.vesitara k.
 
Media pembelajaran bab7 r.a.vesitara k.
Media pembelajaran bab7 r.a.vesitara k.Media pembelajaran bab7 r.a.vesitara k.
Media pembelajaran bab7 r.a.vesitara k.
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Media pembelajaran bab1 r.a.vesitara k.
Media pembelajaran bab1 r.a.vesitara k.Media pembelajaran bab1 r.a.vesitara k.
Media pembelajaran bab1 r.a.vesitara k.
 
Media pembelajaran bab2 r.a.vesitara k.
Media pembelajaran bab2 r.a.vesitara k.Media pembelajaran bab2 r.a.vesitara k.
Media pembelajaran bab2 r.a.vesitara k.
 
3 amanah
3 amanah3 amanah
3 amanah
 
Ppt media pembelajaran bab4
Ppt media pembelajaran bab4Ppt media pembelajaran bab4
Ppt media pembelajaran bab4
 
Ppt media pembelajaran bab1
Ppt media pembelajaran bab1Ppt media pembelajaran bab1
Ppt media pembelajaran bab1
 
Tekniska system, presentation (hela)
Tekniska system, presentation (hela)Tekniska system, presentation (hela)
Tekniska system, presentation (hela)
 
หน่วยการเรียนรู้ที่ 7 ความสัมพันธ์ระหว่างประเทศ
หน่วยการเรียนรู้ที่  7  ความสัมพันธ์ระหว่างประเทศหน่วยการเรียนรู้ที่  7  ความสัมพันธ์ระหว่างประเทศ
หน่วยการเรียนรู้ที่ 7 ความสัมพันธ์ระหว่างประเทศ
 

Similar to Lekts1 (18)

Лекц №6
Лекц №6Лекц №6
Лекц №6
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
2
22
2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
visual programming lecture 2
visual programming lecture 2visual programming lecture 2
visual programming lecture 2
 
онол
онолонол
онол
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
Lec3
Lec3Lec3
Lec3
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
203lab1
203lab1203lab1
203lab1
 
Pl lecture3
Pl lecture3Pl lecture3
Pl lecture3
 
PL Lecture3
PL Lecture3PL Lecture3
PL Lecture3
 
Preproc
PreprocPreproc
Preproc
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2
 
Lecture5
Lecture5Lecture5
Lecture5
 

Lekts1

  • 1. Агуулга Агуулга ............................................................................................................................................... 1 Си хэлний тухай суурь ойлголтууд ................................................................................................. 2 Си хэлний элементүүд ...................................................................................................................2 Си хэлний цагаан толгой ...............................................................................................................2 Идентификатор ..............................................................................................................................2 Түлхүүр үг ......................................................................................................................................2 Програмд тайлбар хийх .................................................................................................................3 Програмын бүтэц ...........................................................................................................................3 Өгөгдийн төрөл .................................................................................................................................. 3 Бүхэл тоон төрөл ............................................................................................................................4 Бодит тоон төрөл ...........................................................................................................................4 Тоочих төрөл ..................................................................................................................................4 Хоосон төрөл ..................................................................................................................................5 Төрөл хувиргах ..............................................................................................................................5 Өгөгдлийг оруулах ба гаргах ............................................................................................................ 5 Printf функц ....................................................................................................................................5 Puts функц.......................................................................................................................................5 Курсор удирдах ..............................................................................................................................6 Scanf функц Өгөгдлийг оруулах...................................................................................................6 Илэрхийлэл ба үйлдэл ....................................................................................................................... 6 Үйлдэл.............................................................................................................................................6 Утга олгох .......................................................................................................................................6 Нэмэгдүүлэх ба хорогдуулах үйлдэл ...........................................................................................7 Нөхцөл шалгах ба сонголтын операторууд..................................................................................... 7 Харьцуулах үйлдлүүд:...................................................................................................................7 Нөхцөл шалгах if оператор ...........................................................................................................7 Логик нөхцөл..................................................................................................................................8 ? : үйлдэл.........................................................................................................................................8 Сонголтын оператор switch ..........................................................................................................8 Break оператор. ..............................................................................................................................9 1
  • 2. Си хэлний тухай суурь ойлголтууд Си хэлний элементүүд Програмчлалын Си хэлний элемент гэдэгт тухайн хэлэнд ашиглаж байгаа суурь бүтцийг хэлнэ. Си хэлний элементүүдэд 1. Цагаан толгой 2. Тогтмолууд 3. Идентификатор 4. Түлхүүр үгс 5. Програмын тайлбар зэрэг орно. Си хэлний цагаан толгой Үүнд том жижиг латин үсгүүд, 0-9 гэсэн цифрүүд, хоосон зайн тэмдэгт, tab, мөр шилжүүлэх, мөрийн төгсгөлийн тэмдэгтүүд, мөн зарим тусгай тэмдэгтүүд орно. n шинэ мөрөнд шилжих буюу Enter товчыг дарсантай ижил үүрэг гүйцэтгэнэ. t tab товчлууртай ижил үүрэг гүйцэтгэнэ. v босоо мөрөнд tab зай шилжинэ. b нэг тэмдэгт урагшаа шилжинэ. (back space) r курсорыг шинэ мөрөнд аваачна, мөрийн эхэнд шилжинэ. a сигнал буюу дохио өгнө. ‟ дан хашилтыг хэвлэнэ. ” давхар хашилтыг хэвлэнэ. ташуу зураасыг хэвлэнэ. ddd 8-тын тооллын системд байтыг бичих xddd 16-тын тооллын системд байтыг бичих Тусгай тэмдэгтүүд: , . : ? ‟ ( ) { } [ ] ! / ~ # $ % & ^ _ + * Идентификатор Хэрэглэгч програмдаа ашиглаж байгаа хувьсагч, тогтмол, функц, макро зэрэгтээ өгсөн нэр болох тэмдэгтүүдийн дарааллыг хэрэглэгчийн идентификатор гэдэг. Хэрэглэгчийн идентификаторыг програмдаа заавал тодорхойлох ба дараахь шаардлагыг хангасан байна. Үүнд: - Идентификатор үсгээр эхэлнэ. - Нэг буюу хэд хэдэн латин үсэг, цифр, доод зурааснаас тогтоно. - Идентификатор дотор хоосон зай авч болохгүй. Хэрэв идентификатор нь 2 ба түүнээс дээш үгээс тогтох бол тэдгээрийг доогуур зураас (_)-аар холбон бичих хэрэгтэй. - Си хэлэнд том, жижиг үсгүүдийг ялгаатайд тооцно. - Идентификатор нь түлхүүр үгүүдтэй давхцах болохгүй. - Кирилл үсэг оруулж болохгүй. Түлхүүр үг Энэ нь Си хэлний компилятор урьдчилан тодорхойлогдсон идентификаторууд юм. Си хэлэнд 32 ш стандарт түлхүүр үг байх ба тэдгээрийг хэрэглэх ялгаатай зааврууд байдаг. auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void 2
  • 3. default go to sizeof volatile do if static while Програмд тайлбар хийх Энэ нь хоосон мөр мэтээр ойлгогдох тэмдэгтүүдийн дараалал юм. Тайлбарын эхлэх ба төгсгөлөг /* */ гэсэн тэмдгээр танидаг. Иймээс тайлбарын програмын альч хэсэгт хэрэглэж болно. Энэ нь програмын аль ч хэсэгт хэрэглэж болно. Энэ нь програмын аль нэг хэсгийг ойлгомжтой болгох үүднээс тайлбарлах зорилготой юм. Тайлбар дотор тайлбар бичиж болохгүй. Мөн програмчлалын си хэлний сүүлийн үеийн хувилбаруудад тайлбарыг -аар эхлүүлж болно. Энэ нь бичигдсэн газраасаа хойш тухайн үгийг дуустал нь тайлбар болгох байна гэсэн үг. Програмын бүтэц Си, програмын бүтцэд үндсэн програм , програмын файлууд, програмын биелэлт, програмын үйлчлэх хүрээ ба амьдрах хугацаа зэрэг орно. -Үндсэн програм Энэ нь дараах элементүүдыг агуулдаг. 1) Препроцессорын удирдлагууд 2) Компиляторын заалтууд 3) Зарлалтууд 4) Програмын бие 1. Препроцессорын удирдлагууд гэдэг нь компиляци хийхийн өмнө програмын текстыг өөрчлөх удирдамжууд байна. 2. Компиляторын заалтууд нь компиляци хийх явцад компиляцийн ажиллагааг удирдах тусгай удирдлагууд байна. 3. Зарлалтууд гэдэг нь хувьсагч тэмдэгт функцуудын зарлалт байна. Хувьсагчийн зарлалтаар ямар төрлийн хувьсагч байгаагаас хамаараад тухайн хувьсагчид зориулсан санах ой нөөцлөгддөг. Зарлах үед тухайн хувьсагчийн анхны утга нь тодорхой эсвэл тодорхой бус байж болно. Хувьсагчийн ангилалаас хамаараад автомат, регистр, статик, гадаад хувьсагч гэж ангилагддаг. Функцын зарлалтаар түүний нэр, функцийн буцаах утгын төрөл тодорхойлогдох ба түүнд дамжигдах параметрүүдийг тодорхойлж болдог. Програм дотор хичнээн ч функцыг тодорхойлж болох ба энэ нь тухайн програмын үүргээс хамаарна. Гэхдээ си хэлэн дээр бичигдсэн програм нь ажиллахын тулд хамгийн багадаа нэг функцтэй байна. Энэ функцыг үндсэн функц буюу main функц гэж нэрлэнэ. Өөрөөр хэлбэл Си дээр бичигдсэн програм нь ямагт main функцээсээ эхэлж ажилдаг. Өгөгдийн төрөл Програм нь бүхэл тоо болон бодит тоо гэх мэт төрөл бүрийн өгөгдлийг хадгалж боловсруулж байдаг. Програмын хөрвүүлэг ч нь өгөгдсөн утга ямар төрлөөр өгөгдөх болохыг мэдэж байх шаардлагатай. Үүний тулд өгөгдлүүдийг төрөлжүүлэх шаардлагатай болдог. Програмчлалын “Си” хэлэнд объект гэдэг ухагдахуун нь санах ойд байрлаж байгаа утгыг өөрөөр хэлбэл байтуудыг дарааллыг хэлдэг. Нэр оноосон объектийг хувьсагч гэж хэлдэг. Объектийн төрөл нь тухайн объект санах ой дээр ямар хэмжээ эзлэх яаж кодлогдохыг хэлдэг. Жишээ нь: Яг ижил биетүүдийн дараалал нь өгөгдлийн төрлөөсөө хамаараад тэмдэгтэй, тэмдэггүй ялгаатай бүхэл тоонууд болж болдог. Си хэлэн дэх өгөгдлийн төрлүүдийг дараах байдлаар ангилдаг. 1. Үндсэн төрөл. Үүнд: Стандарт болон өргөтгөсөн бүхэл тоон төрөл бодит болон хөвөгч цэгтэй тоон төрлүүд багтдаг. 2. Тоочих төрөл 3
  • 4. 3. Хоосон төрөл 4. Нийлмэл төрөл Нийлмэл төрөлд массив төрөл заагч төрөл заагч төрөл бүтэц төрөл, нэгдэл төрөл, функц төрлүүд багтдаг. Бүхэл тоон төрөл Бидний өдөр тутмын амьдралдаа хэрэглэдэг тоонууд нь бүхэл тоо юм. Дараах хүснэгтээр бүхэл тоон төрлүүд тэдгээрийн санах ойд эзлэх хэмжээ авах утгын дээд доод хязгааруудыг харуулъя. Char 1 byte 0.255 Int 4 byte ±32768 Long 8 byte ±2,147,483,648 Unsigned int 4 byte 0.2,147,483,648 Unsigned short 2 byte 0.65535 Unsigned long 8 byte 0.1,294,665,295 Char төрөл нь тэмдэгтийг төлөөлөх боловч стандарт бүхэл тоон төрөл юм. Тэмдэгт төрөл дээр бүхэл тооны арифметик үйлдлүүдийг хийх боломжтой. Өөрөөр хэлбэл зохиож байгаа програмаас хамаараад тэмдэгт хувьсагчийг тэмдэгтээр эсвэл бүхэл тоогоор ашиглах боломжтой. Тэмдэгт төрлийн хувьсагчийг тэмдэгт хэлбэрээр хэвлэхэд гаралтын Printf функцийг %C гэсэн форматтайгаар, харин бүхэл тоон хэлбэрээр хэвлэх үед %D гэсэн форматтайгаар бичиж хэрэглэх хэрэгтэй. Int төрөл нь хамгийн тохиромжтой бүхэл тоон төрөл юм. Учир нь хэмжээ болон биет бүтцийнхээ хувьд системын архитектурт маш сайн зохицдог. Иймээс онцын өөр шалтгаангүй үед Int төрлийг ашиглаж байх хэрэгтэй. Long гэдэг нь Int төрлийн өргөтгөсөн хэлбэр юм. Бодит тоон төрөл Си хэлэнд бүхэл тоо болон бодит тоог ялгахын тулд хөвөгч цэгийг ашигладаг. Дараах төрлийн бодит тоо байна. Float 4 byte ±3,4E+38 38 зэрэгт 6 орон Double 8 byte ±1,7E+308 15 орон Long double 10 byte ±1,1E+4932 19 орон Бодит тоо нь хязгаарлагдмал нарийвчлалтайгаар хадгалагддаг. Нарийвчлал нь тухайн бодит тоон төрлийг дүрслэхэд ашиглагдаж байгаа бинар бүтэц түүнийг хадгалахад ашиглагдаж санах ойн хэмжээнээс хамаарна. Бодит тоон хувьсагчийг Printf функцээр хэвлэхдээ %f, %g, %e гэсэн форматуудыг ашигладаг. Тоочих төрөл Тоочих төрөл нь td тооны тогтмол утгуудын олонлог юм. Эдгээр утгууд нь оноосон нэртэй байх ба хөрвүүлэгч нь бүхэл тоон утгуудыг автоматаар 0 ээс эхлэн нэг нэг алхмаар нэмэгдүүлэн харгалзах утга бүрд дугаарыг оноодог. Өгөгдлийн тоочигдох төрлийг зарлах ерөнхий хэлбэр нь дараах байдалтай байна. Enum <төрлийн нэр>(утга1,…утга N)<өгөгдлийн төрөл>; Тоочих төрөл нь энгийн бүхэл тоон төрөлтэй тохирно. Тиймээс тоочих төрлийн хувьсагчид арифметик үйлдлийг хийхийг зөвшөөрдөг. 4
  • 5. Хоосон төрөл Void түлхүүр үг нь утга байхгүй, хоосон гэдгийг илэрхийлдэг. Өгөгдлийн Void төрөлтэй хувьсагч болон тогтмолыг зарлах боломжгүй. Энэ нь зөвхөн функцын тодорхойлолт void төрлийн илэрхийлэл, void төрлийн заагч зэрэгт ашиглагддаг. Төрөл хувиргах Си хэлэнд ялгаатай төрлийн хувьсагчдыг 1 илэрхийлэл дотор оруулах шаардлага гардаг. Ийм үед програмын хөрвүүлэгч нь үйлдэл гүйцэтгэхийн өмнө. Нэгэн ижил төрөл рүү хувирлахыг оролддог. Мөн зарим тохиолдолд зориудаар хувьсагчийн төрлийг хувиргах шаардлага гардаг. Тоон төрлийн хувиргалтанд түүний зэргээс шалтгаалах ба төрлүүдийг зэргээр нь эрэмбэлвэл. 1 Char 2 Short 3 Int 4 Long 5 Float 6 Double 7 Long double Char төрөл нь хамгийн бага зэрэгтэй ба нэг том төрөл нь нөгөөгөөс том хэмжээтэй утгыг оноох үед далд хувиргалт хийгдэнэ. Харин зарим тохиолдолд ил хэлбэрээр хувиргах шаардлага гарах ба дараах хэлбэрээр бичнэ. (төрөл) <илэрхийлэл>; Энэ нь илэрхийллийн үр дүнд тооцоолоод дараа нь өгөгдсөн төрөл рүү хувиргахыг илэрхийлнэ. Төрөл хувиргах үйлдэл нь бүхэл тоо болон бодит тоотой ажиллахад үед чухал байдаг. Өгөгдлийг оруулах ба гаргах Дэлгэц ба гар нь компьютерт мэдээллийг оруулах гаргах үндсэн төхөөрөмжүүд бөгөөд тэдгээрийг стандарт оролт гаралт гэж хэлдэг. Програмын үр дүнг дэлгэц дээр хэвлэн харуулахын тулд стандарт оролт гаралтын сангийн printf функцийг ашиглана. Си програмд стандарт оролт гаралтыг санг stdio.h гэж нэрлэдэг. Тухайлбал: int term=15; Printf(“%d*2=%d”,term,term*2); гэсэн програмын хэсэг нь дэлгэц дээр 15*2=30 гэсэн мэдээллийг хэвлэх болно. Энд %d тэмдэгтийг оруулагч тэмдэгт гэх ба функцын эхний параметрт бичигдсэн үг нь орлуулагч тэмдэгтийг эс тооцвол нэг бүрчлэн хэвлэгдэнэ. Гэхдээ энд орчулагч тэмдэгтийг ашигласан, учраас % санийн утга нь эхний %d-ийн байранд 2*term-ийн утга нь дараагын %d-ийн байранд орлуулагдан хэвлэгдэх болно. Printf функц Мэдээллийг хэвлэх printf функцийн бичигдэх ерөнхий хэлбэр нь дараах байдалтай байна. printf(“format”,expression1,expression2,..); Энд format нь юуг яаж хэвлэхийг заах бол expression1, expression2 нь орлуулагч тэмдэгтийн оронд ямар элементүүд хэвлэгдэхийг заана. Puts функц Puts функц нь өгөгдсөн текст мөрийг стандарт гаралт руу хэвлэнэ. Энэ функц нь стандарт оролт гаралт stdio.h сан дотор байрладаг. Puts функц нь текст мөрийг хэвлэхдээ шинэ мөрийн тэмдэгтийг оруулж хэвлэдэг. „n‟ Функцийн бичигдэх ерөнхий хэлбэр нь: puts(“текст мөр”); гэсэн хэлбэрт байна. 5
  • 6. Курсор удирдах Курсор гэдэг нь компьютерийн дэлгэц дээр оролтын байрлалыг харуулах заагуур юм. Си хэл нь курсорын байрлалыг удирдах тусгай тэмдэгтүүдтэй байдаг бөгөөд тэдгээрийг escape тэмдэгтүүд гэж нэрлэдэг. Escape тэмдэгтүүд нь урвуу налуу зураасаар () бусад тэмдэгтүүдээс ялгагдана. b курсорыг нэг тэмдэгтээр буцаах f шинэ хуудасны эхлэлд шилжих n дараагын шинэ мөрт шилжих r тухайн мөрийн эхэнд шилжих t догол мөр үүсгэх Scanf функц Өгөгдлийг оруулах Стандарт сангийн scanf функцын тусламжтайгаар өгөдлийг оруулах бөгөөд энэ функц нь printf-тэй ижил зарчимаар ажилладаг. Scanf функц нь өгөгдлийг хялбар оруулах боломж олгодог. Scanf функцын бичигдэх ерөнхий хэлбэр нь: scanf(”оруулагч тэмдэгт”,&хувьсагчийн нэр); Орлуулагч тэмдэгтүүд: %d бүхэл тоо %i бүхэл тоо %c тэмдэг %s тэмдэгт мөр %f бодит тоо %g бодит тоо Хувьсагчийн нэрний өмнө &-ийн тэмдгийг заавал бичиж хаягийг заах хэрэгтэй. scanf функцээр заасан хувьсагчийн утгыг өөрчлөх боломжийг олгодог. Илэрхийлэл ба үйлдэл Илэрхийлэл нь энгийн тооцоолол хийхэд хэрэглэгдэнэ. Тогтмол утга, мөр тогтмол хувьсагчид утга оноох зэрэг нь бүгд илэрхийлэл юм. Өөрөөр хэлбэл илэрхийлэл нь хувьсагч, тогтмол, үйлдлүүдийн нийлэмжээс бүтдэг. Програм нь илэрхийллийн тусламжтайгаар анхдагч өгөгдлүүдийг боловсруулж эцсийн үр дүнг гарган авдаг. Илэрхийллийн төрөл гэдэг нь түүнийг үнэлээд гаргах утгын төрөл юм. Хэрэв илэрхийллээс үр дүн гарахгүй бол тухайн илэрхийллийг void буюу хоосон төрлийн илэрхийлэл гэж үздэг. Үйлдэл Илэрхийлэлд арифметик үйлдлүүдийг түгээмэл хэрэглэх ба үржих хуваах, үлдэгдэл олох, нэмэх, хасах, эерэг тэмдэг сөрөг тэмдгийг ашиглана. Эдгээр арифметик үйлдлүүдээс зөвхөн, үлдэгдэл олох үйлдэл нь бүхэл тоон дээр хийгдэх ѐстой. Бусад үйлдэл нь дурын тоон төрөл дээр хэрэглэгдэж болно. Утга олгох Энэ үйлдэл нь түүний үйлдлийн тэмдэг болох = тэмдгийн баруун гар талд байгаа илэрхийллийг тооцоолоод, зүүн гар талын объектод онооно. Си хэлэнд энгийн, нийлмэл гэсэн 2 янзын утга олгох үйлдэл байна. Энгийн= Нийлмэл +=; -=; *=; =; %=; x+=y; => x=x+y; x*=y; => x=x*y; 6
  • 7. Нэмэгдүүлэх ба хорогдуулах үйлдэл x   x  x  1 x-ийн утгыг 1,1-ээр, нэмэгдүүлнэ.   x Гэхдээ х++ илэрхийллийн, утга нь х-ийг 1-ээр нэмэгдүүлхийн өмнөх утга. x   x  x  1 ++х-ийн утга нь х-ийг 1-ээр нэмэгдүүлсний дараах утга байна.   x Нөхцөл шалгах ба сонголтын операторууд Харьцуулах үйлдлүүд: == тэнцүү != тэнцүү биш > эрс их < эрс бага >= их юмуу тэнцүү <= бага юмуу тэнцүү Үйлдлүүдийг харьцуулах үйлдлүүд гэдэг бөгөөд эдгээр үйлдлүүдыг 2 түвшинд хуваадаг. Үүнд: Дээд түвшний буюу өндөр зэрэглэийн үйлдлүүд: > < >= <= Доод түвшний буюу нам зэрэглэийн үйлдлүүд: == != Илэрхийлэл доторхи дээд түвшний үйлдлүүд эхлэж биелэгдээд дараа нь доод түвшний үйлдлүүд биелэгдэнэ. Тоон төрлийн утгуудыг жишихдээ утгынх нь их багаар жишнэ. Харин тэмдэгтүүдийг жишихдээ ASCII дугаараар нь жишдэг. ASCII тэмдэгтүүдийн дарааллын заримаас нь дурдвал: „A‟=65 „a‟=97 „B‟=66 „b‟=98 „Z‟=90 „z‟=122 гэсэн кодтой. Жишээ нь: „A‟>‟a‟ (худал) „z‟>‟B‟ (үнэн) Нөхцөл шалгах if оператор Нөхцөл шалгах операторыг логик оператор гэх ба энэ нь ямар нэгэн идентификаторын утгаас хамаарч ялгаатай үйлдэл хийх үед хэрэглэгдэнэ. Нөхцөл шалгах оператор нь хураангуй ба дэлгэрэнгүй гэсэн 2 хэлбэртэй. a) If (<логик нөхцөл>) үйлдэл; Энэ хэлбэрийг нөхцөл шалгах, операторын хураангуй хэлбэр гэх ба шалгаж байгаа нөхцөл биелэж байвал үйлдэл хийгдэх ба биелэхгүй бол дараагын операторт шилжих болно. Хэрэв үйлдэл нь 2 ба түүнээс дээш бүлэг үйлдэл байвал Си хэлний блоклох оператороор хашиж өгнө. Си хэлний блоклох оператор-ын хэлбэр: { оператор_1; оператор_2; . . . оператор_n; } Си хэлэнд логик илэрхийлэл нь дурын илэрхийлэл байж болно. Харин бусад програмчлалын хэлэнд зөвхөн үнэн, худал утга буцаах илэрхийллийг зөвшөөрдөг. Жишээ нь: if(n>1000) printf(“n утга хязгаараас хэтэрлээ”) b) If (<логик нөхцөл>) <үйлдэл_1>; else<үйлдэл_2>; 7
  • 8. Дэлгэрэнгүй нөхцөл шалгах хэлбэр нь логик нөхцөл биелэж байвал <үйлдэл_1>-ийг биелэхгүй бол <үйлдэл_2>-ийг гүйцэтгэх болно. үйлдэл_1 ба үйлдэл_2 нь блоклох оператор байж болно. Логик нөхцөл Логик нөхцөлд хэдэн нөхцлийг зэрэг шалгасан байж болох ба тэр тохиолдолд шалгагдаж байгаа логик нөхцлүүд логик холбоосоор холбогдсон байх ѐстой. Си хэлэнд логик ба, логик буюу, логик үгүйсгэл гэсэн холбоосууд байна. -Логик ба үйлдэл нь шалгагдаж байгаа нөхцлүүд бүгд үнэн үед үнэн байна. Үр дүн нь int төрлийн утгатай ба үнэн үед 1, худал үед 0 гэсэн харгалзах утгатай байна. Бичигдэх хэлбэр: Илэрхийлэл 1 && илэрхийлэл 2 -Логик буюу үйлдэл нь шалгагдаж байгаа нөхцлүүдийн ядаж 1 нөхцөл нь үнэн бол үг дүн нь үнэн байна. Харин нөхцлүүд бүгд худал үед үр дүн нь худал байна. Бичигдэх хэлбэр: Илэрхийлэл 1 || илэрхийлэл 2 -Логик үгүйсгэл үйлдэлээр илэрхийллийн үр дүнг урвуугаар хөрвүүлнэ. Өөрөөр хэлбэл үнэн утгыг худал худал утгыг үнэн болгоно. Бичигдэх хэлбэр: ! (илэрхийлэл) ? : үйлдэл Энэ нь гүйцэт нөхцөл шалгах оператортой төстэй бичигдэх хэлбэр нь: (логик нөхцөл)?(үйлдэл 1):(үйлдэл 2); Хэрэв логик нөхцөл үнэн бол үйлдэл 1-ийг, худал бол үйлдэл 2-ийг биелүүлэх болно. Энд үйлдэл 1 ба үйлдэл 2 нь заавал 1 илэрхийллээс тогтсон байх ѐстой. Сонголтын оператор switch Сонголтын оператор else if цуваатай төстэй. Гэхдээ бүхэл эсвэл тэмдэгт төрлийн илэрхийллийн утгаас хамаарч хэдэн үйлдлээс аль нэгийг нь сонгон биелүүлэх хэрэгтэй бол энэ операторыг ашиглана. Бичигдэх ерөнхий хэлбэр 1: Switch (илэрхийлэл) { <case утга_1>:<үйлдэл_1>; break; <case утга_2>:<үйлдэл_2>; break; . . . <case утга_N>:<үйлдэл_N>; break; } Бичигдэх ерөнхий хэлбэр 2: Switch (илэрхийлэл) { <case утга_1>:<үйлдэл_1>; break; <case утга_2>:<үйлдэл_2>; break; . . . <case утга_N>:<үйлдэл_N>; break; default үйлдэл_m; } Хэрэв илэрхийллийн утга нь утга_1= бол үйлдэл_1 биелэгдэнэ. Хэрэв утга_2= бол үйлдэл_2 биелэгдэнэ, гэх мэт ө/х илэрхийлэл нь бүхэл тоон төрөлтэй ба 1 удаа үнэлэгдээд case-үүдийн ард бичигдсэн тогтмол утгуудтай харьцуулалт бичигдэнэ. Хэрэв case тогтмолуудын аль нэг нь тохирч байвал програмын удирдлага тухайн case-ийн ард бичигдсэн үйлдэлд шилжинэ. Хэрэв бүх утга тохирохгүй бол default-ийн ард бичигдсэн үйлдэлд шилжинэ. 8
  • 9. Switch командыг тухайн хэрэглэх шаардлагаас хамаарч янз бүр бичиж болно. Үүнд: 1. Break командыг бичихгүй байж болно. 2. Default сонголт байхгүй байж болно. 3. Хамгийн сүүлчийн сонголтын ард break оператор бичих шаардлагагүй. 4. Switch-ийн арын илэрхийлэл нь int төрлийн утга буцаах ѐстой. 5. Case түлхүүр үгийн хойно зөвхөн тэмдэгт болон тоон тогтмол бичнэ. 6. Сонголтын утгууд нь өөр хоорондоо ялгаатай утгууд байх ѐстой. Break оператор. Switch доторх break оператор нь програмын биелэлтийг switch-ийг дараагийн операторт шилжүүлсэн. Хэрэв switch дотор break операторыг бичихгүй бол тухайн утгаас хойш орших бүх үйлдлүүдийг биелүүлдэг. Ер нь break оператор нь тухайн операторын ажиллагааг зогсоож дараагийн операторт шилжүүлэх үүрийг биелүүлдэг. 9