Lecture7

17
10/13/12 1 Аëãîðèòìèéí ¿íäýñ Ëåêö ¹07

Transcript of Lecture7

Page 1: Lecture7

10/13/12 1

Аëãîðèòìèéí ¿íäýñ

Ëåêö ¹07

Page 2: Lecture7

10/13/12 2

Àãóóëãà

1.Ïàðàìåòð äàâòàëò2.Ïàðàìåòð äàâòàëò áè÷èõ3.Ïàðàìåòð äàâòàëòûã àëãîðèòìûí õýëýíä4. Æèøýý áîäëîãóóä

Page 3: Lecture7

10/13/12 3

Ïàðàìåòðт äàâòàëò• Алгоритмд параметрт

давталтыг зохиохдоо i хувьсагч ашиглах бөгөөд энэ

хувьсагчийн тодорхой утгуудад давталтын бие

. давтагдаж байхаар бичнэ Ингэж давталтыг зохиоход

ашиглаж байгаа хувьсагчийг . давталтын параметр гэнэ

Page 4: Lecture7

10/13/12 4

Ямар нэг параметрийг Ямар нэг параметрийг ашиглан давталтыг ашиглан давталтыг зохиоход түүний авах зохиоход түүний авах

, эхний утга эцсийн утга ба , эхний утга эцсийн утга ба утгыг нь өөрчлөх алхам утгыг нь өөрчлөх алхам гэсэн гурван утгыг гэсэн гурван утгыг

шаардах бөгөөд давталтыг шаардах бөгөөд давталтыг:бичихдээ:бичихдээ

1.1. Параметрийн эхний утгыг Параметрийн эхний утгыг .тогтоож олгоно .тогтоож олгоно

Äàâòàëò áè÷èõ

Page 5: Lecture7

10/13/12 5

2.2. Параметрийн тухайн үеийн Параметрийн тухайн үеийн утга эцсийн утгаас утга эцсийн утгаас

хэтэрсэн эсэхийг шалгасан хэтэрсэн эсэхийг шалгасан нөхцөлтэй өмнөх нөхцөлтэй өмнөх нөхцөлтэй давталтыг нөхцөлтэй давталтыг

.зохиож бичнэ .зохиож бичнэ

3.3. Давталтын биеийн Давталтын биеийн төгсгөлд параметрийн төгсгөлд параметрийн

утгыг алхамтай тэнцүү утгыг алхамтай тэнцүү утгаар өөрчилж утга утгаар өөрчилж утга

олгосонолгосон .байна.байна

Page 6: Lecture7

10/13/12 6

Параметрийн тодорхой Параметрийн тодорхой утганд давтах ийм утганд давтах ийм

төрлийн давталтыг төрлийн давталтыг .параметрт давталт гэнэ .параметрт давталт гэнэ

Ïàðàìåòð äàâòàëò

Page 7: Lecture7

10/13/12 7

Параметрт давталтыг

алгоритмын хэлэндfor(for( ТоолуурТоолуур==эхнийэхний__утгаутга ; ;

Төгсгөх нөхцөл Төгсгөх нөхцөл ; ; алхамалхам ) )

{{үйлдэлүйлдэл_1; _1; үйлдэлүйлдэл_2;_2;

..........

ҮйлдэлҮйлдэл_n;_n;

}}

Page 8: Lecture7

10/13/12 8

Давталтын бие ганц Давталтын бие ганц үйлдэл байх үед хаалт үйлдэл байх үед хаалт

.бичих шаардлагагүй .бичих шаардлагагүй

for(for(ТоолуурТоолуур==эхнийэхний__утгаутга ;; Төгсгөх нөхцөл Төгсгөх нөхцөл ;; алхам алхам ) )

гэсэн илэрхийлэлийг гэсэн илэрхийлэлийг давталтын эх гэж нэрлээд давталтын эх гэж нэрлээд параметрт давталтыг параметрт давталтыг

:бичихэд тавих шаардлага :бичихэд тавих шаардлага

Page 9: Lecture7

10/13/12 9

Давталтанд заавал түүний Давталтанд заавал түүний . эхээр дамжиж орно Учир нь . эхээр дамжиж орно Учир нь

давталтын эх биелэгдэхэд давталтын эх биелэгдэхэд давталтын параметрийн давталтын параметрийн

, эхний ба эцсийн утга , эхний ба эцсийн утга алхмын утгыг бодож алхмын утгыг бодож

хадгалаад давталтыг хадгалаад давталтыг эхлүүлдэг ба давталт эхлүүлдэг ба давталт

биелэх процессын туршид биелэх процессын туршид .энэ утгууд тогтмол байна .энэ утгууд тогтмол байна

Page 10: Lecture7

10/13/12 10

Давталтын бие биелэх Давталтын бие биелэх бүрд төгсгөлд нь бүрд төгсгөлд нь

параметрийн утга параметрийн утга алхамтай тэнцүү утгаар алхамтай тэнцүү утгаар

шууд өөрчлөгддөг учир шууд өөрчлөгддөг учир бие дотор параметрийн бие дотор параметрийн

утгыг өөрчлөх үйлдэл утгыг өөрчлөх үйлдэл .бичиж болохгүй .бичиж болохгүй

Page 11: Lecture7

10/13/12 11

Давталтын алхам эерэг Давталтын алхам эерэг бол параметрийн бага бол параметрийн бага

утгаас их утга руу өссөн утгаас их утга руу өссөн утганд биелэх давталт утганд биелэх давталт

болох бөгөөд хэрэв эцсийн болох бөгөөд хэрэв эцсийн утга нь эхний утгаасаа утга нь эхний утгаасаа бага байвал давталтын бага байвал давталтын

бие биелэхгүй шууд бие биелэхгүй шууд дараачийн үйлдэлд дараачийн үйлдэлд

шилжнэшилжнэ ..

Page 12: Lecture7

10/13/12 12

Үүнтэй төстэй алхам Үүнтэй төстэй алхам сөрөг бол параметрийн сөрөг бол параметрийн

буурах утганд биелэх буурах утганд биелэх давталт байх ба эхний давталт байх ба эхний

утга нь эцсийн утгаасаа утга нь эцсийн утгаасаа бага байвал давталтын бага байвал давталтын

.бие нэг ч удаа биелэхгүй .бие нэг ч удаа биелэхгүй Давхар давталтын Давхар давталтын

параметрүүд нь параметрүүд нь хоорондоо ялгаатай байх хоорондоо ялгаатай байх

.ёстой.ёстой

Page 13: Lecture7

10/13/12 13

Параметрт давталтПараметрт давталт

Тоолуур=эх, эцсийн, алхам

Циклийн бие

Тоолуур

Page 14: Lecture7

10/13/12 14

ЖишээЖишээ1.1.Өгөгдсөн х,у хоёр бодит Өгөгдсөн х,у хоёр бодит

тооны аль ихийг нь ол тооны аль ихийг нь ол (( өгөдсөн утгуудын хамгийн өгөдсөн утгуудын хамгийн их утгыг тэдгээрийн их утгыг тэдгээрийн максимум гэж нэрлэнэмаксимум гэж нэрлэнэ )) ..

2.x,y,z 2.x,y,z 3- гэсэн н хэмжигдхүүний 3- гэсэн н хэмжигдхүүний . максимумыг ол . максимумыг ол

3.N-3.N-натуралнатурал (n (n≥1≥1) ) болон болонaa11,,aa22,...,,...,aan n бодит тоонууд бодит тоонууд

өгөгдсөн бол өгсөн өгөгдсөн бол өгсөн дарааллын максимумыг олох дарааллын максимумыг олох

.алгоритм зохио .алгоритм зохио

Page 15: Lecture7

10/13/12 15

{ //{ // АлгАлг 1 1 жж _a_a

scanfscanf (“%d,%d”,&x,&y);(“%d,%d”,&x,&y);

Max= x;Max= x;

IfIf y>max y>max

max=y;max=y;

printf(“%d”,max);printf(“%d”,max);

}}

Page 16: Lecture7

10/13/12 16

{ //{ / /Алг2 жАлг2 ж_b_b

Read(x,y,z);Read(x,y,z);

Max=x;Max=x;

IfIf y>max y>max

max=y;max=y;

IfIf z>max z>max

max=z;max=z;

Write(max);Write(max);

}}

Page 17: Lecture7

10/13/12 17

{ //{ // 3 Алг ж3 Алг ж_c_c

Read(n);Read(n);

Write(Write(“ ”эхний тоог өг“ ”эхний тоог өг ););

Read(a);Read(a);

Max=a ;Max=a ;

i=2;i=2;

While (iWhile (i<=n) <=n)

{write({write(“ ”дараах тоог өг“ ”дараах тоог өг ););

Read(a);Read(a);

IfIf а а>max >max

max=a;max=a;

i=i+1;i=i+1;

}}

Write(max);Write(max);

}}