SlideShare a Scribd company logo
1 of 17
Аëãîðèòìèéí ¿íäýñ
                Ëåêö ¹07




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



10/13/12                                     2
Ïàðàìåòðт äàâòàëò
           • Алгоритмд параметрт
             давталтыг зохиохдоо i
             хувьсагч ашиглах бөгөөд энэ
             хувьсагчийн тодорхой
             утгуудад давталтын бие
             давтагдаж байхаар бичнэ .
             Ингэж давталтыг зохиоход
             ашиглаж байгаа хувьсагчийг
             давталтын параметр гэнэ .
10/13/12                                   3
Äàâòàëò áè÷èõ
           Ямар  нэг параметрийг
           ашиглан давталтыг
           зохиоход түүний авах
           эхний утга , эцсийн утга ба
           утгыг нь өөрчлөх алхам
           гэсэн гурван утгыг
           шаардах бөгөөд давталтыг
           бичихдээ :
           1.Параметрийн эхний утгыг
10/13/12                                 4
2.Параметрийн тухайн үеийн
             утга эцсийн утгаас
             хэтэрсэн эсэхийг шалгасан
             нөхцөлтэй өмнөх
             нөхцөлтэй давталтыг
             зохиож бичнэ .
           3.Давталтын биеийн
             төгсгөлд параметрийн
             утгыг алхамтай тэнцүү
             утгаар өөрчилж утга
10/13/12                                 5
Ïàðàìåòð äàâòàëò

           Параметрийн  тодорхой
           утганд давтах ийм
           төрлийн давталтыг
           параметрт давталт гэнэ .


10/13/12                              6
давталтыг
           алгоритмын хэлэнд
           for( Тоолуур =эхний _утга ;
           Төгсгөх нөхцөл ; алхам )
           {үйлдэл_1;   үйлдэл_2;
           .....
           Үйлдэл_n;
           }


10/13/12                                  7
Давталтын бие ганц
           үйлдэл байх үед хаалт
           бичих шаардлагагүй .
           for( Тоолуур =эхний _утга ;
           Төгсгөх нөхцөл ; алхам )
           гэсэн илэрхийлэлийг
           давталтын эх гэж нэрлээд
           параметрт давталтыг
           бичихэд тавих шаардлага :
10/13/12                                 8
Давталтанд  заавал түүний
           эхээр дамжиж орно .Учир нь
           давталтын эх биелэгдэхэд
           давталтын параметрийн
           эхний ба эцсийн утга ,
           алхмын утгыг бодож
           хадгалаад давталтыг
           эхлүүлдэг ба давталт
           биелэх процессын туршид
           энэ утгууд тогтмол байна .


10/13/12                                9
Давталтын бие биелэх
           бүрд төгсгөлд нь
           параметрийн утга
           алхамтай тэнцүү утгаар
           шууд өөрчлөгддөг учир
           бие дотор параметрийн
           утгыг өөрчлөх үйлдэл
           бичиж болохгүй .

10/13/12                            10
Давталтын алхам эерэг
           бол параметрийн бага
           утгаас их утга руу өссөн
           утганд биелэх давталт
           болох бөгөөд хэрэв эцсийн
           утга нь эхний утгаасаа
           бага байвал давталтын
           бие биелэхгүй шууд
           дараачийн үйлдэлд
10/13/12
           шилжнэ .                    11
Үүнтэй  төстэй алхам
           сөрөг бол параметрийн
           буурах утганд биелэх
           давталт байх ба эхний
           утга нь эцсийн утгаасаа
           бага байвал давталтын
           бие нэг ч удаа биелэхгүй .
           Давхар давталтын
           параметрүүд нь
           хоорондоо ялгаатай байх
           ёстой .

10/13/12                                12
Параметрт давталт
              Тоолуур=эх, эцсийн,
                    алхам


                Циклийн бие



                   Тоолуур


10/13/12                            13
Жишээ
           1. Өгөгдсөн х,у хоёр бодит
              тооны аль ихийг нь ол
              ( өгөдсөн утгуудын хамгийн
              их утгыг тэдгээрийн
              максимум гэж нэрлэнэ ) .
           2.x,y,z гэсэн 3-н хэмжигдхүүний
             максимумыг ол .
           3.N-натурал (n≥1) болон
             a1,a2,...,an бодит тоонууд
             өгөгдсөн бол өгсөн
             дарааллын максимумыг олох
10/13/12     алгоритм зохио .                14
{ // Алг 1 ж _a
           scanf (“%d,%d”,&x,&y);
                  Max= x;
                 If y>max
                   max=y;
             printf(“%d”,max);
                       }
10/13/12                            15
{ // Алг2 ж _b
           Read(x,y,z);
              Max=x;
             If y>max
              max=y;
             If z>max
              max=z;
           Write(max);

10/13/12
                 }          16
{ /Алг 3 ж _c
                     /
                    Read(n);
           Write( “эхний тоог өг ”);
                    Read(a);
                    Max=a ;
                      i=2;
                  While (i<=n)
           {write( “дараах тоог өг ”);
                    Read(a);
                   If а >max
                    max=a;
                     i=i+1;
                        }
                  Write(max);
10/13/12                }                17

More Related Content

Similar to Lecture7 (6)

Lecture8
Lecture8Lecture8
Lecture8
 
Lecture8
Lecture8Lecture8
Lecture8
 
онол
онолонол
онол
 
Ci hel
Ci helCi hel
Ci hel
 
For presentation
For presentationFor presentation
For presentation
 
Лекц №7
Лекц №7Лекц №7
Лекц №7
 

More from Batjargal Batbold (16)

Програмчлал I - Laboratory 1
Програмчлал I - Laboratory 1Програмчлал I - Laboratory 1
Програмчлал I - Laboratory 1
 
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунуудАндройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
Андройд үйлдлийн системийн аппликейшний суурь ухагдахуунууд
 
Lecture14
Lecture14Lecture14
Lecture14
 
Lecture13
Lecture13Lecture13
Lecture13
 
Lecture12
Lecture12Lecture12
Lecture12
 
Lecture11
Lecture11Lecture11
Lecture11
 
Lecture10
Lecture10Lecture10
Lecture10
 
Lecture9
Lecture9Lecture9
Lecture9
 
Lecture8
Lecture8Lecture8
Lecture8
 
Lecture5
Lecture5Lecture5
Lecture5
 
Lecture4
Lecture4Lecture4
Lecture4
 
Lecture3
Lecture3Lecture3
Lecture3
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture1 ic
Lecture1 icLecture1 ic
Lecture1 ic
 
Lecture1
Lecture1Lecture1
Lecture1
 
Recursive
RecursiveRecursive
Recursive
 

Lecture7

  • 1. Аëãîðèòìèéí ¿íäýñ Ëåêö ¹07 10/13/12 1
  • 2. Àãóóëãà 1.Ïàðàìåòð äàâòàëò 2.Ïàðàìåòð äàâòàëò áè÷èõ 3.Ïàðàìåòð äàâòàëòûã àëãîðèòìûí õýëýíä 4. Æèøýý áîäëîãóóä 10/13/12 2
  • 3. Ïàðàìåòðт äàâòàëò • Алгоритмд параметрт давталтыг зохиохдоо i хувьсагч ашиглах бөгөөд энэ хувьсагчийн тодорхой утгуудад давталтын бие давтагдаж байхаар бичнэ . Ингэж давталтыг зохиоход ашиглаж байгаа хувьсагчийг давталтын параметр гэнэ . 10/13/12 3
  • 4. Äàâòàëò áè÷èõ Ямар нэг параметрийг ашиглан давталтыг зохиоход түүний авах эхний утга , эцсийн утга ба утгыг нь өөрчлөх алхам гэсэн гурван утгыг шаардах бөгөөд давталтыг бичихдээ : 1.Параметрийн эхний утгыг 10/13/12 4
  • 5. 2.Параметрийн тухайн үеийн утга эцсийн утгаас хэтэрсэн эсэхийг шалгасан нөхцөлтэй өмнөх нөхцөлтэй давталтыг зохиож бичнэ . 3.Давталтын биеийн төгсгөлд параметрийн утгыг алхамтай тэнцүү утгаар өөрчилж утга 10/13/12 5
  • 6. Ïàðàìåòð äàâòàëò Параметрийн тодорхой утганд давтах ийм төрлийн давталтыг параметрт давталт гэнэ . 10/13/12 6
  • 7. давталтыг алгоритмын хэлэнд for( Тоолуур =эхний _утга ; Төгсгөх нөхцөл ; алхам ) {үйлдэл_1; үйлдэл_2; ..... Үйлдэл_n; } 10/13/12 7
  • 8. Давталтын бие ганц үйлдэл байх үед хаалт бичих шаардлагагүй . for( Тоолуур =эхний _утга ; Төгсгөх нөхцөл ; алхам ) гэсэн илэрхийлэлийг давталтын эх гэж нэрлээд параметрт давталтыг бичихэд тавих шаардлага : 10/13/12 8
  • 9. Давталтанд заавал түүний эхээр дамжиж орно .Учир нь давталтын эх биелэгдэхэд давталтын параметрийн эхний ба эцсийн утга , алхмын утгыг бодож хадгалаад давталтыг эхлүүлдэг ба давталт биелэх процессын туршид энэ утгууд тогтмол байна . 10/13/12 9
  • 10. Давталтын бие биелэх бүрд төгсгөлд нь параметрийн утга алхамтай тэнцүү утгаар шууд өөрчлөгддөг учир бие дотор параметрийн утгыг өөрчлөх үйлдэл бичиж болохгүй . 10/13/12 10
  • 11. Давталтын алхам эерэг бол параметрийн бага утгаас их утга руу өссөн утганд биелэх давталт болох бөгөөд хэрэв эцсийн утга нь эхний утгаасаа бага байвал давталтын бие биелэхгүй шууд дараачийн үйлдэлд 10/13/12 шилжнэ . 11
  • 12. Үүнтэй төстэй алхам сөрөг бол параметрийн буурах утганд биелэх давталт байх ба эхний утга нь эцсийн утгаасаа бага байвал давталтын бие нэг ч удаа биелэхгүй . Давхар давталтын параметрүүд нь хоорондоо ялгаатай байх ёстой . 10/13/12 12
  • 13. Параметрт давталт Тоолуур=эх, эцсийн, алхам Циклийн бие Тоолуур 10/13/12 13
  • 14. Жишээ 1. Өгөгдсөн х,у хоёр бодит тооны аль ихийг нь ол ( өгөдсөн утгуудын хамгийн их утгыг тэдгээрийн максимум гэж нэрлэнэ ) . 2.x,y,z гэсэн 3-н хэмжигдхүүний максимумыг ол . 3.N-натурал (n≥1) болон a1,a2,...,an бодит тоонууд өгөгдсөн бол өгсөн дарааллын максимумыг олох 10/13/12 алгоритм зохио . 14
  • 15. { // Алг 1 ж _a scanf (“%d,%d”,&x,&y); Max= x; If y>max max=y; printf(“%d”,max); } 10/13/12 15
  • 16. { // Алг2 ж _b Read(x,y,z); Max=x; If y>max max=y; If z>max max=z; Write(max); 10/13/12 } 16
  • 17. { /Алг 3 ж _c / Read(n); Write( “эхний тоог өг ”); Read(a); Max=a ; i=2; While (i<=n) {write( “дараах тоог өг ”); Read(a); If а >max max=a; i=i+1; } Write(max); 10/13/12 } 17