More Related Content
Similar to U.cs101 lecture 6
Similar to U.cs101 lecture 6 (11)
U.cs101 lecture 6
- 1. ВИРТУАЛ ТЕХНОЛОГИЙН ТЭНХИМ,
Е-НЭЭЛТТЭЙ ИНСТИТУТ
Алгоритм ба програмчлал
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
www.emust.edu.mn
Лекц - 6
- 2. U.CS101- Алгоритм ба програмчлал
Сэдэв: Давталт, түүний төрөл, энгийн
давталт боловсруулалт, түүний хэрэглээ
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
www.emust.edu.mn
- 3. Агуулга:
01 Давталт
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
www.emust.edu.mn
01
02
02
03
Өмнөх нөхцөлт давталт
Дараах нөхцөлт давталт
- 4. Судлах зүйл:
Давталт, түүний төрлүүд, дараах болон өмнөх
нөхцөлт давталтуудыг ашигласан жишээнүүдийг үзэх
болно.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 5. Давталт
Бүлэг үйлдлийг давтан биелүүлэх процессийг
давталт буюу цикл гэнэ.
Алгоритмын нэг юмуу хэсэг алхам хэд хэдэн удаа
давтагдан биелэгдэж байвал уг алгоритмыг
давталттай алгоритм гэнэ.
Давтагдан биелэгдэж байгаа алхамуудыг давталтын
бие буюу цикл гэж нэрлэдэг. Өөрөөр хэлбэл:
Давталтын бие нь нэг буюу хэд хэдэн алхамуудын
дараалал байна.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 6. Давталт
Давталтын хувьд давталтыг төгсгөх нөхцөл, уг
нөхцлийг үнэн худлаас хамааран биелэгдэх ба үл
биелэгдэх алхамууд шаардлагатай.
Давталтыг төгсдөг болгохын тулд нөхцөл шалгах
үйлдлийг ашигладаг.
Давталтыг төгсгөх нөхцөл нь давталтын төгсгөлгүй
үргэлжлэх үйл ажиллагааг зогсоох үүрэгтэй.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 7. Давталт
Аливаа бодлогын алгоритмыг зохиохдоо түүнийг
давталттайгаар илэрхийлэх зорилго байнга тавьж
байх хэрэгтэй. Алгоритмд давталт хэрэглэснээр
програм зохиох ажил маш их хөнгөвчлөгддөг. Энэ
бол програмчлалын нэг үндсэн зарчим юм.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 8. Давталт
Давталтыг явагдаж байгаа хэлбэрээс нь хамааруулан 2
ангилдаг. Үүнд:
1. Өмнөх нөхцөлт давталт
2. Дараах нөхцөлт давталт
3. Параметрт давталт
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 9. Өмнөх нөхцөлт давталт
Төгсгөх нөхцөлийг
давталтын бие
биелэгдэхийн өмнө
шалгаж байгаа
давталтыг өмнөх нөхцөлт
давталт гэнэ. Өмнөх
нөхцөлт давталтыг
алгоритмд дараах
хэлбэрээр дүрсэлнэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
төгсгөх
нөхцөл
1
Давталтын бие
0
- 10. Өмнөх нөхцөлт давталт
Төгсгөх нөхцөлийг
шалгаж хэрэв “үнэн”
утгатай буюу нөхцөл
биелж байвал давталтын
бие биелэгдэнэ.
Харин төгсгөх нөхцөл
биелэгдэхгүй болсон
тохиолдолд давталт
дуусна.
төгсгөх 0
нөхцөл
1
алхам 1
...
алхам n
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 11. Өмнөх нөхцөлт давталт
Өмнөх нөхцөлт давталт хэрэглэхдээ дараах
шинжүүдийг анхаарах хэрэгтэй. Үүнд:
1. Төгсгөх нөхцөлийн шалгаж давталт эхэлдэг учир
энэ нөхцөл давталт эхлэхээс өмнө тодорхой
утгатай болсон байх ёстой.
2. Төгсгөх нөхцөлийг шалгаж давталт эхэлдэг учир
анхнаасаа биелэгдэхгүй буюу нөхцөл худал
утгатай байвал давталтын бие биелэгдэхгүй шууд
давталтын дараах үйлдэлд шилжинэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 12. Өмнөх нөхцөлт давталт
3. Давталтын төгсгөх нөхцөлд нөлөөлөх, Өөрөөр
хэлбэл түүний утга өөрчлөгдөхөд нөлөөлөх ямар
нэг алхам давталтын бие дотор заавал орсон
байх ёстой. Эс тэгвээс нөхцөл үргэлж “үнэн”
утгатай байж мөнхийн давталт үүсэхэд хүрнэ.
4. Давталтын бие биелэгдэх бүрд түүнийг төгсгөх
нөхцийн утга өөрчлөгдөх учраас (зөв нөхцөл
бичсэн тохиолдолд) нөхцөлийн утга “худал”
болсон үед давталт төгсөж давталтын дараах
үйлдэлд шилжинэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 13. Өмнөх нөхцөлт давталт
Өмнөх нөхцөлт давталтын хувьд давталтын бие
төгсгөлөг удаа биелэгдэхэд “худал” утгатай болдог
тийм нөхцөлийг зөв нөхцөл гэнэ.
5. Давтах үйлдэл төгсгөх нөхцөл “ худал ” утгатай
болох хүртэл давтагддаг учир хэдэн удаа
давтагдах нь алгоритмыг биелүүлэхээс өмнө
тодорхойгүй байдаг.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 14. Жишээ 1
1-ээс n хүртэлх
тооны нийлбэрийг
олдог алгоритмыг
блок схемээр
илэрхийл.
эхлэл
S=0, i=1, n
- +
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
S=S+I
i=i+1
i<=n
S
төгсөв
- 15. Жишээ 1
Энэ давталтын төгсгөх
нөхцөл нь i<=n ба i
хувьсагчийн утга n-ийн
өгөгдсөн утгаас бага юмуу
тэнцүү бол S=S+I, i=i+1
үйлдлийг давтан
биелүүлнэ. Тэгээд i
хувьсагчийн утга n-ийн
утгаас их болоход давталт
төгсөнө.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- +
S=S+i
i=i+1
эхлэл
S=0, i=1, n
i<=n
S
төгсөв
- 16. Дараах нөхцөлт давталт
Төгсгөх нөхцөлийг
давталтын бие
биелэгдсэний дараа
шалгаж байгаа алгоритмыг
дараах нөхцөлт давталт
гэнэ. Дараах нөхцөлт
давталтыг алгоритмд
дараах хэлбэрээр дүрсэлнэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
Давталтын бие
0 1
төгсгөх
нөхцөл
- 17. Дараах нөхцөлт
давталтанд давталтын
биеийг биелүүлээд дараа
нь төгсгөх нөхцөлийг
шалгаж хэрэв “худал”
утгатай байвал
давталтыг үргэлжлүүлэн
биелүүлдэг.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
алхам 1
...
алхам n
0 1
төгсгөх
нөхцөл
Дараах нөхцөлт давталт
- 18. Дараах нөхцөлт давталт
Дараах нөхцөлт давталт доорх онцлог шинжтэй байна.
Үүнд:
1. Давталтын бие биелсний дараа төгсгөх нөхцөлийг
шалгаад дахин давтах эсэхийг тогтоох учир түүний
бие ядаж нэг удаа заавал биелэгддэг.
2. Нөхцөлд нөлөөлөх, өөрөөр хэлбэл: нөхцөлийн утгыг
өөрчлөх ямар нэг алхам давталтын бие дотор
заавал бичигдсэн байх ёстой.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 19. Дараах нөхцөлт давталт
3. Дараах нөхцөлт давталтын хувьд түүний бие
төгсгөлөг тоон удаа биелэгдэхэд “үнэн” утгатай
болж чадах тийм зөв нөхцөлийг сонгож бичсэн
байх ёстой.
4. Төгсгөх нөхцөл үнэн утгатай болж давталт
дуусахад давталтын дараах үйлдэлд шилжинэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 20. Жишээ 1-г дараах нөхцөлт давталтаар бодъё.
Энд бичсэн давталтанд i
хувьсагчийн утга n
хувьсагчийн өгөгдсөн
утгаас их болтол S=S+I,
i=i+1 үйлдлийг давтан
биелүүлнэ. Өөрөөр хэлбэл:
i хувьсагчийн утга n-ийн
утгаас их болоход давталт
төгёч түүний үр дүнд
1+2+…+n нийлбэрийн утга
S хувьсагчид гарна.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
эхлэл
S=0, i=1, n
i>n
S
төгсөв
+
-
S=S+i
i=i+1
- 21. Жишээ 2 (Арифметик давталт)
Өгөгдсөн тоо анхны тоо мөн эсэхийг шалгах
алгоритм зохио.
Бодолт
Давталтын хувьсагч I-ийн утгыг 2-оос N-1 хүртэл
давтана. Энэ давталт дотороо N нь Iд хуваагдаж
байвал is_prime хувьсагчид худал гэсэн утгыг өгнө. I-
ийн бүх утгуудын хувьд үлдэгдэлгүй хуваагдах нэг ч
тохиолдол гарахгүй бол үүнийг анхны тоо гэж үзнэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 23. Жишээ 3 (итерацийн давталт)
S= sinx+sin(2*x)/2 + sin(3*x)/3+ …… = Σsin(i*x)/i
дарааллын гишүүдийн хувьд |F(i)|<℮ нөхцөл
биелэгдэх хүртэлх нийлбэрийг олох алгоритм зохио.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 24. Бодолт
Нийлбэрийн дүнг хадгалах S хувьсагчид 0 гэсэн
анхны утгыг өгнө. Давталт функцын утгын абсолют
хэмжээ e-гээс бага болтол үргэлжилнэ. Давталт
дотор функцын утгыг бодож гарсан дүнг нийлбэрийн
S хувьсагч дээр нэмж өгнө.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 26. Жишээ 4
Хоёр цифр нь ялгаатай байх бүх хоёр оронтой тоог
олох алгоритмыг блок схемээр илэрхийл.
Бодолт:
Өмнөх нөхцөлтэй давталт тул давталтын нөхцөлийг
эхэнд шалгана. Давталтын хувьсагч J-д 10 гэсэн
анхны утга өгөөд J<100 гэсэн нөхцөл биелэж байвал
давталтыг үргэлжлүүлнэ. Учир нь хоёр оронтой тоо
нь 10-аас 99 хүртэлх тоо байна.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
- 27. Давталт дотор эхний ба
сүүлийн цифрийг олж
хооронд харьцуулж
тэнцүү биш байвал ийм
утгын тоог хадгалах
соunt хувьсагчийг нэгээр
нэмнэ. Нөхцөл
биелэхгүй болмогц
count-ийг хэвлэнэ.
Виртуал Технологийн Тэнхим, Е-НЭЭЛТТЭЙ ИНСТИТУТ
Editor's Notes
- Cover 1
- Namsrai
- Math temdeglegee, hyalbar todorhoiloh bolomjuud, mergejiliin chiglel daguu