lec1 pragraming language

18
Магадлан итгэмжлэгдсэн “Идэр” Дээд Сургууль Мэдээллийн Технологийн тэнхим Ц.Төртогтох ([email protected] )

Upload: turuu-tsogt

Post on 16-Jul-2015

75 views

Category:

Automotive


5 download

TRANSCRIPT

Page 1: Lec1 pragraming language

Магадлан итгэмжлэгдсэн “Идэр” Дээд Сургууль

Мэдээллийн Технологийн тэнхим

Ц.Төртогтох ([email protected])

Page 2: Lec1 pragraming language

Програмчлалын хэлүүд

Програм гэж юу вэ?

Компилятор гэж юу вэ?

Програмыг ажлуулах гэж юу вэ?

Си хэлний түүх

Цагаан толгой

Page 3: Lec1 pragraming language

Доод түвшний хэл (assembler)

Дунд түвшний хэл (B, C, C++, Pascal, Basic гэх мэт)

Дээд түвшний хэл (Visual C++, Delphi, Visual basic гэх

мэт визуаль хэлүүд)

Өөр маш олон едитор програмууд байдаг. Жишээ нь:

Dev C++, Turbo C, C free гэх мэт

Page 4: Lec1 pragraming language

Програм гэж юу вэ?

Компьютероор тодорхой нэг ажил хийлгэхийн тулд

түүнд өгч байгаа командуудын олонлогийг програм гэж

нэрлэнэ.

Page 5: Lec1 pragraming language

Компилятор гэж юу вэ?

Компилятор нь бичсэн програмыг хөрвүүлэх үйл

ажиллагааг хэлнэ. Хөрвүүлэх гэдэг нь хүнд ойлгомжтой

буюу “СИ” хэл дээр бичигдсэн програмыг машинд

ойлгомжтой буюу командуудын дараалалд хөрвүүлэх үйл

ажиллагааг хэлнэ.

Page 6: Lec1 pragraming language

Компилятор хийсэн програмын код нь шууд биелэх *.exe

файл буюу програм болох болно. Тухайн файлыг

ажиллуулсанаар програмыг ажиллууна.

Page 7: Lec1 pragraming language

Хэлний цагаан толгой ямар вэ?

Өгөгдлийн ямар төрлүүд байдаг вэ? Тэдгээрийг

яаж тодорхойлдог (бичдэг) вэ?

Өгөгдлүүд дээр ямар үйлдлүүдийг гүйцэтгэх

боломжтой вэ? Яаж илэрхийлэл бичих вэ?

Тэдгээр нь хэрхэн биелдэг вэ?

Програмын бүтэц ямар байдаг вэ?

Операторууд, тодорхойлолтууд ямар

дарааллаар бичигддэг вэ?

Page 8: Lec1 pragraming language

Програмын биелэлтийн үр дүнг яаж гаргах

(хэрэглэгчид үзүүлэх) вэ?

Утга оноох, нөхцөлт, шилжилтийн

операторууд яаж бичигдэх вэ?

Програмд өгөгдлийг яаж оруулах вэ?

Давталтын ямар ямар бүтцүүд байна вэ?

Функц, процедурыг яаж тодорхойлдог вэ?

г.м. Ингэснээр цаашид програм бичихэд

чухал хэрэг болно.

Page 9: Lec1 pragraming language

• Програмчлалын Си хэлийг 1972 онд Bell Laboratories

(АНУ) компанийн ажилтан Деннис Ритчи (Dennis M.

Ritchie) UNIX үйлдлийн системийг боловсруулж байх

явцдаа зохиожээ. Си хэл нь системийн програмчлалын

хэрэгсэл мэтээр бүтээгдсэн байна.

• Си хэлний янз бүрийн хөрвүүлэгч програмыг

боловсруулагчид Б.Керниган, Д.Ритчи нарын (“The C

Programming Language”, 1st Edition, Brian Kernighan &

Dennis Ritchie, 1978) номыг албан бус стандарт лавлах

болгон хэрэглэдэг байв.

Page 10: Lec1 pragraming language

• Энэ номын дагуух хувилбарыг ном, сурах бичигт “K&R

C” гэж тэмдэглэж заншсан. Иймэрхүү байдалтай байж

байгаад 1989 онд ANSI C хэмээх стандарт гарчээ. 1990

онд Олон Улсын Стандартчилалын Холбоо (ISO) ANSI

C стандартыг үл ялиг өөрчлөөд ISO C олон улсын

стандартыг баталжээ. Үүнээс хойно C99 хэмээх

стандарт гарсан. Гэхдээ өнөөдөр дэлхий нийтээр ANSI

C стандартыг илүү өргөн хэрэглэж байна.

• Бид хичээлээ ANSI C стандартыг баримтлан өрнүүлэх

болно.

Page 11: Lec1 pragraming language

Латин цагаан толгойн том, жижиг үсгүүд: (A, B, ..., Z, a, b, ..., z)

Цифрүүд: 0, 1, 2, 3, 4 , 5, 6, 7, 8, 9

Тусгай тэмдгүүд

“ , { } | [ ] ( ) + - / % \ ; ‘

. : ? < = > _ ! & * # ~ ^

Page 12: Lec1 pragraming language

Цагаан толгойн тусламжтайгаар хэлний бусад бүрдэл хэсгүүдийгбүтээдэг. Си хэлэнд:

1.идентификаторууд (чөлөөт нэрс)

2.албаны (нөөц) үгс

3.тогтмолууд

4.тэмдэгт мөр төрлийн тогтмолууд

5.үйлдлийн тэмдгүүд

6.програмын тайлбар

7.тусгаарлагч тэмдгүүдийг ашиглан програмын эх кодыгбичнэ.

Page 13: Lec1 pragraming language

Үсэг юм уу доогуур зураас “_”-аар эхлэсэн, үсэг, цифр, доогуур зураасуудын

дарааллыг идентификатор гэнэ. Ж.нь:

• Зөв идентификатоорууд.

X, y_too, x2, a_mydata, kom16, hariu, haagii, aa, b2c3, week_days

• Буруу идентификаторууд.

Count, COUTN, if, 1too, hariu+too, hicheel.1, 1-r too, h y,

Том, жижиг үсгүүд ялгаатай утгыг илэрхийлнэ. Тиймээс ж.нь TIME болон time

нь ялгаатай нэрнүүд байна.

Идентификатор нь дурын урттай байж болох ч C хэлнйи хөрвүүлэгч эхний

32 тэмдэгтийг л тооцдог.

Page 14: Lec1 pragraming language

• Си хэлэнд урьдаас тодорхойлогдож нөөцлөгдсөн учраас

програм зохиогч хүн идентификатор болгон ашиглах

боломжгүй тийм идентификаторуудыг албаны үгс гэнэ.

Албаны үгс нь өгөгдлийн төрөл, санах ойн ангиллууд,

өгөгдлийн хэлбэрүүд, хуурмаг хувьсагчууд (регистрийн

хувьсагчууд), операторууд г.м.-ийг тодорхойлно.

Page 15: Lec1 pragraming language

Өгөгдлийн төрөл гэдэг нь үнэн хэрэгтээ түүний авах боломжтойутгын муж (олонлог) юм.

Мэдээж өгөгдлийг ашиглаж эхлэхээсээ өмнө програмд заавалзарлах ёстой.

өгөгдлийн_төрөл өгөгдлүүдийн_нэр, өгөгдлүүдийн_нэр ;

Энд:

өгөгдлийн_төрөл – өгөгдлийн төрлийг заасан албаны үг

өгөгдлүүдийн_нэр – өгөгдлүүдийг нэрлэхийн тулд програмзохиогчийн сонгож авсан чөлөөт индентификаторуудыг таслалаартусгаарлан цувуулж бичсэн жагсаалт.

Өгөгдлийг зарласан бичиглэлийн төгсгөлд цэгтэй таслал “;” тавьжбуйг анхаараарай.

Си хэлэнд дараах үндсэн өгөгдлийн төрлүүд тодорхойлогдсонбайдаг.

Page 16: Lec1 pragraming language

Хувьсагч

Зарлагдсан өгөгдлийн утга нь програм биелэх явцадөөрчлөгдөх боломжтой байвал тэр өгөгдлийг хувьсагч(variable) гэдэг.

өгөгдлийн_төрөл хувьсагчуудын_нэр(с) ;

хувьсагчуудын_нэр(с) – хувьсагчуудыг нэрлэхийн тулдпрограм зохиогчийн сонгож авсан чөлөөтиндентификаторуудыг таслалаар тусгаарлан цувуулж бичсэнжагсаалт.

Page 17: Lec1 pragraming language

Д.Цэдэвсүрэн “C++ програмчлал” 2010он

С.Ууганбаяр “Си хэл” 2011 он

Н.Соронзонболд “Програмчлалын хэл” 1996 он

http://spe.num.edu.mn/altankhuu/lesson/

Page 18: Lec1 pragraming language