Vous êtes sur la page 1sur 80

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

Е-НЭЭЛТТЭЙ ИНСТИТУТ

Мэдээллийн Технологийн
хэрэглээ – I
(Лекцийн номны 21-42 х, Лабораторын 21-23х)

Код: U.IT101 www.emust.edu.mn


IT101- Мэдээллийн Технологийн хэрэглээ - I

Сэдэв: Өгөгдлийн бүтэц, Алгоритм

Е-Нээлттэй Институт
www.emust.edu.mn
Агуулга:

01 Өгөгдлийн бүтэц
01
02
02 Алгоритм

03 Програмчлал

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

04 Markup languages

Е-Нээлттэй Институт
www.emust.edu.mn 3
ХИЧЭЭЛИЙН ЗОРИЛГО:

Энэ хичээлээр өгөгдлийн бүтэцийн үндэс,


зарчим, Алгоритмын талаар мэдэж авахаас гадна,
програмчлалын хэлний талаарх ойлголттой
болоход оршино.

Е-Нээлттэй Институт
www.emust.edu.mn 4
Компьютерийн ухааны анхны пионеруудын нэг
Н.Виртийн томьёолсноор Компьютерийн
програм бол Өгөгдлөл болон
Алгоритмын нэгдэл юм. Өөрөөр хэлбэл анхдагч
зүйл(өгөгдөл) дээр ямар боловсруулалт (алгоритм)
хийж асуудлын шийдлийг (програм) гаргаж авна.
Тэгвэл өгөгдлийг ойд хэрхэн
хадгалахыг өгөгдлийн дүрслэл харуулдаг.
Өгөгдөл өөрөө ямар элементүүдээс бүтдэг, тэдгээр
нь хоорондоо ямар холбоотой байгааг өгөгдлийн
1. Өгөгдлийн бүтэц тодорхойлдог. Өгөгдлийн бүтэц, түүний
дүрслэл ямар байхаас боловсруулах алгоритм
бүтэц хамаардаг.
Өгөгдлийн оновчтой бүтэц болон түүний
дүрслэл, алгоритмаар компьютериас бага нөөц
шаардсан, хурдан ажиллах, чанартай бүтээгдэхүүн
буюу програмыг бүтээж чадна.

Е-Нээлттэй Институт
www.emust.edu.mn 5
1. Өгөгдлийн бүтэц
Data structure

- Өгөгдөл. / Data/
Өгөгдөл /Data/ гэдэг нь тоо
болон тэмдэгтүүдийн цогц ба
ямар нэг зорилгогүйгээр
цуглуулсан өгөгдөлийг хэлнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 6
1. Өгөгдлийн бүтэц
Data structure

- Хувьсагч. / Variables /
Хувьсагч /Variables/ нь програмчлалын нэг чухал ойлголт
бөгөөд түр санах oйд ямар нэг утга (value) хадгалж, дэс
дараатай тооцоололд хэрэглэгдэгддэг. Тоон утга нь хэд ч байж
болох үл мэдэгдэх тоог хувьсагч гэнэ. Хувьсагч нь бүхэл,
бутархай тоон, тэмдэгт гэх мэт төрөлүүдтэй байдаг.
Жишээ нь: (а) тоо нь бүхэл тоон
төрлийн дурын тоо байна.
Int y, a; /Бүхэл тоон төрөл/
a=10;
y=10+10, y=20
Е-Нээлттэй Институт
www.emust.edu.mn 7
1. Өгөгдлийн бүтэц
Data structure

Өгөгдлийг компьютерийн санах ойд хадгалахад:


1. Өгөгдөл бүхлээрээ дараалсан байтуудад,
2. Тодорхой дараалалгүй энд тэнд тархсан байдлаар
хадгалах хоёр үндсэн зам байдаг. Санах ойд дараалсан
байдалтай өгөгдлийг МАССИВ, тархай байрлалтай
өгөгдлийг ХОЛБООСТ дүрслэлээр хадгалахад
тохиромжтой байдаг.

Е-Нээлттэй Институт
www.emust.edu.mn 8
1. Өгөгдлийн бүтэц
Data structure

- Массив. /Massive/
Массив буюу хүснэгт нь олон элемент өөртөө агуулах, элемент
тус бүр индексээр илэрхийлэгдэх энгийн өгөгдлийн бүтэц юм.
Массив нь нэртэй (name of array) байна. Массивын нэг
өгөгдлийг массивын элемент гэнэ. Элементүүд бүгд
дугаарлагдсан байна. Элементийн дугаарыг индекс (index)
гэнэ. Индекс нь 0-ээс эхлэнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 9
1. - Өгөгдлийн бүтэц
Data structure

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

Е-Нээлттэй Институт
www.emust.edu.mn 10
1. - Өгөгдлийн бүтэц
Data structure

- Массивын төрөл, хэлбэрүүд:


Массив нь өгөгдөл учраас аль нэг үндсэн өгөгдлийн төрөлд
хамаарах ёстой. Энэ нь түүний элементийн төрлөөр
тодорхойлогдоно.
• Бүхэл тоон төрөл нь char, unsigned char, short, unsigned
short, int, unsigned int, long int, unsigned long гэх мэт
байна.
• Бодит тоон төрөл нь float, double, long double гэх мэт
байна.

Е-Нээлттэй Институт
www.emust.edu.mn 11
1. - Өгөгдлийн бүтэц
Data structure

- Массивын урт:
Массивын элементүүдийн тоог массивын урт /length/ гэдэг.
Компьютерийн санах ойн багтаамжаас шалтгаалан хэрэглэгч ямар ч
урттай массив зарлаж болно. Жишээлбэл бүхэл тоон int төрлийн 5
гэсэн урттай массив зарлалаа гэвэл түүний санах ойд эзлэх зай нь
10 байт болно. Учир нь int төрлийн нэг энгийн элемент 2 байт
болдог ба 5*2=10 болно. Үүнтэй адил зарчмаар, хэрэв бодит float
төрлийн 20 гэсэн урттай массив зарлавал, нэг энгийн float төрлийн
элемент 4 байт авах учраас 20*4=80 байт зай эзлэнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 12
1. - Өгөгдлийн бүтэц
Data structure

- Массивын хэмжээс:
Нэг хэмжээст массив нь вектортой, хоёр хэмжээст
нь матрицтай төстэй юм. Ер нь бол массив хичнээн ч
хэмжээстэй байж болно.
нэг хэмжээст /1D - one dimensional/, хоёр хэмжээст
/2D - two dimensional/, гурван хэмжээст /3D - three
dimensional/ массив гэх мэтээр нэрлэдэг. Гурваас олон
хэмжээстэй (multidimensional) ч байж болно.

Е-Нээлттэй Институт
www.emust.edu.mn 13
1. - Өгөгдлийн бүтэц
Data structure

- Нэг хэмжээст массив


Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
байна. Жишээ нь: Бүхэл тоон int төрлийн, 25 элементтэй, mas
нэртэй массивыг үзүүлэв (Зураг 1.2). Хамгийн эхний элемент 0
гэсэн индекстэй, хамгийн сүүлийн элемент 24 гэсэн индекстэй
байна.
Жишээ 1: int mas [25];
a[0] a[1] a[2] a[3] a[4] a[...] a[25]

Е-Нээлттэй Институт
www.emust.edu.mn 14
1. - Өгөгдлийн бүтэц
Data structure

- Хоёр хэмжээст массив 2D


Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
[урт_2] байна. Дараах жишээнд бүхэл тоон int төрлийн, matrix
нэртэй, 3 мөр, 4 багантай 2D хэмжээст массивыг үзүүлэв. Matrix
массивын нийт элементийн тоо нь 3*4=12 байна. Жишээ 2:
Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав.

Е-Нээлттэй Институт
www.emust.edu.mn 15
1. - Өгөгдлийн бүтэц
Data structure

- Хоёр хэмжээст массив 2D


Жишээ 2: Тогтмол утгатай массивд өгөгдөл хэрхэн байрласныг харуулав.
int matrix [3] [4] = { {1}, {2, 3}, {4, 5, 6}};

Мөрийн индекс Баганы индекс

Е-Нээлттэй Институт
www.emust.edu.mn 16
1. - Өгөгдлийн бүтэц
Data structure

- Гурван хэмжээст массив 3D


Бичигдэх хэлбэр нь өгөгдлийн_төрөл массивын_нэр [урт_1]
[урт_2] [урт_3] байна. Мөр, багана дээр нэмэгдээд гурав дахь
хэмжээс гарч ирнэ. Хэрэв гурван хэмжээсийн уртууд нь адил бол
куб массив гэнэ. 3D массив идэвхжүүлэхдээ, массивын мөр бүр нь
хэд хэдэн баганад, харин багана бүр нь хэд хэдэн “өндөрт”
хуваагдана гэдгийг тооцож, мөр мөрөөр бүлэглэн { } бичиж, тус
бүрийн дотор нь дахиад багана баганаар бүлэглэн { } дотор анхны
утгуудыг бичдэг

Е-Нээлттэй Институт
www.emust.edu.mn 17
1. - Өгөгдлийн бүтэц
Data structure

Холбоост /Linked/:
Тархай салангид элементүүдийг нэгтгэж нэгдмэл нэг
өгөгдөл болгоход холбоосыг хэрэглэдэг. Холбоос гэдэг нь нэг
элементийн дараагийн дараагийн элемент санах ойн хаана
байгааг заасан хаяг юм. Элемент, холбоос гэсэн хосууд гинж
байдлаар залгагдаж өгөгдлийг бүрдүүлдэг. Нэг хосод хэдэн
холбоос байгаагаас нь хамааруулж дан болон давхар холбоост
дүрслэл үүсдэг. Давхар холбоосоор дараачийн элемент
төдийгүй өмнөх элементэд хүрч болдог.

Е-Нээлттэй Институт
www.emust.edu.mn 18
1. - Өгөгдлийн бүтэц
Data structure

- Жагсаалт/List/
Өгөгдлийн хамгийн түгээмэл бүтэц бол шугаман жагсаалт.

Жишээ: Оюутны нэрс, сурлагын дүн, хоолны цэс, номын нэрс


г.м. бүгд жагсаалт юм

Е-Нээлттэй Институт
www.emust.edu.mn 19
1. - Өгөгдлийн бүтэц
Data structure

Нэг холбоост жагсаалт /Single Linked List/:


Элемент буюу зангилаа нь өгөгдөл ба холбоос гэсэн 2 хэсгээс
тогтоно. Өгөгдөл нь бидний мэдэх өгөгдлийн стандарт
төрлүүдээр тодорхойлогдсон утга байх ба хэрэглэгчийн
тодорхойлсон төрөл байж болно. Харин холбоос нь заагч
төрөлтэй байх ба дараагийн зангилааны хаягийг заана. Нэг
холбоост жагсаалт нь тухайн элементээс өмнөх элементүүдийг
авах боломжгүй байдаг ба заагч ашиглан дараагийн
элементийг устгах, нэмэх үйлдэл хийж болно.

Е-Нээлттэй Институт
www.emust.edu.mn 20
1. - Өгөгдлийн бүтэц
Data structure

Е-Нээлттэй Институт
www.emust.edu.mn 21
1. - Өгөгдлийн бүтэц
Data structure

Хоёр холбоост жагсаалт /Double Linked List/


Энэ нь нэг холбоост жагсаалтын шийдэж чадаагүй өмнөх
элементээ авах асуудлыг шийдсэн боловч дурын элементэд
шууд хандах боломжгүй заагч ашиглан тухайн элементийн
өмнөх болон дараагийн элементүүдэд хандаж элемент нэмэх
болон устгах үйлдэлийг шийдсэн

Е-Нээлттэй Институт
www.emust.edu.mn 22
1. - Өгөгдлийн бүтэц
Data structure

Е-Нээлттэй Институт
www.emust.edu.mn 23
1. - Өгөгдлийн бүтэц
Data structure

- Стек /Stack/
Эхлэлд орсон нь сүүлд нь гарах зарчмаар зохион
байгуулагдсан өгөгдлийн бүтцийг стек гэнэ.

LIFO-Last In First Out

Амьдрал дээр стекийн жишээ маш олон Жишээ нь давхарлаж


хураасан таваг, бууны дайз г.м.

Е-Нээлттэй Институт
www.emust.edu.mn 24
1. - Өгөгдлийн бүтэц
Data structure

- Стек /Stack/ хэрэглээ


• Аравтын тооллын системийн тоог хоёртын тооллын системд шилжүүлэх
программын хувьд стекийг ашиглавал илүү тохиромжтой болох юм. Учир нь
энэ бодлогод ихэвчлэн массивыг ашигладаг ба энэ тохиолдолд үүссэн
хоёртын бичиглэл нь хөрвөсөн байдаг. Тиймээс түүнийг стект хадгалаад
дараа нь утгуудыг хэвлэнэ.
• Арифметик илэрхийлэлд хаалт зөв орсон эсэхийг стек ашиглан шалгаж
болно.
• Арифметик илэрхийллийг бодох хялбар арга нь Польш тэмдэглэгээнд
хөрвүүлж боддог. Энэ нь арифметик илэрхийллийг (posfix) Польш
тэмдэглэгээ (prefix) рүү шилжүүлээд дараа нь түүнийгээ стек ашиглан бодох
юм.

Е-Нээлттэй Институт
www.emust.edu.mn 25
1. - Өгөгдлийн бүтэц
Data structure

Польш тэмдэглэгээ
Энэ тэмдэглэгээний нэг онцлог нь хаалт ашигладаггүй
явдал юм. Жишээ нь: А+В илэрхийллийг АВ+ гэж бичнэ.
Польш тэмдэглэгээний давуу тал нь аливаа илэрхийллийн
завсрын утгуудыг стект хадгалан, илэрхийллийн тэмдэг
бүрийг зөвхөн нэг удаа уншин хялбархан аргаар боддогт
оршино.
Жишээ нь :
Y= 2  (3* 2  5)* 2 1^3  (6 / 2 1)* 2 1
P=2,3,2,*,5,-,2,*,+,1,3,^,+,6,2,/,1,-,2,*,-,1,+

Е-Нээлттэй Институт
www.emust.edu.mn 26
1. - Өгөгдлийн бүтэц
Data structure

- Queue –Дараалал

Эхэлж орсон нь эхэлж гарах зарчмаар зохион


байгуулагдсан өгөгдлийн бүтцийг дараалал гэнэ.

FIFO-First In First Out

Е-Нээлттэй Институт
www.emust.edu.mn 27
1. - Өгөгдлийн бүтэц
Data structure

Е-Нээлттэй Институт
www.emust.edu.mn 28
1. - Өгөгдлийн бүтэц
Data structure

- Tree – Moд
Зангилаанууд болон тэдгээрийг холбосон
холбоосуудаар дүрслэгдсэн өгөгдлийн
бүтэцийг мод гэнэ. Мод нь өгөгдлийг агуулах
зангилаа, өөр зангилаатай холбогдох
холбоосуудаас тогтоно.

Е-Нээлттэй Институт
www.emust.edu.mn 29
1. - Өгөгдлийн бүтэц
Data structure

- Tree – Moд
Модны хамгийн эхний зангилааг үндэс буюу язгуур /
үндсэн зангилаа / гэнэ. Модны онцлог нь үндсэн зангилаанаас
ямар нэг зангилаанд хүрэх ганц зам байна.

Е-Нээлттэй Институт
www.emust.edu.mn 30
1. - Өгөгдлийн бүтэц
Data structure

- Moд / Tree /
Модны замын урт нь модон дахь бүх зангилааны түвшингүүдийн
нийлбэрээр тодорхойлогддог. Жишээ нь: Дараах модны өндөр нь 3, урт
нь 0*1+1*3+2*3+3*1=12 байна.

Түвшин 0

Түвшин 1

Түвшин 2

Түвшин 3

Е-Нээлттэй Институт
www.emust.edu.mn 31
1. - Өгөгдлийн бүтэц
Data structure

- Хоёртын мод
Модны нэг зангилаанаас гарч болох дэд зангилааны
тоо нь хамгийн ихдээ 2 байх модыг хоёртын мод гэнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 32
1. - Өгөгдлийн бүтэц
Data structure
- Хоёртын модонд элемент байрлуулах:
Жагсаалтын эхний элемент модны орой болох бөгөөд дараагийн
элементүүд модны орогоос их бол баруун дэд зангилаа, бага бол зүүн дэд
зангилаа үүсгэнэ. Жишээ нь: 50, 60, 40,72, 53, 22, 35, 41, 80, 57, 18
50

40 60

22 41 53 72

18 35 57 80

Е-Нээлттэй Институт
www.emust.edu.mn 33
2. Алгоритм
“Aлгоритм бол тодорхой үр дүн
гаргаж авахын тулд дараалан
гүйцэтгэх ёстой үйлдлүүдийн
жагсаалт юм. ”

Е-Нээлттэй Институт
www.emust.edu.mn 34
2. Aлгоритм:
ALGORITM

Болк схем /Flow chart/

Е-Нээлттэй Институт
www.emust.edu.mn 35
2. Aлгоритм:
ALGORITM

Болк схем /Flow chart/

Е-Нээлттэй Институт
www.emust.edu.mn 36
2. Aлгоритм:
ALGORITM

Алгоритмын үндсэн бүтэц /Basic structures of algorithms/

• Шугаман Бүтэц /Sequence structures/


• Салаалсан бүтэц /Selection structures/
• Давталттай бүтэц /Repetition structures/

Эдгээр бүтэцүүдийг ашиглан нарын төвөгтэй


алгоритмыг илэрхийлэх боломжтой юм.

Е-Нээлттэй Институт
www.emust.edu.mn 37
2. Aлгоритм:
ALGORITM
Эхлэл
Шугаман Бүтэц. /Sequence structures/
Дээрээс доош цуварсан бүтцийг алгоритмын
шугман бүтэц гэнэ. Энэ алгоритмын алхам бүр
зөвхөн нэг удаа дараалан гүйцэтгэгдэнэ. Процесс 1

Процесс 2

Төгсгөл

Е-Нээлттэй Институт
www.emust.edu.mn 38
2. Aлгоритм:
ALGORITM

Эхлэл
Жишээ нь: Өгөгдсөн А, В тооны
нийлбэрийг олж утгыг С хувьсагчид олгох A,B
шугаман алгоритмыг блок схемийг үзүүлэв.
C =A+B

Төгсгөл

Е-Нээлттэй Институт
www.emust.edu.mn 39
2. Aлгоритм: Эхлэл
ALGORITM

Салаалсан бүтэц
Аль нэг алхамд нөхцлийг
шалгаж биелэлтээс Худал
шалтгаалан дараагийн Нөхцөл
үйлдлийг сонгодог. Хэрэв
нөхцөл үнэн бол үйлдэл 1, Үнэн
худлаа бол үйлдэл 2
биелэгдэх замаар алгоритм
салаалан биелэгдэнэ Процесс 1 Процесс 1
Салаалсан алгоритмын үед
нөхцөл нь >, <, =, <>, <=,
>= тэмдгүүд ашиглан
харьцааны үйлдлийг Төгсгөл
гүйцэтгэнэ
Е-Нээлттэй Институт
www.emust.edu.mn 40
2. Aлгоритм: Эхлэл
ALGORITM

Салаалсан бүтэц
A
Жишээ нь: А тоо 100-с бага бол
100-р үржүүлж, их бол тухайн Тийм Үгүй
А<100
тооноос 100-г хасаж гарсан тоог
хэвлэх алгоримтыг блок схемээр A=A×100 A =A-100
илэрхийлэв

Төгсгөл

Е-Нээлттэй Институт
www.emust.edu.mn 41
2. Aлгоритм: Эхлэл
ALGORITM

Давталттай бүтэц
Repetition structures Процесс 1
Алгоритмд нэг үйлдэл нь
тодорхой нөхцөл биелэгдэж Худал
байгаа үед давтан хийгдэж Нөхцөл
байгаа тохиолдлыг давталттай Үнэн
алгоритм гэнэ. Давталттай
алгоритмын үед нөхцөл шалгах Процесс 2
блок заавал биелэгддэг
Төгсгөл

Е-Нээлттэй Институт
www.emust.edu.mn 42
2. Aлгоритм: Эхлэл
ALGORITM

Давталттай бүтэц i=1


Repetition structures
Жишээ нь: 1-20 хүртэлх i<20
тоонуудаас сондгой тоог олох Тийм
алгоритмыг блок схемээр i,
илэрхийл.
i=i+2

Төгсгөл

Е-Нээлттэй Институт
www.emust.edu.mn 43
2. Aлгоритм:
ALGORITM

Алгоритмын төрөл /Typical algorithms/


Хайлтын алгоритмууд.
- Шугаман хайлт. /Linear search/
Энэ арга нь хайлтын хамгийн энгийн арга юм. Зөвхөн хайж буй
элементийн утга мэдэгдэх бөгөөд олон хайлт явуулах
өгөгдлийн олонлогийн талаар ямар нэг мэдээлэл байхгүй үед
энэ аргыг ашиглана.
https://www.researchgate.net/publication/261879189_ndesnij_hajl
tyn_sistemijn_zohiomz_bolon_heregzlelt

Е-Нээлттэй Институт
www.emust.edu.mn 44
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 45
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

Хайх утга:

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 50
2. Aлгоритм:
ALGORITM

-Хоёртын хайлт /Binary search/


Хоёртын хайлт буюу таллан хуваах арга нь Шугаман
хайлттай харьцуулбал илүү үр дүнтэй аргын нэг юм.
Энэ арга нь өгөгдлийг 2 хэсэгт хуваан, хайх
элемент аль хэсэгт байгааг тодорхойлдог.

Е-Нээлттэй Институт
www.emust.edu.mn 51
2. Aлгоритм:
ALGORITM

-Энэ аргын үндсэн санаа нь:


1. Хайх элемент буюу Х тоо массивын дундаж элемент
мөн үү гэдгийг шалгах явдал юм. Хэрэв энэ нь үнэн
бол бодлогын шийд олдсон гэсэн үг.
2. Хэрэв тийм биш бол 2 тохиолдол байна.

Е-Нээлттэй Институт
www.emust.edu.mn 52
2. Aлгоритм:
ALGORITM

а. Х нь дундаж элемент буюу голын элементээс бага


бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс баруун тийш байрлах бүх
элементүүдийг хасах ба голын элементийн зүүн
талд орших хэсэгт хэрэглэх
Б. Х нь дундаж элемент буюу голын элементээс их бол
уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс зүүн тийш байрлах элементийг хасаад
массивын баруун талд орших хэсэгт хэрэглэх
Е-Нээлттэй Институт
www.emust.edu.mn 53
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

Хайх утга:

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 57
2. Aлгоритм:
ALGORITM

a) Рекурс
Өөрөө өөрийгөө дуудан ажиллуулах хэлбэрээр
зохиогдсон програмыг рекурс програм гэнэ. Рекурс
програмаар ихэвчлэн рекурент томъёогоор өгөгдсөн бодлого
эсвэл рекурент аргаар гарч ирэх үр дүн бүхий асуудлыг
шийдэхэд ашигладаг.

Е-Нээлттэй Институт
www.emust.edu.mn 58
1. - Өгөгдлийн бүтэц
Data structure

Е-Нээлттэй Институт
www.emust.edu.mn 59
2. Aлгоритм:
ALGORITM

a) Рекурс

Е-Нээлттэй Институт
www.emust.edu.mn 60
2. Aлгоритм:
ALGORITM

Sorting algorithm /Эрэмбэлэлт алгоритмууд/


b) SelectionSort-Сонгон эрэмблэх алгоритм

Массив дахь хамгийн бага элементийг олж массивын


эхний элементтэй сольж , дараа нь удаах бага элементийг олж
массивын хоёр дахь элементтэй солих замаар маиссвын бүх
элемент эрэмбэлэгдэж дуустал үйлдлийг давтан гүйцэтгэнэ.
Энэ арга нь үлдэж байгаа хэсэг бүрээс хамгийн бага
элементийг нь сонгож байгаа учир сонгон эрэмбэлэх арга гэж
нэрлэсэн юм. https://www.toptal.com/developers/sorting-
algorithms
Е-Нээлттэй Институт
www.emust.edu.mn 61
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-тай солигдоно.

Е-Нээлттэй Институт
www.emust.edu.mn 62
2. Aлгоритм:
ALGORITM

c) Оруулан эрэмблэх алгоритм

Энэ арга нь сонгон эрэмбэлэх аргыг бодвол илүү уян


хатан, үр ашигтай юм. Уг аргын үндсэн үйлдэл нь
эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр
шинэ элемент оруулах үйлдлээр тодорхойлогдоно. Өөрөөр
хэлбэл эрэмбэлэгдсэн элементүүдийн шинэ элементээс их
элементийг нэг байрлал баруун тийш шилжүүлэх байдлаар
орвол зохих байрлалыг чөлөөлж өгдөг.

Е-Нээлттэй Институт
www.emust.edu.mn 63
2. Aлгоритм:
ALGORITM
c) Оруулан эрэмблэх алгоритм
50 80 40 60 30 70 10 90 20

Эхний элементийг эрэмбэлэгдсэн массив гэж үзье. Тэгвэл дараагийн алхамд 2 дахь
элементийг оруулах үйлдэл гүйцэтгэгдэнэ
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
Е-Нээлттэй Институт
www.emust.edu.mn 64
3. Програмчлал
Алгоритмыг компьютерийн ойлгох хэлрүү
хөрвүүлэх ажлыг алгоритмын
нэвтрүүлэлт буюу програмчлал гэнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 65
3. Програмчлал:
PROGRAMING

• Доод төвшний програмчлалын хэл


(Low-level programming language)
• Дээд төвшний програмчлалын хэл
(High-level programming language)

Е-Нээлттэй Институт
www.emust.edu.mn 66
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

Е-Нээлттэй Институт
www.emust.edu.mn 67
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages

FORTRAN - FORmula TRANslator


1950-IBM (International Business
Machines, АНУ) компанид, эрдэмтэн Жон
Бэкусын (John Backus) удирдсан ЭШ-ний
баг физик, математик, инженерийн
шинжлэх ухааны тооцоо хийх
зориулалтаар бүтээсэн.
Жишээ нь, a=5 ба b=3
байхад c=a+b

Е-Нээлттэй Институт
www.emust.edu.mn 68
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages

BASIC – (Beginner’s All Purpose


Symbolic Instruction Code)
1965 онд Дартмудын коллежийн
(Dartmouth College, АНУ) математикчид
Жон Кемени (John Kemeny), Томас Курц Жишээ нь, a=5 ба b=3
(Thomas Kurtz) нар зохиосон байхад c=a+bz

Е-Нээлттэй Институт
www.emust.edu.mn 69
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
c) (a) Procedural languages

Pascal
Цюрихын технологийн дээд сургуулийн
(Щвейцар) эрдэмтэн Никлаус Вирт
(Nicklaus Wirth) 1970-аад онд оюутнуудыг
програмчлалд сургах зориулалтаар
Жишээ нь, a=5 ба b=3
бүтээсэн. Програмчлалын Паскаль хэл маш байхад c=a+b
амжилттай зохиогдсон учраас сургалтын
хүрээнээс халин гарч, түгээмэл
хэрэглэгдэгч алгоритмын хэл болсон.

Е-Нээлттэй Институт
www.emust.edu.mn 70
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
C хэл
1969-өөс 1973 онд AT&T компанийн
Беллийн лабораторийн (Bell Laboratories,
АНУ) э.ш.а. Деннис Ритчи (Dennis Ritchie)
Unix үйлдлийн системд програмчлах
зорилгоор бүтээсэн байна. Си хэл нь, доод
төвшний програмчлал болон дээд төвшний
програмчлалын давуу талуудыг жигд Жишээ нь, a=5 ба b=3
агуулсан учраас заримдаа дунд төвшний байхад c=a+b
програмчлалын хэл гэдэг. Алгоритмын
хэлүүд дундаас хамгийн өргөн тархсан,
хүчирхэг хэл.
Е-Нээлттэй Институт
www.emust.edu.mn 71
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Object-oriented languages
C++
C хэл бол C++ ийн дэд олонлог гэж ойлгож
болно. Эхлээд С гэж процедур хандалтадат
хэл гэж байж байгаад дараагаар нь түүнд
объект хандалтад програмчлалын
технологийг нэвтрүүлж өгсөнөөрөө С++
болсон байна.
Жишээ нь, a=5 ба b=3
байхад c=a+b

Е-Нээлттэй Институт
www.emust.edu.mn 72
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
d) Object-oriented languages
JAVA
JAVA бол Sun Microsystems корпорацийн бүтээсэн програмчлалын хэл
бөгөөд хамгийн анх 1995 онд түүнийг олон нийтэд танилцуулжээ. Жава-г
бүтээхдээ С ба С++ хэлийн онцлог, бичиглэлийг хүчтэй тусган авсан
бөгөөд 2006 оны үеэс эхлэн Жава програмчлалын систем нь Java EE, Java
ME, Java Se гэж 3 хуваагдах болсон юм.
Жишээ нь:

Е-Нээлттэй Институт
www.emust.edu.mn 73
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
HTML
HTML гэдэг бол HyperText Markup
Language гэсэн үгний товчлол бөгөөд
HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг. Мөн вэб
хуудас хэрхэн харагдах хэлбэрийг өөрчилж
чаддагараа давуу талтай. Гэвч текстийн
хэлбэр дүрс гэх мэтийг дэлгэцэнд гаргахад
CSS (Cascading Style Sheet) Javascript
зэргийг XML, HTML- 2ланд нь ашигладаг
байна.

Е-Нээлттэй Институт
www.emust.edu.mn 74
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
XML
Програмчлалд маш өргөн
хэрэглэгдэж байгаа хэл бол XML юм. Энэ нь
Extensible Markup Language гэсэн үгний
товчлол. HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг бол XML
хэрэглэгч өөртөө хэрэгтэй байгаа тагуудыг
үүсгэн мэдээллээ дүрслэнэ Жишээ:
Энэ мэдээллийг програмын аргаар
уншиж мэдээллийг авах үйлдлийг parsing
гэнэ. XML parser гэвэл XML-ийг уншиж
мэдээллийг авагч гэж ойлгож болно
Е-Нээлттэй Институт
www.emust.edu.mn 75
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Мобайл програмчлал:
Хөдөлгөөнт холбооны зах зээл дээр Nokia, Apple (iPad, iPhone), Sony
Ericsson, Samsung, Motorola, Black Berry зэрэг компаниуд өөрсдийн
бүтээгдэхүүнээ борлуулахын тулд илүү дэвшилтэд, технологийн
програмчлалыг өөртөө агуулсан ухаалаг гар утасуудыг зохион
бүтээсээр байна. Гар утасыг хэрэглэхэд ойлгомжтой, найдвартай үйл
ажиллагаатай болгохын тулд гар утасанд зориулсан үйлдлийн
системийг боловсруулан, хөгжүүлсэний үр дүнд одоо бидний ашиглаж
байгаа ухаалаг гар утасууд хэрэглээнд нэвтэрсэн.

Е-Нээлттэй Институт
www.emust.edu.mn 76
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++ програмчлалын хэлүүдийг ашиглан хөгжүүлэгдэнэ.

Е-Нээлттэй Институт
www.emust.edu.mn 77
4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Жишээ нь: Андройд үйлдлийн систем.
• Жава хэл дээр хөгжүүлэгдэнэ.
• Илүү нээлттэй эх кодтой.
• Онлайн программуудтай илүү нэгтгэгдсэн.
• Илүү хурдан.
• G1 гар утас нь илүү найдвартай техник хангамжтай.
• Flash програмчлалыг дэмжинэ.
• Дурын гар утасны операторуудад нээлттэй.
• Илүү олон файлын форматыг дэмждэг.
• Хакердах шаардлагагүй.
https://en.wikipedia.org/wiki/Android_%28operating_system%29

Е-Нээлттэй Институт
www.emust.edu.mn 78
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
Е-Нээлттэй Институт
www.emust.edu.mn 79
• АНХААРАЛ ТАВЬСАНД БАЯРЛАЛАА.

Vous aimerez peut-être aussi

  • Programming Lec 6
    Programming Lec 6
    Document51 pages
    Programming Lec 6
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 3 2018
    Lecture 3 2018
    Document42 pages
    Lecture 3 2018
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lec1-1 Corporate Activity Shine
    Lec1-1 Corporate Activity Shine
    Document61 pages
    Lec1-1 Corporate Activity Shine
    Amarsaikhan Tuvshinbayar
    0% (1)
  • Lecture 15
    Lecture 15
    Document40 pages
    Lecture 15
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 1 2018
    Lecture 1 2018
    Document39 pages
    Lecture 1 2018
    Amarsaikhan Tuvshinbayar
    100% (6)
  • Lecture 7 20108
    Lecture 7 20108
    Document47 pages
    Lecture 7 20108
    Amarsaikhan Tuvshinbayar
    75% (4)
  • Lecture - 10
    Lecture - 10
    Document35 pages
    Lecture - 10
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 13
    Lecture 13
    Document46 pages
    Lecture 13
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Lecture 12
    Lecture 12
    Document34 pages
    Lecture 12
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 6 2018
    Lecture 6 2018
    Document50 pages
    Lecture 6 2018
    Amarsaikhan Tuvshinbayar
    100% (3)
  • Lecture 9
    Lecture 9
    Document46 pages
    Lecture 9
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Baikal Hotolbor
    Baikal Hotolbor
    Document2 pages
    Baikal Hotolbor
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 11
    Lecture 11
    Document24 pages
    Lecture 11
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Lecture 8 2018
    Lecture 8 2018
    Document54 pages
    Lecture 8 2018
    Amarsaikhan Tuvshinbayar
    100% (3)
  • Lecture 5 2018
    Lecture 5 2018
    Document54 pages
    Lecture 5 2018
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Lecture 4 2018
    Lecture 4 2018
    Document47 pages
    Lecture 4 2018
    Amarsaikhan Tuvshinbayar
    100% (4)
  • Lecture 1
    Lecture 1
    Document54 pages
    Lecture 1
    Amarsaikhan Tuvshinbayar
    100% (2)
  • IT101 Lecture 4
    IT101 Lecture 4
    Document72 pages
    IT101 Lecture 4
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 3
    Lecture 3
    Document72 pages
    Lecture 3
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Programming Lec 9
    Programming Lec 9
    Document39 pages
    Programming Lec 9
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Lecture 2 2018
    Lecture 2 2018
    Document33 pages
    Lecture 2 2018
    Amarsaikhan Tuvshinbayar
    100% (1)
  • Lecture 3
    Lecture 3
    Document72 pages
    Lecture 3
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Programming Lec 8
    Programming Lec 8
    Document32 pages
    Programming Lec 8
    Amarsaikhan Tuvshinbayar
    100% (1)
  • Programming Lec 7
    Programming Lec 7
    Document57 pages
    Programming Lec 7
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Programming Lec 6
    Programming Lec 6
    Document51 pages
    Programming Lec 6
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Programming Lec 4
    Programming Lec 4
    Document39 pages
    Programming Lec 4
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • PL - 3
    PL - 3
    Document47 pages
    PL - 3
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Koosen 2018 Algorithm 2
    Koosen 2018 Algorithm 2
    Document48 pages
    Koosen 2018 Algorithm 2
    Amarsaikhan Tuvshinbayar
    Pas encore d'évaluation
  • Koosen 2018 Algorithm Programming 3
    Koosen 2018 Algorithm Programming 3
    Document46 pages
    Koosen 2018 Algorithm Programming 3
    Amarsaikhan Tuvshinbayar
    100% (1)