Tnròng Dgi hoc Vinh Tap chi khoa hoc Tgp 45, Sé lA (2016), tr 59 68 RÈN LUYÈN KY NÀNG LÀ? TMNH THÒNG QUA DAY HOC THirC HÀNH HOC PHÀN CAU TRUC D C LIÉU VA GIÀI THUÀT Phan Le Na Khoa Cóng nghe thóng tin[.]
Trang 1RÈN LUYÈN KY NÀNG L À ? T M N H THÒNG QUA DAY HOC
THirC HÀNH HOC PHÀN CAU TRUC D C LIÉU VA GIÀI THUÀT
Phan Le Na
Khoa Cóng nghe thóng tin, Truàng Dgi hoc Vinh
Ngày nhàn bài 26/10/2015, ngày nhiìn dàng 31/3/2016
Tom tàt Ky nàng làp trình là mot yèu càu co bàn càn thiét cùa sinh vién (SV) ngành
Còng nghè thòng tin (CNTT) Viéc rèn luyén ky nàng làp trình là mot nbiém vu quan
ttgng cùa SV, dac biét là vói nhùng nguòi muón ttò thành làp trình vién tuong lai Cau trac dù liéu va giài thugt là hgc phàn bàt bugc va quan ttgng bò ttg kj thuàt làp trình
cho SV ngành CNTT Bài vièt này de xuàt mot s5 giài phàp giùp nàng cao ky nàng làp
trình cho SV thóng qua viéc day hgc thvcc hànb phàn de qui thugc hgc phàn Càu triic
dù liéu va giài thugt
1 MOT SÓ VÀN DE KHI DAY LÀ? TRÌNH
Cóng nghé thóng tin là mot ngành d^c thù vói nhiéu hgc phàn co thuc hành, dac biét là nhùng mòn hgc làp ttình Nhùng hgc phàn này dòi hòi phài trai qua qua trình hgc, tfch lùy kién thùc ttong thòi gian nhàt djnh Hién nay, chuong trình dào tao càc ngành CNTT bao gòm: Su pham Tin hgc, Khoa hgc mày tfnh, CNTT, Còng nghé phàn mém
Càc ngành này dèu co mot so hgc phàn giùp SV làm quen vói làp trình nhu Ngòn ngù làp trình C, Càu truc dù liéu va giài thuàt, Ky thuàt làp trình Day là càc hgc phàn giùp SV
trang bi càc kién thùc làp trình ca bàn, cà 1^ thuyét làn thuc hành Làp trình giup SV nàm bàt dugc bài hgc tòt hon, ùng dung càc kién thùc da hgc vào thirc té Tuy nhién, thuc té cho thày nhiéu SV gap khó khan khi hgc làp trình L|lp trình là mot ky nàng khó, dòi hòi
SV phài co tu duy tòt vè thuàt toàn De nàm vùng làp trình, SV càn phài làm nhiéu bài t|p de tfch lùy kinh ngbiém Trén lóp, giàng vién (GV) chi co thè tmyèn dat nhùng kién thùc co bàn, huóng dàn nhùng vàn de còt lòi nhàt SV phài t\i hgc, tir ngbién cùu, làm nhièu bài t^p, tham khào tài lièu de hgc càc kién thùc mò ròng Mot so SV thuc hành khòng nhièu, kién thùc tiéng Anh khòng tòt, khi vièt chuong trình khòng thè tu sua lòi
Càu trae dù lièu va giài thuàt là hgc phàn bàt buóc cùa SV chuyén ngành CNTT Day là
mgt ttong nhùng hgc phàn quan ttgng cùa chuong trình dào tao ngành CNTT va ciìng rat càn thiét cho nhièu ngành khàc nhu Dién tu vién thòng, Buu chfnh vién thòng De dat dugc hiéu qua cao vè ky nàng làp trình, phàn thuc hành rat quan trgng SV càn phài co tài liéu tham khào de tu hgc, tu thuc hành mot càch pbù hgp nhàt Nèu bài tbgc hành co huóng dàn tbì ky nàng làp trình sé dugc nàng lèn
VIEN
2 MOT SO GIAI PHA? NANG CAO KY NANG LÀP TRINH CUA SINH
2.1 K^ nàng làp trình càn thiet cho sinh vién
Ky nàng làp ttình là mot ky nàng tò hgp tu càc ky nàng làp trình càc bài toàn, gò lói (debug), tìm hiéu help, ky nàng dgc chuong trình Nhùng k j nàng dò dugc rèn cho
SV ttong qua trình day hgc càc hgc phàn lién quan dén làp trình Truóc hét, GV càn quan
Trang 2P.UNa/ Rèn luyén k^ nàng làp trình thòng qua dgy hgc thuc hành hpc phàn Càu truc dù li?u va giài thugt
tàm tói ky nàng làp trình càc bài toàn cùa SV Khi gap mgt bài toàn ttong th^rc té, SV càn bièt xàc dinh yéu càu cùa bài toàn, phàn tfch bài toàn, thiét ké chuong trình, thiét ké càc giài thuàt chi tiét va cài dàt chuong trình hoàn chinb Tàt cà nhimg dièu dò dugc GV ttang bi cho SV thóng qua viéc day hgc càc vf du cu thè, sau dò SV sé thirc hién theo, Trong qua trình l|ip trình va làm viéc vói càc ngòn ngù làp trình, mot ttong nhùng ky nàng càn thiét va quan ttgng là ky thuàt dò va gò lòi Su dung thành thao Debug Tool giup SV co dugc càc ùng dung tòt Ben cEinh dò, khóng phài tàt cà càc kièn thùc hén quan dèu dugc GV cung càp cho SV Vi vày, ky nàng tìm hiéu Help khi làm viéc vói càc ngòn ngù làp trình cùng càn dugc trang bi Day là phuong phàp giùp SV bièt tu tìm càc giài phàp khi làp trình tu chùc nàng Help cùa càc phàn mém làp trình Cuòi cùng là ky nàng dgc chuong trình Viéc dugc ttang bi, rèn luyén ky nàng này giùp SV de dàng bcm khi xem lai càc chuong trình do minh viét cùng nhu khi tham khào chuong ttình cùa nguòi khàc nhàm nàm bàt y tuòng va càch thùc giài quyét bài toàn cùa bg thóng qua dgc hièu chuong trình
2.2 Nàng cao k^ nàng làp trình
Trong qua trình giàng day càc hgc phàn cùa CNTT, dàc biét là càc hgc phàn lién quan dèn làp ttình, GV phài co phuong phàp day hgc pbù hgp nbàm dat higu qua cao Vi vày viéc àp dung càc phuong phàp de t?o hùng thù, yèu thfch mòn hgc lap trình, làm cho
SV co thè nàm dugc nói dung bài hgc ngay tai lóp, nàm dugc kièn thùc mot càch logie
va co he thóng là diéu càn thiét SV càn dugc huóng dàn de hièu dugc tàm quan ttgng cùa ky nang làp trình dói vói ngành CNTT SV phài nò lue tu hgc, làm bài tàp dugc giao ttén lóp, thgc hién càc bài tàp trong càc tài lièu tham khào khàc de tich lùy kién thùc, dóng thòi tao nièm say me ttong hgc tàp Dòi vói giò thuc hành, de dat hiéu qua cao, SV càn tfch cuc làm truóc bài tàp ó nhà, giò thuc hành tai phòng mày diing de òn luyén hoac nhó GV giùp dò ttong vi^c sua lói chuong trình bay giài quyét càc vàn de khó Hièn nay,
co nhiéu nguón bài tàp thuc hành bao gòm cà code SV co thè su dung nguòn tm Uéu này
de tham khào, giài quyét càc vuóng màc ttong qua trình lap trình Tuy nhièn, khòng nèn sao chép code ma khóng hiéu nói dung, càch thùc boat dóng cùa tùng doan code dò Khi giàng day, ngoài nbihig bài tàp ttong giào ttình, GV co thè dua ra mot so bài t|p co y nghìa thuc té, cbàng han nhu l^p trình game, càc chù de bài tàp lón, giói thiéu càc duòng link co tài liéu ben quan vè càu truc dù li^u va giài thuàt Viéc tir tbuc hién chucmg
trình thòng qua càc bài tàp co y nghìa giùp SV tìio nièm vui ttong hgc tàp, hiéu dugc ^
nghìa mòn hgc, tao dgng lue vuon lèn Khi mòi hgc l?.p trình, bay xem thài ky ràmg vf dii
SV càn hiéu dugc tìmg doan ma co y nghìa gì, co chùc nàng gì SV phài xem dogji code that ky de vièt code chinh xàc va rò ràng Khi vièt code, SV phài tuàn thù quy tàc va cu phàp mot càch chat che de càc SV khàc co thè dgc hiéu mot càch de dàng SV phài co thói quen khòng chi dgc vf du ma phài chay thù chuong trình de bièt dugc két qua GV
nèn huóng din SV tàp viét ma riéng; SV bay t\f nghT cbo minh mot thu§t toàn rièng
Truóc tién, bay viét mot doan ma nào dò de thè hién y cùa minh, sau dò dùng ngòn ngù làp ttình de viét 1^ Cóng viéc này tòn nhiéu thòi gian, nbung qua dò, SV sé thu dugc nhièu kinh nghièm, kbà nang tu duy làp ttình ngày càng phàt ttién
Kbung chuong trình dào tao càn dugc thiét kè hgp IJ hon; nèn dua hgc pbàn
Trang 3nghièm làp trình Càu trùc dù lièu va giài thudt dugc chia làm 2 hgc phàn; Càu trùc dù liéu va giài thugt dugc hgc ò hgc ky 2, Càc giài thuàt nàng cao dugc hgc ó hgc ky 3
Ngoài ra, khung chuong trình dào tao con co khà nhiéu hgc phàn lièn quan dén ky thuàt
làp trình nbu Lgp trình huóng dòi tuong Dò hoa mày tinh, Làp trình web, Làp trình truc quan, Làp trình Java, Lgp trình Java nàng cao Day là nhùng mòn hgc giùp cho SV
tbfch thù su dung sau này Mot giài phàp khóng thè thiéu là day manh càc ho^t dòng ngoai khóa lièn quan dén làp ttình nhu tò chùc thi olympic làp bình C, thiét ké web, Java code, tbi thiét ké logo; tnmg bay càc phàn mèm ma SV thuc hién tu két qua thuc tàp chuyén ngành; tò chùc hgi ngh| SV nghièn cùu khoa hgc hàng nàm; xày d\mg càu lac bò nhóm làp trình C, làp trình Java co sg huóng dàn cùa GV tté hoac SV giòi nàm cuòi
2.3 Xày dung phuong phàp thirc hành hgc phàn Càu truc dù liéu va giài thuàt
Pbuong phàp day hgc thuc hành là phuong phàp giàng day ttèn co so quan sàt
GV làm màu, SV thuc hién bài tàp thuc hành duói sv huóng din cùa GV, tir do hình
thành càc ky nàng càn thiét cho boat dòng nghè nghiép tuong lai Ngoài ra, phuong phàp diiy hgc thuc hành con giùp SV cùng co tri thùc chuyén ngành, xày dung phàm chat, tàc phong làm viéc chuyén nghiép va phàt trièn nàng lue tu duy Co 3 giai doan day thuc
hành bao gòm: giai doan chuàn bi, giai doan thuc hién va giai dogn két thùc GV càn
thgc hién tién trình day hgc thirc hành tbeo phuong phàp 4 buóc Pbuong phàp này tuàn thù tbeo nguyèn tàc GV làm màu, huóng dàn SV làm theo, sau dò tìèn hànb luyén tap cbo SV Phuong phàp 4 buóc là mot pbuong phàp quan ttgng ttong day thuc hành, dac biét tbich hgp de giàng d^y càc ky nàng làp trình co bàn Qua càc bài tàp thuc hành, SV nàm vùng kièn tbùc ly thuyét dà dugc hgc trèn lóp SV tu kiém tta kién thùc ly thuyét tbòng qua càc bài tbuc hành va phàn ttà lòi càu bòi ttàc nghièm
Tién trình day hgc thuc hành nàng cao ky nàng l^p trình hoc pbàn Càu trùc dù lièu va giài thuàt theo pbuong phàp 4 buóc nhu sau:
- Giai doan chuàn bi: GV chuàn bi bài thuc hànb, chuàn bi phòng mày, pbàn
còng vi tri thitc hành, kiém tta mày tfnh
- Giai doan thirc hièn: Bir&c 1 - Ma dàu bài day Giói thiéu tóm tàt nói dung,
xàc dinh nhiém vu yèu càu cùa bài thgc hànb, nèu mot so càu hòi kiém tta kièn thùc pbgc
VII cho bài thuc hành Bit&c 2 - GV thuyét trình va thitc hành màu Thinh tboàng GV dat
càc càu bòi de thùc day SV suy nghì, thu hùt sg chù y vào nhùng diém ttgng tàm cùa bài
GV nhàn m ^ nhùng dièm chfnh, lim y nhùng lói hay xày ra Bir&c 3 - SV thuc hành va thuyét trình SV thuc hành va néu 1^, giài tbfch dugc càc buóc, càc doan chuong bình
cùa bài tbuc hành Buóc này tàng thèm ky nàng thuyét ttình cho SV GV kiém tta, dièu
chinh càc thao tàc, de xuàt càc càu hòi de SV ttà lòi Bu^&c 4 - Luyén tàp SV luyén tàp
ky nàng, luyén tàp làm càc bài t$p dugc giao GV quan sàt, kiém tta ttg giùp Sau khi SV da nàm vùng càch thùc thuc hành, GV co thè cho SV tién hành tbuc hànb theo nhóm, giài dàp nhùng thàc màc ma SV dua ra ttrong qua ttình thuc hành
- Giai dogn két thuc: Kbi két thùc bài thuc hành, GV phàn tich kèt qua thuc hién
dugc so vói muc dich yéu càu; giài dàp càc thàc màc va Imi y nhùng sai sót, lòi thuòng gap ma SV màc phài; cùng co kién thùc tbòng qua nói dung thuc hànb Sau dò GV co thè
Trang 42.4 Xày dumg hai day thurc hành phàn d^ qui trong hoc phàn Càu trùc dir liéu va giài thuàt
Giai ^an chuàn bi
GV chuàn bi bài tìiuc hành phàn d? qui phàt cho SV ttiióc khi hgc phàn tbirc
hành Càu trac dù liéu va giài thuàt (khóng kèm theo càc càu hòi), chuàn hi càu hòi va
phièu ttà lòi ttàc nghièm, phàn cóng vi tri tbgc hành, chuàn bi kich bàn day thuc hành toàn bài; ky thuàt vién chuàn bi phòng mày, kiém tta mày tì'nh
Giai dogn thuc hién
Bif&c h Mie dàu bài day
Muc dich: Giói thiéu phuong phàp làp trình theo ky tbu^t de qui, càch boat dgng, thiét ké giài thuàt de qui va cài dat càc hàm de qui; Dóng thòi huóng dàn SV thgc bién bài tàp thuc hành trén ngòn ngù làp ttình C
Ky nàng: Biét lua chgn pbuong phàp lim trù thich hgp va giài thuàt cho tiing bài toàn Phàn này con giùp SV cùng co va phàt trièn ky nàng làp trình dà dugc hgc
Yèu cau: Su dung giài thuàt de qui dòi vói tiJmg bài tàp, SV néu dugc tèn hàm, danh sàch tham bién (tham tri), trình bay càc buóc, càc thành phàn cùa giài thuàt de qui,
su dung lòi ggi hàm de qui ttong chuong trình chinb; nam dugc uu, nhugc diém cùa giài thuàt de quy
1 Giài thuàt de qui:
Khài nièm de qui: Mot hàm dugc ggi là de qui nèu ttong thàn ciia hàm dò co lénh
ggi lai chfnh nò mgt càch tuòng minh hay tiém àn
Vi dui So tu nhién
a 1 là so tu nhién
b X là SÓ fu- nhién néu x-ìlàsòtu nhièn
Vi du 2 Hàm tfnh n !
a 0! = 1
b Néun>0,tbìn! = n*(n-1)!
Càu hói 1 Hày cbo mot vf du minh boa kbài niém de qui
Khài niém giài thuàt de qui: Nèu lòi giài cùa mot bài toàn T dugc thuc hién bang
lòi giài cùa mot bài toàn T', co dang giòng nhu T tbì dò là mot lòi giài de qui Giài thu^t tuong ùng vói lòi giài de qui dugc ggi là giài thuàt de qui
2 Hàm de qui: HSmi de qui hay thù bic de qui bao gòm hai phàn: Phàn neo (hay phan co dinh), ùng vói truòng hgp suy bièn, ttong do tàc dóng cùa hàm dugc dàc tà cho mot hay nhièu tham so Phàn de qui (hay phàn qui ngp, phàn ha bàe), ttong dò tàc dòng
càn dugc thuc hién cho già tri hién thòi cùa càc tham so dugc dinh nghìa bang càc tàc dgng hay già ni dugc dinh ngbTa tmóc day
Càu hói 2 Hày néu càc thành phàn cùa hàm de qui tinh n!
Trong càc ngòn ngù lap trình càp cao, nèu càc thù tue chùa lòi ggi dén chfnh nò
tbì dugc ggi là de qui tryrc tiép, con néu lòi ggi dèn chinh nò phài thóng qua mot hay mot
SÓ tbù tue khàc thi dugc ggi là de qui giàn tiép
3 Thiét ké giài thuàt de qui:
Xét mot so bài toàn sau:
Trang 5{1 néu n = 0
n * ( n - l ) ! n é u n > 0 uiai muai oe qui auge viet duói dang hàm, nhu sau:
doublé Giaithua(int n)
{ if(n = = 0)remm 1;
else return (n* Giaithua(n-l));
}
W(ÌM'# Cho day Fibonacci: 1, 1,2,3,5,8, 13,21,
Hàm Fib tao ra day này co thè dinh nghìa dang de qui:
F i b ( n ) = P n é u n < 2
[Fib (n - 2) + Fib (n - 1) néu n > 2
Giài thuàt de qui dugc viét duói dang hàm là
int Fib(intn)
{if(n<= 2) return 1;
else return (Fib(n-2) + Fib(n-1));
}
Càu hòi 3 Hày cho biét tèn hàm va tèn bién: hàm de qui tfnh n!, hàm de qui tfnh
so Fibonacci thù n
Vidu 5 Càu trùc ta ttò dugc dinh nghìa bang d? qui
struct node
(int infoi;
Struct node *left;
stmct node *right;
};
Giài thuàt de qui: Mot thuàt toàn dugc ggi là de qui nèu nò giài bài toàn bang càch rùt
gon bài toàn ban dàu thành bài toàn tuong ttr sau mot so hùu han làn thuc hién
Vi du 6 Viét hàm tfnh a" bang giài thuàt de qui, vói mgi so thuc a va so tu nhién
doublé Mu (float a, int n )
{ if ( n = 0 ) return 1;
return (a *Mu(a,n-l));
1
Vidu 7 Viét hàm de qui tfnh n!
long Giaithua(ìnt n)
{ if (n==l) return 1;
return (n * Giaithua(n-l));
Càu hói 4 Hày cho biét tén hàm, tèn bièn cùa hàm Mu va hàm Giaithua viét dang
de qui
Buóc 2: GV thuyét trình va thirc hành màu
Bài tàp 1 Su dyng hàm vièt dang de qui Tong=l+2-i- +n, tinh va in ra tòng
S=l-i-(l+2)+ +(l-f-2+ +n), vói n dugc nhàp tu bàn phim
Trang 6Hu&ng dàn Hàm vièt dang de qui Tong=l-i-2+ +n là
int Tong(int n)
{if(n==l) return 1;
else return (n + Tong(n-l));
)
Thuc hành:
#include <stdio.h>
#include <conio.h>
int Tong(int n)
{if(n=l) return 1;
else return (n + Tong(n-l));
void main()
{int n,i, s=0;
printf("Nhap n ="); scanf("%d",&n);
for(i=l;i<=n;i++) s=s+Tong(i);
printf("S= %d",s);
getchO;
}
Càu hòi 5 Hày xàc dinh input, output cùa bài toàn va cho bièt tén hàm, tén bièn
cùa hàm Tong, lòi ggi hàm Tong su dung trong chuong trình chfnh Chay cbuong trình
va nhàp n=3,4 de tì'nh tòng ttiong ùng Hày nèu càc thành phàn cùa hàm de qui Tong
Sài tàp 2 a) Hày xàc dinh input, output cùa bài toàn Viét hàm de qui tmh n!
Biéu dién giaithua(5) dang de qui
b) Hày dua vào lói giài càu a) sua thành bài vói n dgc tu tép input.txt góm càc so nguyén ducmg va ghi vào tép output.txt kèt qua giaithua(n) tuong ùng nhu bang sau:
input, txt
5
6
7
output.txt 1
120
720
5040 1 c) Co nhàn xét gì khi chay chuong trình vói n=17? Vói già tri nào cùa n tbì két qua ch?y chuong trình xuàl hién Stack overflow
Huóng dàn
int giaithua (int n)
{if(n = 0) rettimi;
else return (n * giaithua(n - 1 ) ) ;
Ta co giaithua(5) sé dugc biéu dién nhu sau:
giaithua(5)
5* giaithua (4)
5*4 *giaithua (3)
5*4*3* giaithua(2)
5*4*3*2*giaithua(l)
5*4*3* 2 *1
Trang 7Bài tàp 3 Dói vói bài toàn "Su dung hàm viét dang de qui giaithua(n)=n!, tfnh va
in ra tòng S=l+l/(l*2)+ -i-l/(l*2* *n), vói n dugc nhap tu bàn phfm", hày sua lòi doan chucmg trình sau day:
int giaithua (int n)
(if(n = 0) rettimi;
else return (n +n * giaithua(n -1));
}
void maìn()
{int n,i, s=0;
printfC'Nhap n = "); scanf("%d",&n);
for(i=l;i<=n;i+-i-)s=s+l/giaithua(i,n);
printf("S= %d",s);
gelchO;
}
Bir&c 3: SV thuc hành va thuyét trình
SV thuc hành Bài tgp 1, Bài tàp i va tì^ lòi Càu hói 5, dóng thòi giài thich dugc
càc doan chuong trình cùa bài thirc hành GV kiém tta, dièu chinh càc thao tàc, de xuàt thém càu hói de SV ttà lòi
Biràc 4: Luyén t^p
Bài tàp 4 Hày thuc hành ch^y chuong ttình: su diing hàm vièt dang de qui
Tong=l+3+ +2n-l, tinh va in ra tóng S=l+(l+3)+ -i-(l+3+ +2n-l), vói n dugc nhàp
tu bàn phim
Hu&ng dàn Hàm viét dang de qui Tong=l+3+ +2n-l,
int Tong(int n)
{if(n=l) return 1;
else retura (2*n-] + Tong(n-l));
1
Bài tàp 5 Hày thuc hành chay chucmg ttình: su dung hàm viét dang de qui tinh
Tong(n), tfnh va in ra tóng S(n) = 1 + 1/(1-1-2) + 1/(1+2+3) + + 1/(1+2+3+ +n), vói n dugc nhàp tu bàn phfm
Hu&ng dàn
float Tong(float n)
{if(n==l) return (float) 1;
else retura Tong(n-l)+n;
1
float TongChia(float n)
[ if(n==l) rettim (float) 1;
else return TongChia(n-l) + l/(Tong(n-l) + n);
}
Bài tàp 6 Hày thuc hành cb^y chuong trình va néu càc thành phàn cùa hàm viét
dang de qui càc bài toàn sau:
1 Su dyng hàm viét dang de qui Tong=lV2V +n^ tinh va in ra tóng S=l/lVl/(r+2^)+ +l/(lV2^+ +n^), vói n dugc nhàp tu bàn phfm
2 Su dung hàm viét dang de qui Tong=l/2+3/4+5/6+ +(2n+l)/(2n+2), tinh va in ra
Trang 83 SU dung hàm viét dang de qui tfnh Giaithua(n), tfnh va in ra S=l + 1.2 + 1.2.3 + -r 1.2.3 n, vói n dugc nhàp tu bàn phfm
4 Viét chuong trình in ra so Fibonacci thù n, vói hàm Fibonacci viét dang de qui
5 Su dyng hàm vièt dang de qui tì'nh Mu(a,n), tfnh va in ra S=a + a^ + a^ + + a", vói n dugc nhàp tu bàn phfm
6 Vièt chucmg trình nh^p màng càc so nguyén gom n phàn tu Su dimg ky thuàt d? qui
de xày dung hàm tmh tóng càc phàn tu cùa màng
7 Vièt chucmg trình nhàp màng càc so thuc gòm n phàn tu Su dung ky thuàt de qui de xày dung hàm tìm Min va tìm Max càc phàn tu cùa màng
Càu hói 6 Hay xàc dinh input, output cùa bài toàn va cho biét tén hàm, tèn bién cùa càc
hàm viét dang d | qui va lòi ggi càc hàm dò su dung ttong chuong trình chfnh cùa càc bài ttèn
Giai dogn két thùc
Khi két thùc bài thuc hành phàn de qui, GV phàn tfch kèt qua thuc hién so vói muc dfch yèu càu, dóng thòi giài dàp càc thàc màc cùa SV SV bièt xàc dinh yéu càu cùa
bài toàn, phàn tfch bài toàn, thiét ké giài thuàt de qui va cài dàt chuong trình GV luu f
SV vè càc uu diém va nhugc dièm cùa de qui Cu thè, de qui co càc uu dièm; manh, rÒ ràng, chat che, tliiét ké giài thuàt don giàn; co càc nhugc diém: lòi ggi hàm tón rat nhièu thòi gian va de phàt sinh chay vò han Tiép do, GV nhàc lai mot so lói hay gap phài va càch khàc phuc, dóng thòi de xuàt càc de tài de SV tìm hiéu thém phàn này nhu de quy
va càch khù de quy; càu lénh diéu ki$n va de quy; thuàt toàn de quy va mot so bài toàn
de quy co bàn; ky thuàt làp trình de qui ca bàn; tìm biéu càc loai de qui; tìm hièu mot sS bài toàn kinh dién vè d? qui; de quy trèn cày va càc bài toàn thóng dung, chóng ttàn bò dèm
Ngoài ra, GV càn xày dung bó càu hòi ttàc nghièm de dành già viéc tiép thu kién thùc cùa SV Sau day là vi du vè càc càu hòi ttàc nghièm ttén giày vói thòi gian ttà lòi 10 phùt:
C à u l : Cho hàm
int tong( int a[ ], int n)
{if(n==l)rettuna[0];
retura (a[n-l]+tong(a,n-l));
Hày viét biéu thùc tóng quàt cùa day tòng càn tinh va chgn phuong àn dùng: a) printf("\n Tong cua mang la : %d",tong);
b) printf("\n Tong cua mang la : %d",tong(a));
e) pFÌntf("\n Tong cua mang la : %d",tong(a,n);
d) printf("\n Tong cua mang la : %d",tong(a,n));
Càu 2: Cho hàm
long Giaithua(int n)
{if(n==0)rettuTil;
else return (n*Giaithua(n-l));
1
int main()
{ for(i=l;i<=n;i++)s+=Giaithua(i);
printf("\n Tong la : %ld", s); }
Trang 9Hày viét bièu thùc tóng quàt cùa day tòng s càn tmh Vói n bang bao nhiéu thi tòng s=33?
a) n= 2; b) n= 3; e) n= 4; d) Tàt cà phuong àn dèu sai
Càu 3: Cho hàm
int Tong(int n)
{if(n= =1) return 1;
else return (n + Tong(n-l));
}// càc so hang hon kém nhau 1 don vi
int main()
{ for(i=l;i<=n;i++) s=s+Tong(i);
printf("S=%d",s); }
Hày viét bièu thùc tòng quàt cùa day tòng s càn tinh Vói n bang bao nhièu thi tóng s=20 a) n= 1; b) n= 2; e) n= 3; d) n= 4;
Càu 4: Cho hàm
int Tong(int n)
{if(n= =1) return 2;
else return (2*n + Tong(n-l));
}// càc so hang hcm kém nhau 2 don vi
int main()
{ for(i=l;i<=n;i++) s=s+Tong(i);
printf("S=%d",s); }
Hày viét biéu thùc tóng quàt cùa day tòng s càn tfnh Vói n bang bao nhiéu tbì tòng s=40 d) n= 1; b) n= 2; e) n= 3; d) n= 4;
De thuc hièn thành cóng càc bài thuc hành mòn Càu trae dù liéu va giài thugt,
tàng ky n ^ g làp trình cho SV, GV càn cung càp nói dung bài thirc hành, bài giàng cho
SV nghièn cùu truóc GV càn chù y xày dung he thóng bài tàp thuc hành phù hgp, co huóng dàn; soan kich bàn day thuc hànb co dành già, kiém tta tìmg giai doan, vói càc vi
du minh hga cu thè
3 KÉT LUÀN
De phàt huy tòt vai trò cùa dào tao tì'n chi dói vói ngành CNTT, càn co su dòi mói ttong tò chùc dào tao ò truóng dai hgc: dòi mói càch day, càch hgc; tàng cuòng viéc tu hgc, tu nghièn cùu, thuc hành cùa SV, ttong dò, rèn luyén ky nàng làp bình thóng qua
thuc hành món Càu trtic dù liéu va giài thuàt là mot trong nhùng giài phàp thiét thuc
Cùng nhu vói càc mòn hgc khàc, ttèn co so quan sàt GV làm màu, SV thuc hién bài tàp thuc hành món này duói sg huóng dàn cùa GV, tu do lùnh thành càc ky nang càn thiét
Co 3 giai doan day thuc hành bao gòm: giai dogn chuàn bi, giai dogn thuc hién va giai dogn kèt thùc Tién trình day hgc thuc hành dugc thuc hién theo phuong phàp 4 buóc
Truóc hét GV làm mau, tiép theo huóng dàn SV làm theo, sau do tién hành luyén tàp cho
SV Khi két thùc bài thirc hành, GV phàn tì'ch két qua thuc hién so vói muc dfch yéu càu
de ra, giài dàp càc thàc màc cùa SV Qua bài thuc hành, SV phài biét xàc dinh yèu càu cùa bài toàn, phàn tfch bài toàn, thièt ké giài thu^t, cài dàt chuong trình va phài co ky nàng dgc chuong trình, GV cùng co thè de xuàt càc de tài lièn quan dèn nói dung thuc hành Viéc dàm bào nhùng yéu càu ttén chinh là day hgc huóng dén bòi duòng nang lue
Trang 10T À I L I É U T H A M K H À O
[1] Ph^m Vàn Àt, Ky thugt làp trình C ca sa va nàng cao, NXB Giao thóng van tài,
2006
[2] Nguyén Due Ho, Phàt trièn nàng lue kì thuàt trong dgy hoc thuc hành kì thuàt, Tap
chi Giào due, So 254, Ky 2 tbàng 1/2011, tt 23-24
[3] Dò Xuàn l^i, Càu truc dù liéu va giài thugt, NXB Giào due, 2005
[4] Phan Le Na, MQÌ SO giài phàp nàng cao chat lugng dgy hoc hoc phàn Tin hQc ca sa ò Truàng Dgi hoc Vinh, Tap chf Giào due So 346, Ky 2 thàng 11/2014, tt 46-48
[5] www.nm.edu.vn/Portals/96/ /ttan%20minh%20van.doc
SUMMARY TRAINNING OF PROGRAMMINO SKILL THROUGH TEACHING PRACTICE OF THE COURSE DATA STRUCTURES AND ALGORITHMS Programming skill is a basic requirement needed by informatìon technology students Trainning programming skills is an important task of the smdents, especially for
those who desire to become programmers in the future Data structures and algorithms is
a compulsory and important course to improve the programming techniques for the IT students This paper proposes some solutìons to enhance programming skills for students through teaching practìce of the recursion part of the course