SlideShare une entreprise Scribd logo
1  sur  81
www.emust.edu.mn
Мэдээллийн Технологийн
хэрэглээ - I
ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ,
Е-НЭЭЛТТЭЙ ИНСТИТУТ
Код: U.IT101
Е-Нээлттэй Институт
www.emust.edu.mn
IT101- Мэдээллийн Технологийн хэрэглээ - I
Сэдэв: Өгөгдлийн бүтэц, Алгоритм
Е-Нээлттэй Институт
www.emust.edu.mn
Агуулга:
01
02
01 Өгөгдлийн бүтэц
Алгоритм02
Програмчлал03
Програмчлалын хэлүүд04
Markup languages04
3
Е-Нээлттэй Институт
www.emust.edu.mn
ХИЧЭЭЛИЙН ЗОРИЛГО:
Энэ хичээлээр өгөгдлийн бүтэцийн үндэс,
зарчим, Алгоритмын талаар мэдэж авахаас гадна,
програмчлалын хэлний талаарх ойлголттой
болоход оршино.
4
Е-Нээлттэй Институт
www.emust.edu.mn
Компьютерийн ухааны анхны пионеруудын нэг
Н.Виртийн томьёолсноор Компьютерийн
програм бол Өгөгдлөл болон
Алгоритмын нэгдэл юм. Өөрөөр хэлбэл анхдагч
зүйл(өгөгдөл) дээр ямар боловсруулалт (алгоритм)
хийж асуудлын шийдлийг (програм) гаргаж авна.
Тэгвэл өгөгдлийг ойд хэрхэн
хадгалахыг өгөгдлийн дүрслэл харуулдаг.
Өгөгдөл өөрөө ямар элементүүдээс бүтдэг, тэдгээр
нь хоорондоо ямар холбоотой байгааг өгөгдлийн
бүтэц тодорхойлдог. Өгөгдлийн бүтэц, түүний
дүрслэл ямар байхаас боловсруулах алгоритм
хамаардаг.
Өгөгдлийн оновчтой бүтэц болон түүний
дүрслэл, алгоритмаар компьютериас бага нөөц
шаардсан, хурдан ажиллах, чанартай бүтээгдэхүүн
буюу програмыг бүтээж чадна.
1. Өгөгдлийн
бүтэц
5
Е-Нээлттэй Институт
www.emust.edu.mn
1. Өгөгдлийн бүтэц
Data structure
- Өгөгдөл. / Data/
Өгөгдөл /Data/ гэдэг нь тоо болон тэмдэгтүүдийн
цогц ба ямар нэг зорилгогүйгээр цуглуулсан
өгөгдөлийг хэлнэ.
6
Е-Нээлттэй Институт
www.emust.edu.mn
1. Өгөгдлийн бүтэц
Data structure
- Хувьсагч. / Variables /
Хувьсагч /Variables/ нь програмчлалын нэг чухал ойлголт
бөгөөд түр санах oйд ямар нэг утга (value) хадгалж, дэс
дараатай тооцоололд хэрэглэгдэгддэг. Тоон утга нь хэд ч байж
болох үл мэдэгдэх тоог хувьсагч гэнэ. Хувьсагч нь бүхэл,
бутархай тоон, тэмдэгт гэх мэт төрөлүүдтэй байдаг.
7
Жишээ нь: (а) тоо нь бүхэл тоон
төрлийн дурын тоо байна.
Int y, a; /Бүхэл тоон төрөл/
a=10;
y=10+10, y=20
Е-Нээлттэй Институт
www.emust.edu.mn
1. Өгөгдлийн бүтэц
Data structure
Өгөгдлийг компьютерийн санах ойд хадгалахад:
1. Өгөгдөл бүхлээрээ дараалсан байтуудад,
2. Тодорхой дараалалгүй энд тэнд тархсан байдлаар
хадгалах хоёр үндсэн зам байдаг. Санах ойд дараалсан
байдалтай өгөгдлийг МАССИВ, тархай байрлалтай
өгөгдлийг ХОЛБООСТ дүрслэлээр хадгалахад
тохиромжтой байдаг.
8
Е-Нээлттэй Институт
www.emust.edu.mn
1. Өгөгдлийн бүтэц
Data structure
- Массив. /Massive/
Массив буюу хүснэгт нь олон элемент өөртөө агуулах, элемент
тус бүр индексээр илэрхийлэгдэх энгийн өгөгдлийн бүтэц юм.
Массив нь нэртэй (name of array) байна. Массивын нэг
өгөгдлийг массивын элемент гэнэ. Элементүүд бүгд
дугаарлагдсан байна. Элементийн дугаарыг индекс (index)
гэнэ. Индекс нь 0-ээс эхлэнэ.
9
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Массивын хэрэглээ
Массив нь математикийн матрицыг программчлалын
хэлэнд илэрхийлдгээрээ ач холбогдолтой юм. Их
хэмжээний мэдээлэл, төрөл бүрийн статистик
өгөгдлийг боловсруулах программд массив ашиглах нь
тохиромжтой байдаг.
10
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Массивын төрөл, хэлбэрүүд:
Массив нь өгөгдөл учраас аль нэг үндсэн өгөгдлийн төрөлд
хамаарах ёстой. Энэ нь түүний элементийн төрлөөр
тодорхойлогдоно.
• Бүхэл тоон төрөл нь char, unsigned char, short, unsigned
short, int, unsigned int, long int, unsigned long гэх мэт
байна.
• Бодит тоон төрөл нь float, double, long double гэх мэт
байна.
11
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Массивын урт:
Массивын элементүүдийн тоог массивын урт /length/ гэдэг.
Компьютерийн санах ойн багтаамжаас шалтгаалан хэрэглэгч ямар ч
урттай массив зарлаж болно. Жишээлбэл бүхэл тоон int төрлийн 5
гэсэн урттай массив зарлалаа гэвэл түүний санах ойд эзлэх зай нь
10 байт болно. Учир нь int төрлийн нэг энгийн элемент 2 байт
болдог ба 5*2=10 болно. Үүнтэй адил зарчмаар, хэрэв бодит float
төрлийн 20 гэсэн урттай массив зарлавал, нэг энгийн float төрлийн
элемент 4 байт авах учраас 20*4=80 байт зай эзлэнэ.
12
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Массивын хэмжээс:
Нэг хэмжээст массив нь вектортой, хоёр хэмжээст
нь матрицтай төстэй юм. Ер нь бол массив хичнээн ч
хэмжээстэй байж болно.
нэг хэмжээст /1D - one dimensional/, хоёр хэмжээст
/2D - two dimensional/, гурван хэмжээст /3D - three
dimensional/ массив гэх мэтээр нэрлэдэг. Гурваас олон
хэмжээстэй (multidimensional) ч байж болно.
13
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Нэг хэмжээст массив
Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
байна. Жишээ нь: Бүхэл тоон int төрлийн, 25 элементтэй, mas
нэртэй массивыг үзүүлэв (Зураг 1.2). Хамгийн эхний элемент 0
гэсэн индекстэй, хамгийн сүүлийн элемент 24 гэсэн индекстэй
байна.
Жишээ 1: int mas [25];
14
a[0] a[1] a[2] a[3] a[4] a[...] a[25]
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Хоёр хэмжээст массив 2D
Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
[урт_2] байна. Дараах жишээнд бүхэл тоон int төрлийн, matrix
нэртэй, 3 мөр, 4 багантай 2D хэмжээст массивыг үзүүлэв. Matrix
массивын нийт элементийн тоо нь 3*4=12 байна. Жишээ 2:
Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав.
15
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Хоёр хэмжээст массив 2D
Жишээ 2: Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав.
int matrix [3] [4] = { {1}, {2, 3}, {4, 5, 6}};
16
Мөрийн индекс Баганы индекс
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Гурван хэмжээст массив 3D
Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
[урт_2] [урт_3] байна. Мөр, багана дээр нэмэгдээд гурав дахь
хэмжээс гарч ирнэ. Хэрэв гурван хэмжээсийн уртууд нь адил бол
куб массив гэнэ. 3D массив идэвхжүүлэхдээ, массивын мөр бүр нь
хэд хэдэн баганад, харин багана бүр нь хэд хэдэн “өндөрт”
хуваагдана гэдгийг тооцож, мөр мөрөөр бүлэглэн { } бичиж, тус
бүрийн дотор нь дахиад багана баганаар бүлэглэн { } дотор анхны
утгуудыг бичдэг
17
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
Холбоост /Linked/:
Тархай салангид элементүүдийг нэгтгэж нэгдмэл нэг
өгөгдөл болгоход холбоосыг хэрэглэдэг. Холбоос гэдэг нь нэг
элементийн дараагийн дараагийн элемент санах ойн хаана
байгааг заасан хаяг юм. Элемент, холбоос гэсэн хосууд гинж
байдлаар залгагдаж өгөгдлийг бүрдүүлдэг. Нэг хосод хэдэн
холбоос байгаагаас нь хамааруулж дан болон давхар холбоост
дүрслэл үүсдэг. Давхар холбоосоор дараачийн элемент
төдийгүй өмнөх элементэд хүрч болдог.
18
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Жагсаалт/List/
Өгөгдлийн хамгийн түгээмэл бүтэц бол шугаман жагсаалт.
Жишээ: Оюутны нэрс, сурлагын дүн, хоолны цэс, номын нэрс
г.м. бүгд жагсаалт юм
19
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
Нэг холбоост жагсаалт /Single Linked List/:
Элемент буюу зангилаа нь өгөгдөл ба холбоос гэсэн 2 хэсгээс
тогтоно. Өгөгдөл нь бидний мэдэх өгөгдлийн стандарт
төрлүүдээр тодорхойлогдсон утга байх ба хэрэглэгчийн
тодорхойлсон төрөл байж болно. Харин холбоос нь заагч
төрөлтэй байх ба дараагийн зангилааны хаягийг заана. Нэг
холбоост жагсаалт нь тухайн элементээс өмнөх элементүүдийг
авах боломжгүй байдаг ба заагч ашиглан дараагийн
элементийг устгах, нэмэх үйлдэл хийж болно.
20
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
21
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
Хоёр холбоост жагсаалт /Double Linked List/
Энэ нь нэг холбоост жагсаалтын шийдэж чадаагүй өмнөх
элементээ авах асуудлыг шийдсэн боловч дурын элементэд
шууд хандах боломжгүй заагч ашиглан тухайн элементийн
өмнөх болон дараагийн элементүүдэд хандаж элемент нэмэх
болон устгах үйлдэлийг шийдсэн
22
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
23
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Стек /Stack/
Эхлэлд орсон нь сүүлд нь гарах зарчмаар зохион
байгуулагдсан өгөгдлийн бүтцийг стек гэнэ.
LIFO-Last In First Out
Амьдрал дээр стекийн жишээ маш олон Жишээ нь давхарлаж
хураасан таваг, бууны дайз г.м.
24
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Стек /Stack/ хэрэглээ
• Аравтын тооллын системийн тоог хоёртын тооллын системд шилжүүлэх
программын хувьд стекийг ашиглавал илүү тохиромжтой болох юм. Учир нь
энэ бодлогод ихэвчлэн массивыг ашигладаг ба энэ тохиолдолд үүссэн
хоёртын бичиглэл нь хөрвөсөн байдаг. Тиймээс түүнийг стект хадгалаад
дараа нь утгуудыг хэвлэнэ.
• Арифметик илэрхийлэлд хаалт зөв орсон эсэхийг стек ашиглан шалгаж
болно.
• Арифметик илэрхийллийг бодох хялбар арга нь Польш тэмдэглэгээнд
хөрвүүлж боддог. Энэ нь арифметик илэрхийллийг (posfix) Польш
тэмдэглэгээ (prefix) рүү шилжүүлээд дараа нь түүнийгээ стек ашиглан бодох
юм.
25
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
26
Польш тэмдэглэгээ
Энэ тэмдэглэгээний нэг онцлог нь хаалт ашигладаггүй
явдал юм. Жишээ нь: А+В илэрхийллийг АВ+ гэж бичнэ.
Польш тэмдэглэгээний давуу тал нь аливаа илэрхийллийн
завсрын утгуудыг стект хадгалан, илэрхийллийн тэмдэг
бүрийг зөвхөн нэг удаа уншин хялбархан аргаар боддогт
оршино.
Жишээ нь :
Y=
P=2,3,2,*,5,-,2,*,+,1,3,^,+,6,2,/,1,-,2,*,-,1,+
121263125232  *)/(^*)*(
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Queue –Дараалал
Эхэлж орсон нь эхэлж гарах зарчмаар зохион
байгуулагдсан өгөгдлийн бүтцийг дараалал гэнэ.
FIFO-First In First Out
27
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
28
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Tree – Moд
Зангилаанууд болон тэдгээрийг холбосон
холбоосуудаар дүрслэгдсэн өгөгдлийн
бүтэцийг мод гэнэ. Мод нь өгөгдлийг агуулах
зангилаа, өөр зангилаатай холбогдох
холбоосуудаас тогтоно.
29
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Tree – Moд
Модны хамгийн эхний зангилааг үндэс буюу язгуур /
үндсэн зангилаа / гэнэ. Модны онцлог нь үндсэн зангилаанаас
ямар нэг зангилаанд хүрэх ганц зам байна.
30
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Moд / Tree /
Модны замын урт нь модон дахь бүх зангилааны түвшингүүдийн
нийлбэрээр тодорхойлогддог. Жишээ нь: Дараах модны өндөр нь 3, урт
нь 0*1+1*3+2*3+3*1=12 байна.
Түвшин 0
Түвшин 1
Түвшин 2
Түвшин 3
31
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Хоёртын мод
Модны нэг зангилаанаас гарч болох дэд зангилааны
тоо нь хамгийн ихдээ 2 байх модыг хоёртын мод гэнэ.
32
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
- Хоёртын модонд элемент байрлуулах:
Жагсаалтын эхний элемент модны орой болох бөгөөд дараагийн
элементүүд модны орогоос их бол баруун дэд зангилаа, бага бол зүүн дэд
зангилаа үүсгэнэ. Жишээ нь: 50, 60, 40,72, 53, 22, 35, 41, 80, 57, 18
50
6040
725322
35
41
805718
33
Е-Нээлттэй Институт
www.emust.edu.mn
“Aлгоритм бол тодорхой үр дүн
гаргаж авахын тулд дараалан
гүйцэтгэх ёстой үйлдлүүдийн
жагсаалт юм. ”
2. Алгоритм
34
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Болк схем /Flow chart/
35
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Болк схем /Flow chart/
36
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Алгоритмын үндсэн бүтэц /Basic structures of algorithms/
• Шугаман Бүтэц /Sequence structures/
• Салаалсан бүтэц /Selection structures/
• Давталттай бүтэц /Repetition structures/
Эдгээр бүтэцүүдийг ашиглан нарын төвөгтэй
алгоритмыг илэрхийлэх боломжтой юм.
37
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Шугаман Бүтэц. /Sequence structures/
Дээрээс доош цуварсан бүтцийг алгоритмын
шугман бүтэц гэнэ. Энэ алгоритмын алхам бүр
зөвхөн нэг удаа дараалан гүйцэтгэгдэнэ.
38
Эхлэл
Процесс 1
Процесс 2
Төгсгөл
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Жишээ нь: Өгөгдсөн А, В тооны
нийлбэрийг олж утгыг С хувьсагчид олгох
шугаман алгоритмыг блок схемийг үзүүлэв.
39
Эхлэл
A,B
C =A+B
C
Төгсгөл
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Салаалсан бүтэц
Аль нэг алхамд нөхцлийг
шалгаж биелэлтээс
шалтгаалан дараагийн
үйлдлийг сонгодог. Хэрэв
нөхцөл үнэн бол үйлдэл 1,
худлаа бол үйлдэл 2
биелэгдэх замаар алгоритм
салаалан биелэгдэнэ
Салаалсан алгоритмын үед
нөхцөл нь >, <, =, <>, <=,
>= тэмдгүүд ашиглан
харьцааны үйлдлийг
гүйцэтгэнэ
40
Эхлэл
Процесс 1Процесс 1
Төгсгөл
Нөхцөл
Худал
Үнэн
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Салаалсан бүтэц
Жишээ нь: А тоо 100-с бага бол
100-р үржүүлж, их бол тухайн
тооноос 100-г хасаж гарсан тоог
хэвлэх алгоримтыг блок схемээр
илэрхийлэв
41
Эхлэл
A
A =A-100
A
Төгсгөл
А<100
A=A×100
Тийм Үгүй
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Давталттай бүтэц
Repetition structures
Алгоритмд нэг үйлдэл нь
тодорхой нөхцөл биелэгдэж
байгаа үед давтан хийгдэж
байгаа тохиолдлыг давталттай
алгоритм гэнэ. Давталттай
алгоритмын үед нөхцөл шалгах
блок заавал биелэгддэг
42
Эхлэл
Процесс 1
Процесс 2
Төгсгөл
Нөхцөл
Үнэн
Худал
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Давталттай бүтэц
Repetition structures
Жишээ нь: 1-20 хүртэлх
тоонуудаас сондгой тоог олох
алгоритмыг блок схемээр
илэрхийл.
43
Эхлэл
i,
Төгсгөл
i<20
i=i+2
Тийм
i=1
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Алгоритмын төрөл /Typical algorithms/
Хайлтын алгоритмууд.
- Шугаман хайлт. /Linear search/
Энэ арга нь хайлтын хамгийн энгийн арга юм. Зөвхөн хайж буй
элементийн утга мэдэгдэх бөгөөд олон хайлт явуулах
өгөгдлийн олонлогийн талаар ямар нэг мэдээлэл байхгүй үед
энэ аргыг ашиглана.
https://www.researchgate.net/publication/261879189_ndesnij_hajl
tyn_sistemijn_zohiomz_bolon_heregzlelt
44
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
45
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
50
23
i 0 1 2 3 4 5 6 7 8
утга
30 60 6 54 89 23 38 55 1
23Элемент олдлоо.
Буцаах утга: 5
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
-Хоёртын хайлт /Binary search/
Хоёртын хайлт буюу таллан хуваах арга нь Шугаман
хайлттай харьцуулбал илүү үр дүнтэй аргын нэг юм.
Энэ арга нь өгөгдлийг 2 хэсэгт хуваан, хайх
элемент аль хэсэгт байгааг тодорхойлдог.
51
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
-Энэ аргын үндсэн санаа нь:
1. Хайх элемент буюу Х тоо массивын дундаж элемент
мөн үү гэдгийг шалгах явдал юм. Хэрэв энэ нь үнэн
бол бодлогын шийд олдсон гэсэн үг.
2. Хэрэв тийм биш бол 2 тохиолдол байна.
52
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
а. Х нь дундаж элемент буюу голын элементээс бага
бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс баруун тийш байрлах бүх
элементүүдийг хасах ба голын элементийн зүүн
талд орших хэсэгт хэрэглэх
Б. Х нь дундаж элемент буюу голын элементээс их бол
уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс зүүн тийш байрлах элементийг хасаад
массивын баруун талд орших хэсэгт хэрэглэх
53
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8 9
утга
1 2 10 23 24 50 66 73 74 89
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8 9
утга
1 2 10 23 24 50 66 73 74 89
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
23
i 0 1 2 3 4 5 6 7 8 9
утга
1 2 10 23 24 50 66 73 74 89
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
57
23
i 0 1 2 3 4 5 6 7 8 9
утга
1 2 10 23 24 50 66 73 74 89
Элемент олдлоо.
Буцаах утга: 3
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
a) Рекурс
Өөрөө өөрийгөө дуудан ажиллуулах хэлбэрээр
зохиогдсон програмыг рекурс програм гэнэ. Рекурс
програмаар ихэвчлэн рекурент томъёогоор өгөгдсөн бодлого
эсвэл рекурент аргаар гарч ирэх үр дүн бүхий асуудлыг
шийдэхэд ашигладаг.
58
Е-Нээлттэй Институт
www.emust.edu.mn
1. - Өгөгдлийн бүтэц
Data structure
59
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
a) Рекурс
60
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
a) Рекурс
61
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
Sorting algorithm /Эрэмбэлэлт алгоритмууд/
b) SelectionSort-Сонгон эрэмблэх алгоритм
Массив дахь хамгийн бага элементийг олж массивын
эхний элементтэй сольж , дараа нь удаах бага элементийг олж
массивын хоёр дахь элементтэй солих замаар маиссвын бүх
элемент эрэмбэлэгдэж дуустал үйлдлийг давтан гүйцэтгэнэ.
Энэ арга нь үлдэж байгаа хэсэг бүрээс хамгийн бага
элементийг нь сонгож байгаа учир сонгон эрэмбэлэх арга гэж
нэрлэсэн юм. https://www.toptal.com/developers/sorting-
algorithms
62
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
b) SelectionSort-Сонгон эрэмблэх алгоритм
50 80 40 60 30 70 10 90 20 Эхний алхамд ХБ=10 тул 50-тай солигдоно
10 80 40 60 30 70 50 90 20 ХБ=20 тул 80-тай солигдоно.
10 20 40 60 30 70 50 90 80 ХБ=30 тул 40-тай солигдоно.
10 20 30 60 40 70 50 90 80 ХБ=40 тул 60-тай солигдоно.
10 20 30 40 60 70 50 90 80 ХБ=50 тул 60-тай солигдоно.
10 20 30 40 50 70 60 90 80 ХБ=60 тул 70-тай солигдоно.
10 20 30 40 50 60 70 90 80 ХБ=70 тул 70-тай солигдоно.
10 20 30 40 50 60 70 90 80 ХБ=80 тул 90-тай солигдоно.
63
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
c) Оруулан эрэмблэх алгоритм
Энэ арга нь сонгон эрэмбэлэх аргыг бодвол илүү уян
хатан, үр ашигтай юм. Уг аргын үндсэн үйлдэл нь
эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр
шинэ элемент оруулах үйлдлээр тодорхойлогдоно. Өөрөөр
хэлбэл эрэмбэлэгдсэн элементүүдийн шинэ элементээс их
элементийг нэг байрлал баруун тийш шилжүүлэх байдлаар
орвол зохих байрлалыг чөлөөлж өгдөг.
64
Е-Нээлттэй Институт
www.emust.edu.mn
2. Aлгоритм:
ALGORITM
c) Оруулан эрэмблэх алгоритм
Эхний элементийг эрэмбэлэгдсэн массив гэж үзье. Тэгвэл дараагийн алхамд 2 дахь
элементийг оруулах үйлдэл гүйцэтгэгдэнэ
50 80 40 60 30 70 10 90 20
50 80
40 50 80
40 50 60 80
30 40 50 60 80
30 40 50 60 70 80
10 30 40 50 60 70 80
10 30 40 50 60 70 80 90
65
Е-Нээлттэй Институт
www.emust.edu.mn
Алгоритмыг компьютерийн ойлгох хэлрүү
хөрвүүлэх ажлыг алгоритмын
нэвтрүүлэлт буюу програмчлал гэнэ.
3. Програмчлал
66
Е-Нээлттэй Институт
www.emust.edu.mn
3. Програмчлал:
PROGRAMING
• Доод төвшний програмчлалын хэл
(Low-level programming language)
• Дээд төвшний програмчлалын хэл
(High-level programming language)
67
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(High-level programming language)
(a) Procedural languages
Жишээ нь: Fortran,COBOL,Pascal,BASIC,C, PL/I,
(b) Object-oriented languages
Жишээ нь: Java,C++, С#
(c) Script languages
Жишээ нь: ECMAScript, Perl,PHP,Python,Ruby
(d) Markup language
Жишээ нь: HTML, XML
68
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
FORTRAN - FORmula TRANslator
1950-IBM (International Business
Machines, АНУ) компанид, эрдэмтэн Жон
Бэкусын (John Backus) удирдсан ЭШ-ний
баг физик, математик, инженерийн
шинжлэх ухааны тооцоо хийх
зориулалтаар бүтээсэн.
Жишээ нь, a=5 ба b=3
байхад c=a+b
69
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
BASIC – (Beginner’s All Purpose
Symbolic Instruction Code)
1965 онд Дартмудын коллежийн
(Dartmouth College, АНУ) математикчид
Жон Кемени (John Kemeny), Томас Курц
(Thomas Kurtz) нар зохиосон
Жишээ нь, a=5 ба b=3
байхад c=a+bz
70
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
c) (a) Procedural languages
Pascal
Цюрихын технологийн дээд сургуулийн
(Щвейцар) эрдэмтэн Никлаус Вирт
(Nicklaus Wirth) 1970-аад онд оюутнуудыг
програмчлалд сургах зориулалтаар
бүтээсэн. Програмчлалын Паскаль хэл маш
амжилттай зохиогдсон учраас сургалтын
хүрээнээс халин гарч, түгээмэл
хэрэглэгдэгч алгоритмын хэл болсон.
Жишээ нь, a=5 ба b=3
байхад c=a+b
71
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
C хэл
1969-өөс 1973 онд AT&T компанийн
Беллийн лабораторийн (Bell Laboratories,
АНУ) э.ш.а. Деннис Ритчи (Dennis Ritchie)
Unix үйлдлийн системд програмчлах
зорилгоор бүтээсэн байна. Си хэл нь, доод
төвшний програмчлал болон дээд төвшний
програмчлалын давуу талуудыг жигд
агуулсан учраас заримдаа дунд төвшний
програмчлалын хэл гэдэг. Алгоритмын
хэлүүд дундаас хамгийн өргөн тархсан,
хүчирхэг хэл.
Жишээ нь, a=5 ба b=3
байхад c=a+b
72
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Object-oriented languages
C++
C хэл бол C++ ийн дэд олонлог гэж ойлгож
болно. Эхлээд С гэж процедур хандалтадат
хэл гэж байж байгаад дараагаар нь түүнд
объект хандалтад програмчлалын
технологийг нэвтрүүлж өгсөнөөрөө С++
болсон байна.
Жишээ нь, a=5 ба b=3
байхад c=a+b
73
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
d) Object-oriented languages
JAVA
JAVA бол Sun Microsystems корпорацийн бүтээсэн програмчлалын хэл
бөгөөд хамгийн анх 1995 онд түүнийг олон нийтэд танилцуулжээ. Жава-г
бүтээхдээ С ба С++ хэлийн онцлог, бичиглэлийг хүчтэй тусган авсан
бөгөөд 2006 оны үеэс эхлэн Жава програмчлалын систем нь Java EE, Java
ME, Java Se гэж 3 хуваагдах болсон юм.
Жишээ нь:
74
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
HTML
HTML гэдэг бол HyperText Markup
Language гэсэн үгний товчлол бөгөөд
HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг. Мөн вэб
хуудас хэрхэн харагдах хэлбэрийг өөрчилж
чаддагараа давуу талтай. Гэвч текстийн
хэлбэр дүрс гэх мэтийг дэлгэцэнд гаргахад
CSS (Cascading Style Sheet) Javascript
зэргийг XML, HTML- 2ланд нь ашигладаг
байна.
75
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
XML
Програмчлалд маш өргөн
хэрэглэгдэж байгаа хэл бол XML юм. Энэ нь
Extensible Markup Language гэсэн үгний
товчлол. HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг бол XML
хэрэглэгч өөртөө хэрэгтэй байгаа тагуудыг
үүсгэн мэдээллээ дүрслэнэ Жишээ:
Энэ мэдээллийг програмын аргаар
уншиж мэдээллийг авах үйлдлийг parsing
гэнэ. XML parser гэвэл XML-ийг уншиж
мэдээллийг авагч гэж ойлгож болно
76
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Мобайл програмчлал:
Хөдөлгөөнт холбооны зах зээл дээр Nokia, Apple (iPad, iPhone), Sony
Ericsson, Samsung, Motorola, Black Berry зэрэг компаниуд өөрсдийн
бүтээгдэхүүнээ борлуулахын тулд илүү дэвшилтэд, технологийн
програмчлалыг өөртөө агуулсан ухаалаг гар утасуудыг зохион
бүтээсээр байна. Гар утасыг хэрэглэхэд ойлгомжтой, найдвартай үйл
ажиллагаатай болгохын тулд гар утасанд зориулсан үйлдлийн
системийг боловсруулан, хөгжүүлсэний үр дүнд одоо бидний ашиглаж
байгаа ухаалаг гар утасууд хэрэглээнд нэвтэрсэн.
77
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Мобайл програмчлал:
Гар утасны үйлдлийн системүүдэд Android, iOS, Eature, webOS,
Windows Mobile, Windows Phone, BlackBerry OS, Symbian, Maemo,
MeeGo, Bada, Palm8 Tizen зэрэг үйлдлийн системүүд хамаарагдана.
(Mobile Operating System
[https://en.wikipedia.org/wiki/Mobile_operating_system ]
Эдгээр үйлдлийн системүүд нь дараах програмчлалын хэлүүд дээр
зохиогдсон тоглоом бусад апп-уудыг ашигладаг.
Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime (WRT), Widgets ба
Standard C/C++ програмчлалын хэлүүдийг ашиглан хөгжүүлэгдэнэ.
78
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Жишээ нь: Андройд үйлдлийн систем.
• Жава хэл дээр хөгжүүлэгдэнэ.
• Илүү нээлттэй эх кодтой.
• Онлайн программуудтай илүү нэгтгэгдсэн.
• Илүү хурдан.
• G1 гар утас нь илүү найдвартай техник хангамжтай.
• Flash програмчлалыг дэмжинэ.
• Дурын гар утасны операторуудад нээлттэй.
• Илүү олон файлын форматыг дэмждэг.
• Хакердах шаардлагагүй.
https://en.wikipedia.org/wiki/Android_%28operating_system%29
79
Е-Нээлттэй Институт
www.emust.edu.mn
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
2.1.1AOKP Android Open Kang Project
2.1.2ColorOS
2.1.3CyanogenMod
2.1.4Cyanogen OS
2.1.5EMUI Emotion User Interface
2.1.6Flyme OS
2.1.7HTC Sense
2.1.8LineageOS
2.1.9MIUI
2.1.10LG UX
2.1.11OxygenOS
2.1.12TouchWiz
2.1.13ZenUI
80
• АНХААРАЛ ТАВЬСАНД БАЯРЛАЛАА.

Contenu connexe

Tendances (20)

It101 5-1
It101 5-1 It101 5-1
It101 5-1
 
C
CC
C
 
Database 1
Database 1Database 1
Database 1
 
Лекц №11
Лекц №11Лекц №11
Лекц №11
 
Лекц №4
Лекц №4Лекц №4
Лекц №4
 
массив
массивмассив
массив
 
CS203 Лекц01 Prefeace
CS203 Лекц01  PrefeaceCS203 Лекц01  Prefeace
CS203 Лекц01 Prefeace
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэн
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн сан
 
Lekts 6
Lekts  6Lekts  6
Lekts 6
 
It101 9
It101 9It101 9
It101 9
 
It101 lect2
It101 lect2It101 lect2
It101 lect2
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
Microsoft excel програмтай ажиллах гарын авлага 2017
Microsoft excel програмтай ажиллах гарын авлага 2017Microsoft excel програмтай ажиллах гарын авлага 2017
Microsoft excel програмтай ажиллах гарын авлага 2017
 
Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14Өгөгдлийн бүтэц 14
Өгөгдлийн бүтэц 14
 
Лекц №10
Лекц №10Лекц №10
Лекц №10
 
U.cs101 алгоритм программчлал-9
U.cs101   алгоритм программчлал-9 U.cs101   алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lekts
 

En vedette (20)

U.it101 lec6 2017.03.09
U.it101 lec6 2017.03.09U.it101 lec6 2017.03.09
U.it101 lec6 2017.03.09
 
3
33
3
 
It101 12
It101 12It101 12
It101 12
 
It101 lecture-8
It101 lecture-8It101 lecture-8
It101 lecture-8
 
It101 11
It101 11It101 11
It101 11
 
It101 14 2
It101 14 2It101 14 2
It101 14 2
 
1
11
1
 
It101 13
It101 13It101 13
It101 13
 
5
55
5
 
It101 4
It101 4It101 4
It101 4
 
It101 10
It101 10It101 10
It101 10
 
It101 lecture 7-1
It101 lecture 7-1It101 lecture 7-1
It101 lecture 7-1
 
It101 14
It101 14It101 14
It101 14
 
It101 15
It101 15It101 15
It101 15
 
It101 16
It101 16It101 16
It101 16
 
Lab 2
Lab 2Lab 2
Lab 2
 
U.IT101 Lab 10,11
U.IT101 Lab 10,11U.IT101 Lab 10,11
U.IT101 Lab 10,11
 
Lab 4
Lab 4Lab 4
Lab 4
 
Lab 1
Lab 1Lab 1
Lab 1
 
Lab 8
Lab 8Lab 8
Lab 8
 

Similaire à 2 (20)

Лекц-6
Лекц-6Лекц-6
Лекц-6
 
It101 lec6
It101 lec6It101 lec6
It101 lec6
 
Datastructure algoritm
Datastructure algoritmDatastructure algoritm
Datastructure algoritm
 
It101 lect16
It101 lect16It101 lect16
It101 lect16
 
Lects 12
Lects 12Lects 12
Lects 12
 
ªãºAãäëèéí ñàíã çîõèîí áàéãóóëàõ
ªãºAãäëèéí ñàíã çîõèîí áàéãóóëàõªãºAãäëèéí ñàíã çîõèîí áàéãóóëàõ
ªãºAãäëèéí ñàíã çîõèîí áàéãóóëàõ
 
Mtm sx database
Mtm sx   databaseMtm sx   database
Mtm sx database
 
Uzuulen 1.1-11b
Uzuulen 1.1-11bUzuulen 1.1-11b
Uzuulen 1.1-11b
 
Ms access
Ms accessMs access
Ms access
 
Ms access
Ms accessMs access
Ms access
 
Nuur
NuurNuur
Nuur
 
U.cs101 алгоритм программчлал-15
U.cs101   алгоритм программчлал-15U.cs101   алгоритм программчлал-15
U.cs101 алгоритм программчлал-15
 
Rdbms 300 test
Rdbms 300 testRdbms 300 test
Rdbms 300 test
 
Pp Lect1 1
Pp Lect1 1Pp Lect1 1
Pp Lect1 1
 
It101 lab9
It101 lab9It101 lab9
It101 lab9
 
It101-lab9
It101-lab9It101-lab9
It101-lab9
 
It101 lab9
It101 lab9It101 lab9
It101 lab9
 
10 b oyunchuluun
10 b oyunchuluun10 b oyunchuluun
10 b oyunchuluun
 
мэдээллийн системийн үндэс
мэдээллийн системийн үндэсмэдээллийн системийн үндэс
мэдээллийн системийн үндэс
 
Blog ooad-tod
Blog ooad-todBlog ooad-tod
Blog ooad-tod
 

Plus de Nergui Batjargal (16)

it101 lecture-9
it101 lecture-9it101 lecture-9
it101 lecture-9
 
Cs101 lec15,16
Cs101 lec15,16Cs101 lec15,16
Cs101 lec15,16
 
Cs101 lec14
Cs101 lec14Cs101 lec14
Cs101 lec14
 
Cs101 lec13
Cs101 lec13Cs101 lec13
Cs101 lec13
 
Cs101 lec12
Cs101 lec12Cs101 lec12
Cs101 lec12
 
Cs101 lec11
Cs101 lec11Cs101 lec11
Cs101 lec11
 
Cs101 lec10
Cs101 lec10Cs101 lec10
Cs101 lec10
 
Cs101 lec9
Cs101 lec9Cs101 lec9
Cs101 lec9
 
Cs101 lec8
Cs101 lec8Cs101 lec8
Cs101 lec8
 
Cs101 lec7
Cs101 lec7 Cs101 lec7
Cs101 lec7
 
Cs101 lec6
Cs101 lec6Cs101 lec6
Cs101 lec6
 
Cs101 lec5
Cs101 lec5Cs101 lec5
Cs101 lec5
 
Cs101 lec4
Cs101 lec4Cs101 lec4
Cs101 lec4
 
Cs101 lec3
Cs101 lec3Cs101 lec3
Cs101 lec3
 
Cs101 lec2
Cs101 lec2Cs101 lec2
Cs101 lec2
 
Cs101 lec1
Cs101 lec1Cs101 lec1
Cs101 lec1
 

2

  • 1. www.emust.edu.mn Мэдээллийн Технологийн хэрэглээ - I ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ, Е-НЭЭЛТТЭЙ ИНСТИТУТ Код: U.IT101
  • 2. Е-Нээлттэй Институт www.emust.edu.mn IT101- Мэдээллийн Технологийн хэрэглээ - I Сэдэв: Өгөгдлийн бүтэц, Алгоритм
  • 3. Е-Нээлттэй Институт www.emust.edu.mn Агуулга: 01 02 01 Өгөгдлийн бүтэц Алгоритм02 Програмчлал03 Програмчлалын хэлүүд04 Markup languages04 3
  • 4. Е-Нээлттэй Институт www.emust.edu.mn ХИЧЭЭЛИЙН ЗОРИЛГО: Энэ хичээлээр өгөгдлийн бүтэцийн үндэс, зарчим, Алгоритмын талаар мэдэж авахаас гадна, програмчлалын хэлний талаарх ойлголттой болоход оршино. 4
  • 5. Е-Нээлттэй Институт www.emust.edu.mn Компьютерийн ухааны анхны пионеруудын нэг Н.Виртийн томьёолсноор Компьютерийн програм бол Өгөгдлөл болон Алгоритмын нэгдэл юм. Өөрөөр хэлбэл анхдагч зүйл(өгөгдөл) дээр ямар боловсруулалт (алгоритм) хийж асуудлын шийдлийг (програм) гаргаж авна. Тэгвэл өгөгдлийг ойд хэрхэн хадгалахыг өгөгдлийн дүрслэл харуулдаг. Өгөгдөл өөрөө ямар элементүүдээс бүтдэг, тэдгээр нь хоорондоо ямар холбоотой байгааг өгөгдлийн бүтэц тодорхойлдог. Өгөгдлийн бүтэц, түүний дүрслэл ямар байхаас боловсруулах алгоритм хамаардаг. Өгөгдлийн оновчтой бүтэц болон түүний дүрслэл, алгоритмаар компьютериас бага нөөц шаардсан, хурдан ажиллах, чанартай бүтээгдэхүүн буюу програмыг бүтээж чадна. 1. Өгөгдлийн бүтэц 5
  • 6. Е-Нээлттэй Институт www.emust.edu.mn 1. Өгөгдлийн бүтэц Data structure - Өгөгдөл. / Data/ Өгөгдөл /Data/ гэдэг нь тоо болон тэмдэгтүүдийн цогц ба ямар нэг зорилгогүйгээр цуглуулсан өгөгдөлийг хэлнэ. 6
  • 7. Е-Нээлттэй Институт www.emust.edu.mn 1. Өгөгдлийн бүтэц Data structure - Хувьсагч. / Variables / Хувьсагч /Variables/ нь програмчлалын нэг чухал ойлголт бөгөөд түр санах oйд ямар нэг утга (value) хадгалж, дэс дараатай тооцоололд хэрэглэгдэгддэг. Тоон утга нь хэд ч байж болох үл мэдэгдэх тоог хувьсагч гэнэ. Хувьсагч нь бүхэл, бутархай тоон, тэмдэгт гэх мэт төрөлүүдтэй байдаг. 7 Жишээ нь: (а) тоо нь бүхэл тоон төрлийн дурын тоо байна. Int y, a; /Бүхэл тоон төрөл/ a=10; y=10+10, y=20
  • 8. Е-Нээлттэй Институт www.emust.edu.mn 1. Өгөгдлийн бүтэц Data structure Өгөгдлийг компьютерийн санах ойд хадгалахад: 1. Өгөгдөл бүхлээрээ дараалсан байтуудад, 2. Тодорхой дараалалгүй энд тэнд тархсан байдлаар хадгалах хоёр үндсэн зам байдаг. Санах ойд дараалсан байдалтай өгөгдлийг МАССИВ, тархай байрлалтай өгөгдлийг ХОЛБООСТ дүрслэлээр хадгалахад тохиромжтой байдаг. 8
  • 9. Е-Нээлттэй Институт www.emust.edu.mn 1. Өгөгдлийн бүтэц Data structure - Массив. /Massive/ Массив буюу хүснэгт нь олон элемент өөртөө агуулах, элемент тус бүр индексээр илэрхийлэгдэх энгийн өгөгдлийн бүтэц юм. Массив нь нэртэй (name of array) байна. Массивын нэг өгөгдлийг массивын элемент гэнэ. Элементүүд бүгд дугаарлагдсан байна. Элементийн дугаарыг индекс (index) гэнэ. Индекс нь 0-ээс эхлэнэ. 9
  • 10. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Массивын хэрэглээ Массив нь математикийн матрицыг программчлалын хэлэнд илэрхийлдгээрээ ач холбогдолтой юм. Их хэмжээний мэдээлэл, төрөл бүрийн статистик өгөгдлийг боловсруулах программд массив ашиглах нь тохиромжтой байдаг. 10
  • 11. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Массивын төрөл, хэлбэрүүд: Массив нь өгөгдөл учраас аль нэг үндсэн өгөгдлийн төрөлд хамаарах ёстой. Энэ нь түүний элементийн төрлөөр тодорхойлогдоно. • Бүхэл тоон төрөл нь char, unsigned char, short, unsigned short, int, unsigned int, long int, unsigned long гэх мэт байна. • Бодит тоон төрөл нь float, double, long double гэх мэт байна. 11
  • 12. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Массивын урт: Массивын элементүүдийн тоог массивын урт /length/ гэдэг. Компьютерийн санах ойн багтаамжаас шалтгаалан хэрэглэгч ямар ч урттай массив зарлаж болно. Жишээлбэл бүхэл тоон int төрлийн 5 гэсэн урттай массив зарлалаа гэвэл түүний санах ойд эзлэх зай нь 10 байт болно. Учир нь int төрлийн нэг энгийн элемент 2 байт болдог ба 5*2=10 болно. Үүнтэй адил зарчмаар, хэрэв бодит float төрлийн 20 гэсэн урттай массив зарлавал, нэг энгийн float төрлийн элемент 4 байт авах учраас 20*4=80 байт зай эзлэнэ. 12
  • 13. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Массивын хэмжээс: Нэг хэмжээст массив нь вектортой, хоёр хэмжээст нь матрицтай төстэй юм. Ер нь бол массив хичнээн ч хэмжээстэй байж болно. нэг хэмжээст /1D - one dimensional/, хоёр хэмжээст /2D - two dimensional/, гурван хэмжээст /3D - three dimensional/ массив гэх мэтээр нэрлэдэг. Гурваас олон хэмжээстэй (multidimensional) ч байж болно. 13
  • 14. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Нэг хэмжээст массив Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1] байна. Жишээ нь: Бүхэл тоон int төрлийн, 25 элементтэй, mas нэртэй массивыг үзүүлэв (Зураг 1.2). Хамгийн эхний элемент 0 гэсэн индекстэй, хамгийн сүүлийн элемент 24 гэсэн индекстэй байна. Жишээ 1: int mas [25]; 14 a[0] a[1] a[2] a[3] a[4] a[...] a[25]
  • 15. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Хоёр хэмжээст массив 2D Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1] [урт_2] байна. Дараах жишээнд бүхэл тоон int төрлийн, matrix нэртэй, 3 мөр, 4 багантай 2D хэмжээст массивыг үзүүлэв. Matrix массивын нийт элементийн тоо нь 3*4=12 байна. Жишээ 2: Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав. 15
  • 16. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Хоёр хэмжээст массив 2D Жишээ 2: Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав. int matrix [3] [4] = { {1}, {2, 3}, {4, 5, 6}}; 16 Мөрийн индекс Баганы индекс
  • 17. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Гурван хэмжээст массив 3D Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1] [урт_2] [урт_3] байна. Мөр, багана дээр нэмэгдээд гурав дахь хэмжээс гарч ирнэ. Хэрэв гурван хэмжээсийн уртууд нь адил бол куб массив гэнэ. 3D массив идэвхжүүлэхдээ, массивын мөр бүр нь хэд хэдэн баганад, харин багана бүр нь хэд хэдэн “өндөрт” хуваагдана гэдгийг тооцож, мөр мөрөөр бүлэглэн { } бичиж, тус бүрийн дотор нь дахиад багана баганаар бүлэглэн { } дотор анхны утгуудыг бичдэг 17
  • 18. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure Холбоост /Linked/: Тархай салангид элементүүдийг нэгтгэж нэгдмэл нэг өгөгдөл болгоход холбоосыг хэрэглэдэг. Холбоос гэдэг нь нэг элементийн дараагийн дараагийн элемент санах ойн хаана байгааг заасан хаяг юм. Элемент, холбоос гэсэн хосууд гинж байдлаар залгагдаж өгөгдлийг бүрдүүлдэг. Нэг хосод хэдэн холбоос байгаагаас нь хамааруулж дан болон давхар холбоост дүрслэл үүсдэг. Давхар холбоосоор дараачийн элемент төдийгүй өмнөх элементэд хүрч болдог. 18
  • 19. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Жагсаалт/List/ Өгөгдлийн хамгийн түгээмэл бүтэц бол шугаман жагсаалт. Жишээ: Оюутны нэрс, сурлагын дүн, хоолны цэс, номын нэрс г.м. бүгд жагсаалт юм 19
  • 20. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure Нэг холбоост жагсаалт /Single Linked List/: Элемент буюу зангилаа нь өгөгдөл ба холбоос гэсэн 2 хэсгээс тогтоно. Өгөгдөл нь бидний мэдэх өгөгдлийн стандарт төрлүүдээр тодорхойлогдсон утга байх ба хэрэглэгчийн тодорхойлсон төрөл байж болно. Харин холбоос нь заагч төрөлтэй байх ба дараагийн зангилааны хаягийг заана. Нэг холбоост жагсаалт нь тухайн элементээс өмнөх элементүүдийг авах боломжгүй байдаг ба заагч ашиглан дараагийн элементийг устгах, нэмэх үйлдэл хийж болно. 20
  • 21. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure 21
  • 22. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure Хоёр холбоост жагсаалт /Double Linked List/ Энэ нь нэг холбоост жагсаалтын шийдэж чадаагүй өмнөх элементээ авах асуудлыг шийдсэн боловч дурын элементэд шууд хандах боломжгүй заагч ашиглан тухайн элементийн өмнөх болон дараагийн элементүүдэд хандаж элемент нэмэх болон устгах үйлдэлийг шийдсэн 22
  • 23. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure 23
  • 24. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Стек /Stack/ Эхлэлд орсон нь сүүлд нь гарах зарчмаар зохион байгуулагдсан өгөгдлийн бүтцийг стек гэнэ. LIFO-Last In First Out Амьдрал дээр стекийн жишээ маш олон Жишээ нь давхарлаж хураасан таваг, бууны дайз г.м. 24
  • 25. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Стек /Stack/ хэрэглээ • Аравтын тооллын системийн тоог хоёртын тооллын системд шилжүүлэх программын хувьд стекийг ашиглавал илүү тохиромжтой болох юм. Учир нь энэ бодлогод ихэвчлэн массивыг ашигладаг ба энэ тохиолдолд үүссэн хоёртын бичиглэл нь хөрвөсөн байдаг. Тиймээс түүнийг стект хадгалаад дараа нь утгуудыг хэвлэнэ. • Арифметик илэрхийлэлд хаалт зөв орсон эсэхийг стек ашиглан шалгаж болно. • Арифметик илэрхийллийг бодох хялбар арга нь Польш тэмдэглэгээнд хөрвүүлж боддог. Энэ нь арифметик илэрхийллийг (posfix) Польш тэмдэглэгээ (prefix) рүү шилжүүлээд дараа нь түүнийгээ стек ашиглан бодох юм. 25
  • 26. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure 26 Польш тэмдэглэгээ Энэ тэмдэглэгээний нэг онцлог нь хаалт ашигладаггүй явдал юм. Жишээ нь: А+В илэрхийллийг АВ+ гэж бичнэ. Польш тэмдэглэгээний давуу тал нь аливаа илэрхийллийн завсрын утгуудыг стект хадгалан, илэрхийллийн тэмдэг бүрийг зөвхөн нэг удаа уншин хялбархан аргаар боддогт оршино. Жишээ нь : Y= P=2,3,2,*,5,-,2,*,+,1,3,^,+,6,2,/,1,-,2,*,-,1,+ 121263125232  *)/(^*)*(
  • 27. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Queue –Дараалал Эхэлж орсон нь эхэлж гарах зарчмаар зохион байгуулагдсан өгөгдлийн бүтцийг дараалал гэнэ. FIFO-First In First Out 27
  • 28. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure 28
  • 29. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Tree – Moд Зангилаанууд болон тэдгээрийг холбосон холбоосуудаар дүрслэгдсэн өгөгдлийн бүтэцийг мод гэнэ. Мод нь өгөгдлийг агуулах зангилаа, өөр зангилаатай холбогдох холбоосуудаас тогтоно. 29
  • 30. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Tree – Moд Модны хамгийн эхний зангилааг үндэс буюу язгуур / үндсэн зангилаа / гэнэ. Модны онцлог нь үндсэн зангилаанаас ямар нэг зангилаанд хүрэх ганц зам байна. 30
  • 31. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Moд / Tree / Модны замын урт нь модон дахь бүх зангилааны түвшингүүдийн нийлбэрээр тодорхойлогддог. Жишээ нь: Дараах модны өндөр нь 3, урт нь 0*1+1*3+2*3+3*1=12 байна. Түвшин 0 Түвшин 1 Түвшин 2 Түвшин 3 31
  • 32. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Хоёртын мод Модны нэг зангилаанаас гарч болох дэд зангилааны тоо нь хамгийн ихдээ 2 байх модыг хоёртын мод гэнэ. 32
  • 33. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure - Хоёртын модонд элемент байрлуулах: Жагсаалтын эхний элемент модны орой болох бөгөөд дараагийн элементүүд модны орогоос их бол баруун дэд зангилаа, бага бол зүүн дэд зангилаа үүсгэнэ. Жишээ нь: 50, 60, 40,72, 53, 22, 35, 41, 80, 57, 18 50 6040 725322 35 41 805718 33
  • 34. Е-Нээлттэй Институт www.emust.edu.mn “Aлгоритм бол тодорхой үр дүн гаргаж авахын тулд дараалан гүйцэтгэх ёстой үйлдлүүдийн жагсаалт юм. ” 2. Алгоритм 34
  • 37. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Алгоритмын үндсэн бүтэц /Basic structures of algorithms/ • Шугаман Бүтэц /Sequence structures/ • Салаалсан бүтэц /Selection structures/ • Давталттай бүтэц /Repetition structures/ Эдгээр бүтэцүүдийг ашиглан нарын төвөгтэй алгоритмыг илэрхийлэх боломжтой юм. 37
  • 38. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Шугаман Бүтэц. /Sequence structures/ Дээрээс доош цуварсан бүтцийг алгоритмын шугман бүтэц гэнэ. Энэ алгоритмын алхам бүр зөвхөн нэг удаа дараалан гүйцэтгэгдэнэ. 38 Эхлэл Процесс 1 Процесс 2 Төгсгөл
  • 39. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Жишээ нь: Өгөгдсөн А, В тооны нийлбэрийг олж утгыг С хувьсагчид олгох шугаман алгоритмыг блок схемийг үзүүлэв. 39 Эхлэл A,B C =A+B C Төгсгөл
  • 40. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Салаалсан бүтэц Аль нэг алхамд нөхцлийг шалгаж биелэлтээс шалтгаалан дараагийн үйлдлийг сонгодог. Хэрэв нөхцөл үнэн бол үйлдэл 1, худлаа бол үйлдэл 2 биелэгдэх замаар алгоритм салаалан биелэгдэнэ Салаалсан алгоритмын үед нөхцөл нь >, <, =, <>, <=, >= тэмдгүүд ашиглан харьцааны үйлдлийг гүйцэтгэнэ 40 Эхлэл Процесс 1Процесс 1 Төгсгөл Нөхцөл Худал Үнэн
  • 41. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Салаалсан бүтэц Жишээ нь: А тоо 100-с бага бол 100-р үржүүлж, их бол тухайн тооноос 100-г хасаж гарсан тоог хэвлэх алгоримтыг блок схемээр илэрхийлэв 41 Эхлэл A A =A-100 A Төгсгөл А<100 A=A×100 Тийм Үгүй
  • 42. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Давталттай бүтэц Repetition structures Алгоритмд нэг үйлдэл нь тодорхой нөхцөл биелэгдэж байгаа үед давтан хийгдэж байгаа тохиолдлыг давталттай алгоритм гэнэ. Давталттай алгоритмын үед нөхцөл шалгах блок заавал биелэгддэг 42 Эхлэл Процесс 1 Процесс 2 Төгсгөл Нөхцөл Үнэн Худал
  • 43. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Давталттай бүтэц Repetition structures Жишээ нь: 1-20 хүртэлх тоонуудаас сондгой тоог олох алгоритмыг блок схемээр илэрхийл. 43 Эхлэл i, Төгсгөл i<20 i=i+2 Тийм i=1
  • 44. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Алгоритмын төрөл /Typical algorithms/ Хайлтын алгоритмууд. - Шугаман хайлт. /Linear search/ Энэ арга нь хайлтын хамгийн энгийн арга юм. Зөвхөн хайж буй элементийн утга мэдэгдэх бөгөөд олон хайлт явуулах өгөгдлийн олонлогийн талаар ямар нэг мэдээлэл байхгүй үед энэ аргыг ашиглана. https://www.researchgate.net/publication/261879189_ndesnij_hajl tyn_sistemijn_zohiomz_bolon_heregzlelt 44
  • 45. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 45 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23
  • 46. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23
  • 47. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23
  • 48. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23
  • 49. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23
  • 50. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 50 23 i 0 1 2 3 4 5 6 7 8 утга 30 60 6 54 89 23 38 55 1 23Элемент олдлоо. Буцаах утга: 5
  • 51. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM -Хоёртын хайлт /Binary search/ Хоёртын хайлт буюу таллан хуваах арга нь Шугаман хайлттай харьцуулбал илүү үр дүнтэй аргын нэг юм. Энэ арга нь өгөгдлийг 2 хэсэгт хуваан, хайх элемент аль хэсэгт байгааг тодорхойлдог. 51
  • 52. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM -Энэ аргын үндсэн санаа нь: 1. Хайх элемент буюу Х тоо массивын дундаж элемент мөн үү гэдгийг шалгах явдал юм. Хэрэв энэ нь үнэн бол бодлогын шийд олдсон гэсэн үг. 2. Хэрэв тийм биш бол 2 тохиолдол байна. 52
  • 53. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM а. Х нь дундаж элемент буюу голын элементээс бага бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын элементээс баруун тийш байрлах бүх элементүүдийг хасах ба голын элементийн зүүн талд орших хэсэгт хэрэглэх Б. Х нь дундаж элемент буюу голын элементээс их бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын элементээс зүүн тийш байрлах элементийг хасаад массивын баруун талд орших хэсэгт хэрэглэх 53
  • 54. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 9 утга 1 2 10 23 24 50 66 73 74 89
  • 55. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 9 утга 1 2 10 23 24 50 66 73 74 89
  • 56. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 23 i 0 1 2 3 4 5 6 7 8 9 утга 1 2 10 23 24 50 66 73 74 89
  • 57. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Хайх утга: Хайлт явуулах олонлог: 57 23 i 0 1 2 3 4 5 6 7 8 9 утга 1 2 10 23 24 50 66 73 74 89 Элемент олдлоо. Буцаах утга: 3
  • 58. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM a) Рекурс Өөрөө өөрийгөө дуудан ажиллуулах хэлбэрээр зохиогдсон програмыг рекурс програм гэнэ. Рекурс програмаар ихэвчлэн рекурент томъёогоор өгөгдсөн бодлого эсвэл рекурент аргаар гарч ирэх үр дүн бүхий асуудлыг шийдэхэд ашигладаг. 58
  • 59. Е-Нээлттэй Институт www.emust.edu.mn 1. - Өгөгдлийн бүтэц Data structure 59
  • 62. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM Sorting algorithm /Эрэмбэлэлт алгоритмууд/ b) SelectionSort-Сонгон эрэмблэх алгоритм Массив дахь хамгийн бага элементийг олж массивын эхний элементтэй сольж , дараа нь удаах бага элементийг олж массивын хоёр дахь элементтэй солих замаар маиссвын бүх элемент эрэмбэлэгдэж дуустал үйлдлийг давтан гүйцэтгэнэ. Энэ арга нь үлдэж байгаа хэсэг бүрээс хамгийн бага элементийг нь сонгож байгаа учир сонгон эрэмбэлэх арга гэж нэрлэсэн юм. https://www.toptal.com/developers/sorting- algorithms 62
  • 63. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM b) SelectionSort-Сонгон эрэмблэх алгоритм 50 80 40 60 30 70 10 90 20 Эхний алхамд ХБ=10 тул 50-тай солигдоно 10 80 40 60 30 70 50 90 20 ХБ=20 тул 80-тай солигдоно. 10 20 40 60 30 70 50 90 80 ХБ=30 тул 40-тай солигдоно. 10 20 30 60 40 70 50 90 80 ХБ=40 тул 60-тай солигдоно. 10 20 30 40 60 70 50 90 80 ХБ=50 тул 60-тай солигдоно. 10 20 30 40 50 70 60 90 80 ХБ=60 тул 70-тай солигдоно. 10 20 30 40 50 60 70 90 80 ХБ=70 тул 70-тай солигдоно. 10 20 30 40 50 60 70 90 80 ХБ=80 тул 90-тай солигдоно. 63
  • 64. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM c) Оруулан эрэмблэх алгоритм Энэ арга нь сонгон эрэмбэлэх аргыг бодвол илүү уян хатан, үр ашигтай юм. Уг аргын үндсэн үйлдэл нь эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр шинэ элемент оруулах үйлдлээр тодорхойлогдоно. Өөрөөр хэлбэл эрэмбэлэгдсэн элементүүдийн шинэ элементээс их элементийг нэг байрлал баруун тийш шилжүүлэх байдлаар орвол зохих байрлалыг чөлөөлж өгдөг. 64
  • 65. Е-Нээлттэй Институт www.emust.edu.mn 2. Aлгоритм: ALGORITM c) Оруулан эрэмблэх алгоритм Эхний элементийг эрэмбэлэгдсэн массив гэж үзье. Тэгвэл дараагийн алхамд 2 дахь элементийг оруулах үйлдэл гүйцэтгэгдэнэ 50 80 40 60 30 70 10 90 20 50 80 40 50 80 40 50 60 80 30 40 50 60 80 30 40 50 60 70 80 10 30 40 50 60 70 80 10 30 40 50 60 70 80 90 65
  • 66. Е-Нээлттэй Институт www.emust.edu.mn Алгоритмыг компьютерийн ойлгох хэлрүү хөрвүүлэх ажлыг алгоритмын нэвтрүүлэлт буюу програмчлал гэнэ. 3. Програмчлал 66
  • 67. Е-Нээлттэй Институт www.emust.edu.mn 3. Програмчлал: PROGRAMING • Доод төвшний програмчлалын хэл (Low-level programming language) • Дээд төвшний програмчлалын хэл (High-level programming language) 67
  • 68. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES (High-level programming language) (a) Procedural languages Жишээ нь: Fortran,COBOL,Pascal,BASIC,C, PL/I, (b) Object-oriented languages Жишээ нь: Java,C++, С# (c) Script languages Жишээ нь: ECMAScript, Perl,PHP,Python,Ruby (d) Markup language Жишээ нь: HTML, XML 68
  • 69. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES (a) Procedural languages FORTRAN - FORmula TRANslator 1950-IBM (International Business Machines, АНУ) компанид, эрдэмтэн Жон Бэкусын (John Backus) удирдсан ЭШ-ний баг физик, математик, инженерийн шинжлэх ухааны тооцоо хийх зориулалтаар бүтээсэн. Жишээ нь, a=5 ба b=3 байхад c=a+b 69
  • 70. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES (a) Procedural languages BASIC – (Beginner’s All Purpose Symbolic Instruction Code) 1965 онд Дартмудын коллежийн (Dartmouth College, АНУ) математикчид Жон Кемени (John Kemeny), Томас Курц (Thomas Kurtz) нар зохиосон Жишээ нь, a=5 ба b=3 байхад c=a+bz 70
  • 71. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES c) (a) Procedural languages Pascal Цюрихын технологийн дээд сургуулийн (Щвейцар) эрдэмтэн Никлаус Вирт (Nicklaus Wirth) 1970-аад онд оюутнуудыг програмчлалд сургах зориулалтаар бүтээсэн. Програмчлалын Паскаль хэл маш амжилттай зохиогдсон учраас сургалтын хүрээнээс халин гарч, түгээмэл хэрэглэгдэгч алгоритмын хэл болсон. Жишээ нь, a=5 ба b=3 байхад c=a+b 71
  • 72. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES (a) Procedural languages C хэл 1969-өөс 1973 онд AT&T компанийн Беллийн лабораторийн (Bell Laboratories, АНУ) э.ш.а. Деннис Ритчи (Dennis Ritchie) Unix үйлдлийн системд програмчлах зорилгоор бүтээсэн байна. Си хэл нь, доод төвшний програмчлал болон дээд төвшний програмчлалын давуу талуудыг жигд агуулсан учраас заримдаа дунд төвшний програмчлалын хэл гэдэг. Алгоритмын хэлүүд дундаас хамгийн өргөн тархсан, хүчирхэг хэл. Жишээ нь, a=5 ба b=3 байхад c=a+b 72
  • 73. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Object-oriented languages C++ C хэл бол C++ ийн дэд олонлог гэж ойлгож болно. Эхлээд С гэж процедур хандалтадат хэл гэж байж байгаад дараагаар нь түүнд объект хандалтад програмчлалын технологийг нэвтрүүлж өгсөнөөрөө С++ болсон байна. Жишээ нь, a=5 ба b=3 байхад c=a+b 73
  • 74. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES d) Object-oriented languages JAVA JAVA бол Sun Microsystems корпорацийн бүтээсэн програмчлалын хэл бөгөөд хамгийн анх 1995 онд түүнийг олон нийтэд танилцуулжээ. Жава-г бүтээхдээ С ба С++ хэлийн онцлог, бичиглэлийг хүчтэй тусган авсан бөгөөд 2006 оны үеэс эхлэн Жава програмчлалын систем нь Java EE, Java ME, Java Se гэж 3 хуваагдах болсон юм. Жишээ нь: 74
  • 75. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Markup language HTML HTML гэдэг бол HyperText Markup Language гэсэн үгний товчлол бөгөөд HTML бол урдчилан тодорхойлсон тагуудаар мэдээлэл дүрслэдэг. Мөн вэб хуудас хэрхэн харагдах хэлбэрийг өөрчилж чаддагараа давуу талтай. Гэвч текстийн хэлбэр дүрс гэх мэтийг дэлгэцэнд гаргахад CSS (Cascading Style Sheet) Javascript зэргийг XML, HTML- 2ланд нь ашигладаг байна. 75
  • 76. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Markup language XML Програмчлалд маш өргөн хэрэглэгдэж байгаа хэл бол XML юм. Энэ нь Extensible Markup Language гэсэн үгний товчлол. HTML бол урдчилан тодорхойлсон тагуудаар мэдээлэл дүрслэдэг бол XML хэрэглэгч өөртөө хэрэгтэй байгаа тагуудыг үүсгэн мэдээллээ дүрслэнэ Жишээ: Энэ мэдээллийг програмын аргаар уншиж мэдээллийг авах үйлдлийг parsing гэнэ. XML parser гэвэл XML-ийг уншиж мэдээллийг авагч гэж ойлгож болно 76
  • 77. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Мобайл програмчлал: Хөдөлгөөнт холбооны зах зээл дээр Nokia, Apple (iPad, iPhone), Sony Ericsson, Samsung, Motorola, Black Berry зэрэг компаниуд өөрсдийн бүтээгдэхүүнээ борлуулахын тулд илүү дэвшилтэд, технологийн програмчлалыг өөртөө агуулсан ухаалаг гар утасуудыг зохион бүтээсээр байна. Гар утасыг хэрэглэхэд ойлгомжтой, найдвартай үйл ажиллагаатай болгохын тулд гар утасанд зориулсан үйлдлийн системийг боловсруулан, хөгжүүлсэний үр дүнд одоо бидний ашиглаж байгаа ухаалаг гар утасууд хэрэглээнд нэвтэрсэн. 77
  • 78. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Мобайл програмчлал: Гар утасны үйлдлийн системүүдэд Android, iOS, Eature, webOS, Windows Mobile, Windows Phone, BlackBerry OS, Symbian, Maemo, MeeGo, Bada, Palm8 Tizen зэрэг үйлдлийн системүүд хамаарагдана. (Mobile Operating System [https://en.wikipedia.org/wiki/Mobile_operating_system ] Эдгээр үйлдлийн системүүд нь дараах програмчлалын хэлүүд дээр зохиогдсон тоглоом бусад апп-уудыг ашигладаг. Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime (WRT), Widgets ба Standard C/C++ програмчлалын хэлүүдийг ашиглан хөгжүүлэгдэнэ. 78
  • 79. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES Жишээ нь: Андройд үйлдлийн систем. • Жава хэл дээр хөгжүүлэгдэнэ. • Илүү нээлттэй эх кодтой. • Онлайн программуудтай илүү нэгтгэгдсэн. • Илүү хурдан. • G1 гар утас нь илүү найдвартай техник хангамжтай. • Flash програмчлалыг дэмжинэ. • Дурын гар утасны операторуудад нээлттэй. • Илүү олон файлын форматыг дэмждэг. • Хакердах шаардлагагүй. https://en.wikipedia.org/wiki/Android_%28operating_system%29 79
  • 80. Е-Нээлттэй Институт www.emust.edu.mn 4. Програмчлалын хэл: PROGRAMING LANGUAGES 2.1.1AOKP Android Open Kang Project 2.1.2ColorOS 2.1.3CyanogenMod 2.1.4Cyanogen OS 2.1.5EMUI Emotion User Interface 2.1.6Flyme OS 2.1.7HTC Sense 2.1.8LineageOS 2.1.9MIUI 2.1.10LG UX 2.1.11OxygenOS 2.1.12TouchWiz 2.1.13ZenUI 80

Notes de l'éditeur

  1. Cover 1