6.1. Khi nim Hm chia cc nhim v tnh ton ln thnh cc m-un nh hn. u im ca vic s dng hm: D dng pht trin ng dng hn. Cho php s dng li cc mun ci t trong cc chng trnh khc. Trnh c vic lp li cc on m trong chng trnh.
6.2. Cu trc hm <Kiu> TnHm (danh_sch_tham_s) { Cc khai bo & cu lnh } Nu hm khng phi tr v gi tr no, th dng kiu void. Nu khng vit r kiu tr v l g, kiu tr v mc nh l int. n cui ca phn thn hm, cn phi tr li quyn iu khin cho ni m ti hm ny c gi. Nu hm tr li mt gi tr, cn dng lnh return bthc; tr li gi tr ca biu thc cho hm gi n. Nu hm khng tr li gi tr no, cn phi c lnh return;
6.3. Tham s hm Cn c vo vai tr, tham s hm c chia ra lm hai loi: Tham s hnh thc: l tham s ng vai tr i din cho cc tham s thc trong li gi hm. Tham s thc: l tham s thc s c truyn ti hm. V d: trong nh ngha hm int max(int a, int b, int c) th a, b, c l ba tham s hnh thc, cn trong li gi hm: max(2, 4, 6); th 2, 4, 6 l cc tham s thc s. Cn c vo phm vi, tham s hm c chia thnh: Tham s cc b: l tham s c phm vi trong hm cha n. Tham s ton cc: l tham s c phm vi trong ton b chng trnh. Ngn ng lp trnh C v C++ Nguyn Trng Giang
2
6.4. Truyn tham s cho hm Trong C v C++, tt c cc tham s u c truyn theo tr. Ch : Tham s hnh thc ca hm cng c th l con tr. Khi ny tham s thc tng ng phi l mt a ch bin hoc l tn ca bin mng.
6.5. Khai bo hm khai bo hm, ngi ta phi s dng khai bo nguyn mu (cn c gi l hm nguyn mu). Cc thng tin phi khai bo l: <kiu> TnHm (danh sch kiu ca tham s); V d: int power(int, int);
6.6. Hm nguyn mu (prototype) Hm nguyn mu l mt dng khai bo hm. Thng bo cho trnh bin dch bit kiu d liu hm tr li, kiu, s lng v th t ca cc tham s c truyn cho hm. Khng nht thit phi c hm nguyn mu. Trnh bin dch C s t to ra hm nguyn mu ngm nh nu lp trnh vin khng khai bo hm nguyn mu. u im: d bo c t trc v cc li c th xy ra. c tnh quan trng ca hm nguyn mu l kh nng chuyn kiu tham s. Vic chuyn kiu phi tun theo quy tc: Chuyn t kiu d liu nh hn sang kiu d liu ln hn. Sau y l bng sp xp cc kiu d liu theo th t gim dn v kch thc: long double double float unsigned long int long int unsigned int int short char
6.7. Tp tiu Mi mt th vin chun ca C c mt tp tiu . Mt tp tiu cha: Phn khai bo ca tt c cc hm trong th vin Ngn ng lp trnh C v C++ Nguyn Trng Giang
3 Cc nh ngha v kiu d liu v hng dng trong hm . Cc tp tiu ny c phn m rng l .h Lp trnh vin c th t to cc tp tiu vi phn m rng ca tp l .h khai bo tp tiu cn dng trong chng trnh, ch th #include c s dng.
6.8. Mt s hm trong th vin chun Phn ny gii thiu mt s hm hay c s dng trong th vin chun. Danh sch y cc hm c a vo ph lc.
Hm thao tc vi k t: Hm nhn tham s l mt gi tr kiu int v tr v gi tr kiu int. Hm tr v mt s khc khng (NG) nu tham s c tha mn iu kin c t ra, hm tr v gi tr khng nu c khng tha mn iu kin. s dng cc hm ny, chng ta cn khai bo th vin ctype.h iscntrl(c) Kim tra xem c c phi l k t iu khin khng isdigit(c) Kim tra xem c c phi l s khng isgraph(c) Kim tra xem c c phi l k t in c khng (khng bao gm k t trng, space) islower(c) Kim tra xem c c phi l k t thng khng isprint(c) Kim tra xem c c phi l k t in c khng (bao gm c k t trng, space) ispunct(c) Kim tra xem c c phi l k t in c khng (khng bao gm k t trng, k t hoc s) isspace(c) Kim tra xem c c phi l khong trng khng (khong trng gm: space, formfeed, newline, carriage return, tab, vertical tab) isupper(c) Kim tra xem c c phi l k t vit hoa khng. isxdigit(c) Kim tra xem c c phi l k t thuc h m c s 16 khng isalnum(c) L ng nu isalpha(c) ng hoc isdigit(c) ng isalpha(c) L ng nu isupper(c) ng hoc islower(c) ng Ngn ng lp trnh C v C++ Nguyn Trng Giang
4 Hm ton hc: s dng cc hm ny, chng ta cn khai bo th vin math.h sin(x) sin(x) cos(x) cos(x) tan(x) tg(x) asin(x) arcsin(x) trong khong [-pi/2,pi/2], x trong khong [-1,1]. acos(x) arccos(x) trong khong [0,pi], x trong khong [-1,1]. atan(x) arctg(x) trong khong [-pi/2,pi/2]. exp(x) e x
log(x) ln(x), x>0. log10(x) log 10 (x), x>0. pow(x,y) x y . Li s xy ra nu x=0 v y<=0, hoc nu x<0 v y khng phi l s nguyn. sqrt(x) cn bc hai ca x, vi x>=0. ceil(x) S nguyn nh nht khng nh hn x, tr v gi tr kiu double. floor(x) S nguyn ln nht khng vt qu x, tr v gi tr kiu double. fabs(x) Gi tr tuyt i ca |x|