11-Ham
description
Transcript of 11-Ham
-
1TRNG I HC BCH KHOA H NIVIN CNG NGH THNG TIN V TRUYN THNG
TIN HC I CNGBi 11. Hm
Ni dung
11.1. Khi nim hm
11.2. Khai bo v s dng hm
11.3. Phm vi ca bin
2
-
2Ni dung
11.1. Khi nim hm
11.1.1. Khi nim chng trnh con
11.1.2. Phn loi chng trnh con
11.2. Khai bo v s dng hm
11.3. Phm vi ca bin
3
11.1.1. 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
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
-
3 Phn loi chng trnh con
Hm: tr v gi tr trong khi th tc th khng
Trong C: Ch cho php khai bo chng trnh con l hm.
S dng kiu void vi ngha khng l kiu d liu no c chuyn th tc v dng hm
Th tc(procedure)
Chng trnh con
Hm(function)
11.1.2. Phn loi chng trnh con
5
Phn loi hm
Hm t vit(Ngi dng nh ngha)
HM
Hm chun(C trong th vin)
11.1.2. Phn loi chng trnh con
6
-
411.2. Khai bo v s dng hm
11.2.1. Khai bo hm
11.2.2. S dng hm
7
11.2.1. Khai bo hm
1. Trong chng trnh ln c nhiu chng trnh con, im bt u thc hin chng trnh s thuc chng trnh con no?
2. Main l mt chng trnh con?
3. Khai bo cc chng trnh con c lp nhau/lng ln nhau?
4. 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?
8
-
511.2.1. Khai bo hm
V d:
Chng trnh in ra bnh phng ca cc s t nhin t 1 n 10
Gm 2 hm:
Hm binhphuong(int x): tr v bnh phng ca x
Hm main(): vi mi s nguyn t 1 n 10, gi hm binhphuong vi mt gi tr u vo v hin th kt qu.
9
#include
#include
int binhphuong(int x){
int y;
y = x * x;
return y;
}
void main(){
int i;
for (i=0; i
-
6 Dng u hm L thng tin trao i gia cc hm. Phn bit
gia cc hm vi nhau.
Kiu gi tr tr v: kiu d liu bt k, khng c l kiu d liu mng.
Tn hm: l tn hp l, trong C tn hm l duy nht
[] tn_hm ([danh_sch_tham_s]){
[][]
}
11.2.1. Khai bo hm
11
Tham s Cho bit nhng tham s gi nh cung cp hot
ng cho hm => cc tham s hnh thc
Tham s cung cp d liu cho hm lc hot ng: tham s thc
V d: int max(int a, int b, int c)
Thn hm return
Gi hm thng qua tn hm v cc tham s thc cung cp cho hm.
Sau khi thc hin xong, tr v im m hm c gi thng qua cu lnh return hoc kt thc hm.
C php chung: return biu_thc;
11.2.1. Khai bo hm
12
-
711.2.1. Khai bo hm#include
#include
int binhphuong(int );
void main(){
int i;
for (i=0; i
-
8 Cc hm th vin
Ngn ng C cung cp mt s hm th vin nh: x l vo ra, hm ton hc, hm x l xu
s dng cc hm ny chng ta ch cn khai bo nguyn mu ca chng trc khi s dng. Khai bo thng qua ch th
#include
tp_tiu_ (.h) cha cc nguyn mu hm
11.2.1. Khai bo hm
11.2.2. S dng hm
C php:
tn_hm (danh_sch_tham_s);
V d: binhphuong(0), binhphuong(1)
Lu : Nu hm nhn nhiu tham s th cc tham s ngn
cch nhau bi du phy
Lun lun cn cp du ngoc n sau tn hm
Cc tham s ca hm s nhn cc gi tr t tham s truyn vo
Thc hin ln lt cc lnh cho n khi gp lnh return/kt thc chng trnh
16
-
911.3. Phm vi ca bin
11.3.1. Phm vi ca bin
11.3.2. Phn loi bin
11.3.3. Cu lnh static v register
17
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. Trong mt phm vi ny nm trong phm vi kia?
#include
#include
int i;
int binhphuong(int x){
int y;
y = x * x;
return y;
}
void main(){
int y;
for (i=0; i
-
10
Phn loi bin Bin ton cc: bin c khai bo ngoi mi
hm, c s dng cc hm ng sau n
Bin cc b: bin c khai bo trong lnh khi hoc chng trnh con, c t trc cc cu lnh.
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().
11.3.2. Phn loi bin
19
Bin static Xut pht: bin cc b ra khi phm vi th b
nh dnh cho bin c gii phng
Yu cu lu tr gi tr ca bin cc b mt cch lu di => s dng t kha static
So snh vi bin ton cc?
C php:
static tn_bin;
11.3.3. Cu lnh static v register
20
-
11
# include
# include
void fct() {
static int count = 1;
printf("\n Day la lan goi ham fct lan thu
%2d", count++);
}
void main(){
int i;
for(i = 0; i < 10; i++) fct();
getch();
}
11.3.3. Cu lnh static v register
21
11.3.3. Cu lnh static v register
Day la lan goi ham fct lan thu 1
Day la lan goi ham fct lan thu 2
Day la lan goi ham fct lan thu 3
Day la lan goi ham fct lan thu 4
Day la lan goi ham fct lan thu 5
Day la lan goi ham fct lan thu 6
Day la lan goi ham fct lan thu 7
Day la lan goi ham fct lan thu 8
Day la lan goi ham fct lan thu 9
Day la lan goi ham fct lan thu 10
22
-
12
11.3.3. Cu lnh 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
C php
register tn_bin;
Lu : s lng bin register khng nhiu v thng ch vi kiu d liu nh nh int, char
23
Tho lun
24