Lecture 1 2018

You might also like

You are on page 1of 39

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

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

Алгоритм ба програмчлал

Лекц - 1

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


1
U.CS101- Алгоритм ба програмчлал

Сэдэв: Алгоритмын тухай ойлголт

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


www.emust.edu.mn
70 ОНООГ ДҮГНЭХ ЖУРАМ

 Ирц, идэвхи – 10
 сорил – 20
 лаборатори – 20
 бие даалт – 20

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


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
АЛГОРИТМ
(З+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
АЛГОРИТМЫН ГРАФИК ДҮРСЛЭЛ БУЮУ БЛОК-
СХЕМ
Компьютерт зориулсан програмын алгоритмыг хэрхэн бичдэг вэ?
Өөрөөр хэлбэл тэмдэглэгээний ямар хэлбэрүүдийг ашиглан
алгоритмыг зохиодог вэ? Энд дараах хэлбэрүүд байна:
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
Өгсөн тооны абсолют
хэмжигдхүүнийг олох
алгоритмыг зуръя. Алгоритм
дараахь байдлаар ажиллана:
1. Нэг тоо өг
2. Хэрэв уг тоо сөрөг байвал
абсолют хэмжигдхүүн нь
түүний эсрэг тоо болно,
үгүй бол (тоо эерэг үед)
абсолют хэмжигдхүүн нь
тэр тоо өөрөө байна
3. Абсолют хэмжигдхүүний
утгыг дэлгэцэнд хэвлэж
гаргана
4. Төгсгөл гэж томъёологдох
ажээ.

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


www.emust.edu.mn
АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ
Элементүүд нийлж тодорхой бүтцийг үүсгэдэг. Эдгээр бүтцийг
алгоритмын үндсэн бүтэц (АҮБ) хэмээн нэрийднэ. Ингэснээр
алгоритмыг зөвхөн эдгээр бүтцээс тогтсон мэтээр авч үзэх
боломжтой. АҮБ-ийн гол онцлог бол тэдгээр нь зөвхөн нэг
оролт, нэг гаралттай байна.
3 төрлийн АҮБ байдаг. Энэ нь Энгийн, Салаалалт, Давталт
юм. Салаалалт бүтэц гүйцэд ба гүйцэд бус гэсэн 2 янз байдаг.
Давталт бүтэц нь While (Байхад), Until (Хүртэл), Параметрт
гэсэн 3 хэлбэртэй байна. Эд бүгдийн схемийг дараах
хүснэгтэд харууллаа.

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


www.emust.edu.mn
АЛГОРИТМЫН ҮНДСЭН БҮТЭЦ

Алгоритмыг төрлөөр нь шугаман ба шугаман бус гэж хоёр


ангилдаг.

Шугаман алгоритм (Linear algorithms)


Зөвхөн энгийн бүтцээс тогтсон алгоритм нь шугаман алгоритм
болно. Учир нь түүний биелэлт зөвхөн нэг чиглэлд, дээрээс
доошоо, эхлэлээс төгсгөл рүү шууд “урсана”.

Шугаман алгоритмын жишээнүүд авч үзье.

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


www.emust.edu.mn
Жишээ 1. Өгсөн x-ийн хувьд y=5*x2+3*x
функцыг бодох алгоритм:
1. Алгоритм эхлэнэ.
2. x-ийн утгыг гаднаас оруулж өгнө.
3. 5*x2+3*x илэрхийллийг бодоод гарах
хариуг y-д утга болгож өгнө.
4. y-ийн утгыг дэлгэцэнд хэвлэж гаргана.
5. Алгоритм төгсөнө.

Энд, гаднаас тоо оруулмагц тэр нь x-ийн утга


болон очих ажээ. Тэгээд бодолт хийгдэж, үр дүн
дэлгэцэнд хэвлэгдэж байна.

Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ


www.emust.edu.mn
Жишээ 2. Гурвалжны талууд 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
Жишээ 3. Хүнээс нэрийг нь асуугаад, дараа нь
түүнийг мэндчилэх алгоритм:
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
Жишээ 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
Ашигласан материал
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”
39

You might also like

  • Lecture 11
    Lecture 11
    Document24 pages
    Lecture 11
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Lecture 6 2018
    Lecture 6 2018
    Document50 pages
    Lecture 6 2018
    Amarsaikhan Tuvshinbayar
    100% (3)
  • Lecture 15
    Lecture 15
    Document40 pages
    Lecture 15
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lec1-1 Corporate Activity Shine
    Lec1-1 Corporate Activity Shine
    Document61 pages
    Lec1-1 Corporate Activity Shine
    Amarsaikhan Tuvshinbayar
    0% (1)
  • Lecture 7 20108
    Lecture 7 20108
    Document47 pages
    Lecture 7 20108
    Amarsaikhan Tuvshinbayar
    75% (4)
  • Programming Lec 6
    Programming Lec 6
    Document51 pages
    Programming Lec 6
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 12
    Lecture 12
    Document34 pages
    Lecture 12
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 13
    Lecture 13
    Document46 pages
    Lecture 13
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Lecture 9
    Lecture 9
    Document46 pages
    Lecture 9
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture - 10
    Lecture - 10
    Document35 pages
    Lecture - 10
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • 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)
  • Koosen 2018 Algorithm 2
    Koosen 2018 Algorithm 2
    Document48 pages
    Koosen 2018 Algorithm 2
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 2 2018
    Lecture 2 2018
    Document33 pages
    Lecture 2 2018
    Amarsaikhan Tuvshinbayar
    100% (1)
  • IT101 Lecture 4
    IT101 Lecture 4
    Document72 pages
    IT101 Lecture 4
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Programming Lec 9
    Programming Lec 9
    Document39 pages
    Programming Lec 9
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 3 2018
    Lecture 3 2018
    Document42 pages
    Lecture 3 2018
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 3
    Lecture 3
    Document72 pages
    Lecture 3
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 3
    Lecture 3
    Document72 pages
    Lecture 3
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Baikal Hotolbor
    Baikal Hotolbor
    Document2 pages
    Baikal Hotolbor
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Baikal Hotolbor
    Baikal Hotolbor
    Document2 pages
    Baikal Hotolbor
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Programming Lec 7
    Programming Lec 7
    Document57 pages
    Programming Lec 7
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Programming Lec 6
    Programming Lec 6
    Document51 pages
    Programming Lec 6
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Programming Lec 8
    Programming Lec 8
    Document32 pages
    Programming Lec 8
    Amarsaikhan Tuvshinbayar
    100% (1)
  • Lecture 2
    Lecture 2
    Document80 pages
    Lecture 2
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • PL - 3
    PL - 3
    Document47 pages
    PL - 3
    Amarsaikhan Tuvshinbayar
    No ratings yet
  • Lecture 1
    Lecture 1
    Document54 pages
    Lecture 1
    Amarsaikhan Tuvshinbayar
    100% (2)
  • Koosen 2018 Algorithm Programming 3
    Koosen 2018 Algorithm Programming 3
    Document46 pages
    Koosen 2018 Algorithm Programming 3
    Amarsaikhan Tuvshinbayar
    100% (1)
  • Programming Lec 4
    Programming Lec 4
    Document39 pages
    Programming Lec 4
    Amarsaikhan Tuvshinbayar
    No ratings yet