GT Bai Tap Lap Trinh Can Ban SGU 2010

  • Upload
    nhulee

  • View
    417

  • Download
    8

Embed Size (px)

Citation preview

Bi tp lp trnh cn bn SGU2010

Trang 1

Li gii thiuLp trnh cn bn l hc phn u tin i vi cc sinh vin thuc chuyn ngnh cng ngh thng tin v cng l hc phn ang c ging dy cho sinh vin cc chuyn ngnh khoa hc t nhin v khoa hc k thut. Lp trnh cn bn cng l ni dung quan trng trong khi kin thc cc k thi tt nghip, thi hon chnh i hc, thi cao hc cc chuyn ngnh cng ngh thng tin. Quyn gio trnh bi tp lp trnh cn bn ny trnh by cc ch bi tp lin quan n thut ton, cc cu trc iu khin, chng trnh con, quy, mng, con tr, chui, kiu cu trc, file d liu theo ngn ng C/C++. Mi ch c thit k gm cc phn: Tm tt l thuyt, hng dn gii mt s dng bi tp in hnh v mt s bi tp chn lc. Trong mi ch u c cc v d minh ha, mi v d c trnh by v phng php gii, ton vn chng trnh km theo mt s b test mu. Phn cui ca quyn gio trnh c hng dn gii cho mt s bi tp tiu biu, ng thi b sung mt s bi tp nng cao v b thi mu sinh vin t rn luyn k nng phn tch vn bi ton, rn luyn t duy v phong cch lp trnh. Quyn gio trnh ny c bin son ging dy hc phn lp trnh cn bn h i hc v cao ng. Quyn sch ny cng c th lm ti liu tham kho cho cc gio vin ang ging dy kin thc lp trnh cn bn bc ph thng, v gip cho sinh vin t hc c kt qu. Ty theo hc phn quy nh trong chng trnh o to m gio vin c th chn mt s ni dung ph hp trong quyn gio trnh ny trnh by. Chng ti trn trng gii thiu vi bn c quyn gio trnh Bi tp lp trnh cn bn ny v hy vng rng n s gip cho vic ging dy v hc tp mn lp trnh cn bn c thun li hn. Cui cng, chng ti xin gi li cm n chn thnh n Gio s tin s Trn Vn Ho c nhiu ng gp qu bu, cm n cc ng nghip trong khoa cng ngh thng tin cng chng ti chia s ni dung tp bi ging hc phn lp trnh cn bn ny trong thi gian qua. Thnh ph H Ch Minh, ngy 06 thng 09 nm 2010 CC TC GI

Bi tp lp trnh cn bn SGU2010 Chng 1

Trang 2

THUT TONA.TM TT L THUYT 1.1.nh ngha Thut ton l mt bng lit k cc ch dn (hay cc qui tc) cn thc hin theo tng bc xc nh nhm gii quyt mt vn , bi ton. i vi mi thut ton phi c cc thng tin d liu u vo, sau l mt dy cc php x l v cui cng l xut kt qu cn tm. 1.2.Cc c trng ca thut ton Tnh xc nh: mi bc cc ch dn phi r rng. Tnh kt thc: Thut ton phi dng sau mt s hu hn bc. Tnh ng n: Thut ton phi cho ra kt qu ng theo yu cu ca bi ton. Tnh tng qut: Thut ton phi p dng c cho cc bi ton cng loi. Nhng thut ton c cc c trng trn c gi l cc thut ton c li gii ng. Trong gii hn ca quyn gio trnh ny, tc gi ch cp n cc thut ton c li gii ng; ngoi ra cn c nhng thut ton cho li gii gn ng nh thut ton xp x, thut ton di truyn, thut ton heuristic, thut ton tham lam, 1.3.Ngn ng biu din thut ton C nhiu cch biu din mt thut ton chng hn nh: ngn ng t nhin, ngn ng s khi, ngn ng m gi, c thi quen lp trnh tt, khi i din vi mt bi ton th sinh vin nn dnh mt lng thi gian thch hp tm ra thut ton y l bc u tin quan trng nht; tip theo l dng mt trong cc cch trn biu din li thut ton trc khi bt tay vo son tho chng trnh. Sau y, tc gi tm tt cch biu din thut ton bng ngn ng s khi v bng ngn ng m gi; i vi nhng thut ton phc tp, di dng th c th biu din bng ngn ng t nhin.

Bi tp lp trnh cn bn SGU2010 1.4.Ngn ng s khi 1.4.1.Tp k hiu ca ngn ng s khi Bt u

Trang 3

Kt thc

Nhp liu

Xut liu

X l

iu kin

1.4.2.Biu din cc cu trc 1.4.2.1.Cu trc r nhnh Dng 1

iu kin ng cng vic

Bi tp lp trnh cn bn SGU2010

Trang 4

M t hot ng Nu ng th s thc hin , nu sai th s khng thc hin . Lu : y c dng l mt biu thc logic, cn c th l mt cng vic n hoc nhiu cng vic n gp li. Dng 2

sai

iu kin

ng

cng vic 2

cng vic 1

M t hot ng Nu ng th thc hin , ngc li nu sai th s thc hin . Lu :Vi s ny th lun c mt s c thc hin bt k ng hay sai. 1.4.2.2.Cu trc lp vi s ln lp bit trc biu thc 1

biu thc 2

iu kin ng cng vic

sai

thot

Bi tp lp trnh cn bn SGU2010

Trang 5

M t hot ng u tin s thc hin , sau kim tra . Nu ng th s thc hin ri n . Sau khi thc hin xong th cu trc ny quay tr li kim tra v bt u mt chu k mi,c th vy n khi nhn gi tr sai th cu trc lp ny s kt thc. Lu : l php gn cho khi u gi tr ca bin iu khin vng lp, thng l php gn thay i gi tr ca bin iu khin vng lp, cn thng l mt php so snh bin iu khin vng lp v s ln lp. 1.4.2.3.Cu trc lp vi s ln lp khng bit trc Dng 1 sai

iu kin

ng

cng vic

thot

M t hot ng Nu ng th s thc hin , sau khi thc hin xong th s quay tr li kim tra v bt u mt chu k mi,c th vy vng lp tip tc n khi no nhn gi tr sai th kt thc. R rng vi cu trc ny th trong phi c mt cng on no sau mt s hu hn ln lp s lm mang gi tr sai vng lp kt thc.

Bi tp lp trnh cn bn SGU2010 Dng 2

Trang 6

cng vic

ng

iu kin

sai

thot

M t hot ng Trc ht s c thc hin, sau thc hin . Nu ng th li bt u mt chu k mi,c nh vy n khi nhn gi tr sai th cu trc lp ny kt thc. Tng t nh s dng 1, sau mt s ln lp th phi mang gi tr sai vng lp kt thc. 1.5. Ngn ng m gi 1.5.1.Tp k hiu (theo ngn ng C/C++) Bt u on lnh: { Kt thc on lnh: } Lnh nhp d liu: cin Lnh xut d liu : cout Lnh x l d liu: = Biu thc iu kin: () 1.5.2.Biu din cc cu trc 1.5.2.1.Cu trc r nhnh Dng 1 if () ; M t hot ng

Bi tp lp trnh cn bn SGU2010

Trang 7

Nu ng th thc hin , nu sai th s khng thc hin . Lu : Nu c t hai cu lnh n tr ln th cn t gia hai du { }. Dng 2 if () ; else ; M t hot ng Nu ng th s thc hin , ngc li nu < iu kin> sai th s c thc hin. 1.5.2.2.Cu trc lp vi s ln lp bit trc for (; ; ) ; M t hot ng u tin s thc hin , sau kim tra . Nu ng th s thc hin ri n . Sau khi thc hin xong th cu trc ny quay tr li kim tra v bt u mt chu k mi,c th vy n khi nhn gi tr sai th cu trc lp ny s kt thc. 1.5.2.3.S lp vi s ln lp khng bit trc Dng 1 while () ; M t hot ng Nu ng th s thc hin , sau quay tr li thc hin . Vng lp while ny s kt thc khi sai. Dng 2 do {

Bi tp lp trnh cn bn SGU2010 ; } while ();

Trang 8

M t hot ng Trc ht s c thc hin, sau kim tra . Nu ng th quay tr li thc hin v bt u mt chu trnh mi. Vng lp do while kt thc khi nhn gi tr sai. 1.6.S lc v cch xc nh phc tp ca mt thut ton Xc nh phc tp tnh ton ca mt thut ton c th dn ti nhng bi ton phc tp. Tuy nhin trong thc t, i vi mt s thut ton ta c th phn tch c phc tp ca mt thut ton bng mt s quy tc sau y. 1.6.1.Quy tc cng Gi s T1(n) v T2(n) l thi gian thc hin ca hai on chng trnh P1 v P2 m T1(n) = O(f(n)) v T2(n) = O(g(n)), th thi gian thc hin P1 ri tip theo n P2 s l T1(n) + T2(n) = O(max(f(n), g(n)). Chng hn on lnh for (i=1;i=1:";cin>>n; phantich(n); getch(); } int nguyentonhonhat(int n) { for (int i=2;i1) { k=nguyentonhonhat(n); couta2>>a3>>a4>>a5>>a6;

Trang 186

Bi tp lp trnh cn bn SGU2010 for (int i=1;i