Алгоритм: Засвар хоорондын ялгаа

Content deleted Content added
б робот Нэмж байна: ml:അല്‍ഗൊരിതം; cosmetic changes
б робот Нэмж байна: war:Algoritmo
Мөр 180: Мөр 180:
[[vi:Thuật toán]]
[[vi:Thuật toán]]
[[wa:Algorisse]]
[[wa:Algorisse]]
[[war:Algoritmo]]
[[yi:אלגאריטם]]
[[yi:אלגאריטם]]
[[zh:算法]]
[[zh:算法]]

19:26, 25 Долоодугаар сар 2009-ий байдлаарх засвар

Аливаа ажил болоод үйлдлийг үр бүтээмжтэйгээр гүйцэтгэх аргачлалыг алгоритм гэнэ. Алгоритм гэдэг үг нь гарлын хувьд одон оронч, математикч Аль-Хорезмын нэрнээс гаралтай юм.


8. Алгоритмын төрлүүд. Шугаман, салаалсан, давталттай алгоритмууд.

.

9. Алгоритмыг зохиох аргачлал. Алгоритмыг шалгах, шинжлэх, сайжруулах

Алгоритм зохионо гэдэг нь тухайн бодлогыг бодох үйл ажиллагааг гүйцэтгэгчийг үйлдлүүдээр нарийвчлан задалж, уг үйлдлүүдийг ямар дэс дарааллаар гүйцэтгэхийг тодорхойлж өгнө гэсэн үг юм. Бодлогын алгоритмыг зохиоход алгоритмыг алхам алхмаар боловсруулах аргыг ихэвчлэн хэрэглэдэг. Энэ аргын үндсэн санаа нь бодлогыг сайтар задлан шинжилсний эцэст таньж мэдсэн түүний өвөрмөц шинж чанарыг үндэслэн эхлээд бодлогын алгоритм ямар ямар хэсгүүдээс тогтохыг харуулсан бүдүүвч алгоритм зохиож цаашаа түүнийгээ шат дараалан гүйцэтгэгчийн үйлдлүүдээр нарийвчлан задлах явдал юм. Алгоритмыг боловсруулах энэ аргыг жишээн дээр тайлбарлая. Жишээ нь: Өгсөн n гэсэн натурал тоонуудын цифрүүдийн нийлбэрийг олох алгоритмыг зохиоё. Бодолт: өгсөн тооны аравтын тооллын системийн бичлэг дараахь хэлбэртэй байдаг гэж үзвэл, N=ak*10k+ak-1*10k-1+……+a1*10+a0; (1) үүнд ak, ak-1, …., a1, a0 нь өгсөн тооны цифрүүд юм. Бидний зорилго бол эдгээр цифрүүдийг олоод нийлбэрчлэх явдал билээ. (1) томъёоноос үзвэл бодлогын алгоритм нь өгсөн тооны цифрүүдийг олох, тэдгээрийг нийлбэрчлэх гэсэн 2 үндсэн хэсэгтэй байна. Ингээд бодлогын алгоритмыг бүдүүвчилсэн байдлаар дүрсэлвэл,









болно. Одоо цифрүүдийг олох хэсгийг нарийвчлан задлая. (1) тэгшитгэлийн 2 талыг 10-т хуваавал, n/10=(ak*10k-1+…..+a1)+a0/10; болно. Эндээс үзвэл n гэсэн тооны эцсийн цифр a0 нь n тоог 10-т хуваахад гарах үлдэгдэл болж байна. Энэ хуваалтын бүхэл хэсэг болох ak*10k-1+…..+a1; -ийг 10-т хуваахад гарах үлдэгдэл нь a1 болно. үүнтэй төсөөтэйгээр дараа дараагийн цифрүүдийг олж болох бөгөөд ak-2 олох хүртэл буюу ээлжит хуваалтын бүхэл хэсэг тэгтэй тэнцүү болтол хуваалтыг үргэлжлүүлэх хэрэгтэй гэдгийгхялбархан тогтоож болно. Иймээс n гэсэн тооны цифрүүдийг олох асуудал нь дээр дурьдсан хуваалтын үлдэглүүдийг олоход шилжиж байна. Бидний дараагийн зорилго бол m,k-г олох явдал юм. Ямар нэгэн тоог 10-т хуваахад гарах бүхэл хэсгийг олоход уг тооноосоо арвын давталтуудыг хасах зарчмыг хэрэглэнэ. Эхлээд тухайн тоогоо 10-тай жишнэ. Хэрвээ уг тоо 10-тай тэнцүү эсвэл 10-аас их байвал бүхэл хэсгийг тоолох тоолуурын утгыг нэгээр нэмэгдүүлэхийн зэрэгцээгээр тухайн тоогоо 10-аар багасгаж 10-тай жиших үйлдлийг давтана. Эсрэг тохиолдолд тоолуурын утга нь хуваалтын бүхэл хэсэг, тухайн тоо өрөө хуваалтын үлдэгдэл болох тул дараагийн үйл ажиллагаанд шилжинэ. Манай тохиолдолд эхлээд 10-тай жиших тоо нь N, хуваалтын бүхэл хэсэг болон үлдэгдэл олдсон үед гүйцэтгэх үйлдэл нь S=S+M; ба M тэгээс ялгаатай үед N-ийг M-ээр сольж дараагийн бүхэл хэсэг болон үлдэгдлийг олох ёстой гэдгийг анхаарвал бодлогын алгоритм нь дараахь хэлбэртэй байна. Одоо алгоритмыг шалгах асуудлыг авч үзье. Аливаа алгоритмыг зохиосны дараа түүнийг шалгах ёстой. Алгоритм зөв үү? гэдэгт хариулахын тулд алгоритмыг шалгах өгөгдлүүдийг сонгоно. Эдгээр өгөгдлүүдийг сэжигтэй цэгүүд ч гэж нэрлэдэг. Сэжигтэй цэгүүдийн хувьд үр дүн нь илэрхий ба алгоритмыг гүйцэтгэхэд хялбар байх хэрэгтэй. Сонгосон өгөгдөл бүрийн хувьд алгоритмыг гүйцэтгэхдээ хэмжигдхүүнүүдийн утгуудыг биелүүлсэн алхам бүрт хүснэгтэнд бичиж тэмдэглэнэ. Ийм хүснэгтийг утгын хүснэгт гэнэ. Дээрх алгоритмыг шалгах n-ын утгуудыг 1, 25, 100 гэж сонгон алгоритмыг гүйцэтгэвэл утгын дараахь хүснэгт гарна.

Хэм-ий нэр N S M 1 1 (1) 0 2 25 0 0 15 1 5 5 2 2 (7) 0 3 100 0 0 90 1 80 2 : : 10 9 0 0 10 10 0 0 0 1 1 (1) 0

Дээрх хүснэгтэнд хариуг хаалтанд хийсэн болно. N нь их тоо байхад энэ алгоритмын (1) алхам олон удаа давтагдана. Жишээ нь: а) N=100 байхад (1) алхмын хасах үйлдлийг 11 удаа гүйцэтгэсний эцэст хариу гарна. Одоо алгоритмын хасах үйлдлийн тоог багасган алгоритмыг сайжруулах зорилт тавъя. Бид 10k<=N (2) нөхцлийг хангах хамгийн их натурал тоо k-г буюу 10k зэрэгтийг олсон гэж үзье. Ингээд дээрх алгоритмын (1) алхмын оронд N=N-10k (3) алхмыг (2) нөхцөл биелэхгүй болтол гүйцэтгэвэл (3) гэсэн хасах үйлдлийн тоо нь өгсөн N-ын ахмад оронгийн цифр болно. Цаашид 10k илэрхийллийн утгыг 10 дахин багасган (3) алхмыг давтаж үүнтэй адилаар дараа дараагийн цифрүүдийг олно. Энэ алгоритмаар N=100 үед 8 ширхэг, N=9349 үед 43 ширхэг арифметикийн үйлдлийг тус тус гүйцэтгэхэд хариу гарна гэдгийг хялбархан тогтоож болно. Эндээс харвал 2-р хувилбар нь өмнөх хувилбараасаа хугацааны хувьд хэмнэлттэй алгоритм юм. Ер нь аливаа алгоритмд компъютерийн санах ой ба бодолтын хугацааг аль болохоор хэмнэсэн байх шаардлагыг тавьдаг.

9. Алгоритм. Алгоритмын чанар ба үндсэн алхмууд. Алгоритмыг дүрслэх.

Хүмүүс өдөр тутмын үйл ажиллагаандаа олон тооны алгоритмыг гүйцэтгэж байдаг боловч үүнийгээ тэр болгон мэдэрдэггүй байна. Тухайлбал, тухайн өдрийн ажил төрөл болон тодорхой нэгэн ажлыг хийхдээ тогтсон дэс дарааллыг мөрддөг. Алгоритмын тухай ойлголт нь нэгэн төрлийн бодлогуудыг бодох ерөнхий арга олж тогтоох гэсэн оролдлоготой уялдан математикт анх үүссэн. Алгоритм гэдэг нэр томъёог арифметикийн 4-н үйлдлийг гүйцэтгэх дүрэм боловсруулсан Узбекийн математикч Мухаммед Ибн Мусса Аль-Хорезмын нэрнээс гаралтай гэж үздэг. Орчин үед алгоритмын тухай онол нь математикийн шинжлэх ухааны нэг салбар болон хөгжихийн зэрэгцээгээр компъютер дээр бодлого бодоход маш чухал үүрэг гүйцэтгэж байна

  • Бодлогын хариуг гаргахын тулд бодлоыг өгөгдөл ба бодолтын явцад гарах завсрын хэмжигдхүүнүүд дээр хийх үйлдлүүдийн агуулга болон дэс дарааллыг тодорхойлж байгаа зааврыг алгоритм гэнэ. Алгоритмаар заасан бодлогыг бодох үйл ажиллагааг биелүүлэгчийг алгоритмыг гүйцэтгэгч гэнэ. Аливаа алгоритмыг тодорхой гүйцэтгэгчид зориулж зохионо. Алгоритмыг гүйцэтгэгч нь хүн эсвэл компъютер байна.

• Алгоритмууд нь дараахь чанаруудтай байна. 1. Алгоритм нь өгөгдөл эсвэл өмнөх алхмуудын хэмжигдхүүнүүдээр тодорхой дүрмийн дагуу шинэ хэмжигдхүүнүүдийг олох тусгаар тусгаар алхмуудад хуваагдсан байна. Энэ чанарыг алгоритмын дискрет чанар гэнэ. 2. Алгоритмын аливаа алхмын үйлдлийг гүйцэтгэгч нэгэн утгатайгаар ойлгохын зэрэгцээгээр гүйцэтгэж чаддаг байна. Энэ нь алгоритмын тодорхой байх чанар юм. 3. Алгоритм нь төгсгөлөг тооны алхамтай байна. 4. Алгоритмын аливаа алхам болон алгоритмыг бүхэлд нь биелүүлэхэд тодорхой үр дүн гардаг байх ёстой. Үүнийг алгоритмын үр дүнтэй байх чанар гэнэ. 5. Алгоритм нь зөвхөн тухайн өгөгдөлд төдийгүй уг өгөгдөлтэй ижил төрлийн бүх өгөгдөлд хүчинтэй байна. Энэ чанарыг алгоритмын нийтлэг чанар гэнэ. • Алгоритмын үндсэн алхмууд 1. Мэдээллийг оруулах алхам Мэдээллийг боловсруулахын тулд түүнийг компъютерийн санах ойд урьдчилан бичсэн байх шаардлагатай. Иймээс алгоритмд хувьсагчдын анхны утгуудыг машинд оруулах алхам зайлшгүй байх ба үүнийг компъютерийн гарын тусламжтайгаар хийдэг. Компъютерт оруулж байгаа мэдээллийн санах ойд хадгалагдах хаягыг мэдээллийг оруулах алхамдаа зааж өгнө. Энэ алхам биелэгдэхэд хувьсагчийн утга нь хэрэгтэй болно. 2. Бодолтын утга олгох алхам Компъютерийн нэг үндсэн үүрэг нь мэдээллийг хувирган боловсруулах явдал юм. Алгоритмд тодорхой нэр томъёогоор хэмжигдхүүний утгыг бодож гаргах алхам зайлшгүй гардаг. Энэ алхмыг бодолтын утга олгох алхам гэнэ. Энэ алхам нь утгыг бодож олох гэж байга илэрхийлэл, гарах утгыг хадгалах хаяг гэсэн 2 хэсэгтэй байна. Ямар нэгэн хэмжигдхүүнд утга олгоход хуучин утга нь устдаг гэдгийг анхаарах хэрэгтэй.

3. Мэдээллийг бичиж гаргах алхам Алгоритм ба программаар олсон үр дүнг компъютераас хүнд мэдээлэх нь зайлшгүй юм. Өөрөөр хэлбэл бодлогын хариуг компъютераас бичиж гаргах хэрэгтэй юм. Мэдээллийг гаргах үйлдэл нь олон хэлбэртэй байна. Бид нар мэдээллийг компъютерийн дэлгэцэн дээр бичиж гаргах хэлбэрийг хэрэглэнэ. Энэ алхамд утгыг нь бичиж гаргах гэж буй хэмжигдхүүнүүдийн хаягийг зааж өгнө. 4. Салаалуулах алхам Алгоритмын нэгэн алхмаас өөр алхамд шилжин тэр алхмаас бодолтыг үргэлжлүүлэх боломжийг хангасан үйлдлийг удирдлага шилжүүлэх үйлдэл гэнэ. Энэ үйлдлийг хэрэглэснээр хэсэг алхмыг алгасах, ямар нэгэн алхамд буцаж ирэх зэргээр алхмуудын биелэх дарааллыг алгоритм зохиогч удирдаж чадна. Алгоритмчлах явцад тодорхой нөхцөл шалган уг нөхцөл биелэгдэж байгаа эсэхээс хамааруулан бодолтыг ялгаатай замаар үргэлжлүүлэх шаардлага гардаг. Энэ шаардлагыг хангасан алхмыг нөхцөлт удирдлага шилжүүлэх буюу салаалуулах алхам гэнэ. Нөхцөлт удирдлага шилжүүлэх алхам нь шалгах нөхцөл, нөхцөл биелэгдэх болон биелэгдэхгүй байх 2 тохиолдлын тус бүрт нь бодолтыг үргэлжлүүлэх зам гэсэн 3 элементтэй байна. • Алгоритмыг дүрслэх Алгоритмыг дараахь 3 хэлбэрээр дүрсэлж болно. 1. Хүмүүсийн харилцааны ердийн хэл, 2. Блок-схем, 3. Прграммчлалын хэл Алгоритмыг хүмүүсийн харилцааны ердийн хэлээр дүрслэнэ гэдэг нь алгоритмын алхам бүрийг үг ба өгүүлбэрээр бичнэ гэсэн үг юм. Блок-схем бол алгоритмын / Бодлогын хариуг гаргахын тулд бодлоыг өгөгдөл ба бодолтын явцад гарах завсрын хэмжигдхүүнүүд дээр хийх үйлдлүүдийн агуулга болон дэс дарааллыг тодорхойлж байгаа зааврыг алгоритм гэнэ /бүтцийг нүдэнд харагдахуйц байдлаар харуулан алгоритмыг графикаар дүрслэх хэлбэр юм. Блок-схемд алгоритмын алхам бүрийг геометрийн нөхцөлт дүрсээр тэмдэглэх бөгөөд уг дүрс дотор тухайн алхмын товч утгыг томъёогоор бичнэ.

Алхмын нэр Блок-схемд дүрслэх хэлбэр Алхмын үүрэг Бодолтын утга олгох алхам Хэмжигдхүүний утгыг өөрчлөнө. Логик алхам Ямар нэгэн нөхцлөөс хамааран алгоритм биелэх замыг сонгоно. Оруулах алхам Өгөгдөл, завсрын хэмжигдхүүнүүдийн утгыг оруулна. Гаргах алхам Өгөгдөл, завсрын хэмжигдхүүнүүдийн утга болон үр дүнг гаргана. Эхлэл төгсгөлийн алхам Эхлэл төгсгөл болон мэдээллийг боловсруулах процессийг зогсоохыг заана. Холбоос Харьцангуй хол орших алхмуудын шилжилтийг заахад хэрэглэнэ. Тайлбар Ямар нэгэн алхмын гүйцэтгэх үүргийг дэлгэрэнгүй тайлбарлахад хэрэглэнэ.

Алгоритмыг программчлалын хэлээр дүрслэхэд программчлалын ямар нэгэн хэл сонгон авч тухайн хэлнийхээ үгзүй, өгүүлбэрзүйн дүрмүүдийг баримтлан алгоритмыг тэр хэлээрээ бичнэ. Алгоритмыг ийм байдлаар дүрслэхэд программчлалын хэлний тухай мэдлэг алгоритм зохиогчид зайлшгүй шаардагдана. Иймээс алгоритмыг программчлалын хэлээр дүрслэхийн өмнө урьдчилан программчлалын хэл судлан, эзэмшсэн байх хэрэгтэй юм.


Stub icon

Энэ өгүүлэл дутуу дулимаг бичигджээ. Нэмж гүйцээж өгөхийг хүсье.

Загвар:Link FA