SlideShare a Scribd company logo
1 
ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ, 
Е-НЭЭЛТТЭЙ ИНСТИТУТ 
Алгоритм ба програмчлал 
Лекц - 1 
Код: U.IT101 www.emust.edu.mn
U.CS101- Алгоритм ба програмчлал 
Сэдэв: Алгоритмын тухай ойлголт 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
70 ОНООГ ДҮГНЭХ ЖУРАМ 
 Ирц, идэвхи – 10 
 сорил – 15 
 лаборатори – 15 (8 лабораторийн ажил) 
 семинар – 15 (8 семинарын даалгавар) 
 бие даалт – 15 (5 дахь 7 хоногоос) 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Агуулга: 
01 Алгоритмын тухай ойголт 
02 Блок схемийн тухай 
03 Алгоритмын бүтэц 
04 Алгоритмын төрөл 
05 Алгоритмын үндсэн үйлдэл 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
ХИЧЭЭЛИЙН ЗОРИЛГО 
• Алгоритмын тухай ойголт 
– Алгоритм гэж юу вэ 
– Алгоритм яагаад чухал вэ 
• Алгоритмыг дүрслэхэд шаардагдах элементүүд болох Блок 
схемийн тухай 
• Алгоритмын бүтэц 
– Шугаман алгоритм 
– Шугаман бус алгоритм 
• Алгоритмын төрөл 
• Алгоритмд хэрэглэгдэх үндсэн үйлдлүүд 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
Алгоритм гэж юу вэ? 
Програмчлалд анхлан суралцаж буй хүний хувьд эхлээд 
бичих гэж буй програмынхаа загвар буюу бүдүүвчийг зохиож 
дараа нь түүнийхээ дагуу програмаа бичих нь илүү үр дүнтэй 
гэж мэргэжилтнүүд үздэг. 
Ийм загвар буюу төлөвлөөг алгоритм гэдэг. 
Алгоритм бол: 
 тодорхой үр дүн гаргаж авахын тулд дараалан гүйцэтгэх 
ёстой үйлдлүүдийн жагсаалт 
 тодорхой үр дүн гаргаж авахын тулд баримтлах ерөнхий 
дүрэм 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
Алгоритм зохиох процессыг алгоритмчлал гэнэ. 
Алгоритм гэдэг үг өөрөө, 783-850 онд амьдарч байсан 
дундад азийн гарамгай математикч Мухаммед Муса аль- 
Хорезми хэмээх хүний нэрний гажсан хувилбар болох 
Алхори[ө]мы (Algorithmi) гэсэн үгээс гаралтай ажээ. 
Орчлон ертөнц ч өөрийн алгоритмтай. Дэлхий Нарыг 
дунджаар 150 сая км-ийн радиустай “тойргоор” 1 жилд 
бүтэн тойрно. Дэлхий өөрийн тэнхлэгийг 24 цагт бүтэн 
тойрно. Бүх бодис эгэл бөөмсөөс тогтоно г.м. Эдгээр 
алгоритмууд байгалийн хуулиудын тусламжтайгаар 
програмчлагдаж, цаг ямагт мөрдөгдөж байдаг. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
Тодорхойлолт: Бодлогын хариуг олохын тулд бодлогын 
өгөгдөл ба бодолтын явцад гарах завсрын 
хэмжигдхүүнүүд дээр хийх үйлдлүүдийн агуулга болон дэс 
дарааллыг тодорхойлж байгаа зааврыг алгоритм гэнэ. 
Алгоритмаар зааан бодлого бодох үйл ажиллагааг 
биелүүлэгчийг алгоритмын гүйцэтгэгч гэнэ. Аливаа 
алгоритмыг тодорхой гүйцэтгэгчид зориулж зохионо. 
Алгоритмыг гүйцэтгэгч нь хүн эсвэл компьютер байна. 
Компьютерийг хэрэглээгүй үед алгоритмыг зохиогч, 
гүйцэтгэгч нь хүн байна. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Алгоритм ашиглаж байгаа жишээ: 
хот доторх автомашины жолооч гэрлэн дохионд захирагдах 
дүрмийг баримталдаг. Түүнийг нь: 
 Хэрэв шар гэрэл асвал гэрлэн дохио солигдох (улаан эсвэл 
ногоон) гэж буй тул анхааралтай бай 
 Хэрэв улаан гэрэл асвал зогс 
 Хэрэв ногоон гэрэл асвал хөдөл 
хэмээн томъёолъё. Энэ бол гэрлэн дохиод захирагдах алгоритм 
юм. Гэхдээ энэ алгоритмын хувьд үйлдлийн эрэмбэ зайлшгүй 
чухал биш. Учир нь жолооч замын гэрлэн дохиотой хэсгээр явж 
байгаад, чухам ямар гэрэл асч байна вэ (өөрөөр хэлбэл ямар 
нөхцөл биелж байна вэ гэдгийг шалгаад) түүнд тохирсон 
алхмыг дээрх алгоритмаас сонгож гүйцэтгэнэ. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Интернэт дэлхийн өнцөг булан бүрээс хэдэн сая хүнд асар их 
хэмжээний мэдээлэл рүү хурдан хандах боломж олгож байдаг. 
Ухаалаг алгоритмын тусламжтайгаар интернэт дэх хэдэн сая 
сайтууд руу хандах үйлдэл хялбархан шийдэгддэг юм. Үүний 
нэгэн адил асуудлуудыг их хэмжээний өгөгдлүүд хамгийн 
тохиромжтой замыг эрж олон хүсэлтийг биелүүлэх алгоритмын 
аргаар зохион байгуулж байна. 
Электрон худалдаа хийх үйл ажиллагаа нь төлбөр хийх, бараа 
бүтээгдхүүн солилцох гэх мэт олон үйлдлийг хэрэглэгчийн 
кредит картын дугаар, нууц үг, банкны мэдээлэл зэргийг 
үндэслэн гүйцэтгэдэг. Электрон худалдаанд хэрэглэгддэг 
үндсэн технологи нь түлхүүр криптограф, тоон гарын үсэг 
бөгөөд үүнийг тоон алгоритм, тооны онол дээр үндэслэн 
шийдвэрлэдэг. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Үйлдвэр албан газар, худалдааны байгууллагууд үйл 
ажиллагаагаа хамгийн үр өгөөжтэй хөтлөн явуулах арга зам 
хайсаар байдаг. Газрын тосны компани хаана хамгийн их 
нөөцтэй цооног байгааг тодорхойлж ашигаа нэмэгдүүлэх, 
сонгуулийн нэр дэвшигч аль тойрогт сурталчилгаагаа хийвэл 
сонгогдох магадлалтай байж болох, иргэний нисэхийн 
компаниуд хамгийн бага зардлаар засгийн газрын олгосон 
зөвшөөрлийн дагуу нислэг үйлдэх, интернэтээр үйлчлэгч 
байгууллагууд хаана нэмэлт төхөөрөмжүүдийг байрлуулан 
хэрэглэгчидэд үйлчилгээ үзүүлэх нь илүү ашигтай байх зэрэг 
асуудлуудыг шийдвэрлэхэд тодорхой алгоритмын дагуу 
шугаман программчлалын аргаар шийдсэн байдаг. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
(З+3)*(3+4)-23 гэсэн илэрхийллийг бодохын тулд: 
3 дээр 3-ыг нэмэх (=6) 
3 дээр 4-ийг нэмэх (=7) 
6-г 7-оор үржүүлэх (=42) 
2-ийг куб зэрэгт дэвшүүлэх (=8) 
42-оос 8-ыг хасах 
гэсэн алгоритмыг баримтлана. Энд бол үйлдлийн дараалал 
чухал байна. Түүнийг зөрчвөөс зөв хариуг гаргаж чадахгүй. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
Алгоритм ба компьютерын программын хооронд ямар ялгаа 
байна вэ? 
Програм – энэ бол удирдамж, алгоритм – энэ ч гэсэн бас 
удирдамж учраас эдгээрийн хооронд зарчмын ялгаа байхгүй 
юм. 
Учир нь программчлалын хэл дээр зохиосон алгоритмыг 
програм гэдэг ажээ. Компьютер бол алгоритмыг гүйцэтгэгч, 
хүн бол алгоритмыг зохиогч юм. Гүйцэтгэгчид алгоритмын 
зорилго ямар ч хамаагүй бөгөөд зөвхөн зохиогч л үүнийг 
мэдэж байдаг. Гэхдээ гүйцэтгэгч нь зохиогчийн тавьсан 
зорилгыг хангалттай сайн биелүүлдэг байхын тулд алгоритм 
сайн зохиогдсон байх нь мэдээж. Тэгвэл, сайн алгоритм 
дараах үндсэн чанаруудыг хангасан байх ёстой гэнэ: 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМ 
1. Алгоритм нь дараалсан алхмууд буюу үйлдлүүдээс тогтсон 
байх - алгоритм нь аливаа даалгаврыг гүйцэтгэх төгсгөлөг 
тооны алхмуудаас бүрдсэн байх (төгсгөлөг байх) 
2. Алгоритмын алхам бүр оновчтой, тодорхой бай - 
алгоритмын алхам бүрт чухам ямар үйлдэл хийгдэх нь 
тодорхой байх (үнэн зөв байх) 
3. Өгөгдлөөрөө ялгаатай ижил төрлийн бодлогыг бодох 
алгоритм ижил байх (түгээмэл байх) 
4. Алгоритм нь үр дүнтэй (ашигтай) байх – алгоритм нь 
төгсгөлөг алхмын дараа даалгаврыг биелүүлж дуусгасан 
байх, хэрэв энэ нь боломжгүй бол даруй зогсдог байх; 
Өөрөөр хэлбэл ямар нэг тодорхой шийдэлд хүрдэг байх 
(үр дүнтэй байх) 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Алгоритм үр дүнтэй байх шинж 
Аливаа алгоритм нь төгсгөлөг тооны алхам биелэгдсэний дараа 
тодорхой бөгөөд нэгэн утгатай үр дүн өгдөг байх ёстой. 
Тодорхой үр дүн гэдэг нь бодолтын төгсгөлд гарч болох бүх 
тохиолдолд тохирсон үр дүн байх ёстой гэсэн шаадлага юм. 
Жишээ нь: ax2 + bx + c = 0 квадрат тэгшитгэлийн бодит шийд 
нь a, b, c коэффицент болон D = b2 – 4ac дискриминантын 
утгаас хамаарана. Тэгшитгэлийг бодох үед а коэффицент тэгээс 
ялгаатай бол квадрат тэгштгэл гэж таниад түүнийг боддог. 
Гэтэл түүнийг компьютерээр бодох үед a, b, c коэффицентийн 
утгыг гаднаас ямар нэг аргаар өгөх учраас а коэффицентийн 
утга заавал тэгээс ялгаатай байх ёстой гэж тооцох нь буруу 
болно. Харин a, b, c коэффицент ба дискриминантын байж 
болох бүх тохиолдлыг тооцож тэр бүгдэд тохирсон үр дүнг өгдөг 
алгоритм байх ёстой. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Алгоритм үр дүнтэй байх шинж 
Алгоритм үр дүнтэй байхаас гадна нэг ижил мэдээллийг 
боловсруулан үр дүн нь ямагт ижил байх ёстой гэсэн 
шаардлагыг мөн тавих бөгөөд үүнийг алгоритмын үр дүн нэгэн 
утгатай байх шинж гэнэ. Үнэн зөв алгоритм, програмын үг дүнд 
итгэж болох ба түүний үр дүн нь цаг хугацаа болон бусад хүчин 
зүйлээс хамаарахгүй, харин зөвхөн боловсруулж байгаа өгөгдөл 
мэдээллээр тодорхойлогддог. Компьютер нь электрон техник 
болох учраас техникийн эвдрэл болон хүчдлийн санамсаргүй 
өөрчлөлт зэргээс шалтгаалан алдаатай үр дүн гарах тохиолдол 
гарч болно. Иймд ямарч алдаагүй ажиллах ёстой онцгой 
хэрэглээнд санамсаргүй алдаанаас урьдчилан сэргийлсэн, 
жишээлбэл тооцоог хэд хэдэн компьютер дээр давхар хийж 
гарсан үр дүнг жишиж шалгах зэрэг янз бүрийн аргыг 
хэрэглэдэг юм. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Алгоритм түгээмэл байх шинж 
Тодорхой бодлогын алгоритмыг зохиохдоо энэ бодлоготой ижил 
төрлийн (анхны өгөгдлөөрөө ялгаатай байж болох) бүх 
бодлогыг бодоход хэрэглэж болохоор ерөнхий алгоритмыг 
зохиох ёстой. Ингэснээр нэг програмыг энэ төрлийн аливаа 
бодлогыг бодоход хэрэглэх учир бид өөрсдийн хөдөлмөрийг 
олон дахин хөнгөвчлөх нөхцлийг бүрдүүлнэ. 
Жишээлбэл: Квадрат тэгшитгэл бодох алгоритмыг а 
коэффициент ямагт тэгээс ялгаатай байна гэж тооцож зохиовол 
алгоритм түгээмэл байх шаардлагыг хангахгүйд хүрнэ 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМЫН ГРАФИК ДҮРСЛЭЛ БУЮУ БЛОК- 
СХЕМ 
Компьютерт зориулсан програмын алгоритмыг хэрхэн 
бичдэг вэ? Өөрөөр хэлбэл тэмдэглэгээний ямар 
хэлбэрүүдийг ашиглан алгоритмыг зохиодог вэ? Энд дараах 
хэлбэрүүд байна: 
1. Үгээр илэрхийлэх (эх хэлээр бичих) 
2. График дүрслэл (геометрын объектууд ашиглан 
илэрхийлэх) 
3. Хуурмаг код (эх хэл, програмчлалын хэл, 
математикийн үндсэн тэмдэглэгээнүүд г.м.ийн холимог 
ямар нэгэн зохиомол, хагас дүрэмжсэн “хэл” ашиглах) 
4. Програм (програмчлалын хэл дээр бичих) 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
жишээ 
Эхний хоёр хэлбэртэй танилцъя. 
Хоёр натурал тооны хамгийн их ерөнхий хуваагчийг (ХИЕХ) 
олох Евклидийн алгоритмыг үгээр илэрхийлвэл: 
1. Хоёр тоо өг 
2. Хэрэв хоёр тоо тэнцүү бол аль нэгийг нь хариу болгон 
аваад алгоритмыг төгсгөх, үгүй бол 3-р алхамд шилжих 
3. Хоёр тооны аль ихийг нь тодорхойлох 
4. Их тоог их тоо, бага тооны ялгавраар солих 
5. 2-р алхамд шилжих 
гэсэн хэлбэртэй болно. Энэ алгоритм хоёр тоо тэнцүү болох 
хүртэл хийгдэж, эцэст нь ХИЕХ-ийг гаргаж өгнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Хатуу тогтсон дүрэм байхгүй, нэг өгүүлбэрийг олон янзаар 
тайлбарлаж болдог, хэтэрхий нуршуу болох магадлалтай г.м. 
шалтгааны улмаас үгээр илэрхийлэх хэлбэр нь тийм ч өргөн 
дэлгэрээгүй ажээ. 
График дүрслэлийн арга түгээмэл хэрэглэгддэг. 
График дүрслэлээр, алгоритмыг өөр хоорондоо холбогдсон геометр 
объектуудын дараалал хэлбэрээр илэрхийлдэг. Ийм дүрслэлийг 
алгоритмын блок-схем хэмээн нэрийднэ. Блок-схемийг бүрдүүлэгч 
объектуудыг үйлдлийн блокууд гэнэ. Учир нь блок болгон тодорхой 
нэг эсвэл хэд хэдэн үйлдлийг төлөөлдөг. Тиймээс блокуудыг 
хооронд нь холбосон шугамыг шилжилтийн шугам гэх бөгөөд энэ нь 
үйлдэл хийгдэх дарааллыг тодорхойлж өгдөг. Шугамыг заримдаа 
сумтай, заримдаа сумгүй зурдаг. Бидний хувьд сумтай зурах нь илүү 
тохиромжтой. Шилжилтийн шугам, блокуудыг нийтэд нь блок- 
схемийн элементүүд гэдэг. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
БЛОК СХЕМИЙН ЭЛЕМЕНТҮҮД 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
БЛОК СХЕМИЙН ЭЛЕМЕНТҮҮД 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Өмнө дурдсан Евклидийн алгоритмын блок-схем 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Блок руу орж буй сумыг оролт, гарч буй шугам буюу сумыг гаралт 
гэдэг. Ихэнх элемент нэг оролт, нэг гаралттай байдаг бол харин 
“Нөхцөл шалгах” элемент нэг оролттой, хоёр гаралттай байна. Хоёр 
гаралтанд нь үнэн ба худал гэсэн утгууд харгалзана. Үнэн гэдгийг 1- 
ээр, худал гэдгийг 0-ээр илэрхийлнэ. Мөн “тийм”, “үгүй” гэсэн үгээр 
илэрхийлдэг. 
Алгоритмын биелэлт ямагт сумын дагуу чиглэлд явагдана. 
“Оролт” элемент нь компьютерын гараас (keyboard) өгөгдөл оруулах 
үйлдлийг илэрхийлдэг бол “Гаралт” элемент компьютерын дэлгэцэнд 
(display) үр дүнг гаргах үйлдлийг илэрхийлнэ. 
Блок-схемд зөвхөн нэг “Эхлэл”, нэг “Төгсгөл” байна. 
“Оролт”, “Гаралт”, “Процесс” зэрэг элементийн дотор нэг буюу түүнээс 
олон харгалзах үйлдлийг бичиж болно. Өөрөөр хэлбэл хэд хэдэн 
дараалсан “Оролтыг” нэг “Оролтонд”, хэд хэдэн дараалсан “Гаралтыг” 
нэг “Гаралтанд”, хэд хэдэн дараалсан “Процессыг” нэг “Процесс” дотор 
нэгтгэн бичиж болно. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Өгсөн тооны абсолют 
хэмжигдхүүнийг олох алгоритмыг 
зуръя. Алгоритм дараахь байдлаар 
ажиллана: 
1. Нэг тоо өг 
2. Хэрэв уг тоо сөрөг байвал 
абсолют хэмжигдхүүн нь түүний 
эсрэг тоо болно, үгүй бол (тоо 
эерэг үед) абсолют хэмжигдхүүн 
нь тэр тоо өөрөө байна 
3. Абсолют хэмжигдхүүний утгыг 
дэлгэцэнд хэвлэж гаргана 
4. Төгсгөл гэж томъёологдох ажээ. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ 
Элементүүд нийлж тодорхой бүтцийг үүсгэдэг. Эдгээр 
бүтцийг алгоритмын үндсэн бүтэц (АҮБ) хэмээн нэрийднэ. 
Ингэснээр алгоритмыг зөвхөн эдгээр бүтцээс тогтсон мэтээр 
авч үзэх боломжтой. АҮБ-ийн гол онцлог бол тэдгээр нь 
зөвхөн нэг оролт, нэг гаралттай байна. 
3 төрлийн АҮБ байдаг. Энэ нь Процесс, Салаалалт, Давталт 
юм. Салаалалт бүтэц гүйцэд ба гүйцэд бус гэсэн 2 янз 
байдаг. Давталт бүтэц нь While (Байхад), Until (Хүртэл), 
Параметрт гэсэн 3 хэлбэртэй байна. Эд бүгдийн схемийг 
дараах хүснэгтэд харууллаа. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ 
Алгоритмыг төрлөөр нь шугаман ба шугаман бус гэж 
хоёр ангилдаг. 
Шугаман алгоритм (Linear algorithms) 
Зөвхөн Процесс бүтцээс тогтсон алгоритм нь шугаман 
алгоритм болно. Учир нь түүний биелэлт зөвхөн нэг 
чиглэлд, дээрээс доошоо, эхлэлээс төгсгөл рүү шууд 
“урсана”. 
Шугаман алгоритмын жишээнүүд авч үзье. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 1. (З+3)*(3+4)-23 илэрхийллийг 
бодох алгоритм: 
1. Алгоритм эхлэнэ. 
2. 3 дээр 3-ыг нэмээд a-д утга болгож 
өгнө. 
3. 3 дээр 4-ийг нэмээд b-д утга 
болгож өгнө. 
4. 23-ийг олоод с-д утга болгож өгнө. 
5. a-г b-ээр үржүүлж, с-г нэмэхэд 
гарах хариуг d-д утга болгож өгнө. 
6. d-ийн утгыг дэлгэцэнд хэвлэж 
гаргана. 
7. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 2. Өгсөн x-ийн хувьд y=5*x2+3*x 
функцыг бодох алгоритм: 
1. Алгоритм эхлэнэ. 
2. x-ийн утгыг гаднаас оруулж өгнө. 
3. 5*x2+3*x илэрхийллийг бодоод гарах 
хариуг y-д утга болгож өгнө. 
4. y-ийн утгыг дэлгэцэнд хэвлэж гаргана. 
5. Алгоритм төгсөнө. 
Энд, гаднаас тоо оруулмагц тэр нь x-ийн утга 
болон очих ажээ. Тэгээд бодолт хийгдэж, үр дүн 
дэлгэцэнд хэвлэгдэж байна. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 3. Гурвалжны талууд a, b, c болно. Дараах: 
cosA = (b2 + c2 – a2)/ (2 * b * c) 
sinB = (b * sinA) / a 
C = 180o – (A + B) 
томъёонуудын тусламжтайгаар түүний A, B, C өнцгүүдийг 
тодорхойл (градусаар). 
Санамж: arccos, arcsin тригонометрийн урвуу функцуудын 
утга радианаар илэрхийлэгддэг гэдгийг сануулъя. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
1.Алгоритм эхлэнэ. 
2.a-ийн утгыг гаднаас оруулж өгнө. 
3.b-ийн утгыг гаднаас оруулж өгнө. 
4.c-ийн утгыг гаднаас оруулж өгнө. 
5.180/3.14-ийг k-д утга утга болгож өгнө. 
6.arccos[(b2 +c2–a2)/(2*b*c)] томъёог бодоод гарах 
хариуг A_rad-д утга болгож өгнө. 
7.arcsin(b*sinA_rad/a) томъёог бодоод гарах хариуг 
B_rad –д утга болгож өгнө. 
8.A_rad-ыг k-аар үржүүлээд A_grad-д утга болгож 
өгнө. 
9.B_rad-ыг k-аар үржүүлээд B_grad-д утга болгож 
өгнө. 
10.C_grad=180o–(A_grad+B_grad) гэж олно. 
11.A_rad-ын утгыг дэлгэцэнд хэвлэж гаргана. 
12.B_rad-ын утгыг дэлгэцэнд хэвлэж гаргана. 
13.C_grad-ын утгыг дэлгэцэнд хэвлэж гаргана. 
14.Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 4. Хүнээс нэрийг нь асуугаад, дараа нь 
түүнийг мэндчилэх алгоритм: 
1. Алгоритм эхлэнэ. 
2. Дэлгэцэнд “Чамайг хэн гэдэг вэ?” гэсэн 
өгүүлбэрийг хэвлэж гаргана. 
3. Хэн нэгэн хүний нэрийг гаднаас оруулж 
name-д утга болгож өгнө. 
4. Дэлгэцэнд “Сайн уу” гэсэн үг хэвлээд араас 
нь name-ийн утгыг хэвлэж гаргана. 
5. Алгоритм төгсөнө. 
Энэ жишээ өмнөх 3 жишээнээс ялгаатай нь ямар 
нэг тооцоо хийлгүй, зөвхөн хэрэглэгчтэй хялбар 
харилцан яриа үүсгэж байна. Алгоритм 
ажиллангуут хүний нэрийг асууна. Гараас нэр 
оруулмагц дэлгэцэнд мэндчилгээ хэвлэгдэх 
болно. Тухайлбал Бат гэж оруулахад “Сайн уу, 
Бат” гэж гарна. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ 
Шугаман бус алгоритм (Nonlinear algorithms) 
Алгоритм нь салаалалт юм уу давталт агуулсан бол 
түүнийг шугаман бус алгоритм гэнэ. Учир нь түүний 
биелэгдэх чиглэл буюу “урсгал” нь мөчирлөсөн юм 
уу мушгирсан байдалтай болдог. 
Тухайн тохиолдолд шугаман бус алгоритм нь зөвхөн 
салаалалт, эсвэл зөвхөн давталт агуулсан байх бол 
ерөнхий тохиолдолд салаалалт+давталт агуулсан 
байна. Жишээ алгоритмууд үзье. 
Салаалалт. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 1. Өгсөн тооны урвууг олдог 
алгоритм: 
1. Алгоритм эхлэнэ. 
2. x-ийн утгыг гаднаас оруулна. 
3. x0 нөхцөл биелж буй эсэхийг 
шалгаад 
хэрэв тийм байвал: 
[1] 1/x-ийг олж y-д утга болгон өгнө; 
[2] y-ийн утгыг дэлгэцэнд хэвлэж 
гаргаад 4-р алхамд шилжинэ; 
үгүй бол: 
4-р алхамд шилжинэ. 
4. Алгоритм төгсөнө. 
Энэ алгоритм бол гүйцэд бус салаалалтын жишээ юм. Учир нь “Нөхцөл 
шалгах” элементийн хоёр гаралтын зөвхөн нэгэнд нь тодорхой үйлдэл 
харгалзаж байна. Гаднаас оруулсан тоо 0-ээс ялгаатай байвал л түүний 
урвууг бодож, дэлгэцэнд гаргах бөгөөд хэрэв 0 байвал бодолт хийхгүй, үр дүн 
хэвлэхгүй, алгоритм шууд дуусна. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 2. Өмнөх алгоритмыг дараах 
байдлаар зуръя: 
1. Алгоритм эхлэнэ. 
2. x-ийн утгыг гаднаас оруулна. 
3. x0 нөхцөл биелж буй эсэхийг 
шалгаад 
Хэрэв тийм байвал: 
[1] 1/x-ийг олж y-д утга болгон 
өгнө; 
[2] y-ийн утгыг дэлгэцэнд хэвлэж 
гаргаад 4-р алхам руу шилжинэ; 
үгүй бол: 
Хязгааргүй!” гэсэн мэдэгдлийг 
дэлгэцэнд гаргаад 
4-р алхам руу шилжинэ 
4. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Харин энэ алгоритм бол гүйцэд салаалтын жишээ юм. Учир 
нь “Нөхцөл шалгах” элементийн хоёр гаралтанд хоёуланд нь 
тодорхой үйлдлүүд харгалзаж байна. Гаднаас оруулсан тоо 
0-ээс ялгаатай байвал түүний урвууг бодож, дэлгэцэнд 
гаргаад алгоритм дуусна. Эсрэгээр 0 байвал бодолт 
хийлгүйгээр дэлгэцэнд “Хязгааргүй!” гэсэн үг хэвлээд 
алгоритм дуусна. 
Салаалалт бүтэц дотроо бас Салаалалт бүтцийг агуулсан 
байж болно. Өөрөөр хэлбэл нөхцөл шалгах үйлдлийн хоёр 
гаралтын аль нэгэнд, эсвэл хоёуланд нь дахиад нөхцөл 
шалгах үйлдэл хийгдэж болно. Үгүй яах вэ дээ, модны мөчир 
дахиад мөчирлөж салаалдагтай л адил гэх үү дээ. Ийм 
алгоритмын жишээтэй танилцъя. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 3. Бат, Болд хоёрын насыг нь асуугаад, тэдгээрийг оруулмагц хэн 
нь насаар ах болохыг мэдээлж гаргадаг алгоритм: 
1. Алгоритм эхлэнэ. 
2. Дэлгэцэнд “Бат хэдэн настай вэ?” 
гэж гаргана. 
3. Батын насыг гаднаас age1-т утга 
болгож оруулна. 
4. Дэлгэцэнд “Болд хэдэн настай вэ?” 
гэж гаргана. 
5. Болдын насыг гаднаас age2-т утга 
болгож оруулна. 
6. age1=age2 нөхцөл биелж буй 
эсэхийг шалгаад 
. 
7. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
ЛОГИК ХОЛБООС. 
Бидний үзсэн дээрх жишээнүүдэд, “Нөхцөл шалгах” элементийн тоо дотор 
нь бичигдсэн нөхцлийн тоотой тэнцүү байна. Өөрөөр хэлбэл нэг нөхцөл 
шалгадаг элемент дотор нэг л нөхцөл бичигдсэн байна. Тэгвэл And (Ба), 
Or (Буюу) гэсэн логик холбоосуудыг хэрэглэн нэг нөхцөл шалгадаг 
элемент дотор хоёр буюу түүнээс олон нөхцлийг бичиж болдог. Логик 
холбоосыг хоёр нөхцлийн дунд тавьдаг. 
And холбоос нь түүний хоёр талын нөхцөл хоёулаа үнэн тохиолдолд үнэн 
гэсэн хариу өгөх бөгөөд аль нэг нөхцөл л худал болчихвол худал гэсэн 
хариу гаргана. Тиймээс энэ холбоосыг логик үржилт хэмээн нэрийднэ. 
Or холбоос нь түүний хоёр талын нөхцлийн аль нэг нь үнэн байвал үнэн 
гэсэн хариу өгөх бөгөөд хоёр талын нөхцөл хоёулаа худал тохиолдолд л 
худал гэсэн хариу гаргана. Тиймээс энэ холбоосыг логик нэмэлт хэмээн 
нэрийднэ. 
Логик холбоос хэрэглэж буй тохиолдолд гол анхаарах зүйл бол Ба, 
Буюугийн ялгааг зөв ойлгох явдал юм. Дараах жишээнүүдийг үзье. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 4. Өгсөн a тоо [0,20] завсарт байвал түүнийг 2-оор 
үржүүлэх, энэ завсарт орохгүй бол 2-оор нэмэх алгоритм: 
1. Алгоритм эхлэнэ. 
2. a-ын утгыг гаднаас оруулна. 
3. Хэрэв a³0 ба a£20 байвал: 
a-ийн утгыг 2 дахин 
ихэсгээд 4-р алхамд 
шилжинэ; 
үгүй бол: 
a-ийн утгыг 2-оор ихэсгээд 
4-р алхамд шилжинэ. 
4. a-ын утгыг дэлгэцэнд хэвлэж 
гаргана. 
5. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Энэ жишээнд, a тоо [0,20] завсарт орших уу гэсэн 
нөхцлийг “(a>=0) And (a<=20)” гэж бичсэн байна. 
Мэдээж a0 ба a20 үед л a[0,20] байна гэж үзнэ. Уг 
илэрхийлэл хэзээ худал байх вэ? 
And холбоос түүний хоёр талын аль нэг нөхцөл л худал 
бол худал гэсэн хариу гарна. 
Тиймээс, гаднаас оруулсан утга 0-ээс бага юм уу 21-ээс 
их болчихвол худал болно. Түүнчлэн логик холбоос 
ашигласны ачаар блок-схем зөвхөн ганц дан Салаалалт 
бүтцийг агуулжээ. Хэрэв And оруулаагүй бол бид давхар 
салаалалт хийх байсан. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 5. Өмнөх жишээний бодлогыг дараах байдлаар томъёолж 
болно. Өгсөн a тоо [0,20] завсрын гадна байвал түүнийг 2-оор 
ихэсгэх, энэ завсарт орох бол 2-оор үржүүлэх алгоритм: 
1. Алгоритм эхлэнэ. 
2. a-ын утгыг гаднаас 
оруулна. 
3. Хэрэв a<0 буюу a>20 
байвал: 
a-ийн утгыг 2-оор ихэсгээд 4-р 
алхамд шилжинэ; 
үгүй бол: 
a-ийн утгыг 2 дахин ихэсгээд 4-р 
алхамд шилжинэ. 
4. a-ын утгыг дэлгэцэнд 
хэвлэж гаргана. 
5. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
ДАВТАЛТ. 
Алгоритмд яагаад давталт орж ирдэг вэ? 
Өгсөн бодлогыг хялбар аргаар түргэн 
шуурхай бодохын тулд. Гэхдээ 
алгоритмдаа давталт ашиглах хэрэгцээ 
шаардлага байгаа эсэхийг тухайн 
бодлогын нөхцөл тодорхойлно. Ж.нь 
ийм бодлого байна. “2-оос 10 хүртэлх 
бүх тэгш тоог дэлгэцэнд хэвлэ”. Үүнийг 
бид ямар ч давталт ашиглалгүй зүгээр 
шугаман алгоритм зохион гүйцэтгэж 
болно. Ингэхдээ гаралтын элементийг 5 
удаа эсвэл нэг удаа ашиглана: 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 1. 2-оос 200 хүртэлх бүх тэгш тоог 
дэлгэцэнд хэвлэх алгоритмд While төрлийн нөхцөлт 
давталт ашигласан байдал: 
1. Алгоритм эхлэнэ. 
2. k гэсэн хувьсагчид 2 гэсэн утга онооно. 
3. k-ийн утга 200-аас хэтрээгүй эсэхийг шалгаад 
хэрэв тийм байвал: 
[1] k-ийн утгыг дэлгэцэнд хэвлэж гаргана; 
[2] k-ийн утгыг 2-оор ихэсгээд 3-р алхамд 
шилжинэ; 
үгүй бол: 
4-р алхамд шилжинэ. 
4. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 2. Дээрх бодлогын алгоритмд Until 
төрлийн нөхцөлт давталт ашигласан байдал: 
1. Алгоритм эхлэнэ. 
2. k гэсэн хувьсагчид 2 гэсэн утга онооно. 
3. k-ийн утгыг дэлгэцэнд хэвлэж гаргана. 
4. k-ийн утгыг 2-оор ихэсгэнэ. 
5. k-ийн утга 200-аас хэтэрсэн эсэхийг 
шалгаад 
хэрэв тийм байвал: 
6-р алхамд шилжинэ; 
үгүй бол: 
3-р алхамд шилжинэ. 
7. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 3. Өмнөх бодлогын алгоритмд 
Параметрт давталт ашигласан 
байдал: 
1. Алгоритм эхлэнэ. 
2. k=2 гэсэн утга авна. 
3. Хэрэв k£200 байвал: 
[1] k-ийн утгыг дэлгэцэнд 
хэвлэж гаргана; 
[2] k-ийн утгыг 2-оор ихэсгээд 
3-р алхамд шилжинэ; 
үгүй бол: 
4-р алхамд шилжинэ. 
4. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
Жишээ 4. z(x,y)=x2+y2 функцыг x[-5,5], y[-5,5] 
завсарт (x, y нь бүхэл тоо) бодуулах алгоритм: 
1. Алгоритм эхлэнэ. 
2. x=-5 гэсэн утга авна. 
3. Хэрэв x£5 байвал: 
[1] y=-5 гэсэн утга авна; 
[2] Хэрэв y£5 байвал: 
[[1]] z=x2+y2 томъёог бодно; 
[[2]] z-ийн утгыг дэлгэцэнд хэвлэнэ; 
[[3]] y-ийн утгыг 1-ээр ихэсгээд [2]-р алхамд 
шилжинэ; 
үгүй бол: 
[3]-р алхамд шилжинэ; 
[3] x-ийн утгыг 1-ээр ихэсгээд 3-р алхамд 
шилжинэ. 
үгүй бол: 
4-р алхамд шилжинэ. 
4. Алгоритм төгсөнө. 
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ 
www.emust.edu.mn
48 
Ашигласан материал 
1. Ю. Намсрай, Ц. Дүүрэнбаяр 
“Алгоритмын үндэс”, 2005 он 
2. Д. Гармаа 
“Алгоритм ба програмчлал”, 2014 он 
3. “Алгортм and Programming Language and 
Technology “, 2010 year 
4. Peter Smith, 
“Algorithms in Programming language“, 2012 year 
5. Thomas H. Cormen, Charles E. Leiserson, Ronald L. 
Rivest, Clifford Stein 
“INTRODUCTION TO ALGORITHMS” 
6. Simon Harris and James Ross, 
“BEGINNING ALGORITHMS”

More Related Content

What's hot

C cons
C consC cons
C cons
Onon Tuul
 
тооллын систем
тооллын системтооллын систем
тооллын системMunkhuu Buyanaa
 
Лекц 2 (Блок схем)
Лекц 2 (Блок схем)Лекц 2 (Блок схем)
Лекц 2 (Блок схем)
Мөнхбаярын Цэцэнцэнгэл
 
U.cs101 lecture 6
U.cs101   lecture 6U.cs101   lecture 6
U.cs101 lecture 6
Badral Khurelbaatar
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиenhsaran_tsahim
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудБаярсайхан Л
 
Smallbasic
SmallbasicSmallbasic
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
Enkh Gvnj
 
мэдээллийн системийн үндэс
мэдээллийн системийн үндэсмэдээллийн системийн үндэс
мэдээллийн системийн үндэс
Tsetsenkhuu Otgonbayar
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
Badral Khurelbaatar
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэсGombo Tumuruu
 
Microsoft excel програм гарын авлага
Microsoft excel програм гарын авлагаMicrosoft excel програм гарын авлага
Microsoft excel програм гарын авлага
EnkhjargalDashdorjEn
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
Badral Khurelbaatar
 

What's hot (20)

C cons
C consC cons
C cons
 
тооллын систем
тооллын системтооллын систем
тооллын систем
 
Лекц 2 (Блок схем)
Лекц 2 (Блок схем)Лекц 2 (Блок схем)
Лекц 2 (Блок схем)
 
U.cs101 lecture 6
U.cs101   lecture 6U.cs101   lecture 6
U.cs101 lecture 6
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
алгоритмын ангилал
алгоритмын ангилалалгоритмын ангилал
алгоритмын ангилал
 
Smallbasic
SmallbasicSmallbasic
Smallbasic
 
алгоритм
алгоритмалгоритм
алгоритм
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
 
мэдээллийн системийн үндэс
мэдээллийн системийн үндэсмэдээллийн системийн үндэс
мэдээллийн системийн үндэс
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
Html хичээл
Html хичээлHtml хичээл
Html хичээл
 
алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэс
 
Microsoft excel програм гарын авлага
Microsoft excel програм гарын авлагаMicrosoft excel програм гарын авлага
Microsoft excel програм гарын авлага
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
Лекц №6
Лекц №6Лекц №6
Лекц №6
 
It101 16
It101 16It101 16
It101 16
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
 

Viewers also liked

алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэсenhsaran_tsahim
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
Urantuya Purevtseren
 
7salaalsan
7salaalsan7salaalsan
7salaalsan
Turuu Tsogt
 
8 р анги
8 р анги8 р анги
8 р ангиshulam
 
өгүүлбэр зүйн хэрэглэгдэхүүн
өгүүлбэр зүйн хэрэглэгдэхүүнөгүүлбэр зүйн хэрэглэгдэхүүн
өгүүлбэр зүйн хэрэглэгдэхүүнAltantuya33
 
7 анги алгоритм
7 анги алгоритм7 анги алгоритм
7 анги алгоритмjaagii_1980
 
физик
физикфизик
физикontuul
 
Веб технологи
Веб технологиВеб технологи
Веб технологи
Bilguun Ochirbat
 
9 р анги цахим
9 р анги цахим9 р анги цахим
9 р анги цахимNTsets
 
WordPress ашиглах
WordPress ашиглахWordPress ашиглах
WordPress ашиглах
Ulziibat Nansaltsog
 
Мэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжМэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгж
Tudevdagva Uranchimeg
 

Viewers also liked (12)

алгоритмчлалын үндэс
алгоритмчлалын үндэсалгоритмчлалын үндэс
алгоритмчлалын үндэс
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
7salaalsan
7salaalsan7salaalsan
7salaalsan
 
8 р анги
8 р анги8 р анги
8 р анги
 
өгүүлбэр зүйн хэрэглэгдэхүүн
өгүүлбэр зүйн хэрэглэгдэхүүнөгүүлбэр зүйн хэрэглэгдэхүүн
өгүүлбэр зүйн хэрэглэгдэхүүн
 
7 анги алгоритм
7 анги алгоритм7 анги алгоритм
7 анги алгоритм
 
физик
физикфизик
физик
 
Веб технологи
Веб технологиВеб технологи
Веб технологи
 
хичээл
хичээлхичээл
хичээл
 
9 р анги цахим
9 р анги цахим9 р анги цахим
9 р анги цахим
 
WordPress ашиглах
WordPress ашиглахWordPress ашиглах
WordPress ашиглах
 
Мэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжМэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгж
 

Similar to U.cs101 алгоритм программчлал-1(1)

U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
Badral Khurelbaatar
 
Lecture 1
Lecture 1Lecture 1
Алгоритм
АлгоритмАлгоритм
Алгоритмswf_cloud
 
U.cs101 алгоритм программчлал-5
U.cs101   алгоритм программчлал-5U.cs101   алгоритм программчлал-5
U.cs101 алгоритм программчлал-5
Badral Khurelbaatar
 
Mtms3 mathematical softs
Mtms3   mathematical softsMtms3   mathematical softs
Mtms3 mathematical softs
Babaa Naya
 
Algortmin parametrt dawtalt hicheel
Algortmin parametrt dawtalt  hicheelAlgortmin parametrt dawtalt  hicheel
Algortmin parametrt dawtalt hicheelMunkhuu Buyanaa
 
Dadlagyn xotolbor zagvar
Dadlagyn xotolbor zagvarDadlagyn xotolbor zagvar
Dadlagyn xotolbor zagvardagiisangir
 
It101 15
It101 15It101 15
It101-lecture-9
It101-lecture-9It101-lecture-9
It101-lecture-9
taivna
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasahBadral Khurelbaatar
 
Mathcad beginning-part1
Mathcad beginning-part1Mathcad beginning-part1
Mathcad beginning-part1
Babaa Naya
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 
алгоритм
алгоритмалгоритм
алгоритмNarantungaa
 

Similar to U.cs101 алгоритм программчлал-1(1) (20)

U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
It101 9
It101 9It101 9
It101 9
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Алгоритм
АлгоритмАлгоритм
Алгоритм
 
U.cs101 алгоритм программчлал-5
U.cs101   алгоритм программчлал-5U.cs101   алгоритм программчлал-5
U.cs101 алгоритм программчлал-5
 
10g boloroo2
10g boloroo210g boloroo2
10g boloroo2
 
Mtms3 mathematical softs
Mtms3   mathematical softsMtms3   mathematical softs
Mtms3 mathematical softs
 
Algortmin parametrt dawtalt hicheel
Algortmin parametrt dawtalt  hicheelAlgortmin parametrt dawtalt  hicheel
Algortmin parametrt dawtalt hicheel
 
Lects 12
Lects 12Lects 12
Lects 12
 
It101 lec16
It101 lec16It101 lec16
It101 lec16
 
Dadlagyn xotolbor zagvar
Dadlagyn xotolbor zagvarDadlagyn xotolbor zagvar
Dadlagyn xotolbor zagvar
 
It101 15
It101 15It101 15
It101 15
 
It101-lecture-9
It101-lecture-9It101-lecture-9
It101-lecture-9
 
It101 lect9
It101 lect9It101 lect9
It101 lect9
 
U.cs101 алгоритм программчлал-4-zasah
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
 
Mathcad beginning-part1
Mathcad beginning-part1Mathcad beginning-part1
Mathcad beginning-part1
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 
алгоритм
алгоритмалгоритм
алгоритм
 

More from Badral Khurelbaatar

U.cs101 алгоритм программчлал-15
U.cs101   алгоритм программчлал-15U.cs101   алгоритм программчлал-15
U.cs101 алгоритм программчлал-15
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-14
U.cs101   алгоритм программчлал-14U.cs101   алгоритм программчлал-14
U.cs101 алгоритм программчлал-14
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-11
U.cs101   алгоритм программчлал-11U.cs101   алгоритм программчлал-11
U.cs101 алгоритм программчлал-11
Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-9
U.cs101   алгоритм программчлал-9 U.cs101   алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
Badral Khurelbaatar
 
U.cs101 lection-8
U.cs101  lection-8 U.cs101  lection-8
U.cs101 lection-8
Badral Khurelbaatar
 

More from Badral Khurelbaatar (6)

U.cs101 алгоритм программчлал-15
U.cs101   алгоритм программчлал-15U.cs101   алгоритм программчлал-15
U.cs101 алгоритм программчлал-15
 
U.cs101 алгоритм программчлал-13
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13
 
U.cs101 алгоритм программчлал-14
U.cs101   алгоритм программчлал-14U.cs101   алгоритм программчлал-14
U.cs101 алгоритм программчлал-14
 
U.cs101 алгоритм программчлал-11
U.cs101   алгоритм программчлал-11U.cs101   алгоритм программчлал-11
U.cs101 алгоритм программчлал-11
 
U.cs101 алгоритм программчлал-9
U.cs101   алгоритм программчлал-9 U.cs101   алгоритм программчлал-9
U.cs101 алгоритм программчлал-9
 
U.cs101 lection-8
U.cs101  lection-8 U.cs101  lection-8
U.cs101 lection-8
 

U.cs101 алгоритм программчлал-1(1)

  • 1. 1 ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ, Е-НЭЭЛТТЭЙ ИНСТИТУТ Алгоритм ба програмчлал Лекц - 1 Код: U.IT101 www.emust.edu.mn
  • 2. U.CS101- Алгоритм ба програмчлал Сэдэв: Алгоритмын тухай ойлголт Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 3. 70 ОНООГ ДҮГНЭХ ЖУРАМ  Ирц, идэвхи – 10  сорил – 15  лаборатори – 15 (8 лабораторийн ажил)  семинар – 15 (8 семинарын даалгавар)  бие даалт – 15 (5 дахь 7 хоногоос) Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 4. Агуулга: 01 Алгоритмын тухай ойголт 02 Блок схемийн тухай 03 Алгоритмын бүтэц 04 Алгоритмын төрөл 05 Алгоритмын үндсэн үйлдэл Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 5. ХИЧЭЭЛИЙН ЗОРИЛГО • Алгоритмын тухай ойголт – Алгоритм гэж юу вэ – Алгоритм яагаад чухал вэ • Алгоритмыг дүрслэхэд шаардагдах элементүүд болох Блок схемийн тухай • Алгоритмын бүтэц – Шугаман алгоритм – Шугаман бус алгоритм • Алгоритмын төрөл • Алгоритмд хэрэглэгдэх үндсэн үйлдлүүд Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 6. АЛГОРИТМ Алгоритм гэж юу вэ? Програмчлалд анхлан суралцаж буй хүний хувьд эхлээд бичих гэж буй програмынхаа загвар буюу бүдүүвчийг зохиож дараа нь түүнийхээ дагуу програмаа бичих нь илүү үр дүнтэй гэж мэргэжилтнүүд үздэг. Ийм загвар буюу төлөвлөөг алгоритм гэдэг. Алгоритм бол:  тодорхой үр дүн гаргаж авахын тулд дараалан гүйцэтгэх ёстой үйлдлүүдийн жагсаалт  тодорхой үр дүн гаргаж авахын тулд баримтлах ерөнхий дүрэм Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 7. АЛГОРИТМ Алгоритм зохиох процессыг алгоритмчлал гэнэ. Алгоритм гэдэг үг өөрөө, 783-850 онд амьдарч байсан дундад азийн гарамгай математикч Мухаммед Муса аль- Хорезми хэмээх хүний нэрний гажсан хувилбар болох Алхори[ө]мы (Algorithmi) гэсэн үгээс гаралтай ажээ. Орчлон ертөнц ч өөрийн алгоритмтай. Дэлхий Нарыг дунджаар 150 сая км-ийн радиустай “тойргоор” 1 жилд бүтэн тойрно. Дэлхий өөрийн тэнхлэгийг 24 цагт бүтэн тойрно. Бүх бодис эгэл бөөмсөөс тогтоно г.м. Эдгээр алгоритмууд байгалийн хуулиудын тусламжтайгаар програмчлагдаж, цаг ямагт мөрдөгдөж байдаг. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 8. АЛГОРИТМ Тодорхойлолт: Бодлогын хариуг олохын тулд бодлогын өгөгдөл ба бодолтын явцад гарах завсрын хэмжигдхүүнүүд дээр хийх үйлдлүүдийн агуулга болон дэс дарааллыг тодорхойлж байгаа зааврыг алгоритм гэнэ. Алгоритмаар зааан бодлого бодох үйл ажиллагааг биелүүлэгчийг алгоритмын гүйцэтгэгч гэнэ. Аливаа алгоритмыг тодорхой гүйцэтгэгчид зориулж зохионо. Алгоритмыг гүйцэтгэгч нь хүн эсвэл компьютер байна. Компьютерийг хэрэглээгүй үед алгоритмыг зохиогч, гүйцэтгэгч нь хүн байна. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 9. Алгоритм ашиглаж байгаа жишээ: хот доторх автомашины жолооч гэрлэн дохионд захирагдах дүрмийг баримталдаг. Түүнийг нь:  Хэрэв шар гэрэл асвал гэрлэн дохио солигдох (улаан эсвэл ногоон) гэж буй тул анхааралтай бай  Хэрэв улаан гэрэл асвал зогс  Хэрэв ногоон гэрэл асвал хөдөл хэмээн томъёолъё. Энэ бол гэрлэн дохиод захирагдах алгоритм юм. Гэхдээ энэ алгоритмын хувьд үйлдлийн эрэмбэ зайлшгүй чухал биш. Учир нь жолооч замын гэрлэн дохиотой хэсгээр явж байгаад, чухам ямар гэрэл асч байна вэ (өөрөөр хэлбэл ямар нөхцөл биелж байна вэ гэдгийг шалгаад) түүнд тохирсон алхмыг дээрх алгоритмаас сонгож гүйцэтгэнэ. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 10. Интернэт дэлхийн өнцөг булан бүрээс хэдэн сая хүнд асар их хэмжээний мэдээлэл рүү хурдан хандах боломж олгож байдаг. Ухаалаг алгоритмын тусламжтайгаар интернэт дэх хэдэн сая сайтууд руу хандах үйлдэл хялбархан шийдэгддэг юм. Үүний нэгэн адил асуудлуудыг их хэмжээний өгөгдлүүд хамгийн тохиромжтой замыг эрж олон хүсэлтийг биелүүлэх алгоритмын аргаар зохион байгуулж байна. Электрон худалдаа хийх үйл ажиллагаа нь төлбөр хийх, бараа бүтээгдхүүн солилцох гэх мэт олон үйлдлийг хэрэглэгчийн кредит картын дугаар, нууц үг, банкны мэдээлэл зэргийг үндэслэн гүйцэтгэдэг. Электрон худалдаанд хэрэглэгддэг үндсэн технологи нь түлхүүр криптограф, тоон гарын үсэг бөгөөд үүнийг тоон алгоритм, тооны онол дээр үндэслэн шийдвэрлэдэг. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 11. Үйлдвэр албан газар, худалдааны байгууллагууд үйл ажиллагаагаа хамгийн үр өгөөжтэй хөтлөн явуулах арга зам хайсаар байдаг. Газрын тосны компани хаана хамгийн их нөөцтэй цооног байгааг тодорхойлж ашигаа нэмэгдүүлэх, сонгуулийн нэр дэвшигч аль тойрогт сурталчилгаагаа хийвэл сонгогдох магадлалтай байж болох, иргэний нисэхийн компаниуд хамгийн бага зардлаар засгийн газрын олгосон зөвшөөрлийн дагуу нислэг үйлдэх, интернэтээр үйлчлэгч байгууллагууд хаана нэмэлт төхөөрөмжүүдийг байрлуулан хэрэглэгчидэд үйлчилгээ үзүүлэх нь илүү ашигтай байх зэрэг асуудлуудыг шийдвэрлэхэд тодорхой алгоритмын дагуу шугаман программчлалын аргаар шийдсэн байдаг. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 12. АЛГОРИТМ (З+3)*(3+4)-23 гэсэн илэрхийллийг бодохын тулд: 3 дээр 3-ыг нэмэх (=6) 3 дээр 4-ийг нэмэх (=7) 6-г 7-оор үржүүлэх (=42) 2-ийг куб зэрэгт дэвшүүлэх (=8) 42-оос 8-ыг хасах гэсэн алгоритмыг баримтлана. Энд бол үйлдлийн дараалал чухал байна. Түүнийг зөрчвөөс зөв хариуг гаргаж чадахгүй. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 13. АЛГОРИТМ Алгоритм ба компьютерын программын хооронд ямар ялгаа байна вэ? Програм – энэ бол удирдамж, алгоритм – энэ ч гэсэн бас удирдамж учраас эдгээрийн хооронд зарчмын ялгаа байхгүй юм. Учир нь программчлалын хэл дээр зохиосон алгоритмыг програм гэдэг ажээ. Компьютер бол алгоритмыг гүйцэтгэгч, хүн бол алгоритмыг зохиогч юм. Гүйцэтгэгчид алгоритмын зорилго ямар ч хамаагүй бөгөөд зөвхөн зохиогч л үүнийг мэдэж байдаг. Гэхдээ гүйцэтгэгч нь зохиогчийн тавьсан зорилгыг хангалттай сайн биелүүлдэг байхын тулд алгоритм сайн зохиогдсон байх нь мэдээж. Тэгвэл, сайн алгоритм дараах үндсэн чанаруудыг хангасан байх ёстой гэнэ: Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 14. АЛГОРИТМ 1. Алгоритм нь дараалсан алхмууд буюу үйлдлүүдээс тогтсон байх - алгоритм нь аливаа даалгаврыг гүйцэтгэх төгсгөлөг тооны алхмуудаас бүрдсэн байх (төгсгөлөг байх) 2. Алгоритмын алхам бүр оновчтой, тодорхой бай - алгоритмын алхам бүрт чухам ямар үйлдэл хийгдэх нь тодорхой байх (үнэн зөв байх) 3. Өгөгдлөөрөө ялгаатай ижил төрлийн бодлогыг бодох алгоритм ижил байх (түгээмэл байх) 4. Алгоритм нь үр дүнтэй (ашигтай) байх – алгоритм нь төгсгөлөг алхмын дараа даалгаврыг биелүүлж дуусгасан байх, хэрэв энэ нь боломжгүй бол даруй зогсдог байх; Өөрөөр хэлбэл ямар нэг тодорхой шийдэлд хүрдэг байх (үр дүнтэй байх) Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 15. Алгоритм үр дүнтэй байх шинж Аливаа алгоритм нь төгсгөлөг тооны алхам биелэгдсэний дараа тодорхой бөгөөд нэгэн утгатай үр дүн өгдөг байх ёстой. Тодорхой үр дүн гэдэг нь бодолтын төгсгөлд гарч болох бүх тохиолдолд тохирсон үр дүн байх ёстой гэсэн шаадлага юм. Жишээ нь: ax2 + bx + c = 0 квадрат тэгшитгэлийн бодит шийд нь a, b, c коэффицент болон D = b2 – 4ac дискриминантын утгаас хамаарана. Тэгшитгэлийг бодох үед а коэффицент тэгээс ялгаатай бол квадрат тэгштгэл гэж таниад түүнийг боддог. Гэтэл түүнийг компьютерээр бодох үед a, b, c коэффицентийн утгыг гаднаас ямар нэг аргаар өгөх учраас а коэффицентийн утга заавал тэгээс ялгаатай байх ёстой гэж тооцох нь буруу болно. Харин a, b, c коэффицент ба дискриминантын байж болох бүх тохиолдлыг тооцож тэр бүгдэд тохирсон үр дүнг өгдөг алгоритм байх ёстой. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 16. Алгоритм үр дүнтэй байх шинж Алгоритм үр дүнтэй байхаас гадна нэг ижил мэдээллийг боловсруулан үр дүн нь ямагт ижил байх ёстой гэсэн шаардлагыг мөн тавих бөгөөд үүнийг алгоритмын үр дүн нэгэн утгатай байх шинж гэнэ. Үнэн зөв алгоритм, програмын үг дүнд итгэж болох ба түүний үр дүн нь цаг хугацаа болон бусад хүчин зүйлээс хамаарахгүй, харин зөвхөн боловсруулж байгаа өгөгдөл мэдээллээр тодорхойлогддог. Компьютер нь электрон техник болох учраас техникийн эвдрэл болон хүчдлийн санамсаргүй өөрчлөлт зэргээс шалтгаалан алдаатай үр дүн гарах тохиолдол гарч болно. Иймд ямарч алдаагүй ажиллах ёстой онцгой хэрэглээнд санамсаргүй алдаанаас урьдчилан сэргийлсэн, жишээлбэл тооцоог хэд хэдэн компьютер дээр давхар хийж гарсан үр дүнг жишиж шалгах зэрэг янз бүрийн аргыг хэрэглэдэг юм. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 17. Алгоритм түгээмэл байх шинж Тодорхой бодлогын алгоритмыг зохиохдоо энэ бодлоготой ижил төрлийн (анхны өгөгдлөөрөө ялгаатай байж болох) бүх бодлогыг бодоход хэрэглэж болохоор ерөнхий алгоритмыг зохиох ёстой. Ингэснээр нэг програмыг энэ төрлийн аливаа бодлогыг бодоход хэрэглэх учир бид өөрсдийн хөдөлмөрийг олон дахин хөнгөвчлөх нөхцлийг бүрдүүлнэ. Жишээлбэл: Квадрат тэгшитгэл бодох алгоритмыг а коэффициент ямагт тэгээс ялгаатай байна гэж тооцож зохиовол алгоритм түгээмэл байх шаардлагыг хангахгүйд хүрнэ Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 18. АЛГОРИТМЫН ГРАФИК ДҮРСЛЭЛ БУЮУ БЛОК- СХЕМ Компьютерт зориулсан програмын алгоритмыг хэрхэн бичдэг вэ? Өөрөөр хэлбэл тэмдэглэгээний ямар хэлбэрүүдийг ашиглан алгоритмыг зохиодог вэ? Энд дараах хэлбэрүүд байна: 1. Үгээр илэрхийлэх (эх хэлээр бичих) 2. График дүрслэл (геометрын объектууд ашиглан илэрхийлэх) 3. Хуурмаг код (эх хэл, програмчлалын хэл, математикийн үндсэн тэмдэглэгээнүүд г.м.ийн холимог ямар нэгэн зохиомол, хагас дүрэмжсэн “хэл” ашиглах) 4. Програм (програмчлалын хэл дээр бичих) Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 19. жишээ Эхний хоёр хэлбэртэй танилцъя. Хоёр натурал тооны хамгийн их ерөнхий хуваагчийг (ХИЕХ) олох Евклидийн алгоритмыг үгээр илэрхийлвэл: 1. Хоёр тоо өг 2. Хэрэв хоёр тоо тэнцүү бол аль нэгийг нь хариу болгон аваад алгоритмыг төгсгөх, үгүй бол 3-р алхамд шилжих 3. Хоёр тооны аль ихийг нь тодорхойлох 4. Их тоог их тоо, бага тооны ялгавраар солих 5. 2-р алхамд шилжих гэсэн хэлбэртэй болно. Энэ алгоритм хоёр тоо тэнцүү болох хүртэл хийгдэж, эцэст нь ХИЕХ-ийг гаргаж өгнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 20. Хатуу тогтсон дүрэм байхгүй, нэг өгүүлбэрийг олон янзаар тайлбарлаж болдог, хэтэрхий нуршуу болох магадлалтай г.м. шалтгааны улмаас үгээр илэрхийлэх хэлбэр нь тийм ч өргөн дэлгэрээгүй ажээ. График дүрслэлийн арга түгээмэл хэрэглэгддэг. График дүрслэлээр, алгоритмыг өөр хоорондоо холбогдсон геометр объектуудын дараалал хэлбэрээр илэрхийлдэг. Ийм дүрслэлийг алгоритмын блок-схем хэмээн нэрийднэ. Блок-схемийг бүрдүүлэгч объектуудыг үйлдлийн блокууд гэнэ. Учир нь блок болгон тодорхой нэг эсвэл хэд хэдэн үйлдлийг төлөөлдөг. Тиймээс блокуудыг хооронд нь холбосон шугамыг шилжилтийн шугам гэх бөгөөд энэ нь үйлдэл хийгдэх дарааллыг тодорхойлж өгдөг. Шугамыг заримдаа сумтай, заримдаа сумгүй зурдаг. Бидний хувьд сумтай зурах нь илүү тохиромжтой. Шилжилтийн шугам, блокуудыг нийтэд нь блок- схемийн элементүүд гэдэг. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 21. БЛОК СХЕМИЙН ЭЛЕМЕНТҮҮД Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 22. БЛОК СХЕМИЙН ЭЛЕМЕНТҮҮД Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 23. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 24. Өмнө дурдсан Евклидийн алгоритмын блок-схем Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 25. Блок руу орж буй сумыг оролт, гарч буй шугам буюу сумыг гаралт гэдэг. Ихэнх элемент нэг оролт, нэг гаралттай байдаг бол харин “Нөхцөл шалгах” элемент нэг оролттой, хоёр гаралттай байна. Хоёр гаралтанд нь үнэн ба худал гэсэн утгууд харгалзана. Үнэн гэдгийг 1- ээр, худал гэдгийг 0-ээр илэрхийлнэ. Мөн “тийм”, “үгүй” гэсэн үгээр илэрхийлдэг. Алгоритмын биелэлт ямагт сумын дагуу чиглэлд явагдана. “Оролт” элемент нь компьютерын гараас (keyboard) өгөгдөл оруулах үйлдлийг илэрхийлдэг бол “Гаралт” элемент компьютерын дэлгэцэнд (display) үр дүнг гаргах үйлдлийг илэрхийлнэ. Блок-схемд зөвхөн нэг “Эхлэл”, нэг “Төгсгөл” байна. “Оролт”, “Гаралт”, “Процесс” зэрэг элементийн дотор нэг буюу түүнээс олон харгалзах үйлдлийг бичиж болно. Өөрөөр хэлбэл хэд хэдэн дараалсан “Оролтыг” нэг “Оролтонд”, хэд хэдэн дараалсан “Гаралтыг” нэг “Гаралтанд”, хэд хэдэн дараалсан “Процессыг” нэг “Процесс” дотор нэгтгэн бичиж болно. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 26. Өгсөн тооны абсолют хэмжигдхүүнийг олох алгоритмыг зуръя. Алгоритм дараахь байдлаар ажиллана: 1. Нэг тоо өг 2. Хэрэв уг тоо сөрөг байвал абсолют хэмжигдхүүн нь түүний эсрэг тоо болно, үгүй бол (тоо эерэг үед) абсолют хэмжигдхүүн нь тэр тоо өөрөө байна 3. Абсолют хэмжигдхүүний утгыг дэлгэцэнд хэвлэж гаргана 4. Төгсгөл гэж томъёологдох ажээ. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 27. АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ Элементүүд нийлж тодорхой бүтцийг үүсгэдэг. Эдгээр бүтцийг алгоритмын үндсэн бүтэц (АҮБ) хэмээн нэрийднэ. Ингэснээр алгоритмыг зөвхөн эдгээр бүтцээс тогтсон мэтээр авч үзэх боломжтой. АҮБ-ийн гол онцлог бол тэдгээр нь зөвхөн нэг оролт, нэг гаралттай байна. 3 төрлийн АҮБ байдаг. Энэ нь Процесс, Салаалалт, Давталт юм. Салаалалт бүтэц гүйцэд ба гүйцэд бус гэсэн 2 янз байдаг. Давталт бүтэц нь While (Байхад), Until (Хүртэл), Параметрт гэсэн 3 хэлбэртэй байна. Эд бүгдийн схемийг дараах хүснэгтэд харууллаа. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 28. АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ Алгоритмыг төрлөөр нь шугаман ба шугаман бус гэж хоёр ангилдаг. Шугаман алгоритм (Linear algorithms) Зөвхөн Процесс бүтцээс тогтсон алгоритм нь шугаман алгоритм болно. Учир нь түүний биелэлт зөвхөн нэг чиглэлд, дээрээс доошоо, эхлэлээс төгсгөл рүү шууд “урсана”. Шугаман алгоритмын жишээнүүд авч үзье. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 29. Жишээ 1. (З+3)*(3+4)-23 илэрхийллийг бодох алгоритм: 1. Алгоритм эхлэнэ. 2. 3 дээр 3-ыг нэмээд a-д утга болгож өгнө. 3. 3 дээр 4-ийг нэмээд b-д утга болгож өгнө. 4. 23-ийг олоод с-д утга болгож өгнө. 5. a-г b-ээр үржүүлж, с-г нэмэхэд гарах хариуг d-д утга болгож өгнө. 6. d-ийн утгыг дэлгэцэнд хэвлэж гаргана. 7. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 30. Жишээ 2. Өгсөн x-ийн хувьд y=5*x2+3*x функцыг бодох алгоритм: 1. Алгоритм эхлэнэ. 2. x-ийн утгыг гаднаас оруулж өгнө. 3. 5*x2+3*x илэрхийллийг бодоод гарах хариуг y-д утга болгож өгнө. 4. y-ийн утгыг дэлгэцэнд хэвлэж гаргана. 5. Алгоритм төгсөнө. Энд, гаднаас тоо оруулмагц тэр нь x-ийн утга болон очих ажээ. Тэгээд бодолт хийгдэж, үр дүн дэлгэцэнд хэвлэгдэж байна. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 31. Жишээ 3. Гурвалжны талууд a, b, c болно. Дараах: cosA = (b2 + c2 – a2)/ (2 * b * c) sinB = (b * sinA) / a C = 180o – (A + B) томъёонуудын тусламжтайгаар түүний A, B, C өнцгүүдийг тодорхойл (градусаар). Санамж: arccos, arcsin тригонометрийн урвуу функцуудын утга радианаар илэрхийлэгддэг гэдгийг сануулъя. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 32. 1.Алгоритм эхлэнэ. 2.a-ийн утгыг гаднаас оруулж өгнө. 3.b-ийн утгыг гаднаас оруулж өгнө. 4.c-ийн утгыг гаднаас оруулж өгнө. 5.180/3.14-ийг k-д утга утга болгож өгнө. 6.arccos[(b2 +c2–a2)/(2*b*c)] томъёог бодоод гарах хариуг A_rad-д утга болгож өгнө. 7.arcsin(b*sinA_rad/a) томъёог бодоод гарах хариуг B_rad –д утга болгож өгнө. 8.A_rad-ыг k-аар үржүүлээд A_grad-д утга болгож өгнө. 9.B_rad-ыг k-аар үржүүлээд B_grad-д утга болгож өгнө. 10.C_grad=180o–(A_grad+B_grad) гэж олно. 11.A_rad-ын утгыг дэлгэцэнд хэвлэж гаргана. 12.B_rad-ын утгыг дэлгэцэнд хэвлэж гаргана. 13.C_grad-ын утгыг дэлгэцэнд хэвлэж гаргана. 14.Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 33. Жишээ 4. Хүнээс нэрийг нь асуугаад, дараа нь түүнийг мэндчилэх алгоритм: 1. Алгоритм эхлэнэ. 2. Дэлгэцэнд “Чамайг хэн гэдэг вэ?” гэсэн өгүүлбэрийг хэвлэж гаргана. 3. Хэн нэгэн хүний нэрийг гаднаас оруулж name-д утга болгож өгнө. 4. Дэлгэцэнд “Сайн уу” гэсэн үг хэвлээд араас нь name-ийн утгыг хэвлэж гаргана. 5. Алгоритм төгсөнө. Энэ жишээ өмнөх 3 жишээнээс ялгаатай нь ямар нэг тооцоо хийлгүй, зөвхөн хэрэглэгчтэй хялбар харилцан яриа үүсгэж байна. Алгоритм ажиллангуут хүний нэрийг асууна. Гараас нэр оруулмагц дэлгэцэнд мэндчилгээ хэвлэгдэх болно. Тухайлбал Бат гэж оруулахад “Сайн уу, Бат” гэж гарна. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 34. АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ Шугаман бус алгоритм (Nonlinear algorithms) Алгоритм нь салаалалт юм уу давталт агуулсан бол түүнийг шугаман бус алгоритм гэнэ. Учир нь түүний биелэгдэх чиглэл буюу “урсгал” нь мөчирлөсөн юм уу мушгирсан байдалтай болдог. Тухайн тохиолдолд шугаман бус алгоритм нь зөвхөн салаалалт, эсвэл зөвхөн давталт агуулсан байх бол ерөнхий тохиолдолд салаалалт+давталт агуулсан байна. Жишээ алгоритмууд үзье. Салаалалт. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 35. Жишээ 1. Өгсөн тооны урвууг олдог алгоритм: 1. Алгоритм эхлэнэ. 2. x-ийн утгыг гаднаас оруулна. 3. x0 нөхцөл биелж буй эсэхийг шалгаад хэрэв тийм байвал: [1] 1/x-ийг олж y-д утга болгон өгнө; [2] y-ийн утгыг дэлгэцэнд хэвлэж гаргаад 4-р алхамд шилжинэ; үгүй бол: 4-р алхамд шилжинэ. 4. Алгоритм төгсөнө. Энэ алгоритм бол гүйцэд бус салаалалтын жишээ юм. Учир нь “Нөхцөл шалгах” элементийн хоёр гаралтын зөвхөн нэгэнд нь тодорхой үйлдэл харгалзаж байна. Гаднаас оруулсан тоо 0-ээс ялгаатай байвал л түүний урвууг бодож, дэлгэцэнд гаргах бөгөөд хэрэв 0 байвал бодолт хийхгүй, үр дүн хэвлэхгүй, алгоритм шууд дуусна. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 36. Жишээ 2. Өмнөх алгоритмыг дараах байдлаар зуръя: 1. Алгоритм эхлэнэ. 2. x-ийн утгыг гаднаас оруулна. 3. x0 нөхцөл биелж буй эсэхийг шалгаад Хэрэв тийм байвал: [1] 1/x-ийг олж y-д утга болгон өгнө; [2] y-ийн утгыг дэлгэцэнд хэвлэж гаргаад 4-р алхам руу шилжинэ; үгүй бол: Хязгааргүй!” гэсэн мэдэгдлийг дэлгэцэнд гаргаад 4-р алхам руу шилжинэ 4. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 37. Харин энэ алгоритм бол гүйцэд салаалтын жишээ юм. Учир нь “Нөхцөл шалгах” элементийн хоёр гаралтанд хоёуланд нь тодорхой үйлдлүүд харгалзаж байна. Гаднаас оруулсан тоо 0-ээс ялгаатай байвал түүний урвууг бодож, дэлгэцэнд гаргаад алгоритм дуусна. Эсрэгээр 0 байвал бодолт хийлгүйгээр дэлгэцэнд “Хязгааргүй!” гэсэн үг хэвлээд алгоритм дуусна. Салаалалт бүтэц дотроо бас Салаалалт бүтцийг агуулсан байж болно. Өөрөөр хэлбэл нөхцөл шалгах үйлдлийн хоёр гаралтын аль нэгэнд, эсвэл хоёуланд нь дахиад нөхцөл шалгах үйлдэл хийгдэж болно. Үгүй яах вэ дээ, модны мөчир дахиад мөчирлөж салаалдагтай л адил гэх үү дээ. Ийм алгоритмын жишээтэй танилцъя. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 38. Жишээ 3. Бат, Болд хоёрын насыг нь асуугаад, тэдгээрийг оруулмагц хэн нь насаар ах болохыг мэдээлж гаргадаг алгоритм: 1. Алгоритм эхлэнэ. 2. Дэлгэцэнд “Бат хэдэн настай вэ?” гэж гаргана. 3. Батын насыг гаднаас age1-т утга болгож оруулна. 4. Дэлгэцэнд “Болд хэдэн настай вэ?” гэж гаргана. 5. Болдын насыг гаднаас age2-т утга болгож оруулна. 6. age1=age2 нөхцөл биелж буй эсэхийг шалгаад . 7. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 39. ЛОГИК ХОЛБООС. Бидний үзсэн дээрх жишээнүүдэд, “Нөхцөл шалгах” элементийн тоо дотор нь бичигдсэн нөхцлийн тоотой тэнцүү байна. Өөрөөр хэлбэл нэг нөхцөл шалгадаг элемент дотор нэг л нөхцөл бичигдсэн байна. Тэгвэл And (Ба), Or (Буюу) гэсэн логик холбоосуудыг хэрэглэн нэг нөхцөл шалгадаг элемент дотор хоёр буюу түүнээс олон нөхцлийг бичиж болдог. Логик холбоосыг хоёр нөхцлийн дунд тавьдаг. And холбоос нь түүний хоёр талын нөхцөл хоёулаа үнэн тохиолдолд үнэн гэсэн хариу өгөх бөгөөд аль нэг нөхцөл л худал болчихвол худал гэсэн хариу гаргана. Тиймээс энэ холбоосыг логик үржилт хэмээн нэрийднэ. Or холбоос нь түүний хоёр талын нөхцлийн аль нэг нь үнэн байвал үнэн гэсэн хариу өгөх бөгөөд хоёр талын нөхцөл хоёулаа худал тохиолдолд л худал гэсэн хариу гаргана. Тиймээс энэ холбоосыг логик нэмэлт хэмээн нэрийднэ. Логик холбоос хэрэглэж буй тохиолдолд гол анхаарах зүйл бол Ба, Буюугийн ялгааг зөв ойлгох явдал юм. Дараах жишээнүүдийг үзье. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 40. Жишээ 4. Өгсөн a тоо [0,20] завсарт байвал түүнийг 2-оор үржүүлэх, энэ завсарт орохгүй бол 2-оор нэмэх алгоритм: 1. Алгоритм эхлэнэ. 2. a-ын утгыг гаднаас оруулна. 3. Хэрэв a³0 ба a£20 байвал: a-ийн утгыг 2 дахин ихэсгээд 4-р алхамд шилжинэ; үгүй бол: a-ийн утгыг 2-оор ихэсгээд 4-р алхамд шилжинэ. 4. a-ын утгыг дэлгэцэнд хэвлэж гаргана. 5. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 41. Энэ жишээнд, a тоо [0,20] завсарт орших уу гэсэн нөхцлийг “(a>=0) And (a<=20)” гэж бичсэн байна. Мэдээж a0 ба a20 үед л a[0,20] байна гэж үзнэ. Уг илэрхийлэл хэзээ худал байх вэ? And холбоос түүний хоёр талын аль нэг нөхцөл л худал бол худал гэсэн хариу гарна. Тиймээс, гаднаас оруулсан утга 0-ээс бага юм уу 21-ээс их болчихвол худал болно. Түүнчлэн логик холбоос ашигласны ачаар блок-схем зөвхөн ганц дан Салаалалт бүтцийг агуулжээ. Хэрэв And оруулаагүй бол бид давхар салаалалт хийх байсан. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 42. Жишээ 5. Өмнөх жишээний бодлогыг дараах байдлаар томъёолж болно. Өгсөн a тоо [0,20] завсрын гадна байвал түүнийг 2-оор ихэсгэх, энэ завсарт орох бол 2-оор үржүүлэх алгоритм: 1. Алгоритм эхлэнэ. 2. a-ын утгыг гаднаас оруулна. 3. Хэрэв a<0 буюу a>20 байвал: a-ийн утгыг 2-оор ихэсгээд 4-р алхамд шилжинэ; үгүй бол: a-ийн утгыг 2 дахин ихэсгээд 4-р алхамд шилжинэ. 4. a-ын утгыг дэлгэцэнд хэвлэж гаргана. 5. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 43. ДАВТАЛТ. Алгоритмд яагаад давталт орж ирдэг вэ? Өгсөн бодлогыг хялбар аргаар түргэн шуурхай бодохын тулд. Гэхдээ алгоритмдаа давталт ашиглах хэрэгцээ шаардлага байгаа эсэхийг тухайн бодлогын нөхцөл тодорхойлно. Ж.нь ийм бодлого байна. “2-оос 10 хүртэлх бүх тэгш тоог дэлгэцэнд хэвлэ”. Үүнийг бид ямар ч давталт ашиглалгүй зүгээр шугаман алгоритм зохион гүйцэтгэж болно. Ингэхдээ гаралтын элементийг 5 удаа эсвэл нэг удаа ашиглана: Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 44. Жишээ 1. 2-оос 200 хүртэлх бүх тэгш тоог дэлгэцэнд хэвлэх алгоритмд While төрлийн нөхцөлт давталт ашигласан байдал: 1. Алгоритм эхлэнэ. 2. k гэсэн хувьсагчид 2 гэсэн утга онооно. 3. k-ийн утга 200-аас хэтрээгүй эсэхийг шалгаад хэрэв тийм байвал: [1] k-ийн утгыг дэлгэцэнд хэвлэж гаргана; [2] k-ийн утгыг 2-оор ихэсгээд 3-р алхамд шилжинэ; үгүй бол: 4-р алхамд шилжинэ. 4. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 45. Жишээ 2. Дээрх бодлогын алгоритмд Until төрлийн нөхцөлт давталт ашигласан байдал: 1. Алгоритм эхлэнэ. 2. k гэсэн хувьсагчид 2 гэсэн утга онооно. 3. k-ийн утгыг дэлгэцэнд хэвлэж гаргана. 4. k-ийн утгыг 2-оор ихэсгэнэ. 5. k-ийн утга 200-аас хэтэрсэн эсэхийг шалгаад хэрэв тийм байвал: 6-р алхамд шилжинэ; үгүй бол: 3-р алхамд шилжинэ. 7. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 46. Жишээ 3. Өмнөх бодлогын алгоритмд Параметрт давталт ашигласан байдал: 1. Алгоритм эхлэнэ. 2. k=2 гэсэн утга авна. 3. Хэрэв k£200 байвал: [1] k-ийн утгыг дэлгэцэнд хэвлэж гаргана; [2] k-ийн утгыг 2-оор ихэсгээд 3-р алхамд шилжинэ; үгүй бол: 4-р алхамд шилжинэ. 4. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 47. Жишээ 4. z(x,y)=x2+y2 функцыг x[-5,5], y[-5,5] завсарт (x, y нь бүхэл тоо) бодуулах алгоритм: 1. Алгоритм эхлэнэ. 2. x=-5 гэсэн утга авна. 3. Хэрэв x£5 байвал: [1] y=-5 гэсэн утга авна; [2] Хэрэв y£5 байвал: [[1]] z=x2+y2 томъёог бодно; [[2]] z-ийн утгыг дэлгэцэнд хэвлэнэ; [[3]] y-ийн утгыг 1-ээр ихэсгээд [2]-р алхамд шилжинэ; үгүй бол: [3]-р алхамд шилжинэ; [3] x-ийн утгыг 1-ээр ихэсгээд 3-р алхамд шилжинэ. үгүй бол: 4-р алхамд шилжинэ. 4. Алгоритм төгсөнө. Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ www.emust.edu.mn
  • 48. 48 Ашигласан материал 1. Ю. Намсрай, Ц. Дүүрэнбаяр “Алгоритмын үндэс”, 2005 он 2. Д. Гармаа “Алгоритм ба програмчлал”, 2014 он 3. “Алгортм and Programming Language and Technology “, 2010 year 4. Peter Smith, “Algorithms in Programming language“, 2012 year 5. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein “INTRODUCTION TO ALGORITHMS” 6. Simon Harris and James Ross, “BEGINNING ALGORITHMS”