15
II БҮЛЭГ : Алгоритм Лекц №3 Алгоритмын тухай ойлголт

Lecture3 aлгоритм түүний_шинжчанар

Embed Size (px)

Citation preview

Page 1: Lecture3 aлгоритм түүний_шинжчанар

II БҮЛЭГ : Алгоритм

Лекц №3

Алгоритмын тухай ойлголт

Page 2: Lecture3 aлгоритм түүний_шинжчанар

2

df 1: Нэгэн утгатай биелэгдэж болох алхам-үйлдлүүдийн төгсгөлөг дарааллыг алхам алхамаар нь гүйцэтгэхэд төгсдөг бол энэ дарааллыг алгоритм гэнэ.

“үйлдлүүдийн төгсгөлөг дарааллыг алхам

алхамаар нь гүйцэтгэх” гэжээ. Энэ гүйцэтгэх процессыг (ажлыг) биелүүлэгчийг алгоритмын гүйцэтгэгч гэнэ.

хүн компьютер робот

Ïðîô. Þ.Íàìñðàé, 2011-2012 îíû õè÷ýýëèéí æèë, УБДÑ

Page 3: Lecture3 aлгоритм түүний_шинжчанар

3

Алгоритмын тухай ойлголт (2)

алгоритмыг зохиохдоо тодорхой гүйцэтгэгчид зориулан зохиодог

хүмүүс мэдлэг чадвараараа ялгаатай

компьютер нь зарчмын хувьд бүгд адилхан

Page 4: Lecture3 aлгоритм түүний_шинжчанар

4

Алгоритмын тухай ойлголт (3)

“нэгэн утгатай биелэгдэх”, “алхам-үйлдлүүдийн дараалал”, “төгсгөлөг дараалал”, “заавал төгсдөг байх” -- алгоритмын шинжүүд юм

алгоритм нь түүний гүйцэтгэгчийн биелүүлж

чадах үйлдлүүдэд хуваагдсан байх ба төгсгөлөг тооны ийм үйлдлүүдийн дараалал хэлбэртэй байна

“биелэгдэж болох” гэдэг нь алгоритмыг биелүүлэх гүйцэтгэгчийн биелүүлж, хийж чадах алхмуудаас алгоритм тогтсон байх ёстой гэсэн шаардлага юм

(тэгэхдээ бүр нэгэн утгатай биелэгддэг байх)

Page 5: Lecture3 aлгоритм түүний_шинжчанар

5

Алгоритмын тухай ойлголт (4)

алгоритмын алхам бүр “нэгэн утгатай биелэгдэх” ёстой:

өмнө биелэгдсэн алхамуудын үр дүн тодорхой байх

уг алхам биелэгдэхэд түүний үр дүн нэгэн утгатай тодорхойлогддог

дараачийн биелэгдэх алхам нь нэгэн утгатай тодорхойлогддог байх ёстой

(Isaac Asimov - Àéçèê Àçèìîâ ... I robot)

Page 6: Lecture3 aлгоритм түүний_шинжчанар

6

Алгоритмын тухай ойлголт (5)

“төгсдөг байх” гэдгийн дор төгсгөлөг тооны алхам биелэгдсэний дараа алгоритмын биелэлт заавал төгсдөг байх

Жишээ 1:1. Бүх эерэг бүхэл тоог жагсааж бич.2. Бичсэн тоонуудаа буурах дарааллаар бич.3. Хамгийн зүүн талын тоог хэлж өг.4. Төгсгө.

Жишээ 2:1. 1 - ийг бич.2. Хамгийн сүүлд бичсэн тооныхоо ард түүнээс

хоёроор их тоог бич.3. Хоёрдугаар алхамд шилж.4. Төгсгө.

Page 7: Lecture3 aлгоритм түүний_шинжчанар

7

Àëãîðèòìûí òóõàé îéëãîëò (6)

df 2: Тодорхой бодлогын хувьд уг бодлогын шийд-үр дүнг гаргаж авахын тулд бодлогын нөхцөлд өгөгдсөн анхны өгөгдөл болон бодолтын явцад гарах завсрын үр дүн хэмжигдэхүүнүүд дээр хийх үйлдлүүдийн төгсгөлөг дараалал - алгоритмыг уг тухайн бодлогын алгоритм гэж хэлнэ.

“бодлого бодох” -- алгебр, гөометр, физик, химийн бодлого бодохоос эхлээд амьдрал практикийн болон шинжлэх ухааны асуудал шийдэх хүртэл маш өргөн утгаар ойлгоно.

Page 8: Lecture3 aлгоритм түүний_шинжчанар

8

Алгоритмын тухай ойлголт (7)

бодлого бодох ажилд компьютер ашиглаагүй үед:

алгоритмыг зохиогч нь хүн гүйцэтгэгч нь мөн хүн байна

бодлого бодох ажилд компьютер хэрэглэх үед:

бодлогын алгоритмыг хүн зохиож зохиосон алгоритм (програм)-ыг

компьютер биелүүлдэг

Page 9: Lecture3 aлгоритм түүний_шинжчанар

9

Алгоритмын тухай ойлголт (8)

Алгоритмын бусад шинж:

Алгоритм үр дүнтэй байх шинж -- төгсгөлөг тооны алхам биелэгдсэний дараа бодолтын явцад гарч болох бүх тохиолдолд тохирсон үр дүн өгөх

Жишээ нь: ax2+bx+c =0 тэгшитгэлийн бодит шийд нь коэффицент, дискриминантын утгаас хамаарана

1. a <> 0 үед хэрэв 2. а) D>0 бол x1 ба x2 гэсэн ‘хоёр бодит шийдтэй’3. б) D=0 бол x1 гэсэн 'нэг бодит шийдтэй'4. в) D<0 бол 'өгөгдсөн тэгшитгэл бодит шийдгүй'

Page 10: Lecture3 aлгоритм түүний_шинжчанар

10

Алгоритмын тухай ойлголт (9)

a=0 буюу bx+c = 0 шугаман тэгшитгэл бола) b <> 0 бол x=-c/b гэсэн 'нэг шийдтэй'б) b = 0 үед хэрэв

а) c=0 бол 'төгсгөлгүй олон шийдтэй'

б) c <> 0 бол 'тэгшитгэл шийдгүй'

гэсэн үр дүн өгдөг байх ёстой

Page 11: Lecture3 aлгоритм түүний_шинжчанар

11

Алгоритмын тухай ойлголт (10)

нэг ижил мэдээллийг боловсруулсан үр дүн нь ямагт ижил байх ёстой -- алгоритмын үр дүн нэгэн утгатай байх шинж гэнэ

алгоритм түгээмэл байх шинж -- тодорхой бодлогын алгоритмыг зохиохдоо энэ бодлоготой ижил төрлийн (анхны өгөгдлөөрөө ялгаатай байж болох) бүх бодлогыг бодоход хэрэглэж болохоор ерөнхий алгоритмыг зохиох ёстой квадрат тэгшитгэл бодох алгоритмыг

зохиохдоо а коэффициент ямагт тэгээс ялгаатай гэж тооцож болохгүй

Page 12: Lecture3 aлгоритм түүний_шинжчанар

12

2.2 Алгоритмд хэмжигдэхүүнийг тэмдэглэх

Компьютерийг хэрэглэх үндсэн зорилго нь мэдээлэл боловсруулж, бидэнд шаардлагатай үр дүнг гаргаж авах явдал юм.

компьютерээр бодлого бодох алгоритм болон програмд мэдээлэл боловсруулж үйлдэл хийхийн тулд шаардлагатай хэмжигдэхүүнүүдийг өөр хооронд нь ялгаж, хэмжигдэхүүнүүд дээр хийх үйлдлийг бичиж тэмдэглэх хэрэгтэй

хэмжигдэхүүнийг үг, үсгээр нэрлэж тэмдэглэдэг (математикт үсгээр зөвхөн тэгдэглэдэг)

Page 13: Lecture3 aлгоритм түүний_шинжчанар

13

Àëãîðèòìä õýìæèãäýõ¿¿íèéã òýìäýãëýõ (2)

df: õýìæèãäýõ¿¿íèé ¿ã, ¿ñãýí òýìäýãëýãýýã õýìæèãäýõ¿¿íèé íýð (èäåíòèôèêàòîð - identifier) ãýíý.

“àëèâàà íýðèéã çààâàë ¿ñãýýð ýõýëæ äóðûí òîîíû ¿ñýã, öèôðýýð áè÷èæ áîëíî”

õýä õýäýí íýðýýñ á¿òñýí íèéëìýë íýðèéã áè÷èõèéí òóëä õîëáîõ çóðààñ (_) òýìäãèéã õýðýãëýíý

Æèøýý íü: æèøýý_1; îí_ñàð_ºäºð; îâîã_íýð

Page 14: Lecture3 aлгоритм түүний_шинжчанар

14

Àëãîðèòìä õýìæèãäýõ¿¿íèéã òýìäýãëýõ (3)

Õýìæèãäýõ¿¿íèé íýð íü óã õýìæèãäýõ¿¿íèé óòãûã áè÷èæ õàäãàëàõ ¿¿ðèéí õàÿã áîëæ ºãäºã.

õýìæèãäýõ¿¿í äýýð ¿éëäýë õèéõèéí òóëä ¿¿ðèéí õàÿã áîëæ áàéãàà íýðèéã áè÷èæ àøèãëàíà.

Æèøýý íü: ax2+bx+c =0 òýãøèòãýëèéí õóâüä ìàòåìàòèêò à, b áà ñ íü áîäèò òîîã òýìäýãëýäýã

áîë òýãøèòãýëèéã áîäîõ àëãîðèòìä êîýôôèöåíò¿¿äèéã ìºí à, b áà ñ ãýæ íýðëýâýë òýäãýýðèéí óòãûã ñàíàõ ¿¿ðèéí õàÿã áîëíî.

ìàòåìàòèêò b2-4ac èëýðõèéëýë áîëíî, àëãîðèòì ïðîãðàì÷ëàëä õàðèí çààâàë b2-4∙a ∙ c õýëáýðòýé áè÷íý.

“à, b, ñ ¿¿ðò áàéãàà òîîí äýýð áè÷ñýí ¿éëäëèéã õèé” ãýñýí óòãàòàé

Page 15: Lecture3 aлгоритм түүний_шинжчанар

15

Àëãîðèòìä õýìæèãäýõ¿¿íèéã òýìäýãëýõ (4)

õýìæèãäýõ¿¿íèé íýðèéã ñîíãîõäîî: àëãîðèòì, ïðîãðàìûã áè÷èõ, óíøèõ àæëûã

õºíãºâ÷ëºõººð àíõûõàà áîäëîãî äàõü íýð òýìäýãëýãýýòýé

òîõèð÷ áàéõ õîîðîíäîî àíäóóðàãäàæ áîëîõ Î ¿ñýã, 0 òîî; l ¿ñýã,

1 òîî ãýõ ìýò ¿ñýã öèôðèéã õîëèõã¿é áàéõ õýìæèãäýõ¿¿íèé óòãà àëãîðèòì áèåëýãäýõ ÿâöàä

ººð÷ëºãäºõã¿é áàéõ ¸ñòîé áîë ò¿¿íèéã òîãòìîë õýìæèãäýõ¿¿í ãýíý

õýìæèãäýõ¿¿íèé óòãà ººð÷ëºãääºã, º.õ. ïðîãðàì áèåëýãäýõ ÿâöàä õýìæèãäýõ¿¿íä õàðãàëçàõ ¿¿ð ººð ººð óòãà àâ÷ áîëîõ áîë ò¿¿íèéã õóâüñàã÷ ãýíý