You are on page 1of 6

Trng HBK H Ni Khoa in B mn iu khin T ng

Ti liu hng dn thc hnh:

K THUT LP TRNH C/C++

Bi 1: Lp trnh c s
1 Mc ch bi thc hnh Gip hc vin lm quen vi cng c lp trnh Visual C++, th nghim vit chng trnh theo phong cch hng hm, qua nm vng cc kin thc lp trnh c s nh: 1) Phng php th hin thut ton bng cc cc cu trc iu kin, vng lp 2) Cch s dng mng, con tr, b nh ng 3) Khai bo, thc hin v s dng hm; cc phng php truyn tham s hm. 2 Nhim v th nghim 2.1 Bi tp 1. Xy dng mt hm thc hin phn loi cc s chn v l trong mt dy s nguyn, kt qu c nh vo hai dy s mi. S dng mng ng biu din hai dy s kt qu sao cho b nh c cp pht ng ch va dng. Kt qu tr v ca hm s l s cc s chn trong dy ban u, hay cng chnh l chiu di ca mt dy kt qu. 2. Vit chng trnh minh ha cch s dng hm trong cu 1 vi hai trng hp: - dy s ban u c cha trong mt mng tnh v gi tr cc s trong dy c khi to ngay khi khai bo. - dy s ban u c cha trong mt mng ng v gi tr cc s cn c a vo qua bn phm Hai dy s kt qu c a ra mn hnh. 2.2 Nhim v chun b nh 1) n li cc kin thc c s nu trong phn 1, xem li cc v d v bi tp trn lp. 2) Xy dng thut ton v vit chng trnh sn trn giy (vit tay, khng chp nhn bn sao!) 2.3 Nhim v trn phng th nghim 1) Lm quen vi Visual C++, to mt d n mi (New Project), t tn d n (v d SortApp) v chn Win32 Console Application 2) Vit hm trn my v lu vo mt 2 files ring: Header file (v d sort.h) cha m khai bo hm v file ngun (*.cpp) cha m thc hin hm. B sung 2 files vo d n. Bin dch file ngun (v d sort.cpp), tm cch gii thch v sa cc li bin dch (compile error). 3) Vit chng trnh minh ha trong file chnh (v d sortapp.cpp). Dch ton b d n (Build), sa cc li bin dch (compile error), li lin kt (link error) nu c v chy th chng trnh. 4) Lm quen s dng Debugger tm li chy (runtime error), tm cch gii thch v sa li nu c. 5) M menu Project Setting v tm hiu ngha cc thng s la chn cho d n. 6) Th nghim thay i cch th hin vng lp (for... hoc while..., s dng phng php dch con tr thay cho s dng ch s). 7) Th nghim khng dng mng ng, m dng mng tnh cha dy s u vo v cc dy s kt qu trong hm. Phn tch cc vn gp phi. 8) Ghi chp cc bc thc hin lm bo co. 3 Bo co thc hnh Mi hc vin phi lm mt bo co ring, np cho cn b hng dn th nghim chm nht l mt tun sau bui thc hnh. Bo co c th vit tay hoc in, nhng cc bn sao photocopy s khng c chp nhn. Bi bo co phi c cc phn sau: 1. Ton b m chng trnh chy chia lm 3 files nh hng dn trong phn 2.3 2. M t tng bc thc hin nh hng dn trong phn 2.3. Trong mi bc, cn nu bt cc cng vic lm, cc vn gp phi, cc li ch yu gp, l gii li v m t cch gii quyt. 3. Nu cc vn m anh (ch) thy cha tht hiu, cn ging vin gii thch k hn.

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59]

#include <iostream.h> #include <conio.h> int phanloai(int* a, int n, int*& chan, int*& le) { int i = 0, sochan = 0; while (i < n) { if (a[i] % 2 == 0) // so chan ++sochan; ++i; } chan = new int[sochan]; le = new int[n-sochan]; i = 0; int ic=0,il=0; while (i < n) { if (a[i] % 2) // so le le[il++] = a[i]; else chan[ic++] = a[i]; ++i; } return sochan; } void print(int* a, int n) { for (int i = 0; i < n; ++i) cout << '\t' << a[i]; } void main() { // mang tinh int n = 10; int as[10] = {1,2,3,4,5,6,7,8,9,10}; int *c, *l; int sochan = phanloai(as,n,c,l); cout << "\nDay so ban dau:"; print(as,n); cout << "\nDay so chan:"; print(c,sochan); cout << "\nDay so le:"; print(l,n-sochan); delete [] c; delete [] l; // mang dong cout << "\nCho chieu dai day so:"; cin >> n; int *ad = new int[n]; for (int i = 0; i < n; ++i) { cout << "\nad[" << i << "]="; cin >> ad[i]; } sochan = phanloai(ad,n,c,l); cout << "\nDay so ban dau:"; print(ad,n); cout << "\nDay so chan:"; print(c,sochan); cout << "\nDay so le:"; print(l,n-sochan); delete [] c; delete [] l; cout << "\n Nhan mot phim bat ky de ket thuc"; cout.flush(); getch(); }

Cc cu hi gi , kim tra b sung:


1. 2. 3. 4. 5. 6. Dng 1 v 2 c ngha g ? Ti sao cc tham bin chan v le dng 3 li c kiu int*& ? Gii thch cc dng lnh 16 v 18 Ti sao dng 30, ta khng th vit a[n] = {...} thay cho a[10] ? Ti sao dng 39, ta khng vit delete c; delete l? Dng 57 c ngha g? Nu xa dng i th sao?

Trng HBK H Ni Khoa in B mn iu khin T ng

Ti liu hng dn thc hnh:

K THUT LP TRNH C/C++

Bi 2: Lp trnh hng i tng: Lp v chng ton t


1 Mc ch bi thc hnh Hc vin bit cch xy dng mt cu trc d liu tiu biu di dng mt lp vi cc php ton thng dng, th nghim vit chng trnh theo phong cch hng i tng, qua nm vng cc khi nim v phng php thc hin nh: 1) ng gi d liu 2) Hm to, hm hy, hm to bn sao, hm ton t gn, chng ton t 3) Tham s mc nh, truyn tham s v kiu tr v 4) Xy dng mt th vin lp 2 Nhim v th nghim 2.1 Bi tp 1. Xy dng mt lp Vector biu din kiu vector ton hc c cc phn t (thnh phn) kiu double vi cc yu cu sau: - C th khai bo mt vector vi kch thc (s chiu) bt k. Nu khng a kch thc th n s c mc nh l 0. Tt c cc phn t c khi to gi tr bng 0. - Mt vector t qun l b nh ng, c kh nng t sao chp v thc hin php gn tng t nh vi cc kiu d liu c bn - C th xc nh s chiu vector cho mt vector bt k - C th truy nhp tng phn t vector thng qua ton t [] vi s th t tnh t 0 v ton t gi hm () vi s th t tnh t 1. - C th thc hin cc php +, - cng nh +=, -= v cc php so snh gia hai vector v cc php *, / cng nh *=, /= gia mt vector v mt s thc (double), o du (-) v ng du (+). 2. Vit chng trnh minh ha cch s dng lp Vector cu 1. Yu cu a s chiu, gi tr cc phn t qua bn phm v kt qu thc hin ra mn hnh. nh ngha li cc ton t <<, >> tng ng c th s dng li. 2.2 Nhim v chun b nh 1) n li cc kin thc c s nu trong phn 1, xem li cc v d v bi tp trn lp. 2) Xy dng thut ton v vit chng trnh sn trn giy (vit tay, khng chp nhn bn sao!) 2.3 Nhim v trn phng th nghim 1) To mt d n th vin mi (New Project), t tn d n (v d Mathlib) v chn Win32 Static Library. Chp nhn cc tham s mc nh. 2) To mt Header file (v d vector.h) cha phn khai bo lp v mt file ngun (vector.cpp) cha phn thc hin cc hm thnh vin cn li. B sung 2 files vo d n. 3) Thc hin lp Vector theo cc yu cu nu trong phn 2.1, dch ton b d n (Build), tm cch gii thch v sa cc li. 4) B sung mt d n mi Win32 Console Application vo trong Workspace c vit chng trnh minh ha. B sung th vin c to ra trn (mathlib.lib) vo d n v dch ton b d n mi, sa cc li bin dch (compile error), li lin kt (link error) nu c v chy th chng trnh. 5) Th nghim thay i mt s kiu tham s v kiu tr v trong hm to bn sao, hm ton t gn v cc hm ton hc. Phn tch cc vn gp phi. Ghi chp cc bc thc hin lm bo co. 3 Bo co thc hnh Mi hc vin phi lm mt bo co ring, np cho cn b hng dn th nghim chm nht l mt tun sau bui thc hnh. Bi bo co phi c cc phn sau: 1) Ton b m chng trnh chy chia lm cc files nh hng dn trong phn 2.3 2) M t tng bc thc hin nh hng dn trong phn 2.3. Trong mi bc, cn nu bt cc cng vic lm, cc vn gp phi, cc li ch yu gp, l gii li v m t cch gii quyt.

Trng HBK H Ni Khoa in B mn iu khin T ng

Ti liu hng dn thc hnh:

K THUT LP TRNH C/C++

Bi 3: Dn xut lp v c ch a x
1 Mc ch bi thc hnh Hc vin hiu su v cc c ch tha k v a x trong dn xut lp, qua nm vng cc vn nh: 1) Phn tch v m t quan h tnh gia cc lp i tng thng qua dn xut lp 2) Kim sot truy nhp thnh vin lp c s v tc dng i vi cc lp dn xut 3) Phn bit gia hm o v hm thnh vin thng thng, lp tru tng v lp thng thng 4) Phn bit gia tha k giao din v tha k phn thc hin v cc tc dng ca chng 5) ngha ca vic s dng con tr trong lp trnh hng i tng 2 Nhim v th nghim 2.1 Bi tp 1. Xy dng mt th vin lp (c t nht 4 lp i tng) biu din cc khi hm s dng trong m phng v thc hin cc h thng iu khin theo phng php s khi theo bi ging trn lp. 2. T chn mt v d m phng v vit chng trnh minh ha cch s dng th vin hm ny. 2.2 Nhim v chun b nh 1) n li cc kin thc c s nu trong phn 1, xem li cc v d trn lp. 2) V biu lp v vit m chng trnh sn trn giy (vit tay, khng chp nhn bn sao!) 2.3 Nhim v trn phng th nghim 1) To mt d n th vin mi. Khai bo v thc hin mi lp trong mt file *.h v mt file *.cpp. B sung cc file ny vo d n. Dch th d n v sa li. 2) B sung mt d n mi vo Workspace vit chng trnh minh ha cch m phng mt h thng s dng cc lp xy dng. S dng mt mng ng c cc phn t l con tr cha cc i tng (khi hm) trong h thng. B sung th vin c to ra trn vo d n mi. Dch ton b d n mi ny, sa cc li v chy th chng trnh. 3) Th nghim vi vic thay i quyn truy nhp (public, protected, private) ca d liu cng nh mt s hm thnh vin lp c s v cc lp dn xut, dch li ln lt c hai d n xem tc dng. 4) Th nghim vi vic thay i thuc tnh virtual ca mt s hm thnh vin lp c s v cc lp dn xut, dch li ln lt c hai d n xem tc dng. 5) Trong chng trnh minh ha, th khng dng cc bin con tr vo lp c s to v lu gi a ch cc i tng, m dng bin tham chiu hoc bin trc tip thng thng v tm hiu cc vn gp phi trong vic to cng nh qun l v s dng cc i tng. 3 Bo co thc hnh Mi hc vin phi lm mt bo co ring, np cho cn b hng dn th nghim chm nht l mt tun sau bui thc hnh. Bo co c th vit tay hoc in, nhng cc bn sao photocopy s khng c chp nhn. Bi bo co phi c cc phn sau: 1) Ton b m chng trnh chy chia lm cc files nh hng dn trong phn 2.3 2) M t tng bc thc hin nh hng dn trong phn 2.3. Trong mi bc, cn nu bt cc cng vic lm, cc vn gp phi, cc li ch yu gp, l gii li v m t cch gii quyt. 3) Nu cc vn m anh (ch) thy cha tht hiu, cn ging vin gii thch k hn.

Trng HBK H Ni Khoa in B mn iu khin T ng

Ti liu hng dn thc hnh:

K THUT LP TRNH C/C++

Bi 4: Lp trnh tng qut


1 Mc ch bi thc hnh Cho hc vin luyn tp v phng php lp trnh tng qut, qua nm vng cc k thut nh: 1) Khun mu hm, khun mu lp 2) Tng qut ha php ton 3) Tng qut ha phng php truy nhp phn t qua Iterator 2 Nhim v th nghim 2.1 Bi tp 1. Xy dng cc thut ton sao chp (copy) v tm kim phn t cc tr (find) tng qut. B sungmt s khun mu lp ton t tiu biu (Greater, Less, ...) s dng vi thut ton tm kim tng qut. Vit chng trnh minh ha nh sau: - Khai bo 2 mng tnh cc s thc vi gi tr u ty . - p dng thut ton sao chp sao chp t mng 1 sang mng 2 - p dng thut ton tm kim tm phn t ln nht/nh nht trong mng 1 - Cc kt qu quan trng c in ra mn hnh 2. Tng qut ha lp Vector trong bi th nghim 2 thnh mt khun mu lp. B sung hai hm thnh vin begin() v end() c th p dng cc thut ton tng qut. S dng thut ton sao chp tng qut trong cu 1 thc hin hm to bn sao v hm ton t gn. B sung cc php ton cng v tr vector l cc khun mu hm ton t bn ngoi (c th p dng phng php thut ton tng qut). Vit chng trnh minh ha cch s dng kt hp vi cc thut ton tng qut trong cu 1 nh sau: - Khai bo mt mng tnh v mt bin Vector kiu s thc v c s phn t nh nhau. Cc phn t ca mng tnh c t gi tr u ty . - p dng thut ton sao chp sao chp gi tr cc phn t t mng sang Vector - p dng thut ton tm kim tm phn t ln nht/nh nht ca Vector - Cc kt qu quan trng c a ra mn hnh. 2.2 Nhim v chun b nh 1) n li cc kin thc c s nu trong phn 1, xem li cc v d v bi tp trn lp. 2) Xy dng thut ton v vit chng trnh sn trn giy (vit tay, khng chp nhn bn sao!) 2.3 Nhim v trn phng th nghim 1) Thc hin cc bc nh trong phn 2.1 yu cu. Cc thut ton tng qut v cc khun mu lp ton t c lu trong mt file ring algo.h. Khun mu lp Vector c lu ring trong file vector.h. Cc chng trnh th nghim c tn ln lt l ct1.cpp v ct2.cpp. 2) Ghi chp cc bc thc hin lm bo co. 3 Bo co thc hnh Mi hc vin phi lm mt bo co ring, np cho cn b hng dn th nghim chm nht l mt tun sau bui thc hnh. Bo co c th vit tay hoc in, nhng cc bn sao photocopy s khng c chp nhn. Bi bo co phi c cc phn sau: 1) Ton b m chng trnh chy chia lm cc files nh hng dn trong phn 2.3 2) M t tng bc thc hin nh hng dn trong phn 2.1 v 2.3. Trong mi bc, cn nu bt cc cng vic lm, cc vn gp phi, cc li ch yu gp, l gii li v m t cch gii quyt.

You might also like