Professional Documents
Culture Documents
(Tai Lieu Lap Trinh C) - Chuong 1
(Tai Lieu Lap Trinh C) - Chuong 1
Apprenez programmer en C
www.siteduzero.com
Tc gi: M@teo21
LI M U
Cho mng cc bn n vi bi hc lp trnh C/C++ .
Ti s l ngi hng dn (hay l thy gio nu bn thch
-1-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
CHNG I NHNG IU C BN V
NGN NG LP TRNH C
1) "lp trnh" l g?
Lp trnh l g ?
Lp trnh bng ngn ng lp trnh
no ?
Lp trnh c kh khng ?
Trc Nghim Kin Thc.
2) Cng c cn c hc lp trnh
Nhng cng c cn thit cho lp
trnh.
Cc bn c th chn... Dev-C++
Hay l... Visual C++
V ci ny na... Code::Blocks.
Hoc Mac... Xcode.
9) Function
Cch to v gi mt function.
Xem thm vi v d hiu r hn.
-2-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Bi 1: Lp trnh l g?
Chng ta bt u t mt cu hi n gin nht c th.
Nu bn bit iu ny trc , ti vn khuyn bn nn c li n. Ti s bt u bi hng
dn t zero, dnh mt ngi khng bit t g v lp trnh.
-3-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Xin lu rng ti khng ni ngi ta lm ra tr chi ny hon ton ch thng qua vic nh
my vit code. ti l chng ta c th lm nhng iu , nhng chc chn l ngoi vic g
phm ra, bn cn c rt nhiu vic khc lm.
-4-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
-5-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
, xin
-6-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Quan trng: cc ngn ng lp trnh bc cao khc nhau s c cc compiler khc nhau. Ni
cch khc, chng ta khng th dch ngn ng C++ cng vi cch m ta dch ngn ng Delphi.
V sau bn s nhn thy, cng mt ngn ng s c nhiu compilers khc nhau (compiler ca
Microsoft, compiler GNU... ti s ni v chng nhng chng sau). Rt may mn l nhng
compiler gn nh ging nhau (i khi chng c nhng khc bit nh v ti s ch cho bn).
Quay li vi biu va ri nhng thay bng nhng thut ng tin hc chnh xc:
-7-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
-8-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
-9-
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Lp trnh c kh khng ?
y chnh l cu hi khin bn phi suy ngh nhiu ng khng?
V c phi chng ta bt buc phi l mt nh ton hc cc gii sau nhiu nm hc tp c th
bt u vi vic lp trnh?
Cu tr li khin bn yn tm hn l iu khng ng.
Bn khng cn phi c mt ng cp ton hc tht cao. Nhng kin thc bn cn bt u hc
chnh l:
Kin tr: mt chng trnh c th s khng chy tt trong giai don u, v vy bn phi
nhn ni!
T duy tt: chc hn l bn khng cn phi gii lm v ton, ci bn cn l suy ngh mt
cch logic.
Nh nhng: Ngi ta khng nh my bng vic g ba ln bn phm.
iu cng
khng gip chng trnh ca bn chy tt hn t no u.
Tm li mt cch n gin, vic hc lp trnh khng i hi bn phi tht s c kin thc chuyn
su trong mt lnh vc no . Mt ngi dt ton vn c th vit ra mt chng trnh, ci cn
thit chnh l kh nng suy ngh ca bn.
- 10 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Tng Kt:
C rt nhiu loi ngn ng my tnh c phn theo nhiu cp . Nhng ngn ng cao
cp th d s dng hn nhng cha chc s mang li hiu qu cao hn nhng ngn ng
cp thp.
Compiler l mt chng trnh bin dch c kh nng dch source code sang ngn ng nh
phn, sau chuyn thnh chng trnh Executable (.exe). Chng ta phi bit rng trong
chng trnh nh phn th khng cn cha source code.
Ch! Chng ta kt thc bi 1 ri, nhng cc bn vn cha thy bt k dng code no ging nh
chng ta thng nht trc .
Trong chng tip theo, cc bn s bt u hc cch lp trnh vi nhng cng c u tin. Bn s
c hng dn ci t nhng chng trnh cn thit cho bt k ngi hc lp trnh no.
- 11 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
p n:
1234-
A
C
C
C
- 12 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Bi 2: Mt vi cng c cn c hc lp trnh
Sau bi m u, chng ta s bt u i su vo bi hc bng cch tr li cu hi Cn s dng
chng trnh no lp trnh?
S khng c vn g qu kh khn trong bi ny, chng ta s dnh cht thi gian tm hiu v
mt s phn mm mi.
Hy tn hng thi gian ny bi v trong cc bi tip theo, chng ta s thc s hc cch lp trnh
v c l s khng c thi gian cho bn nh mt gic u nh.
Mt chng trnh son tho vn bn (text editor program) vit m ngun (source
code) ca chng trnh. Trn l thuyt th thc hin vic ny chng ta ch cn s dng
phn mm Notepad trong Windows hoc Vi trong Linux l .
Nhng s l tng hn khi bn s dng mt trnh son tho vn bn c th t m mu
sc cc thnh phn trong m ngun nhm gip bn xc nh r rng hn khi cn thit.
Mt chng trnh bin dch m ngun (compiler) gip dch ngn ng lp trnh
C/C++ ca bn sang ngn ng nh phn ca my tnh.
- 13 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 14 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 15 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 16 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 17 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
C 2 cch to 1 Project mi
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 18 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Nh bn thy, Code::Blocks xut rt nhiu loi chng trnh khc nhau s dng cc
th vin ph bin nh SDL (2D), OpenGL (3D), Qt v wxWidgets (Windows) Hin ti
th nhng biu tng ny ch nhn cho p thi ch chng vn cha c ci t trn
my tnh ca bn, bn nn lt qua chng.
Chng ta s tp trung vo cc loi chng trnh khc cc bi hc sau ny, thi gian ny
chng ta s phi nm vng v Console trc, bi v tht s bn vn cha trnh
lm vic vi cc loi chng trnh khc u.
- 19 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Chng trnh s hi bn mun to project cho ngn ng C hay C++. Hy chn C v click next.
- 20 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
ca s cui cng ny chng ta c th chn compiler bin dch chng trnh sau ny. Ti
thng chn compiler tn GNU GCC v tt c nh mc nh. ng qun nh du chn vo
2 chc nng Debug v Release nh.
- 21 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Tng kt
Cc bn c th ci nhng chng trnh trn ring bit hoc ci mt chng trnh bao gm
3 trong 1, gi l IDE.
Code::Blocks, Visual Studio Express, Xcode l nhng IDE rt ph bin v thch hp cho
cc bn trong thi im hin ti.
- 22 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console hay ca s ?
on m ti thiu
Vit mt tin nhn ln mn hnh
Nhng ch thch, kh tin dng !
TRC NGHIM KIN THC.
- 23 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console hay l ca s?
C 2 loi chng trnh :
- 24 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Nhng chng trnh dng ca s c ging vi nhng chng trnh dng console
khng?
- 25 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
l console v nhng c im cn ch l:
Vit mt chng trnh dng console n gin v l tng hn cho nhng ngi mi hc lp
trnh (s khng h n gin nu bt u hc bng cch to ra mt chng trnh dng ca s)
Ghi thm rng, console ngy nay c ci tin rt nhiu: hin th c nhiu mu sc, v bn
c th t mt hnh nh no ln nn ca console. V y l hnh nh mt console c to
dng kh honh trng trn HH linux
H h.. kh kinh d
- 26 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 27 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Cn ghi ch l c mt dng trng cui on code. c thc hin bng cch nhn
phm "ENTER" sau du " } ". Mi tp tin C bnh thng u phi kt thc bng mt dng trng
v cng khng c g nghim trng nu bn khng thc hin n, ch l compiler c th s hin th
mt thng tin warning thng bo.
Ghi ch th 2 l dng
int main ( )
cng c th c vit thnh:
int main (int argc, char *argv[ ])
C hai cch vit u ng, nhng cch vit th 2 thng dng hn rt nhiu. Ti s s dng cch
vit ny nhng bi hng dn k tip. Hin gi, bn c s dng cch vit no cng khng quan
trng v ta vn cha c kin thc hiu c ngha v cch hot ng ca chng.
Nu bn ang s dng mt IDE khc, hy copy on code trn vo file main.c
Hy lu li. Ti bit l chng ta vn cha lm g c, nhng hy lu li, y l mt thi quen tt
cn tp. Bnh thng bn ch dng duy nht mt file source "main.c" (nhng file cn li l file
project c to bi IDE ca bn).
- 28 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 29 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
C Code:
int main ( )
{
printf ("Hello world!\n");
return 0;
}
Mi mt instruction l mt lnh dnh cho my tnh, v n yu cu my tnh phi thc hin chnh
xc mt hnh ng g .
Nh ti ni vi bn, cng vic ca nhng ngi lp trnh l ng no vit nhng
instruction, v khi bn thnh thc, bn s c th to ra nhng function nh function
m_mt_tp_tin hay function nhn_vt_i_ti trong mt game no .
Mt chng trnh khng g khc hn l to nn mt dy cc instruction: instruction hy lm ci
ny instruction hy lm ci kia... Bn ra nhng lnh c sp t v my tnh s thc hin
cc lnh .
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 30 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 31 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 32 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 33 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Bn c nh hai dng ny ch ?
C Code:
#include <stdio.h>
#include <stdlib.h>
Ti ni vi bn rng n cho php ta thm vo chng trnh nhng th vin. V nhng th
vin cha y nhng function c vit sn bn trong. stdio.h cha ng nhng function
cho php hin th mt ci g ln mn hnh (v d nh function printf), nhng n i hi ngi
s dng phi nh ra mt ci g (y l nhng function m ta s thy sau ny).
My tnh, cho bn i!
Trong function main, chng ta gi function printf.
gi mt function rt n gin: ta ch cn ghi ra tn ca n, k tip l m ngoc ng ngoc "(
)", v mt du chm phy ";".
printf ( );
Nhng cng vic ca bn vn cha xong u. Chng ta phi cho function printf mt tin nhn
hin th. Hy m ngoc ( ) sau printf. Trong , m ngoc kp " " . Cui cng nh iu g bn
cn my tnh hin th bn trong.
C Code:
printf ("Xin chao");
Ti hi vng rng bn khng qun mt du chm phy " ; " cui cng, ti nhc li l n rt quan
trng! N cho php my tnh hiu rng instruction ca ta kt thc y.
V y l code source m bn phi c c:
C Code:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
printf ("Xin chao");
system ("PAUSE");
return 0;
}
- 34 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Chng trnh s khng dng li. Ni r hn l, my tnh s hin th tin nhn Xin chao v tt
chng trnh. Ca s ca console s hin ra v bin mt vi vn tc nh sng, bn s khng c
thi gian nhn ra iu g.
Tht ngu ngc, phi khng?
Ghi thm l, vi mt s IDE, nh l ti ni trc , n s t ng dng li cui chng
trnh. Trong trng hp instruction system(PAUSE) coi nh v dng, bn c th xa n i.
V chng ta hy test chng trnh vi pause, v n s hin th:
- 35 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Nhng tht s n khng hon ton hin th xin chao, c mt dng khc cng hin th
sau n.
Tha bn, khng c vic g nghim trng y c, chng ta s hc cch sa cha n ngay y.
Bn mun kt qu s a ra mn hnh mt dng khc nm di dng Xin chao ca chng ta,
tng t nh vic g phm "enter" xung dng khi chat vy.
Tt nhin khi chat hay vit code source bn s xung dng bng cch nhn enter, nhng chng ta
ang ni n vic xung dng cho on vn c in ra mn hnh console.
lm iu chng ta phi s dng nhng k t c bit.
Nhng k t c bit:
Nhng k t c bit l nhng k t cho my tnh hiu rng ta mun xung dng hay nhn tab
cch khong ...
Nhng k t ny tng i d dng nhn bit. Trc chng lc no cng c mt du anti-slash
\, k tip l mt ch ci hay mt s, \n v \t l 2 k t c bit c s dng kh thng xuyn
m bn chc chn cn dng. Bn cnh ti s cung cp cho bn 1 danh sch cc k t c bit
khc tham kho trong trng hp bn cn n chng.
- 36 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 37 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Bn c th nhn ra rng khi dng Code::Blocks, bn khng cn phi thm \n xung dng cng
nh cu lnh system (PAUSE) dng chng trnh nh nhng dng code ti hng dn
bn trc .
Code::Blocks thay chng ta lm vic (IDE ny kh thng minh ng khng)
- 38 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Hi chng Grard
Xin cho, ti tn l Grard v ti mun sa i chng trnh vi tn l Hello Grard.
Ch vy thi, nhng tht bt ng khi my tnh khng hin th chnh xc nhng g ti
mun. Ti phi lm g by gi?
u tin xin cho bn, Grard
y l mt cu hi kh hay dnh cho ti, v ti rt vui khi thy rng bn bt u c nhng
tng ci tin chng trnh.
V y l cu tr li, ti c mt tin hi bun dnh cho bn: console trn Windows khng hin th
c nhng du trng m, nhng ngc li trn Linux ta c th lm iu .
Trong trng hp ny bn c 2 la chn:
Chuyn sang Linux: la chn ny kh l phc tp v lc ti phi gii thch cho ring
bn cch s dng Linux. Nu bn cha trnh s dng vo lc ny, hy qun la
chn ny i.
Khng s dng nhng du trng m. Cch ny hi min cng nhng lc ny bn
phi la chn n. Console ca Windows c nhng hn ch, n ch hin th nhng tin
nhn khng c du.
V bn s ghi l:
C Code:
printf ("Hello Gerard\n");
Ti xin cm n bn Grard gip ti nh li vn ny
ps: Nu tn cc bn cng c du nh bn Grard, th cng lm tng t vy nh.
- 39 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V d:
C Code:
// Day la mot chu thich ngan.
hoc
printf ("Xin chao"); // instruction nay hien thi len man hinh "Xin chao"
- 40 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V d:
C Code:
/* y l mt ch thch gm nhiu dng */
Tr li vi chng trnh hin th Xin chao, v thm vo nhng li ch thch luyn tp:
C Code:
/*
Sau day la nhung preprocessor directives.
Nhung dong nay cho phep them mot so file vao project cua ban, nhung file nay thuong duoc
chung ta goi ten la thu vien
Nho vao cac file thu vien, chung ta luon co nhung ham san sang lam viec.
vi du nhu ham printf: hien thi mot doan van len man hinh
*/
#include <stdio.h>
#include <stdlib.h>
/*
Sau day la function chinh cua chuong trinh ten la main. Nho function nay ma chuong trinh cua
ban co the bat dau
Chuong trinh nay se hien thi Xin chao len man hinh, dua chuong trinh vao trang thai pause,
ket thuc
*/
int main(int argc, char *argv[])
{
printf ("Xin chao"); // instruction nay hien thi Xin chao len man hinh
return 0; // Chuong trinh tra ve gia tri 0 va ket thuc
}
Trn y l mt chng trnh vi nhng dng ch thch
Khi ta bin dch chng trnh, tt c nhng ch thch s c b qua, my tnh s khng c cc
dng ny. Nhng ch thch s khng xut hin khi ta chy chng trnh, chng ch dnh cho
nhng ngi lp trnh.
Bnh thng th ta khng ghi ch mi dng code ca chng trnh. Ti ni rng vit ch
thch trong code source l mt iu quan trng nhng chng ta cn bit khi no cn dng n, v
ch thch tng dng nh vy s tn thi gian v ch.
VD nh khi mi ngi bit rng printf l hm hin th mt tin nhn ln mn hnh, bn khng
cn phi ch thch thm na v tc dng ca n mi ln lp trnh.
- 41 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 42 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
p n:
1A
2C
3A
4B
5A
6B
7C
- 43 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Khai bo mt bin s
Hin th gi tr mt bin s
Lu li gi tr c chn
TRC NGHIM KIN THC.
- 44 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Cng vic ca b nh
Bi ging ny c mi lin h trc tip vi b nh ca my tnh.
Con ngi cng nh my tnh u cn lu gi li mt s ci g , con ngi ch c duy nht b
no nhng trn my tnh th c nhiu dng b nh khc nhau.
Ti sao my tnh cn nhiu loi b nh khc nhau? Mt b nh duy nht khng cho my
tnh, c phi vy khng?
Khng, thc t ngi ta ch cn mt b nh c tc lu nhanh v kh nng cha ln ( c
th lu li nhiu th quan trng).
Nhng cho n thi im hin ti, chng ta vn cha to c nhng b nh ging nh vy.
V cc b nh nhanh th t tin nn cc b nh c t chc thnh nhiu cp, cp c dung
lng t th nhanh nhng t tin hn cp c dung lng cao hn. Nhng b nh c tc lu
cng nhanh s c dung lng cng nh.
Vy my tnh ca chng ta c lp t gm:
Nhng b nh c tc lu nhanh nhng kh nng cha nh.
Nhng b nh c tc lu chm nhng kh nng cha ln hn rt nhiu.
Bn vn theo kp ti ch
- 45 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Hnh nh ca RAM:
Chng ta sp sa lm vic vi RAM, ti ngh rng ti nn gii thiu n vi bn
y l my tnh ca bn:
- 46 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 47 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Biu ca RAM:
Nu ta nhn mt cch bnh thng trn RAM th chng thy c g c. Nhng, iu quan trng
l cn bit bn trong n hot ng nh th no. y chnh l iu ti mun hng dn cc bn.
Ti s v cho cc bn mt biu v cch hot ng ca RAM, n cc k n gin.
nm c biu ny th iu v cng tt i vi bn.
- 48 -
Nu bn
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Biu hot ng ca RAM
- 49 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Mt gi tr: l s m n cha, v d nh 5.
Mt tn gi: tn gi ny s gip ta nhn ra n. Trn ngn ng C, chng ta khng cn phi
nh a ch ca bin s, chng ta ch cn ch ra tn ca bin s. V b dch (Compiler) s
thc hin vic chuyn i gia ch v s.
Gi tn mt bin s:
Trong ngn ng ca chng ta, bin s ch s mng sng ca nhn vt trong mt tr chi in t
no thng c gi l mng sng nhn vt, hoc mt tn no khc cng loi.
Trong ngn ng C, mi bin s c mt tn gi, nhng khng phi mun t tn th no ty theo
thch ca bn cng c u. Di y l mt s nguyn tc khi t tn cho bin s:
Chng ta ch c th t tn n bng nhng ch ci vit thng hay vit hoa v nhng con
s (abcABC012).
Tn ca bin s phi bt u bng mt ch ci. Chng ta khng c s dng khong
trng , thay vo chng ta c th s dng k t _ (underscore). l k t duy
nht khng thuc dng ch ci hay s c php s dng.
Bn cng khng c php s dng ch ci mang du trng m. (v d ).
- 50 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Mi ngi c cch thc gi tn bin s khc nhau. Trong phn ny, ti gii thiu cho bn cch
thc gi tn bin s ca ring ti:
- 51 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Type
Gi tr chp nhn
-128 n 127
signed char 1
int
long
float
-3.4*10-38 n 3.4*1038
double
-1.7*10-308 n 1.7*10308
- 52 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V khng ch nh vy! i vi nhng bin s dng s t nhin (char, int, long), cn c thm cc
loi c bit khc mang tn unsigned (khng c du), ti chng ta ch c c th a vo
nhng s t nhin. s dng, ch cn t unsigned pha trc :
- 53 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Khai bo mt bin s
Cui cng chng ta cng n c y, v by gi bn hy to mt project mi ly tn l
variables.(bin s)
Bn s thy lm cch no chng ta khai bo mt bin s, hay ni cch khc l bn s yu cu
quyn s dng mt t b nh ca my tnh.
Bn ch cn lm theo trnh t sau:
1. Ch ra dng ca bin s cn to.
2. Nhn phm spacebar cch khong.
3. Ch ra tn ca bin s cn to.
4. Cui cng l chm phy ; ng qun iu .
V d nu nh ti mun khai mt bin s mangsongNhanVat, ti s lm nh sau:
C Code:
int mangsongNhanVat;
Ch n gin vy thi!
V mt vi v d kh ngu khc :
C Code:
int diemToan;
double tongChiPhiNhanDuoc;
unsigned soluongNguoiChuanBiXemTenCuaMotBienSoKhaLaDai;
Ti ngh bn cng hiu c nguyn tc ca n ri.
Vic chng ta va lm gi l variable declaration (khai bo bin s), hy nm vng thut ng
ny
- 54 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
C Code:
int mangsongNhanVat, capdoTroChoi, capdoNhanVat;
- 55 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V by gi ?
Sau khi khai bo xong bin s, chng ta c th a cho chng nhng gi tr.
a gi tr vo bin s
Khng c g l kh khn, nu bn mun cho bin s mangsongNhanVat mt gi tr, bn ch cn
lm nh sau :
C Code:
mangsongNhanVat = 5;
Vy l xong ri, bn khng cn lm thm iu g khc. Bn ch cn t tn ca bin s, cho mt
du bng, k tip l gi tr bn mun t vo n. y chng ta cho mangsongNhanVat gi tr 5.
Di y l chng trnh hon thin:
C Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int mangsongNhanVat;
mangsongNhanVat = 5;
return 0;
}
V khi chy chng trnh th mn hnh vn cha c g thay i, n ch din ra trong b nh.
Ti mt b nh no trong my tnh, gi tr 5 c t vo. Tuyt vi ng khng?
V hay hn na l:
C Code:
int mangsongNhanVat;
mangsongNhanVat = 5;
mangsongNhanVat = 4;
mangsongNhanVat = 3;
Trong v d ny, khi chy chng trnh, bin nhn gi tr 5 u tin, sau l 4 v cui cng l
3. Vic ny din ra v cng nhanh trn my tnh, chng trnh kt thc khi bn cha kp chp
mt xong
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 56 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Gi tr ca mt bin s mi
y l mt cu hi kh quan trng m ti mun nhn mnh :
Khi m ta khai bo mt bin, th n s nhn gi tr no u tin ?
Thc t, khi m my tnh bn c dng ny :
C Code:
int mangsongNhanVat;
ng l bin s chim 1 v tr trong b nh ca RAM. Nhng gi tr ca bin s lc ny l bao
nhiu ? L 0 lc khi u ng khng ?
Cu tr li l khng. Khng, khng v khng. Khng c gi tr no lc khi u c. B nh s
ginh ch cho bin s nhng ti v tr , gi tr s khng i. My tnh s khng h xa nhng
g c t vo trc (c th v tr c dng cho mt chng trnh c tng chy
trn my tnh trc y)
Nu v tr ny vn cha s dng qua ln no th c th n s mang gi tr l 0. Nhng nu mt
chng trnh no khc s dng qua ri th n c th mang gi tr l 368, 18 hay mt s no
khc bt k.
Chng ta cn phi ch k vn ny trnh cc sai st v sau. Tt nht bn hy gn cho n
gi tr ngay sau khi va khai bo xong. Trnh bin dch c th hiu c nu nh ta khai bo v
gn gi tr mt bin s trong cng mt lc:
C Code:
int mangsongNhanVat = 5;
Nh trn, bin s mangsongNhanVat c khai bo v nhn tc khc gi tr 5.
Li ch ca vic ny l bn lun chc rng bin s lun nhn gi tr chnh xc nh bn mun.
- 57 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Sau , bn c th s dng constants nh mt bin s bnh thng. Khc bit duy nht l nu
bn th thay i gi tr ca n sau v thc hin dch chng trnh th compiler s bo li.
Ti gi n l death zone (hay l vng cht). Trong trng hp , compiler s hin th ln
mn hnh: [Warning] assignment of read-only variable 'MANGSONG_NHANVAT_KHOIDAU'
(Dch ra: bn tht l ngu ngc, ti sao bn li c gng thay i gi tr ca mt constant ch?)
- 58 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Hin th gi tr ca bin s
Chng ta bit cch hin th mt on vn vi function printf.
By gi, chng ta s xem lm sao hin th mt gi tr ca bin s cng vi function ny.
Chng ta cng s s dng printf vi phng php c, nhng thm vo mt k t c bit ti v tr
m chng ta mun gi tr ca bin s .
V d :
C Code:
printf ("Ban con %d hoisinh");
K t c bit m ti ni vi bn l mt % sau l nhng ch ci d . Nhng k t
ny cho php chng ta hin th dng ca bin s.
d c ngha l ti mun hin th mt s dng int.
Cn rt nhiu k t c bit khc c th s dng. Nhng d dng, lc ny bn ch cn nm
nhng loi sau:
Format Type
"%d"
int
"%ld"
long
"%f"
float
"%f"
double
- 59 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 60 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V n s hin th:
Console:
Ban co 5 lan hoi sinh va ban dang o man choi thu 1
- 61 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 62 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console:
Ban bao nhieu tuoi?
20
Oh! tuoi cua ban la 20 !
Chng trnh s dng li v hin th Ban bao nhieu tuoi? . Du nhy s xut hin trn mn
hnh. Cc bn phi nh vo mt s t nhin (tui ca bn). Sau nhn Enter xc nhn, v
chng trnh s tip tc hot ng.
Sau , chng trnh s hin th gi tr ca bin s tuoi ln mn hnh (Oh! tuoi cua ban la 20
!).
Nguyn tc hot ng l nh vy.
Nh vo function scanf chng ta c th yu cu ngi s dng a ra mt s thng tin c nhn.
Vit thm rng bn ch c th a vo mt s t nhin :
- 63 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Registers
Memory cache
RAM (main memory)
Hard Disk Drive
Registers
Memory cache
RAM (main memory)
Hard Disk Drive
vitriMenu
chieurongCaS
tuoi_Capital
- 64 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
char
long
double
int
int
unsigned int
unsigned double
p n:
123456-
C
D
B
C
A
B
- 65 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 66 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Php cng
Php tr
Php nhn
Php chia
Php module (Ti s gii thch nu nh bn khng bit n l g)
Nu nh bn mun s dng nhng php ton phc tp hn (bnh phng, ly tha, logarit, v
mt s nhng php ton khc m bn thch) th bn phi lp trnh ra n, c ngha l bn s hng
dn my tnh lm cch no th thc hin nhng php ton .
May mn l bn c th mn nhng quyn sch ny trong th vin ca ngn ng C: c rt nhiu
function ton hc c vit sn. Bn khng cn phi vit li chng na
Chng ta bt u vi php cng.
thc hin mt php cng, chng ta s dng k t + (ng khng nh?
)
Bn cn phi a kt qu nhn c vo trong mt bin s. Chng ta s s dng bin s
ketqua dng int thc hin php tnh:
C Code:
int ketqua = 0;
ketqua = 5 + 3;
Bn khng cn phi c mt u c pro v tnh ton c th hiu rng ketqua s mang gi tr
8 sau khi ta chy chng trnh.
Chc chn l, mn hnh s khng hin th bt c iu g nu nh ta ch s dng on m trn,
hy thm vo mt function printf.
Trn mn hnh s cho ta :
Console:
Ket qua = 8
V l php cng.
V vi nhng php ton khc, cng tng t, ch cn thay i k t tnh ton :
Php cng: +
Php tr: Php nhn: *
Php chia: /
Module: %
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 67 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Php chia
Php chia hot ng bnh thng trn my tnh nu nh khng c s d. V d, 6 / 3 bng 2, my
tnh ca bn s cho mt kt qu ng, khng h sai st.
By gi chng ta th thc hin mt php chia c d nh 5 / 2.
5 / 2 theo nh ta tnh s cho kt qu l 2.5.
Tuy nhin! hy xem k kt qu ca on m ny :
C Code:
int ketqua=0;
ketqua = 5 / 2;
printf ("5 / 2 = %d",ketqua);
Console:
Ket qua = 2
C mt vn ln y, chng ta yu cu my tnh thc hin 5 / 2, chng ta ch i kt qu l
2.5, nhng my tnh cho kt qu l 2 !
C mt ci g k l y. Khng l my tnh ca chng ta b ngu php tnh ny ?
Thc s, khi my tnh nhn c nhng s 5 v 2, my tnh ca bn thc hin php tnh vi
dng s t nhin, iu c ngha l my tnh lm trn kt qu, n ch gi li phn nguyn
(s 2).
Ti bit ri! ti v bin s ketqua m chng ta khai bo c dng int! nu n dng
double th n s cha mt s thc!
Cng khng phi.
Hy th li on m trn nhng chng ta i bin s ketqua thnh double, n cng ch hin
th kt qu l 2.
Nu nh ta mun my tnh hin th mt kt qu chnh xc, chng ta phi bin i nhng s 5 v
2 v dng s thc, ngha l 5.0 v 2.0 (i vi chng ta, chng ging nhau nhng i vi my
tnh, nhng s thc khc vi s t nhin v n s thc hin php ton vi dng s thc) :
- 68 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
C Code:
double ketqua = 0;
ketqua = 5.0 / 2.0;
printf ("5 / 2 = %lf", ketqua);
Console:
Ket qua = 2.500000
Mc d n hin th mt dy nhng s 0 pha sau nhng kt qu ny hon ton chnh xc.
c im ny ca php chia rt quan trng, bn cn ch :
5/2=2
10 / 3 = 3
4/5=0
Nhng s trong php tnh phi thuc dng s thc :
5.0 / 2.0 = 2.5
10.0 / 3.0 = 3.33333
4.0 / 5.0 = 0.8
Thc t, nu ta thc hin php tnh 5 / 2 , dng s t nhin. My tnh s tr li cu hi:
Trong 5, c bao nhiu ln 2 ?. Cu tr li l 2 ln. Ging nh vy, trong 10, c bao nhiu ln
3 ? p n l 3 ln .
Nhng lm sao gi li s d ca php chia ?
V y chnh l cng vic ca php module.
Php module
Module l mt php ton cho ta s d ca mt php chia. Module t c bit n hn cc php
ton c bn cn li, nhng n gip my tnh c th thc hin y tt c nhng php ton vi
nhng s t nhin. Module c biu th bi k t %.
Mt s v d :
5%2=1
14 % 3 = 2
4%2=0
Module 5 % 2 l s d ca 5 / 2, bng 1. My tnh tnh ton nh sau 5 = 2 * 2 + 1 (module cho
kt qu 1).
Tng t, 14 % 3, tnh nh sau 14 = 3 * 4 + 2 (module cho kt qu 2).
Cui cng, 4 % 2, php chia khng c d nn module s cho kt qu l 0.
V khng ni g nhiu hn v module, ti ch gii thch vi nhng bn no cha bit.
V ti c thm mt tin tt na, chng ta bit tt c nhng php ton c bn.
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 69 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 70 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 71 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 72 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
hy nm vng
Th vin ton hc
Trong ngn ng C, tn ti mt s ci gi l nhng th vin standard , l nhng th vin
c bn lun sn sng s dng, v c s dng thng xuyn.
Ti xin nhc li, th vin l tp hp nhng function c vit sn bi nhng nh lp trnh
khc trc trnh vic phi vit li.
Chng ta tng s dng function printf v scanf trong th vin stdio.h .
Chng ta phi bit rng cn nhiu th vin khc na, trong c math.h, n cha mt s ln
nhng function ton hc c vit trc.
Ngoi php ton c bn m bn bit, th th vin ton hc cha nhng php ton
phc tp khc m ti chc l bn s cn n, v d nh l cc hm ly tha (nu nh bn
khng bit y l g th c th bn cn qu tr hay l bn hc ton vn cha ).
Trong trng hp, chng ta mun thc hin nhng php tnh ly tha trong C! Lm sao tnh mt
s m 2 ? Bn c th vit 5 trong on m ca bn, nhng my tnh s khng hiu ci l g
c t nht bn phi gii thch cho n bng cch s dng nhng th vin ton hc !
c th s dng nhng function trong th vin ton hc, chng ta bt buc phi thm
preprocessor directives u chng trnh:
C Code:
#include <math.h>
Mt khi m bn lm iu , bn c th s dng tt c cc function trong th vin ny.
- 73 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
fabs
Function ny s tr v gi tr tuyt i ca mt s, trong ton hc vit l |x|.
C Code:
double giatri_tuyetdoi = 0, sohang = -27;
giatri_tuyetdoi = fabs(sohang); // gia tri tuyet doi cua sohang se la 27
Function ny s tr v mt s dng double v vy bin s ca bn a vo cng phi thuc
dng double.
Trong th vin stdlib.h cng c mt function tng t gi l abs , n cng hot
ng nh vy, ch tr vic n s dng nhng s nguyn int v n tr v gi tr dng s
nguyn int.
ceil
Function ny s tr v gi tr dng s nguyn nu nh ta a cho n mt s thc.
l mt dng lm trn. N s lun cho mt s nguyn c gi tr ln hn.
V d, nu nh ta cho n gi tr l 26.512, function s tr li 27.
N s dng v tr li gi tr dng double:
C Code:
double lamtronLen = 0, sohang = 52.71;
lamtronLen = ceil(sohang); // lamtronLen se bang 53
- 74 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
floor
Tri ngc vi function ceil, function ny cho ta s nguyn c gi tr nh hn.
Nu nh ta cho n 37.91, function floor s tr li 37.
C Code:
double lamtronXuong = 0, sohang = 37.91;
lamtronXuong = ceil(sohang); // gia tri cua lamtronXuong se bang 37
pow
Function ny cho php tnh ly tha mt s. Chng ta phi ch ra cho n 2 gi tr: s hng v cp
ly tha ca s . y l cu trc ca function ny:
C Code:
pow(sohang, capLuyThua);
V d, 2 ly tha 3 (chng ta thng ghi l 2^3 trn my tnh), l php ton 2 * 2 * 2, cho kt
qu l 8 :
C Code:
double ketqua = 0, sohang = 2;
ketqua = pow(sohang, 3); // ketqua se duoc 2^3 = 8
Bn c th s dng function ny tnh bnh phng ca mt s.
sqrt
Function ny tnh cn bc 2 ca mt s, n cho ta gi tr dng double.
C Code:
double ketqua = 0, sohang = 100;
ketqua = sqrt(sohang); // ketqua tro thanh 10
- 75 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
exp
Function tnh exponential, hay cn gi l ly tha c s e. Tr v gi tr dng double.
VD: exp(4) = e4
log
Function tnh logarit t nhin, l logarit c s e. (chng ta thng ghi l ln )
ngy trc cn i hc ng thy bo c ci ny l lc n be
log10
Function ny tnh le logarit c s 10 ca mt s.
ng thy bo c l lc mi
Li kt:
Tm li, ti khng ni v cc function khc. (Tht s l ti khng bit l chng c dng
lm g )
Vi nhng function ny bn c th s dng cho phn ln cc trng hp lin quan n ton hc.
Xin ni thm ln na, nu bn khng hiu nhng iu ti ni trn th cng khng c g nghim
trng c v nhng php ton ny chng ta khng nht thit cn n. Tr khi bn phi lm mt
chng trnh tnh ton mt vn khoa hc no .
D g bn cng nn nm vng function floor, ceil, v pow, n rt cn thit cho chng ta trong
tnh ton.
Bi hng dn chi tit v cc cng thc ton ti xin nhng cho nhng thy gio dy ton. Nu
bn vn cn i hc, ti cho bn mt li khuyn chn thnh: Hy hc tt mn ton, iu s
gip ch rt nhiu trong lp trnh. Nhng chng ta rt t khi phi tnh ly tha v tip tuyn khi
vit chng trnh, n ph thuc vo chng trnh m chng ta vit, ti ni li.
V d, nu c ai trong cc bn hng th vi nhng vic lin quan n 3D (ti s hng dn v
3D sau), bn cn phi c mt s hiu bit v hnh hc khng gian ( th, vec-t)
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 76 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Mt cu hi n gin v module
Kt qu s l bao nhiu: 17 % 5 ?
A. 0
B. 1
C. 2
D. 3
E. 4
F. 5
G. 15
-2
0
1
2
- 77 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Phng php ny l g ?
C Code:
sohang++;
A.
B.
C.
Increment
Increasing
Supplementation
1
4
12
14
p n:
123456-
A
C
B
A
A
C
- 78 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Condition ifelse
Chng ta thng mun kim tra gi tr ca mt bin s. V d Nu bin s maymoc c gi tr l
50, hy thc hin cng vic . Hoc nu bin s nh hn 50, nh hn hoc bng 50, ln hn,
ln hn hoc bng
iu c th c thc hin trong C thng qua vic s dng condition ifelse. Condition
dng kim tra gi tr ca bin s. V bit cch s dng n, chng ta s i theo s sau:
1.
2.
3.
4.
5.
6.
- 79 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
if
Chng ta s thc hin mt chng trnh n gin, n s ni vi my tnh:
NU bin s tha iu kin ...
TH thc hin ...
.
Trong ting anh, t nu s dch thnh if , t ny cng c s dng trong C khai bo
mt condition.
vit mt condition if, u tin hy vit t if, k m ngoc n. Trong ngoc n, hy vit
iu kin.
Sau , m mt du gp { v hy ng li pha sau }. Trong s cha tt c nhng instruction
s c thc hin nu iu kin tha mn.
- 80 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 81 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
y l on m hon chnh:
C Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long tuoi = 20;
if (tuoi >= 18)
{
printf ("Ban la nguoi truong thanh !\n");
}
return 0;
}
y, bin s tui bng 20, vy Ban la nguoi truong thanh ! s c hin th
Hy th thay i gi tr ca bin s. Cho gi tr mi l 15: iu kin khng tha mn v Ban la
nguoi truong thanh ! khng hin th ln ny.
Hy gi li on m ny s dng cho v d tip theo.
Vn cn gii thch
Cch bn t nhng du gp { } khng quan trng, chng trnh ca bn s cng chy tt nu
nh bn vit tt c trn cng mt hng. V d:
C Code:
if (tuoi >= 18) { printf ("Ban la nguoi truong thanh !"); }
Mc d bn c th vit nh vy nhng cch vit ny khng h c khuyn khch (iu ny
thc s rt quan trng nh).
Thc s l vit tt c trn cng mt hng s khin cho vic c on m ca bn v cng kh
khn. Bn cn tp cch trnh by m ngun ca mnh ngay t by gi, nu khng sau ny khi
bn vit cc chng trnh ln hn, bn s khng tm thy c ci bn cn tm trong !
Hy th trnh by li m ngun ca bn theo cch thc ca ti: mt du gp m { duy nht trn 1
hng, cc dng sau l cc instruction (nhn tab c th cch v bn phi ), sau mt
du gp ng } duy nht trn mt hng.
C rt nhiu cch thc hay trnh by m ngun v n khng lm thay i hot ng
ca chng trnh.
Trong sut qu trnh t gi v sau bn s bt gp cc on m c trnh by bi cc
style hi khc. Nhng v c bn hu ht cc on m u c cch trnh by thong v
d nhn.
- 82 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
else ni nu khng
Chng ta bit cch vit condition n gin, hy i xa hn mt cht: iu kin khng tha mn
(sai), chng ta s yu cu my tnh thi hnh mt instruction khc.
Trong ngn ng ca chng ta, iu s c ghi vi dng tng t nh sau :
NU bin s tha iu kin...
TH thc hin ...
NU KHNG hy thc hin ...
Ch cn thm vo t else sau du gp kt thc ca if.
Mt v d nh :
C Code:
if (tuoi >= 18) // Neu tuoi lon hon hoac bang 18
{
printf ("Ban la nguoi truong thanh !");
}
else // Neu khong...
{
printf ("Hehe, ban con la con nit !");
}
Ta c th hiu n gin: nu nh bin s tui c gi tr ln hn hoc bng 18, s hin th Ban
la nguoi truong thanh !
Nu khng hin th Hehe, ban con la con nit !
else if ni nu khng nu
Chng ta thy bng cch no to mt nu v mt nu khng . Chng ta cng c th
to mt nu khng nu. Nu nh iu kin u khng tha mn, chng ta s kim tra bin s
vi mt iu kin khc. Nu khng nu t bn trong if v else.
Chng ta yu cu my tnh:
NU bin s tha iu kin 1
TH thc hin vic 1
NU KHNG NU bin s tha iu kin 2
TH thc hin vic 2
NU KHNG thc hin vic 3
- 83 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 84 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
ngha
&&
||
HOC
KHNG
Test V
on m s dng k hiu va nu
C Code:
if (age > 18 && age < 25);
Nhng k hiu && c ngha l V. Din dt bng ngn ng ca chng ta : Nu tui ln
hn 18 V b hn 25
Test HOC
to mt HOC, chng ta s dng 2 k t ||.
Chng ta hy tng tng mt chng trnh kim tra v quyt nh quyn m ti khon ngn
hng. m mt ti khon ngn hng, tui khch hng khng c nh qu (chng ta s ty
tin t iu kin tui phi ln hn 30) hoc khch hng c nhiu tin (tt nhin ngn hng s
dang tay n cho k c khi tui bn b hn 10)
y l on m nhn bit quyn m mt ti khon ngn hng :
C Code:
if (tuoi > 30 || tien > 100000)
{
printf("Chao mung ban den voi chung toi !");
}
else
{
printf("Cut !");
}
iu kin s c tha mn nu ngi ny c tui trn 30 hoc c s tin nhiu hn 100.000
euros.
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 85 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Test KHNG
K t cui cng cn li test l du chm than. Trong tin hc, du chm than c ngha l
Khng
Cc bn phi t k t ny trc iu kin ni rng Nu iu ny khng ng :
C Code:
if (!(tuoi < 18))
on m trn c th dch l Nu ngi ny khng phi l tr con
Nu du ! pha trc b ly i, on m s c ngha tri ngc : Nu ngi ny l tr
con
Mt s li thng gp ca ngi mi hc
ng qun c n 2 du ==
Nu chng ta mun kim tra xem ngi ny c phi 18 tui hay khng, chng ta phi ghi:
C Code:
if (tuoi == 18)
{
printf ("Ban vua moi truong thanh !");
}
ng qun vic t 2 k t bng trong mt if, nh th ny : ==
Nu bn ch t mi mt k t =, th bin s ca bn s nhn gi tr 18 (ging nh ta hc trong
phn bin s). Tt c nhng iu ta mun y, l kim tra gi tr ca bin s ch khng phi
thay i n! Hy ch im ny, c rt nhiu ngi trong cc bn ch t mt du = v khi
chng trnh bn c bt u th tt nhin l n khng chy ging nh h mun.
Du chm phy d tha
- 86 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Mt s v d c th hiu r hn
Trong nhng bi hc v Vt LHa hc, thy gio ca ti thng c thi quen bt u t mt
s th nghim nh trc khi ging v mt khi nim mi.
By gi ti s bt chc ng y
Bn hy chy th on m n gin sau :
C Code:
if (1)
{
printf ("Dung");
}
else
{
printf ("Sai");
}
Kt qu :
Console:
Dung
- 87 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Gii thch
Thc t, mi khi ta kim tra mt iu kin trong mt if, n s tr v gi tr l 1 nu iu ng
v 0 nu iu sai.
V d :
C Code:
if (tuoi >= 18)
y, chng ta cn kim tra iu kin tuoi >= 18.
Gi nh rng tui c gi tr l 23, s cho kt qu ng, v my tnh thay th tuoi >= 18
bi 1. Sau , my tnh s ghi nh mt if (1) . Khi m s ny l 1, nh chng ta thy, my
tnh s hiu l iu kin ny l ng, v n s thi thnh cc instruction khi iu kin ng.
Tng t nu nh iu kin ny l sai, my tnh s thay th tuoi >= 18 bi s 0, v ngay tc
khc my tnh hiu iu kin l sai. My tnh s thi hnh instruction ca else .
- 88 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 89 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 90 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Condition "switch"
Chng ta thy rng condition "if... else" l dng condition c dng thng xuyn nht.
i khi "if... else" b lp li kh thng xuyn. Xem v d ny:
C Code:
if (tuoi == 2)
{
printf ("Chao baby !");
}
else if (tuoi == 6)
{
printf ("Chao nhoc !");
}
else if (tuoi == 12)
{
printf ("Chao cau be !");
}
else if (tuoi == 16)
{
printf ("Chao chang trai !");
}
else if (tuoi == 18)
{
printf ("Chao anh !");
}
else if (tuoi == 68)
{
printf ("Chao ong !");
}
else
{
printf ("Toi khong co cau chao danh cho ban ");
}
- 91 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Thit lp mt switch
Nhng ngi lp trnh rt ght vic lm mt vic g nhiu ln, chng ta c c hi chng
minh iu ny trc . V trnh lp i lp li nhiu ln vic kim tra gi tr ca mi mt bin
s, ngi ta to ra mt cu trc khc ngoi "if... else"
V ngi ta gi n l "switch".y l mt switch c thc hin trn v d m ta va thy :
C Code:
switch (tuoi)
{
case 2:
printf("Chao baby !");
break;
case 6:
printf("Chao nhoc !");
break;
case 12:
printf("Chao cau be !");
break;
case 16:
printf("Chao chang trai !");
break;
case 18:
printf("Chao anh!");
break;
case 68:
printf("Chao ong !");
break;
default:
printf("Toi khong co cau chao danh cho ban ");
break;
}
Hy ly v d ca ti lm c s cho vic to mt switch khc ca ring bn. Tuy rng chng ta t
s dng n, nhng vic ny kh tin li v n gip ta vit t hn.
ngha vit "switch (bienso)" l "Ti s kim tra gi tr ca bin s bienso".
Tip bn hy m mt du gp v ng n li pha sau { }
Bn trong, bn s to nn tt c cc trng hp: case 1, case 2, case 4, case 5, case 45
- 92 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
To mt menu vi switch
switch thng xuyn c s dng to nhng menu trn console.
Trn console, to mt menu, chng ta s dng printf hin th nhng la chn khc nhau.
Mi la chn s c nh s, ngi s dng phi nhp vo s ca la chn m h mun
y l mt v d m console s phi hin th:
Console:
=== Menu ===
1. Pho
2. Bun bo Hue
3. Mi Quang
4. Thit cay
Lua chon cua ban ?
(Bn cn phi bit l khi ti nh ra cc dng ny ti ang cm thy rt i bng)
- 93 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
p n
y l kt qu m ti mong mun rng t bn c th tm ra :
C Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int luachonMenu;
printf("=== Menu ===\n\n");
printf("1. Pho\n");
printf("2. Bun bo Hue\n");
printf("3. Mi Quang\n");
printf("4. Thit cay\n");
printf("\nLua chon cua ban ? ");
scanf("%d", &luachonMenu);
printf("\n");
switch (luachonMenu)
{
case 1:
printf("Ban da chon Pho. Lua chon tuyet voi !");
break;
case 2:
printf("Ban da chon Bun bo Hue. Lua chon chinh xac !");
break;
case 3:
printf("Ban da chon Mi Quang. Qua tuyet !");
break;
case 4:
printf("Ban da chon Thit cay. Hay den quan nhau !");
break;
default:
printf("Ban da khong nhap dung so can thiet, ban khong duoc an gi het !");
break;
}
printf("\n\n");
return 0;
}
- 94 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 95 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Condition ternary
y l mt on m hon ton tng t on m va ri, nhng ln ny chng ta s vit di
dng ternary:
C Code:
tuoi = (truongthanh) ? 18 : 17;
Cc ternary cho php, ch trn 1 dng, thay i gi tr ca bin s da vo hot ng ca mt
iu kin. y, iu kin ca chng ta ch n gin l truongthanh , nhng n cn c th
hot ng trn bt k iu kin khc khng k l di hay ngn.
Du chm hi "?" y c ngha l c phi bn l ngi trng thnh ? . Nu ng, n s a
gi tr 18 vo bin s tuoi, nu khng ( du ":" c ngha l else y), n s a gi tr 17.
Nhng ternary tht s khng cn thit, v c nhn ti ngh l khng nn s dng n nhiu qu v
n c th khin cho vic c mt on m kh khn hn.
Tuy nhin, bn cng phi hiu r n v s c mt ngy, bn ri vo mt on m vi y nhng
ternary vi mi cch . Bn s hiu c n hot ng nh th no.
V k t giy pht ny, bn s thc hin cc condition khp mi ni trong chng trnh ca bn,
v vy tt hn bn hy luyn tp vi n
y l mt tng luyn tp (ln ny s khng c p n
): hy to mt cng c tnh ton
trn console. Hin th u tin menu yu cu ngi s dng chn la nhng php tnh: (cng,
tr, nhn, chia c th thm vo cn bc 2, bng cch s dng th vin ton hc)
Khi m ngi s dng la chn xong, hy yu cu h nhp vo cc gi tr cn thit v hin th
p n!
Bn s s dng nhng g bn hc c t trong phn ny, ti mun nhn mnh mt im khc:
nhng boolean.
Tht s cc k quan trng vic nm vng rng boolean l nhng bin s c ngha l ng hay sai
ty theo gi tr ca n (0 l sai, 1 l ng).
Chng tip theo s s dng li nhng boolean v cc condition, v vy bn hy chun b tt
trc khi sn sng
C gng ln no !
- 96 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Th no l mt vng lp?
Tng t nh cc conditions, c nhiu cch thc hin mt vng lp. Nhng d thc hin bng
cch no, th chng u thc hin mt chc nng: lp li nhiu ln cc instruction.
Chng ta s tm hiu 3 dng vng lp thng s dng trong C:
1.
2.
3.
while
do... while
for
My tnh thc hin nhng instruction t cao xung thp (ging nh mi khi)
i.
ii.
iii.
- 97 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 98 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
V y l cch m v d trn thc hin. Ghi thm rng ti p mnh nh sai 2-3 ln trc khi
nh vo s chnh xc.
Console:
Hay nhap vao so 47 ! 10
Hay nhap vao so 47 ! 27
Hay nhap vao so 47 ! 40
Hay nhap vao so 47 ! 47
Chng trnh t dng li cho n khi s 47 c nhp vo.
Vng lp s lp li cc instruction nu nh ngi s dng vn khng nhp vo ng s 47. Ch
n gin nh vy.
By gi, chng ta s th lm mt vi iu th v hn: chng ta mun vng lp s lp li nhiu
ln mt instruction.
Chng ta s to mt bin s counter c gi tr 0 lc bt u, chng ta s tng dn gi tr ln.
Bn cn nh increment ko? Chng ta s cng thm 1 vo bin s bng cch vit bienso++.
Hy c k on m ny v hy th hiu cch hot ng:
Code C:
long counter = 0;
while (counter < 10)
{
printf ("Xin chao cac ban !\n");
counter++;
}
Kt qu :
Console:
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
Xin chao cac ban !
on m ny s lp li 10 ln cu Xin chao cac ban !.
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 99 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 100 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 101 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 102 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
C 3 instructions vit ngn gn trong ngoc v chng cch nhau bi nhng du chm phy:
instruction u tin dng khai bo: khai bo bin s counter. Trong trng hp ca
chng ta, bin s c gi tr l 0.
Tm li, ging nh ta thy vng lp for khng c g khc bit ngoi mt s th c vit
ngn gn hn so vi vng lp while
Hy nm vng n, chng ta s cn s dng n rt nhiu ln! Trong chng tip theo, c l chng
ta s mt mi vi mt t bi thc hnh.
Nh bn bit, trong nhng bi thc hnh hu nh s khng c thm kin thc mi, y l c
hi bn c th ng dng nhng g c hc trong nhng bi hc trc.
kt thc phn ny vi mt hnh vui m ti chc l bn c th hiu c ngha ca n
- 103 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Chun b v mt vi gi
Nguyn tc ca chng trnh
Trc tin, ti phi gii thch cc bn chng trnh ca chng ta hot ng da vo u.
y l mt tr chi gi l Ln hn hay nh hn
Nguyn tc l nh sau:
1. My tnh s chn ngu nhin mt s t 1 n 100.
2. My tnh s yu cu bn on s l bao nhiu.
3. My tnh s so snh s bn chn v s b mt . My tnh s gi cho bn bit s b
mt ny ln hay nh hn s m bn chn. Nu on ng th chng trnh dng li.
4. Nu bn on sai bc 3, th my tnh li ku bn on tip.
5. ... V my tnh li gi s b mt ln hn hay nh hn.
6. V n vn tip tc cho n khi bn tm thy s b mt .
Mc ch ca tr chi ng nhin l tm s b n vi s ln on nh nht
V y l mn hnh ca mt phn chi, v y l nhng g bn phi lm :
Console:
So can tim la bao nhieu ? 50
Lon hon !
So can tim la bao nhieu ? 75
Lon hon !
So can tim la bao nhieu ? 85
Nho hon !
So can tim la bao nhieu ? 80
Nho hon !
So can tim la bao nhieu ? 78
Lon hon !
So can tim la bao nhieu ? 79
Chuc mung ! Ban da tim duoc so bi mat !!!
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 104 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 105 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Code C:
const int MAX = 100, MIN = 1;
Nhng th vin km theo
chng trnh bn khng b li, chng ta cn phi thm vo ba th vin: stdlib, stdio v time
(ci cui cng dng cho nhng s ngu nhin).
V chng trnh phi c bt u bi:
Code C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Ti ch ni nhiu thi !
Ti s khng gii thch thm cho bn v nu tip tc ti s l ra ht ton b code ca chng
trnh !
- 106 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 107 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Gii thch
By gi ti s gii thch cho bn on code ca ti, chng ta bt u t dng u tin.
Preprocessor directives
(nhng ch th tin x l)
l nhng dng bt u bng # u on code. N tch hp cc th vin ta cn vo chng
trnh. Ti va a lun 3 dng ny cho bn phn Test Program, nu bn c li ch ny, kh
nng ca bn tht s b o.
Nhng bin s
Chng ta khng cn nhiu lm. Ch mt bin s cha s m ngi dng on (soHienTai) v
mt bin s khc cha s b mt c chn ngu nhin bi my tnh (soBiMat).
Ti cng khai bo nhng constants m ti gii thiu vi bn u chng hng dn ny. Li
ch ca vic khai bo constant u chng trnh, l bn c th thay i kh ca tr chi d
dng (v d MAX = 1000). Chng ta n gin ch cn thay i gi tr ca dng ny v dch li
chng trnh.
Vng lp
Ti chn vng lp do...while. V mt l thuyt, vng lp while cng hot ng, nhng ti thy
rng tng do...while s c tnh logic hn.
Ti sao? Bi v, bn hy nh li xem, do...while l vng lp chy t nht mt ln. V chng ta
cng yu cu ngi chi on s b mt t nht mt ln (ngi chi khng th no c c kt
qu nu cha on ln no, lm c th l thnh ri !).
Mi ln vng lp hot ng, ta s yu cu ngi chi on mt s. Ta s t s vo bin s
soHienTai. Sau so snh vi bin s soBiMat. C 3 kh nng xy ra:
1. soBiMat ln hn soHienTai, s thng bo "Lon hon !".
2. soBiMat nh hn soHienTai, s thng bo "Nho hon !"
3. Vy nu soBiMat khong ln hn cng khng nh hn soHienTai ? Bng nhau l iu
chc chn ! v tr else. Ti trng hp ny, thng bo "Chuc mung ! Ban da tim duoc so
bi mat !!!"
Cn phi c mt iu kin cho vng lp. Kh n gin nhn ra: vng lp vn cn lp li h
soHienTai khc vi soBiMat. Nu 2 s bng nhau, ng ngha vi ngi chi tm ra p n,
vng lp ngng. Chng trnh kt thc.
- 108 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
tng ci tin
Bn tng phn Test Program kt thc y ? Ti mun bn tip tc ci tin chng trnh,
ng thi tp luyn. ng bao gi qun rng ch c luyn tp thng xuyn mi c th khin
bn ngy cng tin b! Vi nhng ai c bi hng dn ca ti m khng test li mt ln no th
l mt sai lm rt ln, ti tng ni iu ny v ti s tip tc ni li y!
Bo cho bn bit u ti lc no cng y tng, k c vi mt chng trnh nh nh th ny,
ti khng h thiu tng ci tin n u !
Ch : ln ny ti s khng a cho bn p n na, bn cn phi t xoay s ly! Nu bn tht
s gp vn nan gii, hy ln cc din n c lin quan n C. Tm kim trc xem thc
mc ca bn c ngi gii thch cha, nu khng th to mt topic khc t cu hi.
- 109 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Bi 9: Function
(Hm)
Bi hng dn v function trong ngn ng C s khp li chng th nht. Ti sp gii thiu bn
trong phn hng dn ny mt yu t m mi chng trnh vit bng ngn ng C u phi dng
n.
Chng ta s hc cch xy dng mt chng trnh tng cht mt... ging nh cch bn chi Lego.
Tt c chng trnh vit bng C l tp hp bi nhng mnh code, v cc mnh code ny c
gi l cc functions !
Cch to v gi mt function
Trong cc phn trc, chng ta bit mt chng trnh vit bng C c bt u bi mt
function gi l main. Ti c mt biu nhc li mt s t ng hc. Ch t, ti tm li...
Ah thy ri, n y...
Quen khng? Thy quen ch?
trn, chng ta thy c nhng Preprocessor directives (Nhng ch th tin x l). Nhng
directives ny kh d dng nhn ra: n bt u bi du # v lun t phn u file source.
K tip, c mt on code m ta gi l mt "function". V trong hnh v bn nhn ra l
function main.
Ti tng ni vi bn l mt chng trnh vit bng ngn ng C bt u bi function main, ti
bo m vi bn rng, iu lun ng !
Nhng c mt iu cn ni, nhng bi hc trc chng ta ch hot ng trong function main,
chng ta cha bao gi ra khi n. Hy nhn li cc dng code trc m chng ta vit, chng
u nm trong hai du ngoc { ... } ca function main.
- 110 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Khng phi, vic ny vn tt nhng y khng phi l mt chng trnh vit bng C trong thc
t. Hu nh chng c chng trnh C no c vit ton b trong nhng du ngoc ny. V cho
n thi im ny, chng trnh ca chng ta vn cn kh ngn, nn vic ny cng khng xy ra
bt c vn no, nhng hy tng tng n cc chng trnh vit bi hng triu dng code!
Nu tt c u nm trong function main, lon ngay !
By gi chng ta bt u hc cch sp xp chng. Chng ta s ct chng trnh ra thnh nhiu
mnh ghp (c gng lin tng n nhng mnh lego m ti ni vi bn lc ny). Mi mnh
ghp ny chng ta s gi l mt function.
Mt function s thc thi hnh ng v gi mt kt qu. y l mt on code dng lm
nhng vic c ch ch no . Mt function c u vo v ra.
Xem hnh:
- 111 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Biu ca mt function
Bn nhn ra cch to mt function vi function main. By gi bn c th hiu r hn, ti
s ch ra cho bn lm cch no to mt function.
on code sau y s l biu ca mt function. Bn cn bit v hiu r n:
Code C:
type tenFunction (parameters)
{
// Cc instructions s c thm vo y
}
V cu to ca function l nh vy, v y l nhng iu bn cn bit thm:
- 112 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Cch to mt function
Chng ta s xem ngay v d v function triple m ti c nhc i nhc li ny gi. Ta s cho
function ny nhn mt s t nhin dng int v gi kt qu mt s t nhin cng dng int.
Function ny s thc hin php tnh nhn 3 cho gi tr ta cho n :
Code C:
int triple(int soHang)
{
int ketqua = 0;
ketqua = 3 * soHang; // Ta nhan gia tri nhan duoc len 3 lan
return ketqua;
// Ta tra ve bien so ketqua co gia tri gap 3 lan soHang
}
- 113 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 114 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Cch gi mt function
Chng ta s cng test mt on code xem li nhng g ta va hc. Chng ta s s dng
function triple nhn 3 gi tr ca mt s.
Trong thi im hin ti, ti yu cu bn vit function triple TRC function main. Nu bn t
pha sau, chng trnh s khng hot ng. Ti s gii thch l do cc phn sau.
V y l on code bn cn hiu v test li:
Code C:
#include <stdio.h>
#include <stdlib.h>
int triple(int soHang)
{
return 3 * soHang;
}
int main(int argc, char *argv[])
{
int soNhapVao = 0, soTriple = 0;
printf("Nhap vao mot gia tri... ");
scanf("%d", &soNhapVao);
soTriple = triple(soNhapVao);
printf("Triple (x3) cua gia tri vua roi la %d\n", soTriple);
return 0;
}
Chng trnh bt u bng function main nh chng ta bit. Ta yu cu ngi dng cho mt
gi tr s. Chng ta s a gi tr ny vo function triple, v sau ta thu c kt qu l gi tr
ca soTriple. Hy ch dng code ny, l cch ta gi mt function:
Code C:
soTriple = triple(soNhapVao);
Trong du ngoc, ta a vo bin s soNhapVao, gi tr ca soNhapVao s c s dng trong
function triple. Sau function ny s cho ra mt gi tr, gi tr ny s c cha trong bin s
soTriple. Cng ging nh ta ra lnh bo vi my tnh : "Yu cu function triple tnh cho tao 3 ln
gi tr ca soNhapVao, v cha kt qu nhn c trong bin s soTriple".
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 115 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 116 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Ch thch: y khng phi trng hp cho hu ht cc function. V nhiu lc, function khng c
parameter no, hoc c rt nhiu parameter. V i khi function cho ra mt gi tr, hoc n
khng tr v mt gi tr no c (trng hp khng c return).
Test chng trnh
Mn hnh test chng trnh:
Console:
Nhap vao mot gia tri ... 10
Triple (x3) cua gia tri vua roi la 30
- 117 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Tham kho on code di y, cng tng t vi on code trn nhng dng printf cui cng
c mt cht thay i v ta khng s dng bin s soTriple.
Code C:
#include <stdio.h>
#include <stdlib.h>
int triple(int soHang)
{
return 3 * soHang;
}
int main(int argc, char *argv[])
{
int soNhapVao = 0;
printf("Nhap vao mot gia tri... ");
scanf("%d", &soNhapVao);
// ket qua cua function triple duoc gui truc tiep den printf ma khong can dua vao bat ki bien so nao
printf("Triple (x3) cua gia tri vua roi la %d\n", triple(soNhapVao));
return 0;
}
- 118 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 119 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console:
- 120 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Chp pht
Chng ta s tham kho mt function khng tr v mt gi tr no. L mt function thc hin vic
hin th ln mn hnh nhng cu ging nhau vi s lng ty theo ta yu cu. Function ny c
mt parameter in: l s lng cu m bn phi chp pht.
Code C:
void chepPhat(int soDong)
{
int i;
for (i = 0 ; i < soDong; i++)
{
printf("Toi khong duoc phep quay cop trong gio kiem tra\n");
}
}
int main(int argc, char *argv[])
{
chepPhat(10);
return 0;
}
Console:
- 121 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
- 122 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console:
- 123 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Console:
- 124 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
Code C:
int menu()
{
int luachon = 0;
while (luachon < 1 || luachon > 4)
{
printf("=== Menu ===\n");
printf("1. Pho\n");
printf("2. Bun bo Hue\n");
printf("3. Mi Quang\n");
printf("4. Thit cay\n");
printf("Lua chon cua ban ? ");
scanf("%d", &luachon);
}
return luachon;
}
int main(int argc, char *argv[])
{
switch (menu())
{
case 1:
printf("Ban da chon Pho. Mot lua chon tuyet voi !\n");
break;
case 2:
printf("Ban da chon Bun bo Hue. Mot lua chon chinh xac !\n");
break;
case 3:
printf("Ban da chon Mi Quang. Qua tuyet !\n");
break;
case 4:
printf("Ban da chon Thit cay. Nao ta cung den quan nhau !\n");
break;
}
return 0;
}
Tranh th, ti ci tin lun menu trn m bn thy trc . Ln ny menu s hin th li
mi khi ngi s dng khng nhp ng gi tr t 1 n 4. Nh vy, khng c li xy ra nu nh
function tr li mt con s khng lin quan g n cc la chn trong menu !
Trong main, bn thy ta s dng mt switch (menu()).Mt khi function menu() kt thc, n s tr
v la chn ca ngi s dng trc tip vo function switch. Mt phng php kh nhanh v
hiu qu.
Dch gi: Mr. Hung
daihung.pham@yahoo.fr
- 125 -
Editor: M0N1M
thaibaminh2512@gmai.com
www.siteduzero.com
Tc gi: M@teo21
No n phin bn! on code trn vn c th ci tin tip c: Thay i chng trnh hin
th mt thng bo li nu nh ngi s dng la chn mt s khc ngoi menu thay v hin th
li ton b menu nh trn.
Mt bi tp nh trc khi kt thc
Bn cn nh tr chi "Ln hn hay nh hn" khng? Ti hi vng bn vn khng qun n.
Bn s thay i bng cch s dng nhng function. Bn s to ra 2 function: taoSoNgauNhien
(c tc dng to ngu nhin mt s nm gia MIN v MAX) v sosanh (c tc dng so snh 2 s
v hin th ln hn, nh hn hay kt qu ng)
- 126 -
Editor: M0N1M
thaibaminh2512@gmai.com