Лекц 1 Сэдэв: Дэд сэдвүүд : Си хэлний тухай Си хэлний бүтэц Тайлбар

Similar documents
Multimedia Authoring and Tools L-2

netcat Гарчиг Tuguldur BiBO

Програм хангамжийн архитектур (Software Architecture)

MATLAB ПРОГРАММЫН ТУХАЙ

Тоон хэлбэрт дуу авиаг боловсруулах

Буффер Overflow(Дүүргэх) (БОФ) гэж юу вэ? Сүлжээний орчинд БОФ exploit хэрхэн хийх вэ? (Зөвхөн x86 процессорын хувьд FreeBSD дээр)

Програм хангамжийн архитектур (Software Architecture)

Computer graphics, 3D

Presented By : Gaurav Juneja

САНСРЫН ХОЛБООНЫ IRIDIUM УТАС АШИГЛАХ ЗААВАР бусад сүлжээнээс

ИНТЕРНЭТИЙН СҮЛЖЭЭНД СУУРИЛСАН ДОТУУР ХОЛБООНЫ ҮЙЛЧИЛГЭЭ. (Хэрэглэгчийн гарын авлага) 1 Хуудас

Recap. ANSI C Reserved Words C++ Multimedia Programming Lecture 2. Erwin M. Bakker Joachim Rijsdam

ТШТ:Х КАМ ЕРЄНХИЙ ШААРДЛАГА Хуудас 11-ийн 1

Агуулга. Клоуд гэж юу вэ? Клоуд үйлчилгээний загвар. Клоуд Deployment загвар. Microsoft Azure. Business case. Асуулт & Харуулт

Бараа материалын нөөцийн удирдлага (Managing Inventory)

Программ суулгах ажилж эхлэх талаар гардаг нийтлэг асуултууд

Лекц 16 Судалгааны ажлын боловсруулалт хийх Excel програмд дэд програм нэмж суулгах Excel Solver Datanalysis Office Excel File Options

Халдлага Илрүүлэх Системийн Хосолмол Загварын Судалгаа

МЭДЭЭЛЛИЙН СИСТЕМИЙН ХЭРЭГЛЭГЧДИЙН ГАРЫН АВЛАГА

Гарчиг Веб портал ашиглан үйлчилгээний тохиргоо хийх заавар... 2

USB flash memory, USB принтер зэргийг клиент тус бүрээр ашиглахыг зөвшөөрөх/хориглох тохиргоог хийх боломжтой юу?

!"#$% &'($) *+!$ 0!'" 0+'&"$.&0-2$ 10.+3&2),&/3+, %&&/3+, C,-"!.&/+"*0.&('1 :2 %*10% *%7)/ 30'&. 0% /4%./

Introduction to Computing Lecture 01: Introduction to C

MANUAL DROUGHTWATCH SYSTEM. DroughtWatch 3.1. Information and Research Institute of Meteorology, Hydrology and Environment

ZTESmart. Гарын авлага. МЦХ ний Мэдээллийн Технологийн Газар

Хэмнэл ба давтамж. Лекц 13. МУИС-ХШУИС-МКУТ-ийн багш П.Гантуяа

Стандартчиллын үндэсний зөвлөлийн 2011 оны 11 дүгээр сарын 24 -ний өдрийн 54 дүгээр тогтоолоор батлав.

Манай интернэт Wi-Fi ашиглах заавар

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

СТАТИСТИК СИСТЕМ ГАРЫН АВЛАГА (ТӨСВИЙН ОРЛОГО, ЗАРЛАГЫН ГҮЙЦЭТГЭЛ; ХӨРӨНГИЙН ТАЙЛАН) Шинэчилсэн огноо:

ХУВИЛБАР ТОВЧ УТГА Батлагдсан огноо

Манай интернэт Wi-Fi ашиглах заавар

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information

CLOUD COMPUTING БУЮУ ҮҮЛЭН ТООЦООЛЛЫН ВИРТУАЛЧЛАЛЫН АРГЫГ БАНКНЫ СИСТЕМД НЭВТРҮҮЛСЭН ТУРШИЛТЫН ҮР ДҮНГЭЭС

ГАР БАГАЖНЫ танилцуулга

Introduction to Multimedia

Дизайн дахь өнгө ба гэрэл. Лекц 5

[ ] Гүйцэтгэлийн түлхүүр үзүүлэлтүүд БЕРНАРД МАРР. Менежер бүр мэдвэл зохих 75 KPI

CrossPower. Microgrids-ийн хосолмол эрчим хүчний систем. цахилгаан түгээлт

Article begins on next page

Компьютерын сүлжээ Лекц-14

Code segment Stack segment

CMPE-013/L. Introduction to C Programming

J.CN203 Дохио ба систем Хувилбар А оны хичээлийн жилийн намрын улирлын шалгалт

Утас идэвхжүүлэх тохиргоо ios 8.4 үйлдлийн систем

САНАЛ. Нэг. Ерөнхий мэдээлэл: Овог, нэр Сургууль Мэргэжил Ажилласан жил Мэргэжлийн зэрэг Хүйс. Сурах бичгийн нэр: Анги: Хоёр. Агуулга: Сэдвийн нэр

Article begins on next page

ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ

БИЗНЕСИЙН УХААЛАГ МЭДЭЭЛЭЛИЙГ СУДЛАХ НЬ (Business Intelligence) Б.Гэрэлтуяа. О.Намуунцэцэг

Иргэний бүртгэлийн систем

Programming in C++ 4. The lexical basis of C++

Програм хангамжийн архитектур (Software Architecture)

ЭДИЙН ЗАСАГЧИД СОНГУУЛЬД ОРОЛЦДОГ УУ? Д.Долгорсүрэн, Удирдлагын академийн эдийн засгийн тэнхмийн багш доктор, дэд профессор

Ц.Хүрэл-Очир. МУИС-ийн Хууль зүйн сургуулийн Эрх зүй, төрийн онол-түүхийн тэнхимийн ахлах багш, докторант

ЦАЛИН ХӨЛСНИЙ СИСТЕМ

Тохокү Их Сургууль Номын сангийн Хөтөч

LOGO. ШУТИС, ГУУС, ГГ- ийн салбарын дэд проф Г. Сарантуяа

- Интернэтийн орчинд байвал хүссэн газраасаа шууд... - Компьютер, Таблет, гар утасны шинэ төрлийн хамгаалалт

Харилцагчийн удирдлагын систем

Data Structures Unit 02

System Design S.CS301

ET156 Introduction to C Programming

The component base of C language. Nguyễn Dũng Faculty of IT Hue College of Science

JPEG стандарт Лекц-15. МУИС ХШУИС МКУТийн багш П.Гантуяа

Informática Ingeniería en Electrónica y Automática Industrial

Монгол Улс. Хэвлэл мэдээллийн эрх зүй. Онлайн, оффлайн орчин дахь хувь хүний нууц ба цахим эрх Сургалтын гарын авлага

Ардчилал ба улстөрийн авилга

Program controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions.

XSEDE Scholars Program Introduction to C Programming. John Lockman III June 7 th, 2012

CS 61C: Great Ideas in Computer Architecture Introduction to C

Уламжлалт бус мэдээллийн хэрэглээ, анхаарах асуудал. Ш.Ариунболд

LAB 5 Arithmetic Operations Simple Calculator

Өнгөний тухай. МУИС ХШУИС МКУТийн багш П.Гантуяа

C Language, Token, Keywords, Constant, variable

УГСААТНЫ ЗҮЙН ҮЗЭСГЭЛЭН

6.096 Introduction to C++ January (IAP) 2009

МОНГОЛБАНКНЫ ТӨЛБӨР ТООЦОО, БҮРТГЭЛИЙН ГАЗАР ТӨЛБӨР ТООЦООНЫ ТӨВ ТӨЛБӨРИЙН КАРТЫН EMV СТАНДАРТЫГ ДЭМЖИЖ АЖИЛЛАХ, ОДООГИЙН БАЙДАЛ

Их сургуулийн танхимаас

Chapter 2: Overview of C. Problem Solving & Program Design in C

ТЕХНИК ТУСЛАЛЦАА ҮЙЛЧИЛГЭЭ

C Tutorial: Part 1. Dr. Charalampos C. Tsimenidis. Newcastle University School of Electrical and Electronic Engineering.

Syntax and Variables

EVC Series Video Conferencing. Your Best Collaborative Communication Solution

Procedures, Parameters, Values and Variables. Steven R. Bagley

Article begins on next page

ХАМТРАН АЖИЛЛАХ БИЗНЕС САНАЛ

Reverse Engineering II: Basics. Gergely Erdélyi Senior Antivirus Researcher

Lecture 02 C FUNDAMENTALS

Introduction to the C Programming Language

Information from Hawaii!! Шашинд хөтлөн оруулах. Buddha's Wisdom Changes Your Life

Variables in C. Variables in C. What Are Variables in C? CMSC 104, Fall 2012 John Y. Park

Reverse Engineering II: The Basics

Програм хангамжийн каталог

Програм хангамжийн каталог

A Fast Review of C Essentials Part I

DECLARATIONS. Character Set, Keywords, Identifiers, Constants, Variables. Designed by Parul Khurana, LIECA.

Data Types and Variables in C language

Subject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100

BLM2031 Structured Programming. Zeyneb KURT

Transcription:

Лекц 1 Сэдэв: Си хэлний бүтэц, түүний элементүүд Дэд сэдвүүд : Си хэлний тухай Си хэлний бүтэц Си хэлний элементүүд Си хэлний тухай Си хэлийг анх Unix үйлдлийн системтэй компьютер дээр ажилладаг байхаар Dennis Ritchie гэгч зохиожээ. Си хэл нь олон жилийн турш зөвхөн Unix SystemV үйлдлийн систем дээр ажилладаг байсан. Микрокомпьютерийн хөгжил нь олон хувилбар бүхий Си зохиогдох боломж олгосон бөгөөд эдгээр нь хэдийгээр бусадтайгаа нийцтэй байсан ч гэсэн нэгэн стандарт болоогүй, мөн хоорондоо зөрчилдөх тохиолдол гарч байсан тул 1983 оны зун ANSI-ийн хороо байгуулагдаж Си хэлний ANSI стандартыг бий болгосон. 1990 онд ANSI стандартыг хөгжүүлсний дүнд Turbo C бий болсон. Turbo C нь хурдан ажилладаг сайн компилятортой, уламжлалт болон нэгтгэсэн програмын орчинд ажиллах боломжтой, олон програм зохиогчдын шаардлага хүсэлд нийцсэн хэл болсон юм. Turbo C-ийн дараа Borland C гарсан бөгөөд Turbo C-ийн мэргэжлийн болгосон хувилбар юм. Си хэлний тархалт нь обьект хандалтат програмчлал гэсэн шинэ програмчлалын арга бий болгоход хүргэсэн. Үүний үр дүнд С++ хэл үүссэн юм. Си хэлний бүтэц Си програмыг функцуудын цуглуулга гэж ойлгож болно. Програмыг ажиллуулахад систем main( ) функцыг эхэлж дууддаг. Энэ нь Си програм бүрт байдаг хамгийн гол үндсэн функц юм. Тайлбар Тайлбар нь дараалсан тэмдэгтүүд. Бичигдэх хэлбэр : /* < Тэмдэгтүүд > */ <Тэмдэгтүүд > - Дараалсан тэмдэгтүүд байна. Си хэлний компилятор нь тайлбарыг тусгай хоосон зайн тэмдэгт гэж ойлгодог. Си-ийн тайлбарыг /*...*/ -хаалтанд бичдэг. Иймээс тайлбарыг хаана ч хэрэглэж болно. Жишээ нь : /* Би оюутан */ Тайлбар дотор тайлбарыг бичиж болохгүй. Тайлбар нь ихэвчлэн програмын тайлбар байдаг учраас програмын биелэлтэнд ямар ч нөлөө үзүүлдэггүй. /* This is comment */ Си хэлний өргөтгөл нь өргөтгөл *.с С++ дээр бичсэн өргөтгөл *.cpp Ямар ч программчлалын хэлэнд уламжлал болон тогтсон хамгийн эхний програмыг бичье. Програмын тайлбар /* File hello.c */ Энэ мөр нь програмын тайлбар

/* Say hello to user */ Энэ мөр нь мөн програмын тайлбар #include<stdio.h> int main ( void ) printf( Hello, world \n ); return0; stdio.h толгой файлд зарлагдсан функцыг #include директивээр програмдаа оруулж ашиглана. Програмын эхлэл гол функц Дэлгэцэнд хэвлэх Төгсгөл include директив нь програмд тухайн файлыг оруулна гэдгийг заана. Функц бүр нь дуудагдан ажиллахын өмнө зарлагдсан байх ба урьдчилан тодорхойлогдсон байх ёстой байдаг. Си хэлэнд функц нь header file /толгой файл/-д зарлагдсан байна. Жишээ нь: math.h гэсэн толгой файл нь математикийн функцуудыг агуулдаг. Толгой файл нь стандарт оролт гаралтын функцуудыг агуулдаг. Өөрөөр хэлбэл, дэлгэц дээр hello, world гэж хэвлэн гаргах функц нь stdio.h толгой файлд зарлагдсан тул дээрх жишээ програмд Hello, world гэж хэвлэж гаргах printf() нь stdio.h толгой файлд байдаг тул #include<stdio.h> зайлшгүй бичигдэнэ. Си хэлэнд функц нь дараах хэлбэртэй бичигдэнэ. Толгой хэсэг Толгой хэсэг нь int main ( void ) Зарлах хэсэг / хэрвээ байвал / үйлдэл буюу операторууд ; main - Си програмын үндсэн функц void - хоосон буюу параметргүй int - main функц бүхэл тоон утга буцаана гэдгийг зааж байна. -32768...32767 хүртэл int төрөл байна. Функцын эх бие нь printf ( Hello, world!\n ); return 0; printf ( Hello, world!\n ) нь дэлгэц дээр Hello, world! гэж хэвлэж гаргана. \ n нь курсорыг дараачийн мөрийн эхэнд шилжүүлнэ. Үйлдэл, оператор бүхэн цэгтэй таслалаар ; - аар төгсөнө. return0 - main () функц системд 0 гэсэн утга буцаана. 0 - програм амжилттай ажиллалаа гэдгийг заана. Дээрх main() функцыг товчоор бичиж болно. main ()

printf( Hello, world!\n ); printf() printf( abc ); printf( abc\n def \n ghi ); printf( def ); printf( ghi ); Үр дүн: abcdefghi Үр дүн: abc def ghi /* file greet.c */ #include<stdio.h> void say_hello (void); void say_goodbye(void); int main(void) say_hello( ); say_goodbye( ); void say_hello (void) printf( Best wishes to all\n ); printf( Hello, everybody!\n ) /* Take leave */ void say_goodbye(void) printf( I ve got to go now. \n ); printf( So long, and have a nice day! \n ) Си хэлний элементүүд Илэрхийлэл бодохын тулд хувьсагч болон тогтмол хэмжигдэхүүнүүдийг операторуудаар холбон бичиж үйлдлийг гүйцэтгэдэг. Эдгээр нь бүгдээрээ Си хэлний элементүүд болно. Үүнд: Үсэг Тогтмолууд Нэр (идентификатор) Түлхүүр үг Тайлбар

Үсэг Си хэл нь олон тооны үсэг, цифр, цэгэн тэмдэгтүүдээс тогтох бөгөөд эдгээр нь компиляторт тодорхойлогдсон байна. Си хэлний тэмдэгтүүдэд том, жижиг латин цагаан толгой ба араб цифрүүд байдаг. Үсгүүд ба цифрүүд нь тогтмол, идентификатор, түлхүүр үгүүдийг бичихэд ашиглагддаг. Тогтмолууд Си хэлний тогтмолууд нь програмд оруулж ашиглаж болох тогтоосон утгатай. Үндсэн 4 төрлийн тогтмол байдаг. 1. Бүхэл тоон тогтмол 2. Бодит тоон тогтмол 3. Тэмдэгтэн тогтмол 4. Тэмдэгтэн мөр тогтмол 1. Бүхэл тоон тогтмол. Бүхэл тоонууд нь бутархай хэсэггүй бөгөөд 8-т, 10-т, -тын тооллын системүүдээр илэрхийлэгдэнэ. Бүхэл тоон тогтмолууд нь өөрийн тодорхой төрөлтэй. Тогтмолын хэмжээнээс хамаарч - int - unsigned int - unsigned long зэрэг төрлүүдтэй байж болно. Бүхэл тоон тогтмолын бичигдэх ерөнхий хэлбэр: 10-тын цифр 8-тын цифр -тын цифр 0 <цифр> 0х <цифр> 0..9 ( цифр нь 0..7 ) ( цифр нь 0..9, А..F, а..f ) Бүхэл тоон төрлүүд : Төрөл Хэмжээ Хязгаар Unsigned char Char Unsigned int Int Unsigned short short unsigned long long 8 8 32 32 0......255-128...127 0...65535-32768...32767 0...65535-32768...32767 0...394967295-2147483648...2147483647 2. Бодит тоон тогтмол

Бодит тоон тогтмол нь float түлхүүр үгийн тусламжтай тодорхойлогддог. Бодит тоон тогтмолын хэмжээнээс хамаарч төрөл нь double, float байна. Бодит тоон төрөл : Төрөл Хэмжээ Хязгаар Float Double Long double 32 64 80 3.4E-38...3.4E+38 1.7E-308...1.7E+308 3.4E-4932...1.1E+4932 3. Тэмдэгтэн тогтмол Тэмдэгтэн тогтмол нь үсэг, цифр, цэгэн тэмдэгт, тусгай үсгүүдийг хэрэглэнэ. Си хэлний компилятор нь тэмдэгтэн төрлийг char, тэмдэгтэн биш төрлийг unsigned char гэж авдаг. Бичигдэх хэлбэр : < value > Value : тэмдэгт, үсэг, тусгай үсгүүд, цифр байна. 4. Тэмдэгтэн мөр тогтмол Тэмдэгтэн мөр тогтмол нь хашилтан дотор дараалсан үсэг, дурын тусгай тэмдэгтүүд, цифр, хоосон зай зэргийг агуулсан мөр тэмдэгт байна. Бичигдэх хэлбэр: <value> value дараалсан үсэг, тэмдэгтүүд, цифр, хоосон зай байна. Тэмдэгтэн мөрийн утга нь санах ойд тодорхой байтад хадгалагдана. Тэмдэгтэн мөрийн төгсгөлд автоматаар \0 тавина. Нэр ( Идентификатор ) Идентификатор нэр гэдэг нь хэрэглэгч буюу програм зохиогч өөрөө ямар нэг обьектод / хувьсагч, тогтмол хэмжигдэхүүн, функц програм г.м / өгсөн нэр юм. Turbo C хэлний идентификатор нь 1-32 хүртэл тэмдэгтээс тогтох бөгөөд зөвхөн үсгээр эхлэх ба үсэг цифр холилдон орж болно. Мөн ялгах тэмдэгтүүдээс зөвхөн доогуур зураас орж болно./харин нэрэнд хоосон зай орж болохгүйг анхаарна уу/. Зөв Буруу count 1 count test23 hi!there high_balance high..balance Си хэлэнд том, жижиг үсгээр бичих нь ялгаатай. Жишээ нь, count,count,count эдгээр нь ялгаатай гурван өөр идентификатор нэр юм. Эдгээр идентификатор нэр нь Turbo C-ийн нөөц үгтэй адил байж болохгүй. Иймд жижиг үсгийг хувьсагчийн нэр, том үсгийг тогтмолуудыг нэрлэхэд ашигладаг. Turbo C- ийн нөөц үгс: auto, break, case, char, coist, continue, default, do, near, pascal, struct, union,volatile, huge, long, short, double, enum, float, goto, while... г.м. Түлхүүр үг

Энэ нь урьдаас тогтоосон нэртэй байх ба Си хэлний компиляторт утгатай. Хатуу дүрэм тогтоон ашиглагддаг. Түлхүүр үгийг хувьсагчийн нэр шиг ашиглаж болохгүй. Ихэнх компиляторууд нь түлхүүр үгийг том ба жижгээр бичигдсэнээс үл хамааран хүлээн авдаг. Зарим түлхүүр үгс: Auto double goto static void Break else int sizeof while Case extern long struct Char enum return switch Continue float register union Do for short typedef Default if signed unsigned Зайлшгүй хэрэгтэй өөр нэрийн түлхүүр үгийг процессорын директивийн тусламжтайгаар тодорхойлдог. Жишээ нь, # define BOOL int Тусгай түлхүүр үгнүүд : MSC TC cdecl far const volatile fortrain interrupt huge near pascal asm _cs _ss cdecl _ds _es far _BX _CL huge _CH _CX intrrupt _AH _DH near _AL _DL pascal _AX _DI const _BH _DX volatile _BL _SI