Professional Documents
Culture Documents
Bi 10: Hm
2010 - 2011
Ni dung
2 / 23
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 chng trnh con Phn loi 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 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 chng trnh con Phn loi chng trnh con
6 / 23
Khai bo hm S dng hm
7 / 23
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
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
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
Khai bo hm S dng hm
Khai bo hm
11 / 23
Khai bo hm S dng hm
12 / 23
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
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
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
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
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
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
Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register
! 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
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
Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register
Phm vi ca cc bin Phn loi bin 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
Phm vi ca cc bin Phn loi bin Mt s lnh c trng trong C: static, register
23 / 23