You are on page 1of 0

Ngn ng lp trnh C v C++

Nguyn Trng Giang




1
Chng 6: Hm

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|

You might also like