SlideShare une entreprise Scribd logo
1  sur  54
Лекц 1
Оршил
А. Хүдэр
Vanderbilt-ийн Их сургууль
112/16/2015
 Багш – А. Хүдэр, техникийн ухааны доктор
(PhD)
◦ Өрөө: ШУТИС, МХТС, 304
◦ Утас: 99068710
◦ Мэйл: khuder@must.edu.mn
 Вэбсайт:
◦ elearn.sict.edu.mn
Vanderbilt-ийн Их сургууль 212/16/2015
 C. How to program. Deitel. 6 дахь хэвлэл.
2010
 А. Хүдэр, “Програмчлалын үндсэн аргууд”,
хоѐр дахь хэвлэл, Өнгөт хэвлэл, 2010
 Д. Цэдэвсүрэн, “Си програмчлал”,
дөрөвдүгээр хэвлэлт, 2011
 Brian W. Kernighan and Dennis M. Ritchie, “C
Programming Language”, Second Edition,
Prentice Hall, PTR, 1988.
Vanderbilt-ийн Их сургууль 312/16/2015
 Програмчлах аргууд
◦ Алгоритмын дизайн
◦ Блок-схем ба псевдо код
◦ Програмчлалын дээрээс-доош дизайн
 Бүтэцлэгдсэн хэл (С хэлийг жишээ болгоно)
◦ Өгөгдлийн төрөл, Зарлалт, Оператор ба Илэрхийлэл
◦ Оролт ба гаралт
◦ Удирдлагын бүтцүүд
◦ Функц ба Програмын бүтэц
◦ Заагч
◦ Хүснэгт, Тэмдэгт мөр ба Нэгдэл
◦ Файл боловсруулалт
 Програмчлалын төрлүүд
◦ Програмчлах стиль
◦ Бүтцийн програмчлал ба Програмын модульчлал
◦ Програмын бичиг баримт ба Ашиглалт
Vanderbilt-ийн Их сургууль 412/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 512/16/2015
 Компьютер
◦ Тооцоолол гүйцэтгэх болон логик шийдвэр гаргах чадвартай
төхөөрөмж (техник хангамж)
◦ Компьютер нь компьютерийн програм гэж нэрлэгдэх заавруудын
олонлогийн удирдлага дор өгөгдлийг боловсруулна.
 Техник хангамж
◦ Компьютерийг бүрдүүлэх төв процессор (CPU), санах ой, эх хавтан
болон хатуу диск гэх мэт төрөл бүрийн төхөөрөмж мөн гадаад
төхөөрөмжүүд (гар, хулгана, гадаад дэлгэц, компакт диск уншигч).
◦ Техник хангамжийн хандлага-Нэг эсвэл хоѐр жил бүр дараах зүйлс
хоѐр дахин өснө:
 Програмыг ажиллуулж буй санах ойн хэмжээ
 Програмыг ажиллуулж байгаа процессорын хурд (Мурын хууль)
 Програм хангамж
◦ Компьютер дээр ажиллаж буй програмууд
Vanderbilt-ийн Их сургууль 612/16/2015
 Компьютер бүр 6 логик модультай байна:
◦ Оролтын модуль
 Оролтын төхөөрөмжөөс (гар, хулгана) мэдээллийг уншина
◦ Гаралтын модуль
 Мэдээллийг гаргана (дэлгэц, принтер рүү, өөр төхөөрөмжийг
удирдахаар)
◦ Санах ойн модуль
 Хурдан хандалттай, бага багтаамжтай, оролтын мэдээллийг хадгална
◦ Арифметик, логик төхөөрөмж (ALU)
 Арифметик тооцоо болон логик шийдвэрийг гүйцэтгэнэ
◦ Төв процессор (CPU)
 Компьютерийн бусад хэсгүүдийг удирдан зохион байгуулна
 ALU нь одоо CPU-гийн үндсэн хэсэг юм
◦ Гадаад санах ой
 Хямд, урт хугацааны, их багтаамжтай санах ой
Vanderbilt-ийн Их сургууль 712/16/2015
Vanderbilt-ийн Их сургууль 812/16/2015
 Багц боловсруулалт
◦ Зөвхөн нэг ажил буюу даалгаврыг биелүүлэх
 Мультипрограмчлал
◦ Нөөцийг удирдан олон програмд хуваарилах
◦ Програмуудыг хагас-зэрэг байдлаар ажиллуулах
◦ Нэг хэрэглэгч
 Олон хэрэглэгчтэй/Хугацааны хуваалттай систем
◦ Нэг зэрэг ажиллах олон хэрэглэгчдийг терминалаар дамжуулан
удирдах
◦ Нөөцийг шударгаар хуваарилах:
Процессорын төлөвлөлт
Vanderbilt-ийн Их сургууль 912/16/2015
Vanderbilt-ийн Их сургууль 1012/16/2015
 Персонал компьютер
◦ Хувь хүмүүст хангалттай үнэтэй
 Хуваарилагдсан тооцоолол
◦ Сүлжээгээр хуваарилагдсан тооцоолол хийх
 Клиент/Сервер тооцоолол
◦ Компьютерийн сүлжээг ашиглан файлын сервер
болон клиент хооронд мэдээлэл хуваарилах
Vanderbilt-ийн Их сургууль 1112/16/2015
Vanderbilt-ийн Их сургууль 1212/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 1312/16/2015
 Програмчлалын гурван төрлийн хэл
◦ Машины хэл
 Төв процессороор гүйцэтгэгдэх машины тусгай командууд
 Компьютерийн програмыг дүрсэлж болох хамгийн доод
хэлбэр
◦ Ассемблер хэл
 Англи товчилсон үгсийг ашиглан компьютерийн энгийн
үйлдлүүдийг дүрсэлнэ (ассемблерээр хөрвүүлнэ)
 Жишээ: mov ax, 1234h (1234h утгыг ax регистр рүү зөөх)
◦ Дээд түвшний хэл
 Өдөр тутмын англи хэлтэй төстэй
 Математикийн тэмдэглэгээг хэрэглэнэ (компайлераар
хөрвүүлнэ)
 Жишээ: niitTulbur = undsenTulbur + nemeltTulbur
Vanderbilt-ийн Их сургууль 1412/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 1512/16/2015
 С
◦ Денис Ритчи BCPL ба B гэсэн өмнөх хоѐр
програмчлалын хэлийг ашиглан үүсгэсэн
◦ UNIX – ийг хөгжүүлэхэд хэрэглэгдсэн
◦ Орчин үеийн үйлдлийн системүүдийг хөгжүүлэхэд
хэрэглэгдэж байгаа
◦ Техник хангамжаас хамаардаггүй (зөөврийн)
 Стандартчилал
◦ Си-гийн олон хувилбарууд гарч, хоорондоо
таардаггүй байсан
◦ “Машинаас хамаарахгүй, тогтвортой” тодорхойлолт
гаргах комисс байгуулсан
◦ Стандартыг 1989 онд гаргаж 1999 онд шинэчилсэн
Vanderbilt-ийн Их сургууль 1612/16/2015
 Си програмууд функц гэж нэрлэгдэх
хэсгүүд/модулиудаас тогтоно
◦ Програмист өөрийн функцийг зохиож болно
 Давуу тал: програмист түүнийг яг яаж ажиллахыг мэднэ
 Дутагдал: цаг алдана
◦ Програмистууд Си-гийн сангийн функцуудийг байнга
хэрэглэнэ
 Эдгээр функцууд дээр суурилан програмаа бичнэ
◦ Дугуйг дахин зохион бүтээхээс зайлсхийх
 Хэрэв ямар нэг функц байдаг бол түүнийг өөрөө бичсэнээс
байгааг нь ашиглах хэрэгтэй
 Сангийн функцууд алдаагүй бичигдсэн, үр ашигтай
бөгөөд авсаархан байдаг
Vanderbilt-ийн Их сургууль 1712/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 1812/16/2015
 Си++
◦ Bell Labs-т Бьѐрн Страуструпын гарган авсан С-
гийн өргөтгөсөн хувилбар
◦ Си-г “сайжруулж” обьект хандалтат боломжийг
нэмсэн
◦ Обьект хандалтат дизайн нь маш хүчирхэг юм
 Үр ашигтай байдлыг 10-аас 100 дахин нэмэгдүүлнэ
 Си++-т суралцах
◦ Си++ нь Си-г агуулдаг тул зарим хүмүүс эхлээд
Си-г сураад дараа нь Си++-т суралцдаг
Vanderbilt-ийн Их сургууль 1912/16/2015
 Java-г дараах зүйлст хэрэглэнэ:
◦ Динамик, интерактив агуулгатай вэб сайт хийхэд
◦ Том хэмжээний энтерпрайс програм хөгжүүлэхэд
◦ Вэб серверүүдийн функийг өргөтгөхөд
◦ Хэрэглэгчийн төхөөрөмжид зориулсан програм
зохиоход (утас, пэйжер, угаалгын машин гэх мэт)
Vanderbilt-ийн Их сургууль 2012/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 2112/16/2015
 Си програмын үе
шат:
◦ Засварлах (Си
програмын файл нь .c
өргөтгөлтэй байна)
◦ Урьдчилан
боловсруулах
◦ Хөрвүүлэх
◦ Холбох
◦ Ачаалах
◦ Биелүүлэх
Vanderbilt-ийн Их сургууль 2212/16/2015
 Компьютерийн үндсэн ойлголтууд
 Програмчлалын хэлүүд
 Програмчлалын Си хэл
◦ Түүх
◦ Си-гийн стандарт сан
◦ Обьект хандалтат програмчлал
◦ Си-гийн програмчлах орчин
 Програмчлалын Си хэлний үндэс
Vanderbilt-ийн Их сургууль 2312/16/2015
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметикийн үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 2412/16/2015
Welcome to C!
 Тайлбарууд
◦ /* ба */-аар зааглагдсан, хөрвүүлэгчид харагдахгүй текст
◦ Програмыг тайлбарлахад хэрэглэгдэнэ
 #include <stdio.h>
◦ Си-гийн урьдчилан боловсруулагчид заавар өгнө
 Тодорхой файлын агуулгыг ачаалах
◦ <stdio.h> стандарт оролт/гаралтын үйлдлүүдийг агуулна
Vanderbilt-ийн Их сургууль 25
/* ба */ нь тайлбарыг тэмдэглэнэ – хөрвүүлэгч тэдгээрийг алгасна
#include директив нь Си хэлэнд файл ачаалахыг заана
Их хаалт нээж main функц эхэлснийг зарлана
Үйлдэл нь Си хэлэнд ажиллагаа гүйцэтгэхийг заана
return үйлдэл нь функцийг төгсгөнө
Хааж байгаа их хаалт нь main функцийн төгсгөлийг заана
12/16/2015
 int main()
◦ Си програм нь нэг болон хэд хэдэн функц агуулах ба
тэдний аль нэг нь заавал main байна
◦ Дугуй хаалт нь функцийн таних тэмдэг юм
◦ int гэдэг нь main бүхэл утга буцаана гэдгийг заана
◦ Их хаалтууд ({ ба }) блокийг илэрхийлнэ
 Функцийн биеийг заавал их хаалтанд хийнэ
 printf(“Welcome to C!n”);
◦ Компьютерт ажиллагаа хийхийг заана
 Энэ тохиолдолд давхар хашилтанд (“ ”) байгаа тэмдэгт
мөрийг хэвлэхийг заана
◦ Мөрийг нийтэд нь үйлдэл гэж нэрлэнэ
 Үйлдэл бүр цэгтэй таслалаар төгсөнө (;)
◦ Тусгай тэмдэгт ()
 printf ямар нэг онцгой зүйл хийх ѐстойг заана
 n нь шинэ мөр гэдэг тэмдэгт юм
Vanderbilt-ийн Их сургууль 2612/16/2015
 return 0;
◦ Функцээс гарах арга
◦ Энэ тохиолдолд return 0 нь програм алдаагүй
дууссаныг илэрхийлнэ
 Их хаалт хаах }
◦ main функцийн төгсгөлийг заана
 Холбогч
◦ Функц дуудагдахад холбогч түүнийг сангаас олно
◦ Түүнийг обьект програмд оруулна
◦ Хэрэв функцийн нэрийг буруу бичсэн бол түүнийг
сангаас олох боломжгүй тул холбогч нь алдаа
үүсгэнэ
Vanderbilt-ийн Их сургууль 2712/16/2015
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметикийн үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 2812/16/2015
Тусгай тэмдэгт Тайлбар
n Шинэ мөр. Курсорыг дараагийн мөрийн эхэнд
аваачна
t Хэвтээгээр шилжих. Курсорыг дараагийн
байрлалд аваачна
a Дуут дохио. Системийн хонхыг ажиллуулна.
 Эсрэг налуу. Тэмдэгт мөрөнд эсрэг налуу
тэмдэгтийг оруулна.
” Давхар хашилт. Тэмдэгт мөрөнд давхар хашилт
тэмдэгтийг оруулна.
Vanderbilt-ийн Их сургууль 2912/16/2015
 Жишээ 2
 Welcome to C!
Vanderbilt-ийн Их сургууль 30
printf үйлдэл нь өмнөх хэвлэх үйлдлийн
зогссон газраас эхэлж хэвлэх тул уг текст
нэг мөрөнд хэвлэгдэнэ.
12/16/2015
 Жишээ 3
Vanderbilt-ийн Их сургууль
Шинэ мөр тэмдэгтүүд нь курсорыг
дараагийн мөр рүү шилжүүлнэ
12/16/2015 31
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметик үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 12/16/2015 32
Vanderbilt-ийн Их сургууль
Хувьсагч
зарлалт
scanf хэрэглэгчээс
утга авч integer1-т
олгоно
scanf хэрэглэгчээс
утга авч integer2-т
олгоно
sum-д утга олгоно
12/16/2015 33
 Өмнө үзсэн
◦ Тайлбар, #include <stdio.h> болон main
 int integer1, integer2, sum;
◦ Хувьсагч зарлалт
 Хувьсагч: Санах ой дахь утга хадгалж болох байрлал
◦ int гэдэг нь хувьсагчууд бүхэл утга хадгална гэдгийг
илэрхийнэ (-1, 3, 0, 47)
◦ Хувьсагчийн нэр (идентификатор)
 integer1, integer2, sum
 Идентификатор: латин үсэг, цифр (цифрээр эхэлж
болохгүй) болон доогуур зураасаас (_) тогтоно
 Том жижиг үсгүүд ялгаатай
◦ Зарлалтыг биелэх үйлдлээс нь өмнө хийнэ
 Хэрэв биелэх үйлдэл зарлаагүй хувьсагч руу хандаж
байвал синтакс (хөрвүүлэлтийн) алдаа үүснэ.
Vanderbilt-ийн Их сургууль 12/16/2015 34
 scanf(“%d”, &integer1);
◦ Хэрэглэгчээс утга хүлээж авна
 scanf нь стандарт оролтыг хэрэглэнэ (ихэвчлэн гар)
◦ Энэ scanf үйлдэл нь хоѐр аргументтай байна
 %d – өгөгдөл нь аравтын бүхэл тоо байхыг заана
 &integer1 – хувьсагчийг хадгалах санах ой дахь
байрлал
 & нь эхэндээ ойлгомжгүй байдаг – одоохондоо scanf
үйлдэлд хувьсагчийн өмнө тавьдаг гэж тогтооно.
◦ Програмын биелэлтийн үед хэрэглэгч scanf-ийн
хариуд бүхэл тоо бичиж Enter (буцаах) товч дарна
Vanderbilt-ийн Их сургууль 12/16/2015 35
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметик үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 12/16/2015 36
 Хувьсагч
◦ Хувьсагчийн нэр нь компьютерийн санах ойд байгаа
байрлалд харгалзана
◦ Хувьагч бүр нэр, төрөл, хэмжээ болон утгатай байна
◦ Хувьчагчид шинэ утга олгох үед (жишээ нь scanf-ээр)
энэ нь өмнөх утгыг өөрчилнө (устгана).
◦ Санах ойгоос хувьсагчийн утгыг уншихад түүний утга
өөрчлөгдөхгүй
Санах ойд байгаа хувьсагч, түүний нэр ба утга
Vanderbilt-ийн Их сургууль 12/16/2015 37
 Хоѐр хувьсагчийг оруулсны дараах санах
ой
 Тооцоолол хийгдсэний дараах санах ой
Vanderbilt-ийн Их сургууль 12/16/2015 38
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметик үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 12/16/2015 39
 = (утга олгох үйлдэл)
◦ Хувьсагчид утгыг олгоно
◦ Энэ нь бинар үйлдэл юм (хоѐр операндтай)
 sum = variable1 + variable2;
 sum нь variable1 + variable2 утгыг авна
 Утга авч байгаа хувьсагч зүүн талд байна
◦ printf(“Sum is %dn”, sum);
 scanf-тэй төстэй
 %d нь аравтын бүхэл тоо хэвлэгдэхийг заана
 sum нь ямар бүхэл тоо хэвлэгдэхийг зааж өгнө
 printf үйлдэл дотор шууд тооцоололтыг хийж болно
 printf(“Sum is %dn”, integer1+integer2);
Vanderbilt-ийн Их сургууль 12/16/2015 40
 Арифметик тооцоолол
◦ Үржүүлэхэд *-ыг хуваахад /-ыг хэрэглэнэ
◦ Бүхлээх хуваахад үлдэгдлийг таслана
 7/5 –ын үр дүн нь 1 байна
◦ Үлдэгдэл авах үйлдэл (%) үлдэгдлийг буцаана
 7%5-ын үр дүн нь 2 байна
◦ Үйлдлийн дараалал
 Зарим арифметик үйлдлүүд бусад үйлдлийнхээ өмнө
биелэгддэг (жишээ нь үржих үйлдэл нэмэх үйлдлийн өмнө)
 Шаардлагатай бол хаалт хэрэглэнэ
 Жишээ: a, b, c гурван хувьсагчийн дунджийг олох
 Буруу: a+b+c/3
 Зөв: (a+b+c)/3
Vanderbilt-ийн Их сургууль 12/16/2015 41
 Арифметик үйлдлүүд:
 Үйлдлүүдийн дарааллын дүрэм:
Vanderbilt-ийн Их сургууль 12/16/2015 42
Vanderbilt-ийн Их сургууль 12/16/2015 43
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметик үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 12/16/2015 44
 Биелэгдэх үйлдлүүд
◦ Үйлдэл гүйцэтгэх (тооцоолол, өгөгдөл оруулж
гаргах)
◦ Шийдвэр гүйцэтгэх
 Тестийн өгөгдсөн оноонд үндэслэн “унасан”,
“тэнцсэн” гэж хэвлэх
 if удирдлагын үйлдэл
◦ Хэрэв нөхцөл үнэн бол if үйлдлийн бие
гүйцэтгэгдэнэ
 0 бол худал, 1 бол үнэн
◦ if үйлдлийн дараа удирдлага хэвийн байдалд
орно
Vanderbilt-ийн Их сургууль 12/16/2015 45
Vanderbilt-ийн Их сургууль 12/16/2015 46
Vanderbilt-ийн Их сургууль
num1-ийг num2-той тэнцүү эсэхийг шалгах
num1-ийг num2-той тэнцүү биш эсэхийг шалгах
num1-ийг num2-оос бага эсэхийг шалгах
12/16/2015 47
 (үргэлжлэлтэй)
Vanderbilt-ийн Их сургууль
num1 нь num2-оос их эсэхийг шалгах
num1 нь num2-оос бага буюу тэнцүү эсэхийг шалгах
num1 нь num2-оос их буюу тэнцүү эсэхийг шалгах
12/16/2015 48
 (үргэлжлэл)
Vanderbilt-ийн Их сургууль 12/16/2015 49
 Си-гийн түлхүүр үгс
Vanderbilt-ийн Их сургууль 12/16/2015 50
 Нэг мөр хэвлэх
 Курсор удирдах тусгай тэмдэгтүүд
 Хувьсагч ба Өгөгдлийн төрлүүд
 Санах ой
 Арифметик үйлдлүүд
 Нөхцөл шалгах үйлдэл
 Дүгнэлт
Vanderbilt-ийн Их сургууль 12/16/2015 51
 Тайлбар нь /*-оор эхэлж */-аар дуусна. Тайлбар нь
програмыг баримтжуулах ба уншигдах байдлыг нь
сайжруулна.
 #include директив нь урьдчилан боловсруулагчид өөр файлын
агуулгыг оруулж ирэхийг заана (жишээ нь <stdio.h> гэх мэт
толгой файлыг).
 <stdio.h> толгой файл нь хөрвүүлэлтийн үед printf гэх мэт
оролт гаралтын сангийн функцийн дуудалтыг хөрвүүлэхэд
хэрэглэгдэх мэдээллийг агуулна.
 Си програм бүр main функцээсээ эхлэн ажиллана
 Функцууд мэдээлэл буцааж болно
 Функцууд мэдэээл хүлээн авч болно
 Функцийн бие нээх их хаалт {-аас эхэлж хаах их хаалт }-аар
дуусна.
 Үйлдэл бүрийн эцэст цэгтэй таслал байна.
 n гэсэн тусгай тэмдэгт курсорыг шинэ мөр рүү шилжүүлнэ
Vanderbilt-ийн Их сургууль 12/16/2015 52
 Хувьсагч гэдэг нь програм утга хадгалж болох
санах ой дахь байрлал юм.
 Бүх хувьсагчдыг програмд хэрэглэхээс нь өмнө
нэр болон өгөгдлийн төрлийг нь зааж зарлах
ѐстой.
 %d нь өгөгдөл аравтын бүхэл тоо байхыг заана
 & нь хувьсагчийн санах ойн хаягийг заана
 printf функц нь хэлбэржүүлэлтийн тэмдэгт
мөрийг хэрэглэж болно
 Хувьсагч бүр нэрь төрөл болон утгатай байна.
Хувьсагчийн нэр нь компьютерийн санах ой
дахь байрлалд харгалзана.
 Арифметик үйлдлүүд ба тэдний дараалал.
Vanderbilt-ийн Их сургууль 12/16/2015 53
 if үйлдэл нь програмд үйл явдлын тухай
өгүүлбэр буюу нөхцлийн үнэн худал дээр
үндэслэн шийдвэр гаргах боломж олгоно.
 if үйлдэл доторх нөхцийг тэнцүүг шалгах
болон харьцуулах үйлдүүдийг ашиглан
үүсгэнэ.
 Харьцуулах үйлдлүүдийн дараалал
 =-г “авна” гэж унших ба ==-г “хоѐр тэнцүү”
гэж уншина.
 Түлхүүр үгс.
Vanderbilt-ийн Их сургууль 12/16/2015 54

Contenu connexe

Tendances

Салаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудСалаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудБаярсайхан Л
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2Khuder Altangerel
 
алгоритм үндсэн ойлголт
алгоритм үндсэн ойлголталгоритм үндсэн ойлголт
алгоритм үндсэн ойлголтЖавзмаа Ж
 
тооллын сис 10т 2т
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2тNarantungaa
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритмGEnkhjargal
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7Badral Khurelbaatar
 
Microsoft Word программын дадлага ажлууд
Microsoft Word программын дадлага ажлуудMicrosoft Word программын дадлага ажлууд
Microsoft Word программын дадлага ажлуудoyunerdene_gansukh
 
салаалсан алгоритм
салаалсан алгоритмсалаалсан алгоритм
салаалсан алгоритмBurotino Iosifob
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3Khuder Altangerel
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтE-Gazarchin Online University
 
компьютерийн сүлжээний техник хангамж
компьютерийн сүлжээний  техник хангамжкомпьютерийн сүлжээний  техник хангамж
компьютерийн сүлжээний техник хангамжЖавзмаа Ж
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэсGombo Tumuruu
 
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)Dagvarichin Amaraa
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)Badral Khurelbaatar
 
гарын 10 хуруугаар бичих
гарын 10 хуруугаар бичихгарын 10 хуруугаар бичих
гарын 10 хуруугаар бичихБаярсайхан Л
 

Tendances (20)

Салаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудСалаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогууд
 
u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2u.cs101 "Алгоритм ба програмчлал" Лекц №2
u.cs101 "Алгоритм ба програмчлал" Лекц №2
 
алгоритм үндсэн ойлголт
алгоритм үндсэн ойлголталгоритм үндсэн ойлголт
алгоритм үндсэн ойлголт
 
тооллын сис 10т 2т
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2т
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
 
Test
TestTest
Test
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
Microsoft Word программын дадлага ажлууд
Microsoft Word программын дадлага ажлуудMicrosoft Word программын дадлага ажлууд
Microsoft Word программын дадлага ажлууд
 
салаалсан алгоритм
салаалсан алгоритмсалаалсан алгоритм
салаалсан алгоритм
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3
 
It101 1
It101 1It101 1
It101 1
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалт
 
компьютерийн сүлжээний техник хангамж
компьютерийн сүлжээний  техник хангамжкомпьютерийн сүлжээний  техник хангамж
компьютерийн сүлжээний техник хангамж
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэс
 
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)
01_6-р анги (Мэдээ, Мэдээлэл түүний шинж чанар)
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
C++
C++C++
C++
 
Програмчлалын хэл
Програмчлалын хэлПрограмчлалын хэл
Програмчлалын хэл
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)
 
гарын 10 хуруугаар бичих
гарын 10 хуруугаар бичихгарын 10 хуруугаар бичих
гарын 10 хуруугаар бичих
 

En vedette

u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7Khuder Altangerel
 
IOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтIOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтKhuder Altangerel
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 
Тоон электроник /монгол/
Тоон электроник /монгол/Тоон электроник /монгол/
Тоон электроник /монгол/Batnyam Maidarjav
 
Шугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудШугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудБаярсайхан Л
 
Chap01
Chap01Chap01
Chap01Purev
 
Lecture 2 3
Lecture 2 3Lecture 2 3
Lecture 2 3tsdnsrn
 
тоон логик 1 l суурь логик
тоон логик 1 l  суурь логиктоон логик 1 l  суурь логик
тоон логик 1 l суурь логикtsdnsrn
 
тоон логик 5 l exclusive or
тоон логик 5 l    exclusive orтоон логик 5 l    exclusive or
тоон логик 5 l exclusive ortsdnsrn
 
Hmm Tutorial
Hmm TutorialHmm Tutorial
Hmm Tutorialjefftang
 

En vedette (19)

u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
Лекц 1 (Алгоритм Програмчлал - 1)
Лекц 1 (Алгоритм Програмчлал - 1)Лекц 1 (Алгоритм Програмчлал - 1)
Лекц 1 (Алгоритм Програмчлал - 1)
 
Лекц 5 (Өгөгдлийн дүрслэл)
Лекц 5 (Өгөгдлийн дүрслэл)Лекц 5 (Өгөгдлийн дүрслэл)
Лекц 5 (Өгөгдлийн дүрслэл)
 
IOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолтIOI 2016 "Молекул" бодлогын бодолт
IOI 2016 "Молекул" бодлогын бодолт
 
алгоритм
алгоритмалгоритм
алгоритм
 
си хэл 10
си хэл 10си хэл 10
си хэл 10
 
Тоон электроник /монгол/
Тоон электроник /монгол/Тоон электроник /монгол/
Тоон электроник /монгол/
 
Шугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудШугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогууд
 
Dev c хичээл
Dev c хичээлDev c хичээл
Dev c хичээл
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Chap01
Chap01Chap01
Chap01
 
Lec16 io
Lec16 ioLec16 io
Lec16 io
 
Lecture 2 3
Lecture 2 3Lecture 2 3
Lecture 2 3
 
тоон логик 1 l суурь логик
тоон логик 1 l  суурь логиктоон логик 1 l  суурь логик
тоон логик 1 l суурь логик
 
тоон логик 5 l exclusive or
тоон логик 5 l    exclusive orтоон логик 5 l    exclusive or
тоон логик 5 l exclusive or
 
Hmm Tutorial
Hmm TutorialHmm Tutorial
Hmm Tutorial
 
Pdh mt 3 badam, purewoidow
Pdh mt 3 badam, purewoidowPdh mt 3 badam, purewoidow
Pdh mt 3 badam, purewoidow
 

Similaire à u.cs101 "Алгоритм ба програмчлал" Лекц №1

Компьютерийн бүтэц, зохион байгуулалт №1-2
Компьютерийн  бүтэц, зохион байгуулалт №1-2Компьютерийн  бүтэц, зохион байгуулалт №1-2
Компьютерийн бүтэц, зохион байгуулалт №1-2EnkhjargalDashdorjEn
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолтChinzorig Undarmaa
 
203lab1
203lab1203lab1
203lab1BPurev
 
U.it101 bie daalt1
U.it101 bie daalt1U.it101 bie daalt1
U.it101 bie daalt1BPurev
 
Lecture vcp413
Lecture vcp413Lecture vcp413
Lecture vcp413orgil
 
004 компьютерын програм хангамж
004 компьютерын програм хангамж004 компьютерын програм хангамж
004 компьютерын програм хангамжBobby Wang
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолтChinzorig Undarmaa
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiE-Gazarchin Online University
 
7-р ангийн ээлжит хичээлийн хөтөлбөрүүд
7-р ангийн ээлжит хичээлийн хөтөлбөрүүд7-р ангийн ээлжит хичээлийн хөтөлбөрүүд
7-р ангийн ээлжит хичээлийн хөтөлбөрүүдroza_toshke
 

Similaire à u.cs101 "Алгоритм ба програмчлал" Лекц №1 (20)

Lecture 10 os
Lecture 10 osLecture 10 os
Lecture 10 os
 
Bie daalt-niit-sedev1-1
Bie daalt-niit-sedev1-1Bie daalt-niit-sedev1-1
Bie daalt-niit-sedev1-1
 
C++ суулгах
C++ суулгахC++ суулгах
C++ суулгах
 
Компьютерийн бүтэц, зохион байгуулалт №1-2
Компьютерийн  бүтэц, зохион байгуулалт №1-2Компьютерийн  бүтэц, зохион байгуулалт №1-2
Компьютерийн бүтэц, зохион байгуулалт №1-2
 
Bie daalt niit sedev1
Bie daalt niit sedev1Bie daalt niit sedev1
Bie daalt niit sedev1
 
Sw206 lec
Sw206 lecSw206 lec
Sw206 lec
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
203lab1
203lab1203lab1
203lab1
 
U.it101 bie daalt1
U.it101 bie daalt1U.it101 bie daalt1
U.it101 bie daalt1
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Lecture vcp413
Lecture vcp413Lecture vcp413
Lecture vcp413
 
5
55
5
 
PL Lecture2
PL Lecture2PL Lecture2
PL Lecture2
 
Pl lecture2
Pl lecture2Pl lecture2
Pl lecture2
 
004 компьютерын програм хангамж
004 компьютерын програм хангамж004 компьютерын програм хангамж
004 компьютерын програм хангамж
 
Лекц №2
Лекц №2Лекц №2
Лекц №2
 
10 мэд зүй компьютер
10 мэд зүй компьютер10 мэд зүй компьютер
10 мэд зүй компьютер
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraanguiComputerin tehnikin undes 1hicheeliin lektsiin huraangui
Computerin tehnikin undes 1hicheeliin lektsiin huraangui
 
7-р ангийн ээлжит хичээлийн хөтөлбөрүүд
7-р ангийн ээлжит хичээлийн хөтөлбөрүүд7-р ангийн ээлжит хичээлийн хөтөлбөрүүд
7-р ангийн ээлжит хичээлийн хөтөлбөрүүд
 

Plus de Khuder Altangerel (17)

Марковын далд загвар
Марковын далд загварМарковын далд загвар
Марковын далд загвар
 
Lec08 readerwriter
Lec08 readerwriterLec08 readerwriter
Lec08 readerwriter
 
Lec05 cooperating (1)
Lec05 cooperating (1)Lec05 cooperating (1)
Lec05 cooperating (1)
 
Lec07 exclusion
Lec07 exclusionLec07 exclusion
Lec07 exclusion
 
Lec15 pagereplace last
Lec15 pagereplace lastLec15 pagereplace last
Lec15 pagereplace last
 
Lec14 demandpage
Lec14 demandpageLec14 demandpage
Lec14 demandpage
 
Lec13 cachetlb
Lec13 cachetlbLec13 cachetlb
Lec13 cachetlb
 
Lec12 translation
Lec12 translationLec12 translation
Lec12 translation
 
Lec11 protection
Lec11 protectionLec11 protection
Lec11 protection
 
Lec10 scheduling
Lec10 schedulingLec10 scheduling
Lec10 scheduling
 
Lec09 deadlock
Lec09 deadlockLec09 deadlock
Lec09 deadlock
 
Lec06 synchronization
Lec06 synchronizationLec06 synchronization
Lec06 synchronization
 
Lec04 threads
Lec04 threadsLec04 threads
Lec04 threads
 
Lec03 concurrency (2)
Lec03 concurrency (2)Lec03 concurrency (2)
Lec03 concurrency (2)
 
Lec02 structures (2)
Lec02 structures (2)Lec02 structures (2)
Lec02 structures (2)
 
Lec01 intro (1) (2)
Lec01 intro (1) (2)Lec01 intro (1) (2)
Lec01 intro (1) (2)
 
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадварМХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
МХТ-ийн мэргэжилд шаардагдах гадаад хэлний чадвар
 

u.cs101 "Алгоритм ба програмчлал" Лекц №1

  • 1. Лекц 1 Оршил А. Хүдэр Vanderbilt-ийн Их сургууль 112/16/2015
  • 2.  Багш – А. Хүдэр, техникийн ухааны доктор (PhD) ◦ Өрөө: ШУТИС, МХТС, 304 ◦ Утас: 99068710 ◦ Мэйл: khuder@must.edu.mn  Вэбсайт: ◦ elearn.sict.edu.mn Vanderbilt-ийн Их сургууль 212/16/2015
  • 3.  C. How to program. Deitel. 6 дахь хэвлэл. 2010  А. Хүдэр, “Програмчлалын үндсэн аргууд”, хоѐр дахь хэвлэл, Өнгөт хэвлэл, 2010  Д. Цэдэвсүрэн, “Си програмчлал”, дөрөвдүгээр хэвлэлт, 2011  Brian W. Kernighan and Dennis M. Ritchie, “C Programming Language”, Second Edition, Prentice Hall, PTR, 1988. Vanderbilt-ийн Их сургууль 312/16/2015
  • 4.  Програмчлах аргууд ◦ Алгоритмын дизайн ◦ Блок-схем ба псевдо код ◦ Програмчлалын дээрээс-доош дизайн  Бүтэцлэгдсэн хэл (С хэлийг жишээ болгоно) ◦ Өгөгдлийн төрөл, Зарлалт, Оператор ба Илэрхийлэл ◦ Оролт ба гаралт ◦ Удирдлагын бүтцүүд ◦ Функц ба Програмын бүтэц ◦ Заагч ◦ Хүснэгт, Тэмдэгт мөр ба Нэгдэл ◦ Файл боловсруулалт  Програмчлалын төрлүүд ◦ Програмчлах стиль ◦ Бүтцийн програмчлал ба Програмын модульчлал ◦ Програмын бичиг баримт ба Ашиглалт Vanderbilt-ийн Их сургууль 412/16/2015
  • 5.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 512/16/2015
  • 6.  Компьютер ◦ Тооцоолол гүйцэтгэх болон логик шийдвэр гаргах чадвартай төхөөрөмж (техник хангамж) ◦ Компьютер нь компьютерийн програм гэж нэрлэгдэх заавруудын олонлогийн удирдлага дор өгөгдлийг боловсруулна.  Техник хангамж ◦ Компьютерийг бүрдүүлэх төв процессор (CPU), санах ой, эх хавтан болон хатуу диск гэх мэт төрөл бүрийн төхөөрөмж мөн гадаад төхөөрөмжүүд (гар, хулгана, гадаад дэлгэц, компакт диск уншигч). ◦ Техник хангамжийн хандлага-Нэг эсвэл хоѐр жил бүр дараах зүйлс хоѐр дахин өснө:  Програмыг ажиллуулж буй санах ойн хэмжээ  Програмыг ажиллуулж байгаа процессорын хурд (Мурын хууль)  Програм хангамж ◦ Компьютер дээр ажиллаж буй програмууд Vanderbilt-ийн Их сургууль 612/16/2015
  • 7.  Компьютер бүр 6 логик модультай байна: ◦ Оролтын модуль  Оролтын төхөөрөмжөөс (гар, хулгана) мэдээллийг уншина ◦ Гаралтын модуль  Мэдээллийг гаргана (дэлгэц, принтер рүү, өөр төхөөрөмжийг удирдахаар) ◦ Санах ойн модуль  Хурдан хандалттай, бага багтаамжтай, оролтын мэдээллийг хадгална ◦ Арифметик, логик төхөөрөмж (ALU)  Арифметик тооцоо болон логик шийдвэрийг гүйцэтгэнэ ◦ Төв процессор (CPU)  Компьютерийн бусад хэсгүүдийг удирдан зохион байгуулна  ALU нь одоо CPU-гийн үндсэн хэсэг юм ◦ Гадаад санах ой  Хямд, урт хугацааны, их багтаамжтай санах ой Vanderbilt-ийн Их сургууль 712/16/2015
  • 9.  Багц боловсруулалт ◦ Зөвхөн нэг ажил буюу даалгаврыг биелүүлэх  Мультипрограмчлал ◦ Нөөцийг удирдан олон програмд хуваарилах ◦ Програмуудыг хагас-зэрэг байдлаар ажиллуулах ◦ Нэг хэрэглэгч  Олон хэрэглэгчтэй/Хугацааны хуваалттай систем ◦ Нэг зэрэг ажиллах олон хэрэглэгчдийг терминалаар дамжуулан удирдах ◦ Нөөцийг шударгаар хуваарилах: Процессорын төлөвлөлт Vanderbilt-ийн Их сургууль 912/16/2015
  • 11.  Персонал компьютер ◦ Хувь хүмүүст хангалттай үнэтэй  Хуваарилагдсан тооцоолол ◦ Сүлжээгээр хуваарилагдсан тооцоолол хийх  Клиент/Сервер тооцоолол ◦ Компьютерийн сүлжээг ашиглан файлын сервер болон клиент хооронд мэдээлэл хуваарилах Vanderbilt-ийн Их сургууль 1112/16/2015
  • 13.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 1312/16/2015
  • 14.  Програмчлалын гурван төрлийн хэл ◦ Машины хэл  Төв процессороор гүйцэтгэгдэх машины тусгай командууд  Компьютерийн програмыг дүрсэлж болох хамгийн доод хэлбэр ◦ Ассемблер хэл  Англи товчилсон үгсийг ашиглан компьютерийн энгийн үйлдлүүдийг дүрсэлнэ (ассемблерээр хөрвүүлнэ)  Жишээ: mov ax, 1234h (1234h утгыг ax регистр рүү зөөх) ◦ Дээд түвшний хэл  Өдөр тутмын англи хэлтэй төстэй  Математикийн тэмдэглэгээг хэрэглэнэ (компайлераар хөрвүүлнэ)  Жишээ: niitTulbur = undsenTulbur + nemeltTulbur Vanderbilt-ийн Их сургууль 1412/16/2015
  • 15.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 1512/16/2015
  • 16.  С ◦ Денис Ритчи BCPL ба B гэсэн өмнөх хоѐр програмчлалын хэлийг ашиглан үүсгэсэн ◦ UNIX – ийг хөгжүүлэхэд хэрэглэгдсэн ◦ Орчин үеийн үйлдлийн системүүдийг хөгжүүлэхэд хэрэглэгдэж байгаа ◦ Техник хангамжаас хамаардаггүй (зөөврийн)  Стандартчилал ◦ Си-гийн олон хувилбарууд гарч, хоорондоо таардаггүй байсан ◦ “Машинаас хамаарахгүй, тогтвортой” тодорхойлолт гаргах комисс байгуулсан ◦ Стандартыг 1989 онд гаргаж 1999 онд шинэчилсэн Vanderbilt-ийн Их сургууль 1612/16/2015
  • 17.  Си програмууд функц гэж нэрлэгдэх хэсгүүд/модулиудаас тогтоно ◦ Програмист өөрийн функцийг зохиож болно  Давуу тал: програмист түүнийг яг яаж ажиллахыг мэднэ  Дутагдал: цаг алдана ◦ Програмистууд Си-гийн сангийн функцуудийг байнга хэрэглэнэ  Эдгээр функцууд дээр суурилан програмаа бичнэ ◦ Дугуйг дахин зохион бүтээхээс зайлсхийх  Хэрэв ямар нэг функц байдаг бол түүнийг өөрөө бичсэнээс байгааг нь ашиглах хэрэгтэй  Сангийн функцууд алдаагүй бичигдсэн, үр ашигтай бөгөөд авсаархан байдаг Vanderbilt-ийн Их сургууль 1712/16/2015
  • 18.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 1812/16/2015
  • 19.  Си++ ◦ Bell Labs-т Бьѐрн Страуструпын гарган авсан С- гийн өргөтгөсөн хувилбар ◦ Си-г “сайжруулж” обьект хандалтат боломжийг нэмсэн ◦ Обьект хандалтат дизайн нь маш хүчирхэг юм  Үр ашигтай байдлыг 10-аас 100 дахин нэмэгдүүлнэ  Си++-т суралцах ◦ Си++ нь Си-г агуулдаг тул зарим хүмүүс эхлээд Си-г сураад дараа нь Си++-т суралцдаг Vanderbilt-ийн Их сургууль 1912/16/2015
  • 20.  Java-г дараах зүйлст хэрэглэнэ: ◦ Динамик, интерактив агуулгатай вэб сайт хийхэд ◦ Том хэмжээний энтерпрайс програм хөгжүүлэхэд ◦ Вэб серверүүдийн функийг өргөтгөхөд ◦ Хэрэглэгчийн төхөөрөмжид зориулсан програм зохиоход (утас, пэйжер, угаалгын машин гэх мэт) Vanderbilt-ийн Их сургууль 2012/16/2015
  • 21.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 2112/16/2015
  • 22.  Си програмын үе шат: ◦ Засварлах (Си програмын файл нь .c өргөтгөлтэй байна) ◦ Урьдчилан боловсруулах ◦ Хөрвүүлэх ◦ Холбох ◦ Ачаалах ◦ Биелүүлэх Vanderbilt-ийн Их сургууль 2212/16/2015
  • 23.  Компьютерийн үндсэн ойлголтууд  Програмчлалын хэлүүд  Програмчлалын Си хэл ◦ Түүх ◦ Си-гийн стандарт сан ◦ Обьект хандалтат програмчлал ◦ Си-гийн програмчлах орчин  Програмчлалын Си хэлний үндэс Vanderbilt-ийн Их сургууль 2312/16/2015
  • 24.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметикийн үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 2412/16/2015
  • 25. Welcome to C!  Тайлбарууд ◦ /* ба */-аар зааглагдсан, хөрвүүлэгчид харагдахгүй текст ◦ Програмыг тайлбарлахад хэрэглэгдэнэ  #include <stdio.h> ◦ Си-гийн урьдчилан боловсруулагчид заавар өгнө  Тодорхой файлын агуулгыг ачаалах ◦ <stdio.h> стандарт оролт/гаралтын үйлдлүүдийг агуулна Vanderbilt-ийн Их сургууль 25 /* ба */ нь тайлбарыг тэмдэглэнэ – хөрвүүлэгч тэдгээрийг алгасна #include директив нь Си хэлэнд файл ачаалахыг заана Их хаалт нээж main функц эхэлснийг зарлана Үйлдэл нь Си хэлэнд ажиллагаа гүйцэтгэхийг заана return үйлдэл нь функцийг төгсгөнө Хааж байгаа их хаалт нь main функцийн төгсгөлийг заана 12/16/2015
  • 26.  int main() ◦ Си програм нь нэг болон хэд хэдэн функц агуулах ба тэдний аль нэг нь заавал main байна ◦ Дугуй хаалт нь функцийн таних тэмдэг юм ◦ int гэдэг нь main бүхэл утга буцаана гэдгийг заана ◦ Их хаалтууд ({ ба }) блокийг илэрхийлнэ  Функцийн биеийг заавал их хаалтанд хийнэ  printf(“Welcome to C!n”); ◦ Компьютерт ажиллагаа хийхийг заана  Энэ тохиолдолд давхар хашилтанд (“ ”) байгаа тэмдэгт мөрийг хэвлэхийг заана ◦ Мөрийг нийтэд нь үйлдэл гэж нэрлэнэ  Үйлдэл бүр цэгтэй таслалаар төгсөнө (;) ◦ Тусгай тэмдэгт ()  printf ямар нэг онцгой зүйл хийх ѐстойг заана  n нь шинэ мөр гэдэг тэмдэгт юм Vanderbilt-ийн Их сургууль 2612/16/2015
  • 27.  return 0; ◦ Функцээс гарах арга ◦ Энэ тохиолдолд return 0 нь програм алдаагүй дууссаныг илэрхийлнэ  Их хаалт хаах } ◦ main функцийн төгсгөлийг заана  Холбогч ◦ Функц дуудагдахад холбогч түүнийг сангаас олно ◦ Түүнийг обьект програмд оруулна ◦ Хэрэв функцийн нэрийг буруу бичсэн бол түүнийг сангаас олох боломжгүй тул холбогч нь алдаа үүсгэнэ Vanderbilt-ийн Их сургууль 2712/16/2015
  • 28.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметикийн үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 2812/16/2015
  • 29. Тусгай тэмдэгт Тайлбар n Шинэ мөр. Курсорыг дараагийн мөрийн эхэнд аваачна t Хэвтээгээр шилжих. Курсорыг дараагийн байрлалд аваачна a Дуут дохио. Системийн хонхыг ажиллуулна. Эсрэг налуу. Тэмдэгт мөрөнд эсрэг налуу тэмдэгтийг оруулна. ” Давхар хашилт. Тэмдэгт мөрөнд давхар хашилт тэмдэгтийг оруулна. Vanderbilt-ийн Их сургууль 2912/16/2015
  • 30.  Жишээ 2  Welcome to C! Vanderbilt-ийн Их сургууль 30 printf үйлдэл нь өмнөх хэвлэх үйлдлийн зогссон газраас эхэлж хэвлэх тул уг текст нэг мөрөнд хэвлэгдэнэ. 12/16/2015
  • 31.  Жишээ 3 Vanderbilt-ийн Их сургууль Шинэ мөр тэмдэгтүүд нь курсорыг дараагийн мөр рүү шилжүүлнэ 12/16/2015 31
  • 32.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметик үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 12/16/2015 32
  • 33. Vanderbilt-ийн Их сургууль Хувьсагч зарлалт scanf хэрэглэгчээс утга авч integer1-т олгоно scanf хэрэглэгчээс утга авч integer2-т олгоно sum-д утга олгоно 12/16/2015 33
  • 34.  Өмнө үзсэн ◦ Тайлбар, #include <stdio.h> болон main  int integer1, integer2, sum; ◦ Хувьсагч зарлалт  Хувьсагч: Санах ой дахь утга хадгалж болох байрлал ◦ int гэдэг нь хувьсагчууд бүхэл утга хадгална гэдгийг илэрхийнэ (-1, 3, 0, 47) ◦ Хувьсагчийн нэр (идентификатор)  integer1, integer2, sum  Идентификатор: латин үсэг, цифр (цифрээр эхэлж болохгүй) болон доогуур зураасаас (_) тогтоно  Том жижиг үсгүүд ялгаатай ◦ Зарлалтыг биелэх үйлдлээс нь өмнө хийнэ  Хэрэв биелэх үйлдэл зарлаагүй хувьсагч руу хандаж байвал синтакс (хөрвүүлэлтийн) алдаа үүснэ. Vanderbilt-ийн Их сургууль 12/16/2015 34
  • 35.  scanf(“%d”, &integer1); ◦ Хэрэглэгчээс утга хүлээж авна  scanf нь стандарт оролтыг хэрэглэнэ (ихэвчлэн гар) ◦ Энэ scanf үйлдэл нь хоѐр аргументтай байна  %d – өгөгдөл нь аравтын бүхэл тоо байхыг заана  &integer1 – хувьсагчийг хадгалах санах ой дахь байрлал  & нь эхэндээ ойлгомжгүй байдаг – одоохондоо scanf үйлдэлд хувьсагчийн өмнө тавьдаг гэж тогтооно. ◦ Програмын биелэлтийн үед хэрэглэгч scanf-ийн хариуд бүхэл тоо бичиж Enter (буцаах) товч дарна Vanderbilt-ийн Их сургууль 12/16/2015 35
  • 36.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметик үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 12/16/2015 36
  • 37.  Хувьсагч ◦ Хувьсагчийн нэр нь компьютерийн санах ойд байгаа байрлалд харгалзана ◦ Хувьагч бүр нэр, төрөл, хэмжээ болон утгатай байна ◦ Хувьчагчид шинэ утга олгох үед (жишээ нь scanf-ээр) энэ нь өмнөх утгыг өөрчилнө (устгана). ◦ Санах ойгоос хувьсагчийн утгыг уншихад түүний утга өөрчлөгдөхгүй Санах ойд байгаа хувьсагч, түүний нэр ба утга Vanderbilt-ийн Их сургууль 12/16/2015 37
  • 38.  Хоѐр хувьсагчийг оруулсны дараах санах ой  Тооцоолол хийгдсэний дараах санах ой Vanderbilt-ийн Их сургууль 12/16/2015 38
  • 39.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметик үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 12/16/2015 39
  • 40.  = (утга олгох үйлдэл) ◦ Хувьсагчид утгыг олгоно ◦ Энэ нь бинар үйлдэл юм (хоѐр операндтай)  sum = variable1 + variable2;  sum нь variable1 + variable2 утгыг авна  Утга авч байгаа хувьсагч зүүн талд байна ◦ printf(“Sum is %dn”, sum);  scanf-тэй төстэй  %d нь аравтын бүхэл тоо хэвлэгдэхийг заана  sum нь ямар бүхэл тоо хэвлэгдэхийг зааж өгнө  printf үйлдэл дотор шууд тооцоололтыг хийж болно  printf(“Sum is %dn”, integer1+integer2); Vanderbilt-ийн Их сургууль 12/16/2015 40
  • 41.  Арифметик тооцоолол ◦ Үржүүлэхэд *-ыг хуваахад /-ыг хэрэглэнэ ◦ Бүхлээх хуваахад үлдэгдлийг таслана  7/5 –ын үр дүн нь 1 байна ◦ Үлдэгдэл авах үйлдэл (%) үлдэгдлийг буцаана  7%5-ын үр дүн нь 2 байна ◦ Үйлдлийн дараалал  Зарим арифметик үйлдлүүд бусад үйлдлийнхээ өмнө биелэгддэг (жишээ нь үржих үйлдэл нэмэх үйлдлийн өмнө)  Шаардлагатай бол хаалт хэрэглэнэ  Жишээ: a, b, c гурван хувьсагчийн дунджийг олох  Буруу: a+b+c/3  Зөв: (a+b+c)/3 Vanderbilt-ийн Их сургууль 12/16/2015 41
  • 42.  Арифметик үйлдлүүд:  Үйлдлүүдийн дарааллын дүрэм: Vanderbilt-ийн Их сургууль 12/16/2015 42
  • 44.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметик үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 12/16/2015 44
  • 45.  Биелэгдэх үйлдлүүд ◦ Үйлдэл гүйцэтгэх (тооцоолол, өгөгдөл оруулж гаргах) ◦ Шийдвэр гүйцэтгэх  Тестийн өгөгдсөн оноонд үндэслэн “унасан”, “тэнцсэн” гэж хэвлэх  if удирдлагын үйлдэл ◦ Хэрэв нөхцөл үнэн бол if үйлдлийн бие гүйцэтгэгдэнэ  0 бол худал, 1 бол үнэн ◦ if үйлдлийн дараа удирдлага хэвийн байдалд орно Vanderbilt-ийн Их сургууль 12/16/2015 45
  • 47. Vanderbilt-ийн Их сургууль num1-ийг num2-той тэнцүү эсэхийг шалгах num1-ийг num2-той тэнцүү биш эсэхийг шалгах num1-ийг num2-оос бага эсэхийг шалгах 12/16/2015 47
  • 48.  (үргэлжлэлтэй) Vanderbilt-ийн Их сургууль num1 нь num2-оос их эсэхийг шалгах num1 нь num2-оос бага буюу тэнцүү эсэхийг шалгах num1 нь num2-оос их буюу тэнцүү эсэхийг шалгах 12/16/2015 48
  • 49.  (үргэлжлэл) Vanderbilt-ийн Их сургууль 12/16/2015 49
  • 50.  Си-гийн түлхүүр үгс Vanderbilt-ийн Их сургууль 12/16/2015 50
  • 51.  Нэг мөр хэвлэх  Курсор удирдах тусгай тэмдэгтүүд  Хувьсагч ба Өгөгдлийн төрлүүд  Санах ой  Арифметик үйлдлүүд  Нөхцөл шалгах үйлдэл  Дүгнэлт Vanderbilt-ийн Их сургууль 12/16/2015 51
  • 52.  Тайлбар нь /*-оор эхэлж */-аар дуусна. Тайлбар нь програмыг баримтжуулах ба уншигдах байдлыг нь сайжруулна.  #include директив нь урьдчилан боловсруулагчид өөр файлын агуулгыг оруулж ирэхийг заана (жишээ нь <stdio.h> гэх мэт толгой файлыг).  <stdio.h> толгой файл нь хөрвүүлэлтийн үед printf гэх мэт оролт гаралтын сангийн функцийн дуудалтыг хөрвүүлэхэд хэрэглэгдэх мэдээллийг агуулна.  Си програм бүр main функцээсээ эхлэн ажиллана  Функцууд мэдээлэл буцааж болно  Функцууд мэдэээл хүлээн авч болно  Функцийн бие нээх их хаалт {-аас эхэлж хаах их хаалт }-аар дуусна.  Үйлдэл бүрийн эцэст цэгтэй таслал байна.  n гэсэн тусгай тэмдэгт курсорыг шинэ мөр рүү шилжүүлнэ Vanderbilt-ийн Их сургууль 12/16/2015 52
  • 53.  Хувьсагч гэдэг нь програм утга хадгалж болох санах ой дахь байрлал юм.  Бүх хувьсагчдыг програмд хэрэглэхээс нь өмнө нэр болон өгөгдлийн төрлийг нь зааж зарлах ѐстой.  %d нь өгөгдөл аравтын бүхэл тоо байхыг заана  & нь хувьсагчийн санах ойн хаягийг заана  printf функц нь хэлбэржүүлэлтийн тэмдэгт мөрийг хэрэглэж болно  Хувьсагч бүр нэрь төрөл болон утгатай байна. Хувьсагчийн нэр нь компьютерийн санах ой дахь байрлалд харгалзана.  Арифметик үйлдлүүд ба тэдний дараалал. Vanderbilt-ийн Их сургууль 12/16/2015 53
  • 54.  if үйлдэл нь програмд үйл явдлын тухай өгүүлбэр буюу нөхцлийн үнэн худал дээр үндэслэн шийдвэр гаргах боломж олгоно.  if үйлдэл доторх нөхцийг тэнцүүг шалгах болон харьцуулах үйлдүүдийг ашиглан үүсгэнэ.  Харьцуулах үйлдлүүдийн дараалал  =-г “авна” гэж унших ба ==-г “хоѐр тэнцүү” гэж уншина.  Түлхүүр үгс. Vanderbilt-ийн Их сургууль 12/16/2015 54