You are on page 1of 23

Tin hc i cng

Bi 10: Hm

NGUYN Th Oanh oanhnt@soict.hut.edu.vn


B mn H thng thng tin - Vin CNTT v Truyn Thng i hc Bch Khoa H ni

2010 - 2011

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Ni dung

Khi nim hm Khai bo v s dng hm Phm vi ca bin

2 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khi nim chng trnh con Phn loi chng trnh con

Khi nim hm Khi nim chng trnh con Phn loi chng trnh con Khai bo v s dng hm Phm vi ca bin

3 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khi nim chng trnh con Phn loi chng trnh con

Khi nim chng trnh con

! Khi nim
L mt chng trnh nm trong mt chng trnh ln hn nhm thc hin mt nhim v c th

! Vai tr:
Chia nh chng trnh ra thnh tng phn d qun l => Phng php lp trnh c cu trc C th s dng li nhiu ln: printf, scanf. . . Chng trnh d dng c v bo tr hn

4 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khi nim chng trnh con Phn loi chng trnh con

Khi nim hm Khi nim chng trnh con Phn loi chng trnh con Khai bo v s dng hm Phm vi ca bin

5 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khi nim chng trnh con Phn loi chng trnh con

Phn loi chng trnh con

! Hm: tr v gi tr ! Th tc: khng tr v gi tr ! Trong C:


Ch cho php khai bo chng trnh con l hm. Khi chng trnh con khng c gi tr tr v: s dng kiu void vi ngha khng l kiu d liu no c

6 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khi nim hm Khai bo v s dng hm Khai bo hm S dng hm Phm vi ca bin

7 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khai bo hm
! C php:
[ k i e u _ g i a _ t r i _ t r a _ v e ] ten_ham ( [ danh_sach_tham_so ] ) { [ Cac_khai_bao ] [ Cac_cau_lenh ] }

Dng u hm:
l thng tin trao i gia cc hm. Phn bit gia cc hm vi nhau dng phn bit cc hm => khng c 2 hm c dng u hm ging nhau

Thn hm:
cha cc khai bo v cc cu lnh tn ti t nht 1 lnh return
8 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khai bo hm
! Dng u hm:
[kieu_gia_tri_tra_ve] ten_ham ([danh_sach_tham_so]) ten_ham: tn hm l nh danh hp l, trong C tn hm l duy nht (khng trng nhau) kieu_gia_tri_tra_ve : kiu gi tr tr v
kiu d liu bt k, khng c l kiu d liu mng nu khng c kiu gi tr tr v, trnh bin dch C ngm hiu kiu DL tr v l int

danh_sach_tham_so :
cc tham s (cch nhau bi du phy) cha DL vo cung cp cho hm tham s hnh thc: tham s trong li khai bo hm: phi c kiu DL v tn tham s tham s thc: cc tham s cung cp cho hm khi thc hin
9 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khai bo hm
#i n c l u d e <s t d i o . h> #i n c l u d e <c o n i o . h> // K h a i bao va d i n h n g h i a ham binhphuong i n t binhphuong ( i n t x ) { int y ; y = x x; return y ; } // Ham main v o i d main ( ) { // Noi dung ham main o day ... } #i n c l u d e <s t d i o . h> #i n c l u d e <c o n i o . h> // K h a i bao ham nguyen mau i n t binhphuong ( i n t ) ; // Ham main v o i d main ( ) { // Noi dung ham main o day ... } // Dinh n g h i a ham b i n h p h u o n g i n t binhphuong ( i n t x ) { int y ; y = x x; return y ; }
10 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khai bo hm

! ngha ca nguyn mu hm:


Cho php nh ngha sau khi s dng, nhng phi khai bo trc Cho php a ra li gi n mt hm m khng cn bit nh ngha V d:
khi gi printf, scanf chng ta ch cn quan tm cc tham s truyn cho hm tp stdio.h cha nguyn mu hm ca printf v scanf

11 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

Khi nim hm Khai bo v s dng hm Khai bo hm S dng hm Phm vi ca bin

12 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

S dng hm
! Li gi hm: ten_ham([tham_so1, tham_so2, ...]); ! Thc hin:
Nu hm c tham s => cc tham s c gn gi tr thc tng ng Thc hin cc lnh trong thn hm Hm s kt thc v tr v chng trnh gi n nu:
thc hin ht cc lnh trong hm HOC gp lnh return : return [bieu_thuc];

! Lu chung:
d khng c tham s, sau tn hm lun c cp du ( ) mt s ngn ng cho php khai bo cc chng trnh con lng nhau (Pascal) nhng C th khng
13 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

S dng hm
#i n c l u d e <s t d i o . h> #i n c l u d e <c o n i o . h> // K h a i bao ham nguyen mau i n t binhphuong ( i n t ) ; // Ham main v o i d main ( ) { int i ; f o r ( i =0; i <= 1 0 ; i ++) p r i n t f ( "%4d" , b i n h p h u o n g ( i ) ) ; getch () ; } // Dinh n g h i a ham b i n h p h u o n g i n t binhphuong ( i n t x ) { int y ; y = x x; return y ; }
14 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Khai bo hm S dng hm

QA

! Trong chng trnh ln c nhiu chng trnh con, im bt u thc hin chng trnh s thuc chng trnh con no? ! main l mt chng trnh con? ! Khai bo cc chng trnh con c lp nhau/lng ln nhau? ! Mun "lp rp" cc cng vic khc nhau cng thc hin, cn phi a ra li gi hm. Li gi cn cung cp nhng g?

15 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Khi nim hm Khai bo v s dng hm Phm vi ca bin Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

16 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Phm vi ca cc bin

! Phm vi:
khi lnh, chng trnh con, chng trnh chnh

! Bin khai bo trong phm vi no th s dng trong phm vi ! Trong cng mt phm vi cc bin c tn khc nhau ! Tnh hung: Trong hai phm vi khc nhau c hai bin cng tn, phm vi ny nm trong phm vi kia? = chng trnh ang thc thi trong phm vi no th khai bo trong phm vi c tc dng

17 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Khi nim hm Khai bo v s dng hm Phm vi ca bin Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

18 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Phn loi bin


! Bin cc b:
bin c khai bo trong lnh khi hoc chng trnh con, c t trc cc cu lnh

! Bin ton cc:


bin c khai bo ngoi mi hm, c s dng cc hm ng sau n V tr khai bo: sau phn khai bo tp tiu v khai bo hm nguyn mu

! Ghi nh:
Hm main() cng l mt chng trnh con nhng l ni chng trnh c bt u cng nh kt thc Bin khai bo trong hm main() cng l bin cc b, ch c phm vi trong hm main().
19 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Khi nim hm Khai bo v s dng hm Phm vi ca bin Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

20 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Mt s lnh c trng trong C: static, register


! Bin static:
bin cc b: b nh c gii phng sau khi ra khi phm vi ca bin s dng bin lu tr lu di: t kha static. Khai bo: static kieu_du_lieu ten_bien; Ging/khc vi bin ton cc ?
# i n c l u d e < s t d i o . h> # i n c l u d e <c o n i o . h> void fct () { s t a t i c i n t count = 1; p r i n t f ( " \n Day l a l a n g o i ham f c t l a n t h u %2d" , c o u n t++) ; } v o i d main ( ) { int i ; for ( i = 0; i < 1 0 ; i ++) f c t ( ) ; getch () ; }
21 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Mt s lnh c trng trong C: static, register

! Bin register:
Thanh ghi c tc truy cp nhanh hn RAM, b nh ngoi Lu bin trong thanh ghi s tng tc thc hin chng trnh. Khai bo: register kieu_du_lieu ten_bien; Lu : s lng bin register khng nhiu v thng ch vi kiu d liu nh nh int, char

22 / 23

Khi nim hm Khai bo v s dng hm Phm vi ca bin

Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register

Questions & Answers

23 / 23

You might also like