Contenu connexe Similaire à Datastructure algoritm Similaire à Datastructure algoritm (20) Plus de Nergui Batjargal (20) Datastructure algoritm3. Агуулга:
01 Өгөгдлийн бүтэц
Е-Нээлттэй Институт
www.emust.edu.mn
01
02
02 Алгоритм
03 Програмчлал
04 Програмчлалын хэлүүд
04 Markup languages
3
4. ХИЧЭЭЛИЙН ЗОРИЛГО:
Энэ хичээлээр өгөгдлийн бүтэцийн үндэс,
зарчим, Алгоритмын талаар мэдэж авахаас гадна,
програмчлалын хэлний талаарх ойлголттой
болоход оршино.
Е-Нээлттэй Институт
www.emust.edu.mn
4
5. Е-Нээлттэй Институт
www.emust.edu.mn
- Компьютерийн шинжлэх ухаанд
Өгөгдлийн бүтэц гэдэг нь өгөгдлийг үр
ашигтай ашиглах боломжтой байдлаар
хадгалах буюу зохион байгуулахыг хэлнэ.
- Өгөгдлийн бүтцүүд нь их хэмжээний
өгөгдлүүдийг үр ашигтайгаар зохион
байгуулах зорилготой.
Жишээ нь:
Tомоохон хэмжээний өгөгдлийн сан болон
интернэт xаяглалтын үйлчилгээнд
ашигладаг.
1. Өгөгдлийн
бүтэц
5
6. 1. Өгөгдлийн бүтэц
Data structure
- Өгөгдөл. / Data/
Өгөгдөл гэдэг нь тоо болон тэмдэгтүүдийн
цогц юм. Мэдээ гэдэг нь ямар нэг зорилгогүйгээр
цуглуулсан өгөгдөл.
Е-Нээлттэй Институт
www.emust.edu.mn
6
7. 1. Өгөгдлийн бүтэц
Data structure
- Хувьсагч. / Variables /
Хувьсагч гэдэг нь тоон утга нь хэд ч байж болох үл
мэдэгдэх тоо юм. Гэхдээ хувьсагч нь зэргээсээ хамаарч
өөрчлөгдөнө. Хувьсагч нь төрөлтэй байна.
Жишээ нь: Бүхэл тоон төрөл, бутархай тоон төрөл гэх мэт
Жишээ нь
Е-Нээлттэй Институт
www.emust.edu.mn
7
8. 1. Өгөгдлийн бүтэц
Data structure
- Массив. /Massive/
Массив буюу Хүснэгт нь олон элементийг өөртөө
агуулах, элементүүд нь тус бүр индексээр
илэрхийлэгдэх энгийн өгөгдлийн бүтэц юм. Өөрөөр
хэлбэл их хэмжээний өгөгдлийг зохион байгуулах, хайх,
бүлэглэх гэх мэт өгөгдөлтэй ажиллахад ашиглагддаг. Массив
нь нэртэй (name of array) байна.
Массивын нэг өгөгдлийг массивын элемент гэнэ. Элементүүд
бүгд дугаарлагдсан байна. Элементийн дугаарыг индекс
(index) ба 0-ээс эхлэн тоологдоно.
Е-Нээлттэй Институт
www.emust.edu.mn
8
9. 1. - Өгөгдлийн бүтэц
Data structure
- Массив. /Massive/
Багана 0 Багана 1 Багана 2 Багана 3
a[0] [0] a[0] [1] a[0] [2] a[0] [3]
a[1] [0] a[1] [1] a[1] [2] a[1] [3]
2 1
a[2] [1] a[2] [1] a[2] [2] a[2] [3]
Е-Нээлттэй Институт
www.emust.edu.mn
Мөр 0
Мөр 1
Мөр 2
Row index Column index
9
10. 1. - Өгөгдлийн бүтэц
Data structure
- Жагсаалт/List/
Шугаман буюу дараалсан зохион байгуулалт бүхий
элементүүдийн олонлогийг жагсаалт гэнэ. Жагсаалтыг
холбоосоор нь нэг холбоост, хоёр холбоост гэж ангилна.
Динамикаар үүссэн элементүүдийн дарааллыг холбоос буюу
заагчаар тодорхойлно.
• Single Linked List –SLL
• Double Linked List –DLL
Е-Нээлттэй Институт
www.emust.edu.mn
10
11. 1. - Өгөгдлийн бүтэц
Data structure
Е-Нээлттэй Институт
www.emust.edu.mn
11
12. 1. - Өгөгдлийн бүтэц
Data structure
- Стек /Stack/
Эхлэлд орсон нь сүүлд нь гарах зарчмаар зохион
байгуулагдсан өгөгдлийн бүтцийг стек гэнэ.
Е-Нээлттэй Институт
www.emust.edu.mn
LIFO-Last In First Out
Стект элемент нэмэх , устгах үйлдлийг хийх боловч эдгээр
үйлдлүүд нь зөвхөн стекийн орой гэж нэрлэгдэх элементээс
гүйцэтгэгдэнэ. Стек нь ийм хязгаарлагдмал үйлдлийг гүйцэтгэх
боловч программчлалд маш чухал үүрэг гүйцэтгэдэг.
12
13. 1. - Өгөгдлийн бүтэц
Data structure
Е-Нээлттэй Институт
www.emust.edu.mn
13
14. 1. - Өгөгдлийн бүтэц
Data structure
- Queue –Дараалал
Эхэлж орсон нь эхэлж гарах зарчмаар зохион
байгуулагдсан өгөгдлийн бүтцийг дараалал гэнэ.
Е-Нээлттэй Институт
www.emust.edu.mn
FIFO-First In First Out
14
15. 1. - Өгөгдлийн бүтэц
Data structure
Е-Нээлттэй Институт
www.emust.edu.mn
15
16. 1. - Өгөгдлийн бүтэц
Data structure
- Tree – Moд
Зангилаанууд болон тэдгээрийг холбосон
холбоосуудаар дүрслэгдсэн өгөгдлийн
бүтэцийг мод гэнэ. Мод нь өгөгдлийг агуулах
зангилаа, өөр зангилаатай холбогдох
холбоосуудаас тогтоно.
Е-Нээлттэй Институт
www.emust.edu.mn
16
17. 1. - Өгөгдлийн бүтэц
Data structure
- Tree – Moд
Модны хамгийн эхний зангилааг үндэс буюу язгуур /
үндсэн зангилаа / гэнэ. Модны онцлог нь үндсэн зангилаанаас
ямар нэг зангилаанд хүрэх ганц зам байна.
Е-Нээлттэй Институт
www.emust.edu.mn
17
18. 1. - Өгөгдлийн бүтэц
Data structure
- Moд / Tree /
Модны замын урт нь модон дахь бүх зангилааны түвшингүүдийн
нийлбэрээр тодорхойлогддог. Жишээ нь: Дараах модны өндөр нь 3, урт
нь 0*1+1*3+2*3+3*1=12 байна.
Е-Нээлттэй Институт
www.emust.edu.mn
Түвшин 0
Түвшин 1
Түвшин 2
Түвшин 3
18
19. 1. - Өгөгдлийн бүтэц
Data structure
- Хоёртын мод
Модны нэг зангилаанаас гарч болох дэд зангилааны
тоо нь хамгийн ихдээ 2 байх модыг хоёртын мод гэнэ.
Е-Нээлттэй Институт
www.emust.edu.mn
19
20. 1. - Өгөгдлийн бүтэц
Data structure
- Хоёртын мод
Жишээ нь: 50, 60, 40,72, 53, 22, 35, 41, 80, 57, 18
Е-Нээлттэй Институт
www.emust.edu.mn
50
40 60
22 53 72
35
41
18 57 80
20
23. 2. Aлгоритм:
ALGORITM
Алгоритмын үндсэн бүтэц /Basic structures of algorithms/
• Дараалсан Бүтэц /Sequence structures/
• Салаалсан бүтэц /Selection structures/
• Давталттай бүтэц /Repetition structures/
Эдгээр бүтэцүүдийг ашиглан нарын төвөгтэй
алгоритмыг илэрхийлэх боломжтой юм.
Е-Нээлттэй Институт
www.emust.edu.mn
23
24. 2. Aлгоритм:
ALGORITM
Дараалсан Бүтэц.
/Sequence structures/
Е-Нээлттэй Институт
www.emust.edu.mn
24
Эхлэл
Процесс 1
Процесс 2
Төгсгөл
25. 2. Aлгоритм:
ALGORITM
Салаалсан бүтэц
Selection structures
Е-Нээлттэй Институт
www.emust.edu.mn
25
Эхлэл
Нөхцөл
Процесс 1 Процесс 1
Төгсгөл
Худал
Үнэн
26. 2. Aлгоритм:
ALGORITM
Давталттай бүтэц
Repetition structures
Е-Нээлттэй Институт
www.emust.edu.mn
26
Эхлэл
Процесс 1
Нөхцөл
Үнэн
Процесс 2
Төгсгөл
Худал
27. 2. Aлгоритм:
ALGORITM
Алгоритмын төрөл /Typical algorithms/
- Шугаман хайлт. /Linear search/
Энэ арга нь хайлтын хамгийн энгийн арга юм. Зөвхөн хайж буй
элементийн утга мэдэгдэх бөгөөд олон хайлт явуулах
өгөгдлийн олонлогийн талаар ямар нэг мэдээлэл байхгүй үед
энэ аргыг ашиглана.
Е-Нээлттэй Институт
www.emust.edu.mn
27
28. 2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
Е-Нээлттэй Институт
www.emust.edu.mn
28
23
i 0 1 2 3 4 5 6 7 8
утга 30 60 6 54 89 23 38 55 1
23
29. 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
30. 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
31. 2. Aлгоритм:
ALGORITM
Хайх утга:
23
Хайлт явуулах олонлог:
i 0 1 2 3 4 5 6 7 8
утга 30 60 6 54 89 23 38 55 1
Е-Нээлттэй Институт
www.emust.edu.mn
23
32. 2. Aлгоритм:
ALGORITM
Хайх утга:
23
Хайлт явуулах олонлог:
i 0 1 2 3 4 5 6 7 8
утга 30 60 6 54 89 23 38 55 1
Е-Нээлттэй Институт
www.emust.edu.mn
23
33. 2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
Е-Нээлттэй Институт
www.emust.edu.mn
33
23
i 0 1 2 3 4 5 6 7 8
утга 30 60 6 54 89 23 38 55 1
Элемент олдлоо. 23
Буцаах утга: 5
34. 2. Aлгоритм:
ALGORITM
-Хоёртын хайлт /Binary search/
Хоёртын хайлт буюу таллан хуваах арга нь Шугаман
хайлттай харьцуулбал илүү үр дүнтэй аргын нэг юм.
Энэ арга нь өгөгдлийг 2 хэсэгт хуваан, хайх
элемент аль хэсэгт байгааг тодорхойлдог.
Е-Нээлттэй Институт
www.emust.edu.mn
34
35. 2. Aлгоритм:
ALGORITM
-Энэ аргын үндсэн санаа нь:
1. Хайх элемент буюу Х тоо массивын дундаж элемент
мөн үү гэдгийг шалгах явдал юм. Хэрэв энэ нь үнэн
бол бодлогын шийд олдсон гэсэн үг.
2. Хэрэв тийм биш бол 2 тохиолдол байна.
Е-Нээлттэй Институт
www.emust.edu.mn
35
36. 2. Aлгоритм:
ALGORITM
а. Х нь дундаж элемент буюу голын элементээс бага
бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс баруун тийш байрлах бүх
элементүүдийг хасах ба голын элементийн зүүн
талд орших хэсэгт хэрэглэх
Б. Х нь дундаж элемент буюу голын элементээс их бол
уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын
элементээс зүүн тийш байрлах элементийг хасаад
массивын баруун талд орших хэсэгт хэрэглэх
Е-Нээлттэй Институт
www.emust.edu.mn
36
37. 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
38. 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
39. 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
40. 2. Aлгоритм:
ALGORITM
Хайх утга:
Хайлт явуулах олонлог:
Е-Нээлттэй Институт
www.emust.edu.mn
40
23
i 0 1 2 3 4 5 6 7 8 9
утга 1 2 10 23 24 50 66 73 74 89
Элемент олдлоо.
Буцаах утга: 3
41. 2. Aлгоритм:
ALGORITM
a) Рекурс
Өөрөө өөрийгөө дуудан ажиллуулах хэлбэрээр
зохиогдсон програмыг рекурс програм гэнэ. Рекурс
програмаар ихэвчлэн рекурент томъёогоор өгөгдсөн бодлого
эсвэл рекурент аргаар гарч ирэх үр дүн бүхий асуудлыг
шийдэхэд ашигладаг.
Е-Нээлттэй Институт
www.emust.edu.mn
41
42. 2. Aлгоритм:
ALGORITM
a) Рекурс
Е-Нээлттэй Институт
www.emust.edu.mn
n=3 үед 7 үйлдэл хийгдэнэ.
1. A->C
2. A->B
3. C->B
4. A->C
5. B->A
6. B->C
7. A->C
42
43. 2. Aлгоритм:
ALGORITM
b) SelectionSort-Сонгон эрэмблэх алгоритм
Массив дахь хамгийн бага элементийг олж массивын
эхний элементтэй сольж , дараа нь удаах бага элементийг олж
массивын хоёр дахь элементтэй солих замаар маиссвын бүх
элемент эрэмбэлэгдэж дуустал үйлдлийг давтан гүйцэтгэнэ.
Энэ арга нь үлдэж байгаа хэсэг бүрээс хамгийн бага
элементийг нь сонгож байгаа учир сонгон эрэмбэлэх арга гэж
нэрлэсэн юм.
Е-Нээлттэй Институт
www.emust.edu.mn
43
44. 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
44
45. 2. Aлгоритм:
ALGORITM
c) Оруулан эрэмблэх алгоритм
Энэ арга нь сонгон эрэмбэлэх аргыг бодвол илүү уян
хатан, үр ашигтай юм. Уг аргын үндсэн үйлдэл нь
эрэмбэлэгдсэн массивт эрэмбэлэлтийг алдагдуулахгүйгээр
шинэ элемент оруулах үйлдлээр тодорхойлогдоно. Өөрөөр
хэлбэл эрэмбэлэгдсэн элементүүдийн шинэ элементээс их
элементийг нэг байрлал баруун тийш шилжүүлэх байдлаар
орвол зохих байрлалыг чөлөөлж өгдөг.
Е-Нээлттэй Институт
www.emust.edu.mn
45
46. 2. Aлгоритм:
ALGORITM
c) Оруулан эрэмблэх алгоритм
50 80 40 60 30 70 10 90 20
Эхний элементийг эрэмбэлэгдсэн массив гэж үзье. Тэгвэл дараагийн алхамд 2 дахь
элементийг оруулах үйлдэл гүйцэтгэгдэнэ
Е-Нээлттэй Институт
www.emust.edu.mn
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
46
48. 3. Програмчлал:
PROGRAMING
• Доод төвшний програмчлалын хэл
(Low-level programming language)
• Дээд төвшний програмчлалын хэл
(High-level programming language)
Е-Нээлттэй Институт
www.emust.edu.mn
48
49. 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
49
50. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
FORTRAN - FORmula TRANslator
IBM (International Business
Machines, АНУ) компанид, эрдэмтэн Жон
Бэкусын (John Backus) удирдсан ЭШ-ний
баг физик, математик, инженерийн
шинжлэх ухааны тооцоо хийх
зориулалтаар бүтээсэн.
Е-Нээлттэй Институт
www.emust.edu.mn
Жишээ нь, a=5 ба b=3
байхад c=a+b
50
51. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
BASIC – (Beginner’s All Purpose
Symbolic Instruction Code)
1965 онд Дартмудын коллежийн
(Dartmouth College, АНУ) математикчид
Жон Кемени (John Kemeny), Томас Курц
(Thomas Kurtz) нар зохиосон
Е-Нээлттэй Институт
www.emust.edu.mn
Жишээ нь, a=5 ба b=3
байхад c=a+bz
51
52. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
c) (a) Procedural languages
Pascal
Цюрихын технологийн дээд сургуулийн
(Щвейцар) эрдэмтэн Никлаус Вирт
(Nicklaus Wirth) 1970-аад онд оюутнуудыг
програмчлалд сургах зориулалтаар
бүтээсэн. Програмчлалын Паскаль хэл маш
амжилттай зохиогдсон учраас сургалтын
хүрээнээс халин гарч, түгээмэл
хэрэглэгдэгч алгоритмын хэл болсон.
Е-Нээлттэй Институт
www.emust.edu.mn
Жишээ нь, a=5 ба b=3
байхад c=a+b
52
53. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
(a) Procedural languages
C хэл
1970-аад онд AT&T компанийн Беллийн
лабораторийн (Bell Laboratories, АНУ)
э.ш.а. Деннис Ритчи (Dennis Ritchie) Unix
үйлдлийн системд програмчлах зорилгоор
бүтээсэн байна. Си хэл нь, доод төвшний
програмчлал болон дээд төвшний
програмчлалын давуу талуудыг жигд
агуулсан учраас заримдаа дунд төвшний
програмчлалын хэл гэдэг. Алгоритмын
хэлүүд дундаас хамгийн өргөн тархсан,
хүчирхэг хэл.
Е-Нээлттэй Институт
www.emust.edu.mn
Жишээ нь, a=5 ба b=3
байхад c=a+b
53
54. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Object-oriented languages
C++
C хэл бол C++ ийн дэд олонлог гэж ойлгож
болно. Эхлээд С гэж процедур хандалтадат
хэл гэж байж байгаад дараагаар нь түүнд
объект хандалтад програмчлалын
технологийг нэвтрүүлж өгсөнөөрөө С++
болсон байна.
Е-Нээлттэй Институт
www.emust.edu.mn
Жишээ нь, a=5 ба b=3
байхад c=a+b
54
55. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
d) Object-oriented languages
Е-Нээлттэй Институт
www.emust.edu.mn
JAVA
JAVA бол Sun Microsystems корпорацийн бүтээсэн програмчлалын хэл
бөгөөд хамгийн анх 1995 онд түүнийг олон нийтэд танилцуулжээ. Жава-г
бүтээхдээ С ба С++ хэлийн онцлог, бичиглэлийг хүчтэй тусган авсан
бөгөөд 2006 оны үеэс эхлэн Жава програмчлалын систем нь Java EE, Java
ME, Java Se гэж 3 хуваагдах болсон юм.
Жишээ нь:
55
56. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
HTML
HTML гэдэг бол HyperText Markup
Language гэсэн үгний товчлол бөгөөд
HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг. Мөн вэб
хуудас хэрхэн харагдах хэлбэрийг өөрчилж
чаддагараа давуу талтай. Гэвч текстийн
хэлбэр дүрс гэх мэтийг дэлгэцэнд гаргахад
CSS (Cascading Style Sheet) Javascript
зэргийг XML, HTML- 2ланд нь ашигладаг
байна.
Е-Нээлттэй Институт
www.emust.edu.mn
56
57. 4. Програмчлалын хэл:
PROGRAMING LANGUAGES
Markup language
XML
Програмчлалд маш өргөн
хэрэглэгдэж байгаа хэл бол XML юм. Энэ нь
Extensible Markup Language гэсэн үгний
товчлол. HTML бол урдчилан тодорхойлсон
тагуудаар мэдээлэл дүрслэдэг бол XML
хэрэглэгч өөртөө хэрэгтэй байгаа тагуудыг
үүсгэн мэдээллээ дүрслэнэ Жишээ:
Энэ мэдээллийг програмын аргаар
уншиж мэдээллийг авах үйлдлийг parsing
гэнэ. XML parser гэвэл XML-ийг уншиж
мэдээллийг авагч гэж ойлгож болно
Е-Нээлттэй Институт
www.emust.edu.mn
57
Notes de l'éditeur Cover 1