17/26/2015 Програмчлалын үндэс Ëåêö ¹8. 7/26/20152 Àãóóëãà 1. Өмнөх ба дараа нөхцөлт давталт C++ хэлэнд 2. Àëãîðèòмûã õ¿ñíýãòýýð øàëãàõ С хэлний зүгшрүүлэх.

Презентация:



Advertisements
Похожие презентации
Транксрипт:

17/26/2015 Програмчлалын үндэс Ëåêö ¹8

7/26/20152 Àãóóëãà 1. Өмнөх ба дараа нөхцөлт давталт C++ хэлэнд 2. Àëãîðèòмûã õ¿ñíýãòýýð øàëãàõ С хэлний зүгшрүүлэх хэрэгслүүд С хэлний зүгшрүүлэх хэрэгслүүд

37/26/2015 С хэлний ө мн ө х н ө хц ө лт давталт while(нөхцөл) {үйлдэл 1 ; үйлдэл 2 ; … үйлдэл n ; }

47/26/2015 Ө мн ө х н ө хц ө лт давталтын жишээ s=0;i=1;while(i<=n) {s=s+i; i=i+1;}

57/26/2015 C хэлэн дэх дараа н ө хц ө лт давталт do{ үйлдэл 1 ; үйлдэл 2 ; … үйлдэл n ; }while(нөхцөл);

67/26/2015 Дараа н ө хц ө лт давталтын жишээ s=0;i=1;do{ s=s+i; s=s+i; i=i+1; i=i+1;}while(i<=n);

77/26/2015 N тооны б ү х хуваагчийг олох h=1;while(h<=n) {if(n%h==0) printf(%d,h); h=h+1; h=h+1;}

87/26/2015 Ил үү хурдан алгоритм h=1;while(h<=n/2) {if(n%h==0) printf(%d,h); h=h+1; h=h+1;} n=10 үед 10=1*10; 10=2*5; n=36 үед 36=1*36; 36=2*18; 36=3*12; 36=4*9; 36=6*6;

97/26/2015 Хамгийн хурдан алгоритм h=1;while(h<=int(sqrt(n))) {if(n%h==0) if(h!=n/h) printf(%d %d,h,n/h); else printf(%d, h); else; h=h+1; h=h+1;}

107/26/2015 ªºðèéí çîõèîñîí àëãîðèòìèéã ¿íýí çºâ áîëîõûã 2 ÿíçààð øàëãàæ áîëíî. 1. Êîìïüþòåð ãàðûí äîð áàéõã¿é áà ïðîãðàì÷ëàëûí õýëýý ýçýìøýýã¿é òîõèîëäîëä õ¿ñíýãòýýð øàëãàõ àðãà õýðýãëýíý. 2. Àëãîðèòìàà ïðîãðàì÷ëàëûí õýëä õºðâ¿¿ëýí êîìïüþòåðò áè÷èæ ¿ð ä¿íã øàëãà н, зүгшрүүлж áîëíî.

117/26/2015 Жишээ: Тооны цифр үү дийн нийлбэрийг олох алгоритм Алг ЦифНийлбэр оруул(m); оруул(m); s:=0; n:=m; s:=0; n:=m; n>0 бол давт n>0 бол давт {s:=s+n%10; {s:=s+n%10; n:=n/10} n:=n/10} гарга(m, s) гарга(m, s)Төгс

127/26/2015 Õ¿ñíýãòýýð øàëãàõäàà I. Øàëãàõ ãýæ áàéãàà àëãîðèòìä àøèãëàãäàæ áàéãàà õóâüñàã÷èéí òîîòîé òýíö¿¿ òîîíû áàãàíàòàé õ¿ñíýãò çóðæ, áàãàíà á¿ðèéí îðîéä õàðãàëçàõ õóâüñàã÷èéí íýðèéã òàâèíà.

137/26/2015 Жишээний алгоритмыг шалгах х ү снэгт msn n>0 ү 7 456ү 13 45ү 18 4ү 22 0x #include #include main(){ int m; int m; scanf("\n%d", m); scanf("\n%d", m); int s=0, n=m; int s=0, n=m; while(n>0) while(n>0) { s=s+n%10; s=s+n%10; n=n/10; n=n/10; } printf("\n%d %d", m, s); printf("\n%d %d", m, s);}

147/26/2015 C хэлний з ү гшр үү лэх хэрэгсл үү д Алгоритмыг програмчлалын хэл рүү хөрвүүлээд, компьютер дээр ажиллуулж зөв болтол нь шалган засах ажиллагааг зүгшрүүлэх гэж нэрлэнэ. С хэлэнд зүгшрүүлэхэд зориулагдсан хэд хэдэн хэрэгсэл байдаг. Эдгээрийг өмнөх жишээн дээр авч үзье.

157/26/2015 Жишээний С хэл дээрх програм #include #include main(){ int m; int m; scanf("\n%d", m); scanf("\n%d", m); int s=0, n=m; int s=0, n=m; while(n>0) while(n>0) { s=s+n%10; s=s+n%10; n=n/10; n=n/10; } printf("\n%d %d", m, s); printf("\n%d %d", m, s);}

167/26/2015 З ү гшр үү лэх ажиллагааг эхлэх Ингэхийн тулд F7 товчийг дарах буюу Run цэсний Trace into командыг ашиглана. Ингэхийн тулд F7 товчийг дарах буюу Run цэсний Trace into командыг ашиглана. Хувьсагчийн утгыг харах цонхыг гаргахын тулд ctrl+F7 товчийг дарах буюу Debug цэсний Watches командын Add watch… дэд командыг ашиглана. Хувьсагчийн утгыг харах цонхыг гаргахын тулд ctrl+F7 товчийг дарах буюу Debug цэсний Watches командын Add watch… дэд командыг ашиглана.

177/26/2015 З ү гшр үү лэлтийг дуусгах Хувьсагчийн утгуудыг харах боломжтойгоор програмаа алхам алхмаар биелүүлэхийн тулд F7 товчоо хүссэн тоогоороо дарна. Хувьсагчийн утгуудыг харах боломжтойгоор програмаа алхам алхмаар биелүүлэхийн тулд F7 товчоо хүссэн тоогоороо дарна. Зүгшрүүлэлтийг дуусгахыг хүсвэл F9 товчийг дарж болно. Зүгшрүүлэлтийг дуусгахыг хүсвэл F9 товчийг дарж болно.

187/26/2015 ХИЕХ Хоёр эерэг бүхэл тооны хамгийн их ерөнхий хуваагчийг олох Хоёр эерэг бүхэл тооны хамгийн их ерөнхий хуваагчийг олох Энгийн арга: Хоёр тооныхоо багыг нь олох (min) Хоёр тооныхоо багыг нь олох (min) min, min-1, …, 1 хүртлэх тоонуудыг нэг нэгээр нь авч үзэн хоёр тоог зэрэг хувааж байгаа эсэхийг нь шалгах min, min-1, …, 1 хүртлэх тоонуудыг нэг нэгээр нь авч үзэн хоёр тоог зэрэг хувааж байгаа эсэхийг нь шалгах

197/26/2015 Жишээ 27 ба ба 36 Бага нь 27 Бага нь 27 27, 26,..., 1 хүртлэх тоонуудыг нэг нэгээр нь авч үзнэ 27, 26,..., 1 хүртлэх тоонуудыг нэг нэгээр нь авч үзнэ 27 ба 36-г хоёуланг нь хувааж чадах тоо нь: 9 27 ба 36-г хоёуланг нь хувааж чадах тоо нь: 9

207/26/2015 Евклид

217/26/2015 Евклидийн алгоритм Эхлэл a, b a<b b=b-a 1 a=b 0 a Төгсгөл 1 a=a-b 0

227/26/2015 Геометр д ү рслэл (4, 10)

237/26/2015 Геометр д ү рслэл (4, 6)

247/26/2015 Геометр д ү рслэл (6, 4)

257/26/2015 Геометр д ү рслэл (2, 4)

267/26/2015

277/26/2015 Геометр д ү рслэл (2, 2)

287/26/2015

297/26/2015 ХИЕХ(4, 10)=2