Você está na página 1de 41

Chng 6Click to edit Master subtitle style

HM
(Method)

1
NI DUNG
Tnh hung
Khi nim v hm
To hm
Gi hm
Tham s l tham chiu
Bi tp tng hp

2
TNH HUNG

3
TNH HUNG
S lng dng code l cc k ln kh qun l
v kim tra

4
TNH HUNG
Phn tch 1 chng trnh ln thnh cc hm
nh hn

5
KHI NIM V HM

6
KHI NIM V HM
Hm l g?
L mt on chng trnh c tch bit nhm
thc hin hon chnh mt cng vic.

Dng hm khi:
Suy ngh gii quyt bi ton ln
Chia nh chng trnh: d qun l + kim tra
Ti s dng: C mt cng vic ging nhau cn thc
hin nhiu v tr ti s dng

7
KHI NIM V HM

8
KHI NIM V HM
V d: Ngay t thi im va to 1 project
Console trong C#, chng trnh c sn hm
Main
public class Program
{
static void Main(string[] args)
{
...
}
}

9
HM Main
c im: khi chng trnh C# c thc hin
th my s chy t cu lnh u tin ca hm
Main. Sau khi chy xong cu lnh cui cng
ca hm Main th chng trnh cng kt thc
public class Program
{
static void Main(string[] args)
{
//Cu lnh u tin
//...
//Cu lnh cui cng
}
}

10
CU TRC TNG QUT KHI NH
NGHA HM

11
NH NGHA HM
Mt cch n gin, hm c th xem l mt
khi lnh dng nhn cc d liu u vo
(input) v tr ra kt qu (output) mong mun

INPUT

INPUT
HM OUTPUT

INPUT

12
NH NGHA HM

u vo

X l Lm bnh
u ra

13
NH NGHA HM
Cu trc tng qut khi ta cn nh ngha mt
hm trong C#:

KIU D (DANH SCH


TM VC TN HM
LIU TR V THAM S)

{
CC X L TRONG HM
}

14
NH NGHA HM
Cu trc tng qut khi ta cn nh ngha mt
hm trong C# - V d c th

public int TinhTong (int a, int b)

{
return a + b;
}

15
NH NGHA HM
Tm vc: xc nh phm vi hm c gi
hay c s dng.

16
NH NGHA HM
Tm vc: xc nh phm vi hm c gi
hay c s dng.

public private protected

TM VC

17
NH NGHA HM
Kiu d liu tr v: kiu d liu ca kt qu tr
v bi hm (VD: int, double, string, void).

C tr v int, double,
kt qu string, ...
KIU D LIU
TR V
Khng tr
void
v kt qu

18
NH NGHA HM
V d cho hm c tr v kt qu: tnh tng 2 s
nguyn a v b, tr v kt qu tng tnh c
public class Program
{
static int TinhTong(int a, int b)
{
return a + b;
}

static void Main(string[] args)


{
//Gi hm
}
}

19
NH NGHA HM
V d cho hm khng tr v kt qu: Vit hm
xut ra ch Hello World!
public class Program
{
static void XuatHello()
{
Console.WriteLine("Hello World! ");
}

static void Main(string[] args)


{
//Gi hm
}
}

20
NH NGHA HM
Tn hm: ng t, nu bt c chc nng
m ngi dng mong mun. Nn t theo
camel case (vit hoa cc ch ci u tin trong
t)
V d: TinhTong, LietKeUocSo, FindMax, ...

21
NH NGHA HM
Danh sch tham s: gm cc bin input truyn
vo hm x l (v kiu d liu ca nhng
input ny)
Trng hp khng cn s dng d liu u vo
c th trng

22
NH NGHA HM
VD: tnh tng 2 s nguyn th ta cn truyn
2 s nguyn vo hm
public class Program
{
static int TinhTong(int a, int b)
{
return a + b;
}

static void Main(string[] args)


{
//Gi hm
}
}

23
NH NGHA HM
VD: Trng hp ta khng cn s dng d liu
u vo (input)
public class Program
{
static void XuatHello()
{
Console.WriteLine("Hello World! ");
}

static void Main(string[] args)


{
//Gi hm
}
}

24
NH NGHA HM
Phn x l: on m hin thc chc nng ca
hm
public class Program
{
static int TinhTong(int a, int b)
{
return a + b;
}

static void Main(string[] args)


{
//Gi hm
}
}

25
LI GI HM

26
LI GI HM
Trong phn trc ta tm hiu cc thc nh
ngha mt hm
Vn tn ti l lm sao s dng (gi) hm
?
Thng qua li gi hm v truyn tham s

27
LI GI HM
Li gi hm s dng kt qu tr v:
public class Program
{
static int TinhTong(int a, int b)
{
return a + b;
}

static void Main(string[] args)


{
int a = 1, b = 2;
int c = TinhTong(a, b);
Console.WriteLine("Gia tri bien c: {0}", c);
}
}

28
LI GI HM
Li gi hm khng cn kt qu tr v:

public class Program


{
static void XuatHello()
{
Console.WriteLine("Hello World! ");
}

static void Main(string[] args)


{
XuatHello();
}
}

29
BI TP
Bi tp 1: Vit cc hm tnh tng, hiu, tch,
thng ca 2 s nguyn nhp vo t bn phm.
Sau xut cc kt qu ra mn hnh
Bi tp 2: Vit hm in ra chui va nhp vo t
bn phm
Bi tp 3: Vit hm tm s ln nht trong 3 s
nguyn a, b, c nhp vo t bn phm.
Bi tp 4: Vit chng trnh nhp vo s
nguyn dng n, vit hm tnh tng cc s t 1
n n v xut ra kt qu
30
BI TP
Bi tp 5: Vit hm cho php ngi dng nhp
vo thng v nm, sau xut ra s ngy ng
vi thng v nm va nhp. Lu thng 2 nm
nhun c 29 ngy, ngc li c 28 ngy
Bit:
Nm nhun l nm chia ht cho 400
Nm nhun l nm chia ht cho 4 nhng khng
chia ht cho 100

31
BI TP
Bi tp 6: Vit hm yu cu ngi dng nhp
vo s nguyn dng n. Xut ra tng cc ch
s ca n
Bi tp 7: Vit hm yu cu ngi dng nhp
vo s nguyn dng n. Xut ra s ln nht
trong cc ch s ca n
Bi tp 8: Vit hm yu cu ngi dng nhp
vo s nguyn dng n. Xut ra s lng cc
c s ca n

32
TRUYN THEO THAM CHIU

33
TRUYN THEO THAM CHIU
Hm c th nhn nhiu tham s nhng ch tr
v mt kt qu u ra hoc khng tr v kt
qu no (trng hp void)
Cn c ch h tr tr v nhiu kt qu u ra
S dng thm t kha ref v out khi nh
ngha v gi hm

34
THAM S L THAM TR
Tnh hung 1: Hy vit hm tng gi tr ca
bin s nguyn nhp vo 1 n v
public class Program
{ Kt qu:
static void TangMotDonVi(int x) a=0
{
x = x + 1;
}
static void Main(string[] args)
{
int a = 0;
TangMotDonVi(a);
Console.WriteLine(a);
}
}

35
TRUYN THEO THAM CHIU
Tnh hung 2: Hy vit 1 hm tng gi tr ca
bin s nguyn nhp vo 1 n v vi ref
public class Program
{ Kt qu:
static void TangMotDonVi(ref int x) a=1
{
x = x + 1;
}
static void Main(string[] args)
{
int a = 0;
TangMotDonVi(ref a);
Console.WriteLine(a);
}
}

36
TRUYN THEO THAM CHIU
Tnh hung 3: S dng t kha out
public class Program
{
static void TangMotDonVi(out int x)
{
x = 0;
x = x + 1;
}
static void Main(string[] args)
{
int a;
TangMotDonVi(out a);
Console.WriteLine(a);
}
}

37
TRUYN THEO THAM CHIU
Nhn xt:
Khi truyn theo kiu tham tr th mt bn

sao ca i s lc gi hm s c gn vo
tham s ca hm. Do i s c truyn
hon ton khng thay i gi tr sau li gi
hm
Khi truyn theo kiu tham chiu (dng ref

hoc out) th i s c truyn v tham s


ca hm l mt. Do gi tr ca i s s
thay i nu gi tr tham s b i trong hm
38
TRUYN THEO THAM CHIU
Nhn xt:
Khi truyn theo tham chiu s dng ref th ta

phi gn gi tr ban u cho i tng trc


khi truyn vo hm. Ngc li dng out th
khng cn thit.

39
BI TP
Bi tp 1: Hy th vit 1 chng trnh c nh
ngha hm hon v gi tr 2 s a v b (a v b do
ngi dng nhp vo)
Bi tp 2: Vit chng trnh nhp vo 2 s
nguyn a v b, sau nh ngha hm tng gi tr
ca 2 s ln 10 n v
Bi tp 3: Vit chng trnh nhp vo 3 s
nguyn a, b, c. Sau nh ngha hm kim tra 3
s trn c to thnh cp s cng hay khng. Nu
c th tng gp i gi tr ca 3 s trong hm
40
TM TT
Khi nim v hm
Cch nh ngha hm
Truyn theo tham chiu
Bi tp

41