[tai lieu lap trinh c] - chuong 1
DESCRIPTION
c/c++TRANSCRIPT
-
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 1 - [email protected]
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 ) trong sut cc bi hc.
Vy ti l ai? Tn ti, hay l nickname ca ti l M@teo21. Ti tng vit rt nhiu bi hng
dn khc trn http://www.siteduzero.com, ti cng chnh l ngi to nn trang web ny.
V y khng phi l ln u tin ti vit nhng bi hng dn c bn .
Nhng khoan hy ni v ti , hy ni v chnh bn thn cc bn.
Bn khng h bit t g v lp trnh.
Cng khng chc bit lp trnh l g nhng... chc chn l bn ang mun hc lp trnh
ng khng?
V bn phi xc nh chnh xc mc tiu ca mnh l: hc lp trnh.
Nhng lp trnh C / C++... ngha l g?
V c tht s tt nu ta bt u hc t n?
V bn bit lp trnh trc cha?
C phi chng ta c th lm tt c mi th trn my tnh vi n?
Nhim v quan trng ca chng ny l tr li tt c nhng cu hi n gin nh th.
http://www.siteduzero.com/http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 2 - [email protected]
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.
3) Chng trnh u tin ca bn
Console hay l ca s ?
Nhng dng code ti thiu cn phi
c.
Vit mt tin nhn ra mn hnh.
Nhng ch thch, v cng tin dng !
4) Th gii ca nhng bin s
Cng vic ca b nh.
Cch khai bo mt bin.
Hin th gi tr ca bin s.
Cch gn gi tr vo bin s.
5) Cng c tnh ton
Nhng tnh ton c bn.
Phng php vit rt gn.
Th vin ton hc.
Trc Nghim Kin Thc.
6) Conditions (iu kin)
Condition "if... else".
Boolean, trung tm ca nhng
condition.
Condition "switch".
Ternary : nhng conditions rt gn.
7) Loops (vng lp)
Th no l vng lp.
Vng lp while.
Vng lp do... while.
Vng lp for.
8) Test Program: Hn hay km, tr chi u
tin ca bn
Chun b v mt vi gi .
p n.
tng ci tin.
9) Function
Cch to v gi mt function.
Xem thm vi v d hiu r hn.
http://www.siteduzero.com/http://huongdanlaptrinhc.pbworks.com/w/page/23750129/Bai%201http://huongdanlaptrinhc.pbworks.com/w/page/23750345/Bai%202http://huongdanlaptrinhc.pbworks.com/w/page/23750398/B%C3%A0i%203%3A%20Ch%C6%B0%C6%A1ng%20tr%C3%ACnh%20%C4%91%E1%BA%A7u%20ti%C3%AAn%20c%E1%BB%A7a%20b%E1%BA%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/23750656/B%C3%A0i%204%3A%20Th%E1%BA%BF%20gi%E1%BB%9Bi%20c%E1%BB%A7a%20c%C3%A1c%20bi%E1%BA%BFn%20s%E1%BB%91http://huongdanlaptrinhc.pbworks.com/w/page/23750672/B%C3%A0i%205%3A%20C%C3%A1c%20c%C3%B4ng%20c%E1%BB%A5%20%C4%91%E1%BB%83%20t%C3%ADnh%20to%C3%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/23750672/B%C3%A0i%205%3A%20C%C3%A1c%20c%C3%B4ng%20c%E1%BB%A5%20%C4%91%E1%BB%83%20t%C3%ADnh%20to%C3%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/23750672/B%C3%A0i%205%3A%20C%C3%A1c%20c%C3%B4ng%20c%E1%BB%A5%20%C4%91%E1%BB%83%20t%C3%ADnh%20to%C3%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/23755633/B%C3%A0i%208%3A%20TP%3A%20L%E1%BB%9Bn%20h%C6%A1n%20hay%20nh%E1%BB%8F%20h%C6%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/23755633/B%C3%A0i%208%3A%20TP%3A%20L%E1%BB%9Bn%20h%C6%A1n%20hay%20nh%E1%BB%8F%20h%C6%A1nhttp://huongdanlaptrinhc.pbworks.com/w/page/82272988/B%C3%A0i%209%3A%20Fonction -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 3 - [email protected]
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.
lp trnh (programmer, program) ngha l g?
Vng ti s trnh lm ging nh thy gio dy vn ca ti. Ti s khng a ra cho bn ngun
gc ca t lp trnh (programmer, program). Nhng d sao i na n xut pht t mt t latin
"programmeus".
Ni n gin, lp trnh ngha l to nn nhng "chng trnh my tnh". Nhng chng trnh i
hi my tnh thc hin tt c cng vic.
My tnh bn cha y cc chng trnh tt c mi th loi:
Calculator chnh l mt chng trnh.
Cc cng c x l vn bn ca bn cng l chng trnh.
Cc software dng chat cng l chng trnh.
Tr chi in t cng l chng trnh.
Tm li, nhng chng trnh khp mi ni trn my tnh v cho php thc hin bt c iu g.
Bn c th to ra mt chng trnh mang tnh cch mng nu bn may mn, hoc thc hin mt
game nh nhau 3D trn internet. My tnh ca bn c th lm tt c (tr nhng vic nh lm ra
caf)
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 4 - [email protected]
Tr chi ni ting Half-life 2, c lp trnh bng C++
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.
Bn s khng bt u hc lp trnh bng vic to ra mt game 3D. Chng khc no t mnh kt
thc tt c . Chng ta hy bt u t nhng iu c bn. u tin l lm sao hin th ln mn
hnh mt tin nhn.
Bn phi hc tng th tng th mt, v t t bn s c kh nng thc hin nhng chng trnh
vi kh ngy cng gia tng. Mc ch ca ton b bi hng dn ny gip bn c kh nng
xoay s trn bt k chng trnh no c vit bng ngn ng C hay C++
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 5 - [email protected]
Lp trnh bng ngn ng no?
Tht s m ni, my tnh ng l mt c my k l: n ch nhn v gi li nhng s 0 v 1.
V d, nu dch cu: thc hin php tnh 3 + 5 v ngn ng my tnh, n s c dng nh sau:
0010110110010011010011110.
(dy s trn do ti ch ra y , tht s th ti khng gii vic dch ra ngn ng my tnh )
Nhng s m bn thy trn, l ngn ng ca my tnh, gi l ngn ng nh phn (language
binary). My tnh ca bn ch hiu c ngn ng ny. Nhng bn v ti, chng ta hon ton
khng th hiu v hc c ngn ng .
V y chnh l vn u tin ca chng ta:
Lm cch no giao tip vi my tnh n gin hn vic dng nhng s 0 hay 1?
My tnh ca bn khng ni c ting Anh cng nh ting Vit. V khng ai quan nim phi
vit mt chng trnh bng ngn ng nh phn, k c nhng nh lp trnh in nht cng khng
lm chuyn .
tng l phi to ra mt ngn ng mi n gin hn v sau n s c chuyn sang ngn
ng nh phn. y l vic ca nhng nh lp trnh chuyn v ngn ng. V cc chng trnh
trnh ny uc to ra bi h, chng ta s khng cn phi thc hin li, tht l may mn phi
khng?
Ni n gin:
Nu bn vit mt lnh bng ngn ng lp trnh no vi ni dung:
thc hin php tnh 3+5
th chng trnh dch s chuyn thnh nhng dng nh sau:
"0010110110010011010011110"
Ti s lp mt biu gip bn hiu r hn:
Biu cc k n gin v vic thi hnh mt chng trnh
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 6 - [email protected]
y ti ch dng nhng t ng n gin gii thch, nhng trong tin hc mi vn u c
mt thut ng ring.
Sut cc bi hc, bn s phi hc khng t nhng thut ng . iu gip bn c th d dng
biu t nhng vn v tin hc, hn na, bn c th hiu c ca mt nh lp trnh no
m bn s tr chuyn sau ny. Hn l lc , nhng ngi xung quanh s nhn cc bn vi nh
mt khc thng, l l do m bn phi ch n vic hc nhng thut ng
Quay li vi biu trn:
Trong u tin: Chng trnh c vit bng ngn ng lp trnh n gin. Cm t Ngn
ng lp trnh n gin cn uc gi l ngn ng bc cao. (high-level programming
language).
C rt nhiu cp bc trong ngn ng lp trnh. V ngn ng bc cng cao cng gn v ging
vi ngn ng ca chng ta (cng ging nh ting Vit hay ting Anh). Ngn ng bc cao gip ta
d dng hn trong s dng, nhng n vn c mt vi thiu st m bn s thy v sau. C rt
nhiu ngn ng bc cao hay thp trong tin hc, trong s bn c th dng lp trnh.
V y l mt vi v d:
C
C++
Java
Visual Basic
Delphi
vv...
Ni thm rng y ti khng sp xp chng theo cp bc ca ngn ng, v th bn ng ngh
rng ngn ng u tin s dng d dng hn hay ngc li. ch l mt vi v d bt cht
ny ra trong u ca ti.
(Cn rt nhiu ngn ng khc na m ti khng lit k ra ht, v s rt di nu ghi ht ra , xin
cc bn b qua cho).
Mt s ngn ng c bc cao hn cc ngn ng khc (v mt l thuyt th d dng s dng hn),
chng ta s xem xt iu ny sau, c bit l s khc nhau gia ngn ng C v C++.
Mt t ng khc m ta phi nm l: m ngun (code source). n gin l phn m ca
chng trnh c vit bng ngn ng bc cao. V tt c nhng m ngun s c dch thnh
ngn ng nh phn.
Trong giai on tip theo, chng trnh bin dch s dch ngn ng bc cao (C hay C++)
sang nh phn. Chng trnh ny c tn l compiler. Vic bin dch gi l compilation.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 7 - [email protected]
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).
Cui cng, chng trnh nh phn c to ra bi compiler c gi l: executable. Cc chng
trnh ny trn Windows c ui .exe ging nh EXEcutable.
Quay li vi biu va ri nhng thay bng nhng thut ng tin hc chnh xc:
Cng mt biu nhng biu ny dng cc thut ng chnh xc hn.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 8 - [email protected]
Ti sao chn hc C/C++?
Nh ti ni vi bn trn, c rt nhiu ngn ng bc cao. Chng ta s bt u bng mt trong
s .
Nhng m bn phi c mt s la chn gia:
Mt ngn ng lp trnh c bc rt cao: d dng s dng, "thng dng", nh Visual
basic. Nhng cc ngn ng ny c rt nhiu khuyt im: u tin l phi mua bn quyn
s dng, gi thnh mc, v b nhiu hn ch. V d, chng trnh m bn vit s ch
chy c trn Windows, ng ngh n vic chy n trn Linux hay Macinstosh! Hay
trn ht, bn khng c th lm tt c nhng g bn mun vi dng ngn ng ny, v iu
khin bn cm thy hn ch khi s dng.
Mt ngn ng khc v tr tng i thp hn (nhng n khng thp lm u!): c
th n s hi kh hn visual basic, nhng chc chn mt iu l vi mt ngn ng nh C
(hay C++) s gip bn hc thm rt nhiu trong vic lp trnh cng nh hiu thm cch
hot ng ca my tnh. V sau hon ton kh nng hc thm mt vi ngn ng
khc nu bn mun. Bn s t ch hn. Mt khc, ngn ng C v C++ c s dng kh
rng ri. N c dng lp trnh phn ln cc chng trnh bn bit. Cui cng, lp
trnh trn C hay C++, bn khng cn phi mua bt k chng trnh no vt ngoi ti tin
ca bn, v ngn ng ny hon ton min ph!
V l l do thc y ti hng dn bn ngn ng C trc tin. Ti khng h ni rng chng ta
bt buc phi bt u t y, nhng la chn ny s gip bn c c nhng kin thc bn vng
v lp trnh.
Ti xem nh y chnh l ngn ng lp trnh u tin ca bn, v bn khng bit t g v lp trnh
trc . Cng c th, bn bit lp trnh ri, nhng vic hc li t c bn khng nh hng
xu t no phi khng
Khoan , c mt ci m ti vn cha hiu: Ti s hc mt ngn ng gi l C / C++ hay ti
s hc 2 ngn ng khc nhau mt l C v mt l C++?
Cu tr li tt nht l bn s cng lc hc c 2 ngn ng. Khng phi l bn phi tng cng
lm vic ln hai ln u m l 2 ngn ng ny kh ging nhau. (Khi ti ni n 2 ngn ng
cng lc, ti s vit C / C++).
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 9 - [email protected]
V chng ta phi hiu r s khc nhau gia C v C++ trc khi bt u:
Giai on u, lc cc my tnh c khi lng tnh bng tn v c kch thc to nh ngi
nh, ngi ta sng to ra mt ngn ng lp trnh gi l Algol.
Sau nhiu ci tin, ngi ta to ra mt ngn ng mi gi l CPL, v chnh n pht
trin thnh BCPL, sau n c mang tn l ngn ng B. (Cc bn khng cn phi
nm tt c nhng iu ny, ti vit ra ch c thm cht dng v v lch s m thi ).
V trong mt ngy p tri, ngi ta hon tt vic to ra mt ngn ng mi gi l ...
ngn ng C. Qua cc sa i, ngn ng ny vn l mt trong nhng ngn ng c s
dng nhiu nht cho n hm nay.
Khng lu sau , ngi ta xut thm vo ngn ng C mt vi th ci tin, v ngn
ng mi ny c gi l ngn ng C++ hon ton da trn nn tng ca C. Ngn ng
C++ khng c g khc C ngoi tr mt s ci c thm vo. (Nhng ci l g? Chng
ta s thy v sau).
C rt nhiu cch hc lp trnh. Nhiu ngi ngh rng tt hn ht l hc ngay t C++. iu
cng ng, chng tng i ging nhau, C++ ch l C c thm vo nhng du +. Ngn
ng C khng phi l ngn ng gi ci b lng qun, ngc li n c s dng rt nhiu trong
thi i hin nay. N l nn tng ca nhng h iu hnh ln nh Unix hay Windows.
Nu bn bt u bng ngn ng C, sau ny bn hc ngn ng C++ s nhanh v d dng hn. V
bn s khng cn phi hc li tt c nhng g bit, bn ch cn hc nhng ci c thm vo
C++ (v y chnh l u ti cn ni ).
C mt s hiu lm khi c ngi cho rng ngn ng C++ tt hn C, tht ra th n ch cho
php bn lp trnh theo cch khc. C th ni, n ch gip vic lp trnh ca ta nhanh hn v d
dng hn trong vic t chc m ngun ca chng trnh.
Nm vng vn : C v C++ khng phi l 2 ngn ng cnh tranh, i lp vi nhau. Chng ta
u c th dng 2 ngn ng ny lp trnh nhng ci tng t. Ch l dng 2 phng php lp
trnh khc nhau .
iu thun li hn l sau ny c th dng C hay C++ ty theo mun v mc ch ca cc bn.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 10 - [email protected]
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:
Php cng (Ti hi vng bn nm vng n )
Php tr (hic... hic... )
Php nhn ( )
Php chia
Ti hi vng cc bn bit tt c nhng php tnh . V chc chn l ti s gii thch cho
bn trong phn tip theo, lm sao my tnh c th thc hin cc php tnh c bn.
Tm li, v ton hc th khng c g kh khn bn vt qua.
Tt c ch ph thuc vo chng trnh m bn mun thc hin, nu l chng trnh lin quan
n ton hc, bn bt buc phi hiu bit nhiu v ton. Nu bn mun lm mt game 3D th i
hi bn phi c kin thc v hnh hc khng gian.
hc ngn ng C / C++, bn khng cn thit phi c nhng kin thc cao cp no c.
Nhng u l ci kh khn ?
Chng ta cn phi bit my tnh hot ng nh th no c th hiu chng ta ang lm nhng
g. V im ny, hy yn tm, ti s c gng ht sc hng dn cho cc bn.
Mt ngi lp trnh cng cn phi c mt vi c im nh sau:
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 11 - [email protected]
Tng Kt:
to ra c mt chng trnh my tnh, ngi ta phi vit nhng chng trnh da
trn mt loi ngn ng m my tnh c th bin dch li hiu. Ngi ta gi l
Ngn ng lp trnh.
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.
Ngn ng lp trnh C m chng ta ang c hc trong ti liu ny c gi l ngn ng
cp thp v n cng ang l ngn ng lp trnh ph bin nht th gii hin nay.
Source code l tp hp vn bn do bn vit ra th hin ngha ca ngn ng lp trnh.
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.
Vic lp trnh khng i hi bn phi c mt kin thc chuyn su v mt lnh vc no
nh Ton hc (ngoi tr mt s trng hp chng trnh bn vit i hi phi s dng
nhng cng thc ton hc chuyn su, vd nh cc phn mm m ha). Tuy nhin, mt t
duy logic, nhy bn l iu tht s cn thit i vi mt lp trnh vin.
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 12 - [email protected]
TRC NGHIM KIN THC.
Phn ny s gip bn kim tra li kin thc hc c, bn ch vic chn cu tr li ng nht
thi.
Nhng file no c to ra t vic lp trnh ?
A. Nhng file *.exe chy trn Windows
B. Nhng hnh nh (*.jpg, *.png, *.bmp...)
C. Nhng on vidos (*.avi, *.mov...)
Gia C v C++, ngn ng no cho php ta lp trnh tt hn ?
A. C
B. C++
C. C hai u mnh m nh nhau
Chng trnh dch ngn ng cao cp thnh ngn ng nh phn gi l :
A. Programer
B. Brumisateur
C. Compiler
Ngn ng no bn s hc trong giai on u ?
A. C
B. C++
C. C hai
p n:
1- A
2- C
3- C
4- C
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 13 - [email protected]
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.
Nhng cng c cn thit cho vic lp trnh:
Vy theo bn, chng trnh m chng ta ang cn l g ?
Nu nh cc bn c theo di k ni dung bi hc trc th hn l bn phi bit t nht 1 ci tn
no ch.
Bn bit iu ti ang mun ni m ng khng ???
Vng, l trnh bin dch (compiler), mt chng trnh chuyn dng bin dch ngn ng
C/C++ ca bn sang ngn ng nh phn ca my tnh.
Nh ti tng ni s qua cho cc bn bi trc, chng ta c 1 vi trnh bin dch ph bin
cho ngn ng lp trnh C/C++. Vic la chn trnh bin dch no tht s khng phi l vn
qu kh.
No, vy ngoi ra chng ta cn cn nhng g na?
Ti s khng bn phi thc mc thm, di y l nhng hnh trang ti thiu cho mt lp
trnh vin:
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 14 - [email protected]
Mt chng trnh tm v sa li (debugger) gip bn theo di cc li trong chng
trnh ca mnh. Tin khng vui l cho ti by gi chng ta vn cha pht minh ra chc
nng hiu chnh sa cha nhng li ca chng trnh. iu cng ng ngha vi
vic nu bn nm r cch hot ng ca debugger, n s gip bn tm ra li mt cch
d dng, ch vy thi.
Thi gian u, nu bn l ngi thch mo him th bn c th lm vic m khng cn ti
debugger nhng ti tin chc rng khng sm th mun bn cng s cn n n thi.
T nhng iu trn chng ta s thy c 2 trng hp:
TH1: lp trnh, chng ta s phi dng 3 chng trnh ring bit, v y cng l cch
phc tp nht, nhng s tht l n c th hot ng. Chng hn nh vi Linux, nhiu lp
trnh vin vn thch s dng 3 chng trnh ring bit cho cng vic lp trnh ca h. Ti
s khng ni chi tit v vic ny trong bi ny m ti s ch bn mt cch n gin hn.
TH2: Chng ta c chng trnh no bao gm 3 trong 1 khng? Tc l mt chng trnh
c cha 3 thng text editor, compiler v debugger. Cu tr li l c v ngi ta gi
nhng chng trnh ny l IDE.
Chng ta c mt vi IDE ph bin v s c mt cht kh khn trong thi gian u bn c th
chn cho mnh mt IDE ph hp. Nhng c mt iu chc chn l trong mi trng hp, bn
u c th lp trnh vi bt k loi IDE no.
Chn IDE ph hp vi bn:
S kh th v khi gii thiu cho bn mt vi IDE ni ting nht m ti bit. D nhin tt c u l
min ph, hehe. C nhn ti hi ln xn trong vic s dng IDE cho mnh, ti c th dng mi
ngy mt IDE khc nhau ty cm hng.
Mt trong nhng IDE a thch ca ti l Code :: Blocks. N hon ton min ph v
hot ng c trn hu ht cc h iu hnh my tnh ph bin ngy nay. Ti khuyn
bn nn bt u hc lp trnh vi phn mm ny (thm ch n vn rt tt cho tt c mi
ngi v sau). Thng ny c th chy mt m trn Windows, Mac v Linux.
Khng th khng nhc ti mt sn phm ni ting trn Windows, n l phn mm
Microsoft Visual C ++. C rt nhiu phin bn tnh ph (tt nhin l mc vcl). Nhng
may thay, c mt phin bn min ph tn l Visual C++ Express, thng ny tht s rt
ngon lnh (n ch khc phin bn tnh ph mt s im nh nht thi). Phin bn min
ph ny cung cp cc chc nng rt y v c mt b module hiu chnh li tuyt vi
(debugging). Em ny th tt nhin l ch chy c trong mi trng Windows
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 15 - [email protected]
i vi h iu hnh Mac OS X, cc bn c th s dng mt phn mm tn l Xcode,
thng c cung cp sn trn cc a ci t Mac OS X. IDE ny c cc lp trnh
vin lm vic trn h iu hnh Mac nh gi rt cao. V hin nhin lun, n ch chy
c trn Mac OS X.
Lu mt cht vi ngi dng Linux: C rt nhiu IDE cho h iu hnh ny, nhng c
v nhng lp trnh vin c kinh nghim li thch th vi vic tch bit mi th ra thay
v s dng IDE 3 trong 1, cng ch hi kh hn mt cht thi. Trong trng hp ca
chng ta by gi, ti khuyn cc bn nn ci t Code :: Blocks d bn ang dng Linux,
ch yu l c th thun tin hn trong vic theo di bi vit ca ti thi.
Vy th ci IDE no l tt nht ?
Tt c nhng IDE ti va gii thiu cho bn u c th gip bn lp trnh tt m khng c vn
g. C th s c ci ny cung cp nhiu ty chn tt hn, ci kia li cho ta trc quan sinh ng d
nhn, d xi hn. Nhng trong mi trng hp, chng trnh m bn to ra s u ging nhau d
cho bn s dng IDE no. V vy ng qu quan trng ha vic la chn IDE tt nht.
Ni t ny n gi th ti quyt nh s s dng Code :: Blocks. Nu bn mun theo di nhng
g ti sp ni di y mt cch trc quan sinh ng nht, ti ngh bn nn ci t phn mm
ny u tin.
Code :: Blocks (Windows, Mac, Linux)
Code :: Blocks IDE l hon ton min ph v c th ci t c trn h iu hnh Windows,
Mac v Linux.
Hin ti IDE ny ch mi c phin bn ting Anh thi, ng iu ny ngn cn bn s dng
n.
Hy nh rng, trong sut qu trnh hc lp trnh, bn s cn bt gp nhiu ti liu khc c vit
bng ting Anh, v by gi chng ta li c thm 1 l do chnh ng trau di kh nng ngoi
ng ng khng no.
Xin mi bn ti Code :: Blocks v theo link ny http://www.codeblocks.org/downloads/binaries
(hoc c th ln google search l ra ngay thi m).
Nu bn l ngi dng Windows, hy ti v phin bn c ui mingw-setup.exe, bi v
ch c phin bn ny mi tch hp sn compiler trong , nu ti nhng phin bn khc
thi bn s phi vt v bin dch chng trnh y.
Nu bn ang dng Linux th ch vic chn phin bn ph hp vi nh phn phi h iu
hnh ca bn.
http://www.siteduzero.com/http://www.codeblocks.org/downloads/binaries -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 16 - [email protected]
Cui cng l vi Mac OS X, ch n gin l ti v phin bn mi nht trong danh sch
cc phin bn m bn nhn thy trn website.
Hy cn thn ti cho ng phin bn cho h iu hnh Windows ca bn. Bn c th xem
hnh di r hn.
Nu khng nm r th c ti phin bn c ui mingw-setup.exe nh hnh trn:
Giao din chnh ca Code::Blocks sau khi ci t v chy chng trnh.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 17 - [email protected]
Quan st hnh trn chng ta thy c 4 vng ln c nh s, ti s gii thiu s cho cc bn v
chng nh:
1. Thanh cng c (toolbar): N cha rt nhiu nt chc nng nhng ch mt s t trong l
c s dng thng xuyn. Ti s ni v nhng nt ny sau.
2. Danh sch cc tp tin d n (list of project files): Khu vc bn tri ny hin th danh sch
cc tp tin c cha m ngun (source code) trong chng trnh ca bn. Lu rng hnh
nh ny c chp khi cha c project no c to, do bn khng thy bt k danh
sch tp tin no c hin th.
3. Khu vc chnh (main area): y chnh l ch dnh cho bn vit m ngun (source code).
4. Khu vc thng bo (notification area): Hay cn c gi l death zone vng cht
chc, ni ny s hin th li bin dch nu m ca bn c vn , v iu ny vn thng
xuyn xy ra.
No, hy nhn vo hnh di v ti 4 nt c bit trn thanh cng c. Bn s thy cc nt
chc nng theo th t: Buil, Run, Build and Run, Rebuild. Tt c nhng nt chc nng ny s
c s dng rt thng xuyn:
Ti s ni cho bn bit chc nng ca nhng nt ny:
1. Build: Hay cn gi l bin dch. Nt chc nng ny s chuyn tt c cc tp tin cha m
ngun trong d n ca bn n trnh bin dch thc thi nhng tc v. Nu xy ra li
(chc chn l s xy ra ko sm th mun thi), thc thi s khng hon thnh v bn s
nhn thy thng bo khu vc bn di Code :: Blocks nh phn trn gii thiu.
2. Run: Hay cn gi l chy chng trnh. Nt ny gip chng trnh ca bn chy ln sau
khi c bin dch, iu ny gip bn kim tra xem chng trnh bn vit hot ng
nh th no, c ng nh bn mun. Theo nh th t th bn s bin dch trc ri sau
chy chng trnh, nhng c mt nt th 3 gip bn hp 2 qu trnh ny li trong 1 c
click chut
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 18 - [email protected]
3. Build and Run: Chc hn l bn khng cn phi l mt thin ti hiu c ci nt th
3 ny ch l mt s giao lu kt hp t 2 nt u tin. y dng nh s l nt bn
dng thng xuyn nht. Lu rng, nu c bt k li no xy ra trong qu trnh bin
dch, chng trnh s khng chy c v tt c nhng g bn nhn c l mt ng
thng bo li pha di nh.
4. Rebuild: Bin dch li. Khi bn bin dch chng trnh th thc t, Code :: Blocks s bin
dch li nhng tp tin m bn thay i. i khi ti l i khi thi nh bn s
cn Code :: Blocks bin dch li tt c cc tp tin. Chng ta s c bit khi no chng ta
cn s dng chc nng ny v c th nhng g n s lm trong nhng bi tip theo. Ti
thi im hin ti ti ngh chng ta khng nn nhi nht qu nhiu. Tm thi nt chc
nng gn nh khng cn thit i vi chng ta.
Ti cng khuyn cc bn nn tp thi quen s dng cc phm tt thay v nhp chut vo
cc nt chc nng. Vic ny s gip cc bn tit kim c kh nhiu thi gian v n
din ra rt thng xuyn. Chng hn nh Build and Run, cc bn ch cn bm F9 l
c.
Cch to mt d n (Project) mi:
to mt project mi, tht s rt n gin: Bn ch cn chn File / New / Project hoc nhp
chut thng vo dng Create new project trn khu vc chnh trc mt bn.
C 2 cch to 1 Project mi
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 19 - [email protected]
Trong ca s va m ra (xem hnh sau), chn Console application
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 20 - [email protected]
Tip theo bm Go to mt project mi.
Chng trnh s hi bn mun to project cho ngn ng C hay C++. Hy chn C v click next.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 21 - [email protected]
Chng trnh s yu cu bn t tn cho project v chn khu vc lu tr n. Sau bm next.
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.
Cui cng ch cn bm Finish l xong.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 22 - [email protected]
Code::Blocks gip bn to mt d n mi vi mt cht m ngun (source code) c vit sn
trong . Nhn vo pha bn tri mn hnh khu vc hin th danh sch tp tin m ngun.
hin th cc tp tin cn thit. t nht bn s thy 1 tp tin l main.c Trong tp tin ny bn s thy c vi dng code mc nh c vit sn khi nhp chut tri 2
ln vo n.
Vy l cc bc gii thiu v IDE Code::Blocks xong v bn bit cch to project cho
ring mnh ri ng khng. Tm thi ti xin php khng hng dn cch ci t 2 IDE cn li (Visual Studio Express v
Xcode). Nhng ti ngh cc bn hon ton d sc thc hin nhng thao tc ny ng khng. Cn
v link ti phn mm th ch cn nh Google l c ng khng no.
Tng kt
bt u hc lp trnh bn cn c ti thiu 3 cng c: Trnh son tho vn bn (text
editor), trnh bin dch (compiler) cng vi mt trnh tm v sa li (debugger).
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 23 - [email protected]
Bi 3: Chng trnh u tin ca bn
Chng ta chun b xong sn chi, chng ta s bt u cuc chi ngay by gi, bn ang cm
thy th no?
Mc ch ca phn hng dn ny gip bn c th to ra chng trnh u tin cho chnh
mnh!
Chng trnh u tin ca bn:
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 24 - [email protected]
Console hay l ca s? C 2 loi chng trnh :
Nhng chng trnh dng ca s.
Nhng chng trnh dng console.
Nhng chng trnh dng ca s:
Ti ngh rng cc bn bit ci ny, ly mt v d in hnh:
Chng trnh paint
l mt chng trnh dng ca s, cc bn rt mun to ra nhng chng trnh nh th ny
ng khng?
Vi C, chng ta hon ton c kh nng lm c. Nhng cc bn cha sc to ra chng vo
lc ny.
Tt hn l ta bt u vi vic to ra mt chng trnh dng console.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 25 - [email protected]
Nhng chng trnh dng ca s c ging vi nhng chng trnh dng console
khng?
Nhng chng trnh di dng console:
Console chnh l nhng chng trnh xut hin u tin trn th gii. Vo thi k , my tnh
ch c kh nng to ra nhng dng ch en v trng v khng mnh hin th nhng ca s
nhiu mu sc v hiu ng nh bn thy hin nay.
Sau , Windows cho ra i my tnh c kh nng chy nhng chng trnh dng ca s. V
vy m sn phm ca h c dng rng ri, khin phn ln ngi s dng qun mt s tn ti
ca console.
V ti chc l bn ang mun bit console l g phi khng?
Ti c mt tin rt mi cho bn y! console vn tn ti! Linux gi li s thch s dng
console. V y l hnh dng ca console trn Linux:
Mt v d v console trong Linux
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 26 - [email protected]
l console v nhng c im cn ch l:
Console ngy nay khng ch hin th trng v en.
Console khng c nhng ngi mi s dng cho n lm.
Console l mt cng c mnh m nu nh chng ta bit cch s dng.
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
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 27 - [email protected]
Trn h iu hnh Windows c console hay khng?
C nhng n b giu i, ta c th ni nh th.
Bn c th gi n bng cch vo Start => run => nhp cmd.
V y chnh l console ca Windows, tht k diu:
Console trn Windows
Nu bn ang s dng Windows, chng trnh u tin bn sp to ra s tng t nh th.
Vi vic bt u t console, bn s hc c nhng kin thc lp trnh nn tng cn thit c
th to ra nhng chng trnh dng ca s v sau nn ng nn ch nh!
Nhng dng code ti thiu cn phi c.
Trn bt k cng c lp trnh no, chng ta u phi vit ra t nht mt on code, tuy rng
chng khng thc hin iu g nhng l iu bt buc.
l on code ti thiu m ta sp sa tm hiu ngay sau y. Hu ht cc chng trnh vit
bng ngn ng C u phi s dng.
Ti s s dng IDE (Integrated Development Environment) Code::Blocks hng dn bn.
iu bn cn lm sau khi m Code::Blocks l to mt project mi nh ti hng dn bi
trc (vo menu chn File / New / Project, chn Console Application v chn ngn ng C).
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 28 - [email protected]
Code::Blocks to sn mt on m ti thiu m chng ta cn:
C Code:
#include
#include
int main()
{
printf ("Hello world!\n");
return 0;
}
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).
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 29 - [email protected]
ngha on m ti thiu trn:
on code vi bn tht rc ri nhng vi ti l on code hin th mt tin nhn ln mn
hnh.
Chng ta bt u hc cch c v hiu chng .
Bt u t 2 dng u tin, chng c v ging nhau:
C Code:
#include
#include
y chnh l nhng dng c bit thng thy u nhng file source v d dng nhn bit v
n bt u t du #. Ta gi chng l preprocessor directives (nhng ch th tin x l) v n
s c c bng mt chng trnh gi l preprocessor (chng trnh tin x l), chng trnh
ny s chy u tin khi ta thc hin compilation.
Chng ta thy hnh v n gin v compilation chng trc. Nhng qu trnh thc s
khng h d dng nh vy, c rt nhiu th din ra trong . Ti s ni sau ny, ti thi im
hin ti, cc bn ch cn bit cch vit nhng dng u tin vo file ca bn l .
Nhng nhng dng ngha l g? Ti rt mun bit iu !
T include ting Anh c ngha l t vo, bao gm. N cho php thm vo project mt s file.
Nhng file ny s c s dng trong qu trnh compilation.
y c 2 dng, vy l s c 2 file c thm vo. Nhng file ny c tn l stdio.h v stdlib.h.
l nhng file tn ti trc trong source v lun sn sng khi bn gi ra. Chng ta
thng gi n l th vin (library). V nhng file ny cha nhng on code c vit sn cho
php hin th mt on vn ln mn hnh.
Ghi ch: Th vin ting anh l library. Bn hy nm vng ngha dch chnh xc ca n.
Ti ngh vit nam mnh ch gi l th vin thi nh?
Nu khng c nhng file th vin , ta khng th no ghi c mt on vn ln mn hnh.
V nguyn tc, my tnh ca bn s khng hiu g c.
Tm li, 2 dng u tin cho php ta ghi mt tin nhn ln mn hnh "d dng".
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 30 - [email protected]
C Code:
int main ( )
{
printf ("Hello world!\n");
return 0;
}
Ci m bn thy trn, ngi ta gi l mt function. Mt chng trnh C hu nh cu to bi
cc function, Ti thi im ny, chng trnh ca chng ta ch c mt function duy nht.
Mt function cho php chng ta tp hp li cc lnh cho my tnh, nhng lnh ny cho php ta
thc hin chnh xc mt iu g . V d, ta c th vit mt function m_mt_tp_tin trong
cha ng nhng ch dn v cch m mt tp tin cho my tnh.
Li ch l, mt khi function c vit ra, bn khng cn phi ni thm g na c. My tnh s
bit lm vic bng cch no.
Vn cn qu sm chng ta tm hiu chi tit v nhng thnh phn cu to nn mt function.
Chng ta ch xem xt nhng phn chnh ca n. cu u tin, ch th hai (main) l tn ca
function. Theo nguyn tc, main l mt tn c bit, n ch dng t cho function chnh ca
chng trnh, v lc no chng trnh cng s bt u t function main.
Mt function lun c m u v kt thc, gii hn bi nhng du { v }. Tt c function main
ca chng ta u nm trong . Nu bn theo kp nhng g ti ni, th function main ca
chng ta gm 2 dng:
C Code:
printf ("Hello world!\n");
return 0;
Ta gi nhng dng nm trong mt function l cc instruction. (Hy nm vng nhng t ng
ny ).
(instruction: ch th, ch dn, cu lnh)
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 .
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 31 - [email protected]
Quan trng: Tt c cc instruction u kt thc bng mt du chm phy ; . Hay ni khc hn l c im nhn bit mt instruction. Nu bn qun chng, chng trnh ca
bn s khng dch c.
Dng u tin:
C Code:
printf ("Hello world!\n");
Yu cu my tnh hin th ln mn hnh "Hello world!". Khi chng trnh bn chy n dng
ny, n s hin th tin nhn ra mn hnh, sau chuyn sang instruction k tip.
C Code:
return 0;
C ngha l kt thc, dng ny biu th rng ta n giai on kt thc function main v
yu cu gi gi tr 0.
Vy th ti sao chng trnh phi tr v s 0?
Trn thc t, mi chng trnh khi kt thc s gi v mt gi tr, v d nh ni rng tt c hot
ng tt (0= tt c hot ng tt, nhng s khc c ngha l error). Hu nh nhng gi tr
ny khng h c s dng, nhng thc t n vn tn ti.
Chng trnh ca bn cng c th chy khi khng c return 0; nhng s chnh xc v ng hn
nu ta thm vo.
Vy l! Chng ta tm hiu mt t v cch hot ng ca on m ti thiu trn.
Hn l cc bn vn cn mt s nghi vn khc v chng ta khng tm hiu su lm. Nhng bn
hy yn tm, tt c nhng cu hi s tng t tng t mt c gii p. Ti khng mun gii thch
cho bn tt c trong mt ln, nu khng u c bn s hon ton ri bem, ti m bo.
n gi, bn vn theo kp ti ng khng? Bn khng cn thit phi c gng c ht mt mch
u. Hy ngh ngi v sau lm vic vi tinh thn minh mn nht.
Tt c nhng g ti va hng dn cho bn u l nn tng, cn nu bn cm thy khng c vn
g th ta tip tc.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 32 - [email protected]
Ti s v cho bn li mt biu tng hp vi nhng t ng ta va hc:
Test chng trnh
Nhanh thi, bn ch cn bin dch chng trnh ri chy. (Nhn vo nt Build & Run trong
Code::Blocks).
Nu bn vn cha lu file li, Code::Blocks s yu cu bn save file li, hy thc hin iu .
Nu compilation khng thc hin c v bn c li dng My-program - Release"
uses an invalid compiler. Skipping... Nothing to be done iu c ngha l bn ti v
s dng phin bn Code::Blocks khng c mingw (compiler). Hy quay v site Code::Blocks ti
v phin bn c mingw. V y l chng trnh u tin ca bn:
Chng trnh u tin ca bn!
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 33 - [email protected]
Chng trnh hin th "Hello world!" (dng th nht).
Nhng dng k tip c to ra bi Code::Blocks v gii thch rng chng trnh c chy
trong khong thi gian 0.021s k t lc bt u.
Sau Code::Blocks yu cu bn nhn vo mt phm bt k ng ca s li. Chng trnh ca
bn s dng li.
Vng, ti bit rng ci chng c ngha g c, ging nh mt tr a nhng l tt c nhng
g bn va hc c.
Nhng d sao, cng l chng trnh u tin ca bn, hy nh li cm gic , c th n s
theo bn sut c i y.
Khng phi vy sao ?...
Trc khi bn cho ti thy v mt ca bn lc ny, ti xin php chng ta bc sang phn tip
theo, khng chm tr.
Vit mt tin nhn ln mn hnh
K t by gi, chng ta s t vit code ca mnh vo chng trnh.
Nhim v ca cc bn l hin th tin nhn Xin chao ln mn hnh.
Ging nh trc console s m ra. Tin nhn Xin chao s xut hin trong .
Lm cch no vit mt tin nhn ln mn hnh?
Vic ny kh n gin. Nu bn s dng li on code trn, bn ch cn thay "Hello world!"
bng "Xin chao" trong cu c cha printf.
Ti ni printf l mt instruction. N ra lnh cho my tnh: Hy hin th cho ti mt tin nhn
ln mn hnh.
Cn bit thm rng printf l mt function c vit bi nhng lp trnh vin i trc.
function ny u ? Ti ch thy tn ti mi function main m thi !
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 34 - [email protected]
Bn c nh hai dng ny ch ?
C Code:
#include
#include
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
#include
int main (int argc, char *argv[])
{
printf ("Xin chao");
system ("PAUSE");
return 0;
}
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 35 - [email protected]
Chng ta c 3 instruction yu cu my tnh thc hin:
1. Hin th Xin chao ln mn hnh.
2. a chng trnh vo giai on ngh, hin th tin nhn "Press any key to continue" v
ch i cho n khi ta nh thm 1 phm bt k ln bn phm chuyn sang instruction
tip theo.
3. Function main kt thc, tr v 0. Chng trnh kt thc.
Vic a chng trnh vo trng thi ngh c ngha nh th no? Chng ta c c
php xa i cu lnh system(PAUSE) hay khng?
C ch, chc chn l bn c th. Hy th chy chng trnh khng c instruction ny v bn
s thy.
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:
Cui cng, chng trnh hin th "Xin chao" c hon thnh.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 36 - [email protected]
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.
Danh sch cc k t c bit bn c th s dng khi lp trnh
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 37 - [email protected]
Trong trng hp ny, chng ta ch cn thm vo \n xung dng.
#include
#include
int main (int argc, char *argv[])
{
printf ("Xin chao"\n);
system ("PAUSE");
return 0;
}
V by gi chng trnh ca bn r rng hn ri.
Mt chng trnh hin th r rng
Bn c th vit trong printf duy nht mt k t \n , iu c ngha l bn mun xung
dng cu k tip. Bn hy tp vit nhng cu th ny:
printf ("Xin chao\nTam biet\n");
N s hin th Xin chao cu u tin v Tam biet cu k tip.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 38 - [email protected]
V d khi s dng Code::Blocks phin bn mi:
Cng l mt chng trnh in ra mn hnh cu Xin chao! nhng khi vit bng Code::Blocks
phin bn hin ti th ch n gin nh sau:
C Code:
#include
#include
int main( )
{
printf ("Xin chao!");
return 0;
}
Chng trnh hin th:
Code::Blocks phin bn mi chng trnh t ng dng li v t ng xung dng cui.
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)
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 39 - [email protected]
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 40 - [email protected]
Nhng li ch thch, v cng tin dng!
Trc khi kt thc phn ny, ti nht thit phi ch cho bn mt ci kh hay, m ta gi chng l
cc comment. Trn cc ngn ng lp trnh ta lun c th thm vo nhng ghi ch vo trong m
ngun ca bn. V i vi ngn ng C bn cng c th lm nh vy.
C ngha l bn thm vo mt on vn vo code source gii thch l phi lm g , dng
ny c nhim v g, k hiu ny cho mc ch g ..v.v..
tht s l mt iu khng th thiu v k c nhng thin ti v lp trnh cng cn phi thm
vo cc ch thch y hay kia. Nhng ghi ch ny s gip bn c th:
D dng i vo trng tm ca nhng g bn vit. V ta c th d dng qun mt nguyn
tc hot ng chng trnh m bn vit. Bn c th mt nhiu ngy suy ngh li
iu , bn s cn nhng ch thch ca bn thn bn c th t hiu li ngha ca
vic mnh lm.
Nu bn a m ngun ca bn cho mt ai khc v nu ngi khng hiu nhiu lm
v nguyn tc hot ng chng trnh ca bn, th nhng ghi ch s gip h lm quen
nhanh hn.
Cui cng, ci cho php ti c th thm nhng ch thch vo nhng on m trong bi
hc khi hng dn cho bn. iu gip ti gii thch cho bn tt hn v tc dng ca
nhng dng code.
C nhiu cch thm vo mt li ch thch. Tt c ph thuc vo chiu di ca li ch thch
m bn mun vit:
Nu ngn: ch gm 1 dng, hoc vi t. Trong trng hp bn nh vo double slash
( // ) sau l ch thch ca bn.
V d:
C Code:
// Day la mot chu thich ngan.
hoc
printf ("Xin chao"); // instruction nay hien thi len man hinh "Xin chao"
Nu li ch thch ca bn di: bn c nhiu ci thut li, bn cn vit rt nhiu cu v
trn rt nhiu dng. Trong trng hp ny :
i. m u li ch thch: hy nh mt slash sau nh du sao (/*)
ii. kt thc: nh du sao ri sau l slash (*/)
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 41 - [email protected]
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
#include
/*
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 42 - [email protected]
Tt hn l bn hy ch thch nhiu ci trong mt ln, chng hn nh gii thch ngha ca
mt dy instruction no , n s c s dng vo vic g.
V ngi lp trnh ch cn ng qua nhng li ch thch, h s t hiu ly ton b.
Nm vng: Nhng li ch thch hng dn ngi lp trnh trong code source, n cho php
chng ta nhn ra n, v vy hy tp ch thch tng nhm cng lc hn l bn ch thch cho tng
dng.
V kt thc bi hc ny, ti xin trch dn mt lut ca IBM:
Nu c nhng ch thch m bn khng hiu chng trnh hot ng th no, hy xa b tt c.
Nh bn nhn thy, chng ta vn cha hon ton kt thc ht ton b bi hc.
V y cng l ln u tin bn thy th no l m lp trnh tht s, cc t ng, cc k hiu, c
th khin u c hi chong vng mt t.
Tht ra iu cng bnh thng thi, tt c ai cng u nh vy trong ln u tin.
Trc khi bn bc sang mt giai on mi, bn hy test li nhng g bn bit.
Ti c trnh vic dy bn nhiu th trong mt lc, n gin l bn s khng lnh ng c g c
nu bn hc mt cch qu nhanh v nhi nht.
V ti xin bo trc cho bn bit, trong cc phn tip theo s c rt nhiu iu mi l m bn
cha bit.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 43 - [email protected]
TRC NGHIM KIN THC.
Mt dng preprocessor directives c bt u bi
A. #
B. {
C. //
Tn ca function chnh trong chng trnh l ?
A. printf
B. master
C. main
Th vin l g?
A. Nhng file source c vit trc gm cc function lun sn sng ch
bn gi ra.
B. Mt file cho php bn vit mt on vn ln mn hnh
C. Mt ni ta c th mn nhng quyn sch v khoa hc vin tng
Mt instruction lun c kt thc bi k t no ?
A. /*
B. ;
C. }
Tn ca hm cho php hin th mt on vn ln mn hnh ?
A. printf
B. print
C. afficher
K t no cho php ta xung dng khi hin th tin nhn ln mn hnh console?
A. \t
B. \n
C. Ch n gin l nhn phm enter xung dng.
Ch thch ch dnh cho mt dng bt u bi :
A. /*
B. */
C. //
p n:
1 A
2 C
3 A
4 B
5 A
6 B
7 C
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 44 - [email protected]
Bi 4: Th gii ca cc bin s (variable)
y l mt chng quan trng, v bn cn phi tp trung nhiu (Ni cch khc, y khng phi
thi im bn phn tch ng bay ca mt con rui ang quanh qun bn cnh).
Tm tt li nhng g hc:
nhng bi trc trc, bn c hc cch to mt project mi trn IDE Code::Blocks.
Ti c bit gii thch vi bn rng vic to ra mt chng trnh trn ca s kh phc tp (v
ti cng khng ni vi bn v vic to ra mt game 3D chi trn mng ).
Chng ta bt u hc lp trnh vi vic hc cch lm vic trn console. V chng ta hc
nhng iu kh hay ho nh vic hin th mt tin nhn ln mn hnh.
Ti bit rng bn sp sa bo vi ti rng ci cha gip bn iu g c.
V ti thi im ny, bn vn cha bit cch lm th no gi ra mt bin s, th m tt c nhng
ngn ng lp trnh nh C u bt buc phi s dng.
No chng ta hy ni v n !
Vy th chnh xc bin s l g ?
Ti s gii thch tt c v n trong phn ny, bn s khng phi ch i lu u, nhn mt cch
tng qut chng ta s hc cch a nhng con s vo trong b nh ca my tnh.
Ti s bt u vi nhng li gii thch v b nh ca my tnh, nguyn tc hot ng, my tnh
c th nh bao nhiu th khc nhau?
Vn ny c th n gin i vi mt s ngi, nhng bi ging ca ti ch dnh cho nhng
ngi vn cha bit b nh my tnh l g.
Phn ny ta s hc :
Cng vic ca b nh:
Khai bo mt bin s
Hin th gi tr mt bin s
Lu li gi tr c chn
TRC NGHIM KIN THC.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 45 - [email protected]
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
Nhng khc bit v b nh:
cho bn d hiu, y l nhng loi b nh khc nhau c trong mt my tnh c sp xp t
nhanh n chm:
1. Registers: B nh cc nhanh c t trc tip trong b x l ca my tnh (processor).
2. Memory cache: Lm cu ni gia registers v RAM.
3. Main memory (RAM): L mt b nh m chng ta s dng thng xuyn nht.
4. cng (Hard Disk Drive): Ci ny cc bn bit n nhiu nht, ngi ta thng lu tr
d liu y.
Nhng registers ch c th cha c mt vi s, tri ngc hn vi cng c th cha mt s
lng ln cc tp tin.
Khi ti ni mt b nh chm l ang da theo thang o my tnh, 8 phn nghn giy
vo n cng tht s l qu lu!
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 46 - [email protected]
C cn phi nm tt c nhng iu ny?
T by gi, cc bn s hc v lp trnh, v cc bn thng ch lm vic trn RAM nn cc bn
cn bit i cht v n. Chng ta s tm hiu cch c v lu cc tp tin ln cng (nhng c l
l trong cc bi hc sau). Cn v Memory cache v registers th khng cn phi chm n v my
tnh ca bn s t lm vic .
Trong ngn ng lp trnh bc thp, nh assembler (vit tt ca "ASM"), mt ngn ng ti
tng s dng, chng ta phi lm vic trc tip vi registers, vic lm mt php ton nhn
n gin tht s l c mt qu trnh chin u gian nan! May mn l vic trn C (v trn
nhiu ngn ng lp trnh khc) thc hin n gin hn rt nhiu.
Cn phi ni thm mt iu quan trng cui cng: ch c cng gi li tt c nhng g m n
cha. Tt c cc b nh khc (registers, Memory cache, RAM) u l nhng b nh nht
thi: khi m bn tt my tnh i th tt c d liu trong s mt i.
May mn l d liu trong cng ca bn vn khng i nhc nh my tnh ca bn tnh
trng no khi bt ln.
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:
Cc bn bit th no l bn phm, chut, mn hnh v thng my.
By gi chng ta ch quan tm n thng my ca bn, trung tm ca my tnh, n cha tt c
cc loi b nh:
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 47 - [email protected]
Ci m ta ang hng th tm hiu nm bn trong thng my, khi m ra:
Bn c cm thy thch n khng?
Cc bn hy yn tm, ti s khng yu cu cc bn phi bit chng hot ng nh th no, ti
ch mun bn bit ch tm thy RAM trong thng my, n nm trong ch nht mu .
Ti s khng ch ra nhng b nh khc (registers v cache) nm u v n kh nh c th
thy c bng mt ca chng ta.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 48 - [email protected]
V y l hnh dng tht s ca RAM:
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. Nu bn
nm c biu ny th iu v cng tt i vi bn.
http://www.siteduzero.com/http://uploads.siteduzero.com/files/7001_8000/7208.jpg -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 49 - [email protected]
Biu hot ng ca RAM
Nh bn thy, n c chia lm 2 ct:
o Mt ct a ch (address): a ch l mt s cho php my tnh c th xc inh v
tr trong RAM. N bt u t a ch 0 v kt thc a ch 3 448 765 900 126...
Hic, ti khng h bit r s lng a ch cha trong RAM, ti ch bit rng n c
rt nhiu. Bi v n ph thuc vo dung lng b nh m bn c. Ch c th ni
l, bn c RAM, bn c th vo nhiu th.
o V mi a ch cha mt gi tr (mt s, value): My tnh ca bn a vo RAM
nhng s ny c th nh ngay lp tc. V ngi ta ch c th a vo mt s
cho mt a ch trong RAM!
V RAM khng th cha g khc ngoi nhng con s.
Vy lm cch no chng ta c th lu li nhng ch ci ?
l mt cu hi th v, trn thc t, i vi my tnh th nhng ch ci cng l nhng con s!
Mt cu vn chnh l mt dy nhng con s !
C mt bng vit v s tng ng gi ch ci v s (bng m ASCII), v d s 67 tng ng vi
ch Y, ti khng ni nhiu v vn ny, nu c c hi chng ta s tm hiu v n sau.
Tr li vi biu ca chng ta. Hy xem xt mt vn n gin: nu my tnh mun lu li
gi tr 5 (c th l s mng sng ca nhn vt m bn chi trong game no ), n s t s 5 vo
mt v tr no trong b nh.(V d ti a ch 3 062 199 902).
Sau , khi mun tm li gi tr ny, my tnh s n b nh n 3 062 199 902, ti n tm
thy 5 !
V l nguyn tc hot ng ca b nh, c th bn vn cn mt cht mp m (u l li ch
ca vic t mt s vo mt a ch ca b nh?), bn s hiu r hn vn ny nhng phn
sau ca bi hng dn.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 50 - [email protected]
Cch khai bo mt bin s
Bn hy tin ti rng mt t gii thiu v b nh s rt tin li v tt hn cho bn, gip bn c th
tng tng d dng hn.
Nhng by gi chng ta phi bit lm cch no s dng n.
Vy th no l mt bin s ?
Ch n gin l mt thng tin nh c lu tr trong RAM.
Chng ta gi n l bin s v n c th thay i trong qu trnh thc hin chng trnh. V
d, s 5 va ri ca chng ta c kh nng b gim i (khi m nhn vt bn cht th mng sng s
gim xung). Khi m gi tr ny tin n 0 th tr chi s kt thc, game over.
Cc bn s thy chng trnh ca chng ta s cha y nhng bin s.
Trn ngn ng C, mt bin s c 2 thnh phn:
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 ).
V mt iu ht sc quan trng m bn cn phi nm l trong ngn ng C (C++ cng nh
th) c s khc nhau gia ch thng v ch hoa: chieu_rong, CHIEU_RONG v
CHieu_RoNg l tn ca 3 bin s khc nhau trong ngn ng C. i vi chng ta th chng c v
hon ton ging nhau! V y l cc bin s c t tn chnh xc: mangsongNhanvat,
mangsong_nhanvat, ho, ten, so_dien_thoai, sodidong.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 51 - [email protected]
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:
Tn ca bin s, ti lun bt u bng ch ci thng.
Nu tn ca bin s gm nhiu ch, th mi ch ti s vit hoa k t u tin
Ti thch bn thc hin ging nh ti, v iu gip chng ta c th lm vic d dng vi
nhau.
Bn hy t cho bin s nhng tn gi r rng. Chng ta c th rt ngn tn ca
mangsong_NhanVat bng ms_NV. iu c th gip tn gi ngn hn, nhng khng h
r rng khi bn vit chng trnh. Bn ng ngi vic t tn di cho bin s v iu s
gip chng trnh ca bn d c, d hiu hn.
Nhng dng ca bin s:
Cc bn c th xem my tnh khng khc g mt c my ln dnh cho cng vic tnh ton, n
khng bit g khc hn ngoi nhng con s.
V ti c mt tin c bit l c nhiu dng bin s !
V d, c nhng s t nhin dng:
45
398
7650
Cng c nhng s thc:
75,909
1,7741
9810,7
Hn na cng c nhng s nguyn m:
-87
-916
V nhng s thc m:
-76,9
-100,11
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 52 - [email protected]
V chic my tnh ng thng ca bn cn s h tr! Khi bn yu cu n lu li mt s, bn
phi ni con s thuc dng no. My tnh ca bn khng th no c kh nng t nhn bit
chng, iu gip n rt nhiu trong vic t t chc, v hn ch vic s dng b nh mt cch
v ch.
Khi bn to mt bin s, phi ghi n thuc dng no.
y l nhng dng bin s c bn thng dng trong ngn ng C (s cn mt s loi bin s
khc trong C++):
Type Dung lng (octets) Gi tr chp nhn
signed char 1 -128 n 127
int 2 (on processor 16 bits)
4 (on processor 32 bits)
-32 768 n 32 767
-2 147 483 648 n 2 147 483 647
long 4 -2 147 483 648 n 2 147 483 647
float 4 -3.4*10-38 n 3.4*1038
double 8 -1.7*10-308 n 1.7*10308
3 dng u cho php chng ta khai bo nhng s nguyn (1, 2 ,3 ,4...)
2 dng cui khai bo nhng s thc (13.8, 16.911...)
float v double cho php khai bo nhng s thc rt ln.
Nu nhng bn khng hiu r lm v ly tha ca 10, ti s ni r hn cho bn rng
nhng s dng double c th lu li s c vit bi s 1 v 308 s 0 tip theo !
10000000000000000000000000000000000000000000000000 00000000000000000000
(xin li nhng ti khng rnh ghi ht 308 s 0 cho bn nhn thy u)
.
Bn cn lu rng int v long c v nh ging nhau nhng thc s th int s nh hn
long, nhng ngy nay b nh pht trin rt nhiu v chng ta lun ch cha
nhng s v cng ln, chng ta khng cn ch lm n s khc bit ca chng. Thc t
ti ch thng dng nhng dng char, long v double.
V bn s thy phn ln chng ta ch s dng nhng s t nhin v n d dng s dng.
Hy ch vi nhng s thc! My tnh ca bn khng hiu du phy l g u,
chng ta ch s dng du chm. Bn khng th vit 54,9, thay vo l 54.9!
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 53 - [email protected]
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 :
Nh bn thy, nhng bin dng unsigned khng th cha nhng s m, nhng n c li th l
m rng gii hn cha nhng s dng ln gp i (v d: signed char c gii hn 128, trong khi
unsigned char c gii hn 255).
Bn cn lu rng dng bin s char nn c khai bo hoc c signed, hoc
unsigned, khng nn ng mt mnh. L do n gin l dng bin s ny s c du hay
khng du ty vo cc loi my tnh khc nhau. Trc khi khai bo mt bin s, hy suy
ngh dng bin s no bn s cn dng n.
Ti sao phi to ra 3 dng bin s cho nhng s t nhin nh vy? Chng ta ch cn
1 dng l ri m, khng phi vy sao?
Ngi ta to nhiu dng bin s khc nhau nh th tit kim b nh. Khi m chng ta bo
my tnh rng chng ta cn mt bin s dng char, th my tnh s s dng b nh t hn khi
chng ta bo rng cn b nh dng long.
Vic ny s c ngha trong giai on b nh my tnh cn nhiu gii hn. Ngy nay, RAM my
tnh tin tin hn rt nhiu nn vic ny khng cn l vn tht s na. Chng ta khng cn
ngh nhiu n vic chn dng bin s no s dng. Nu bin s ca bn c nhu cu nhn mt
gi tr tng i ln th hy ngh n vic s dng long.
Ti ni nghim tc rng bn khng cn phi suy ngh nhiu lm v cch chn dng bin s trong
thi im hin ti.
Chng ta ch cn phn bit s khc bit gia dng s nguyn v s thc:
i vi s t nhin, ngi ta thng dng int.
i vi s thc, ngi ta thng dng double.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 54 - [email protected]
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
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 55 - [email protected]
Bn phi thc hin vic khai bo bin s v tr bt u ca cc function. V trong thi im ny
chng ta ch c c duy nht mt function (function main), bn hy khai bo bin s nh sau:
C Code:
#include
#include
int main(int argc, char *argv[]) // Tuong tu voi int main( )
{
int mangsongNhanVat;
return 0;
}
Nu bn thc hin vic dch v chy chng trnh vo lc ny th chc hn bn s ngc nhin
rng chng c g xy ra c
Gii thch
Trc khi bn cho rng ti a vi bn th hy nghe ti gii thch vi li.
Thc t n mt vi th din ra nhng bn khng th no thy c. Khi m chng trnh
chy n on m khai bo bin s ca bn, n ch yu cu my tnh mt cch lch s rng n s
s dng mt t khong trng trong RAM ca my tnh.
Nu khng c vn g, my tnh s tr li dng i, t nhin nh nh my vy .
Vn ch xy ra khi b nh ca bn khng cn khong trng na. May mn l iu
ny v cng kh xy ra nu s dng nhng bin s dng int lm y b nh ca my
tnh.
V bin s ca bn c to ra mt cch hon ho.
C mt iu bn cn bit: nu bn c nhiu bin s cn khai bo v cc bin s ny
cng mt dng, bn khng cn thit phi khai bo mi bin s cho mi dng. Bn ch
cn phn bit cc bin s bi nhng du phy trn cng mt dng :
C Code:
int mangsongNhanVat, capdoTroChoi, capdoNhanVat;
on code ny khai bo 3 bin s dng int cho cc bin s mangsongNhanVat,
capdoTroChoi, capdoNhanVat.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 56 - [email protected]
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
#include
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
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 57 - [email protected]
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.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 58 - [email protected]
Nhng constants (hng s)
i khi chng ta cn s dng nhng gi tr khng i trong sut qu trnh s dng chng trnh.
C ngha l sau khi khai bo, bin s s nhn mt gi tr m khng cch no c th thay i
c.
Nhng bin s ny chng ta gi l cc constants (hng s), l do l gi tr m n mang s lun
c gi nguyn nh th.
khai bo mt constant, ta lm nh sau: chng ta thm t const trc dng bin s m bn
khai bo.
Mt khc, chng ta bt buc phi gn cho n mt gi tr ngay trong thi im bn khai bo n.
Ging nh cch m ta thy va ri. Sau , bn khng th no thay i gi tr na, v mi
th c qui nh xong ht ri.
V d v cch khai bo mt constants:
C Code:
const MANGSONG_NHANVAT_KHOIDAU = 5;
Vic ti ch s dng nhng ch ci in hoa t tn cho constants l khng bt buc.
Lm nh th gip ti c th d dng phn bit nhng bin s vi nhng constants. Ghi
thm rng ti vn s dng du underscore _ vo v tr ca khong trng .
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?)
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 59 - [email protected]
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
Cn lu rng format dng hin th mt float v mt double l ging nhau.
Ti s ni cho bn bit nhng k t c bit khc v sau.
Chng ta sp xong ri, chng ta ch ra v tr cn hin th mt s, nhng chng ta vn cha ni
l hin th s no. V th chng ta cn ch cho function printf bit phi hin th bin s no.
Bng cch nh tn ca bin s sau khi thm vo mt du phy sau khi kt thc du ging
nh sau:
C Code:
printf ("Ban con %d hoisinh", mangsongNhanVat);
%d s thay th bi bin s m ta ch ra sau du phy, trng hp ny l mangsongNhanVat.
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 60 - [email protected]
Chng ta th chy chng trnh nh ?
-
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 61 - [email protected]
Hin th nhiu bin s trong mt function printf
Chng ta lun c th hin th gi tr ca nhiu bin s ch trong mt function printf duy nht.
Ch ny s hin th %ld v ch kia hin th %lf, ty theo bn mun, sau ch ra theo th t ln
lt nhng bin s tng ng, cch nhau bi nhng du phy.
V d :
printf ("Ban co %d lan hoi sinh va dang o man choi thu %d", mangsongNhanVat, capdo);
Hy ch ra nhng gi tr ca bn theo ng th t. %d u tin s thay th bng bin s u
tin (mangsongNhanVat), v %d th hai s thay th bi bin s th hai (capdo). Nu nh bn
nhm ln v tr, nhng g bn mun hin th s khng cn ng na.
V chng ta hy th test li mt t, ghi thm rng trong on code bn di ti khng ghi nhng
dng trn cng (nhng preprocessor directives bt u bi nhng #), v ti s gi nh rng
bn s lun thm n vo u chng trnh.
C Code:
int main(int argc, char *argv[])
{
int mangsongNhanVat = 5, capdo = 1;
printf ("Ban co %d lan hoi sinh va ban dang o man choi thu %d\n", mangsongNhanVat, capdo);
return 0;
}
V n s hin th:
Console:
Ban co 5 lan hoi sinh va ban dang o man choi thu 1
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 62 - [email protected]
Cch gn gi tr cho bin s
Nhng bin s bt u lm bi hc ny th v hn ri nh. Chng ta s hc cch yu cu ngi
dng nhp mt s vo console. S ny s c mt bin s lu li. Mt khi bn thc hin c
iu ny, bn c th lm thm rt nhiu vic sau .
yu cu ngi dng a vo mt ci g vo trong console, chng ta s s dng mt
function khc, v function ny c sn trong th vin ca bn: function l scanf
Cch s dng scanf kh ging vi printf. Bn phi t %d hay %lf trong cp du "..." gii
thch vi my tnh rng bn mun ngi dng a vo mt s nguyn hay mt s thc. Sau
bn phi ch ra tn ca bin s s nhn ly gi tr .
Bn s thy iu trong v d ny :
C Code:
scanf ("%d", &tuoi);
Chng ta phi t %d (hoc %lf) trong cp du "..."
Mt khc chng ta thm vo & trc tn ca bin s.
Vy ti sao phi thm & trc tn ca bin s ?
Ti s khng gii thch cho bn tt c y. Nhng hy tin ti, ti s gii thch cho bn vn
ny trong mt bi khc sau ny, ti ha y !
Tr li, khi m chng trnh ca bn chy n scanf, n s dng li v i ngi s dng a
vo mt s. S ny s c a vo bin s tuoi .
Hy ch , c mt vi s khc nhau gia printf v scanf ! gn mt gi tr dng
float, ta dng format "%f", nhng gn mt gi tr dng double ta dng format "%lf"
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 63 - [email protected]
y l mt chng trnh nh yu cu bit tui ca ngi s dng v n s hin th ra sau :
Code C:
int main(int argc, char *argv[])
{
int tuoi = 0; // Khoi tao bien so gia tri la 0
printf ("Ban bao nhieu tuoi?\n");
scanf ("%d", &tuoi); // May tinh yeu cau nhap tuoi voi scanf
printf ("Oh! tuoi cua ban la %d !\n\n", tuoi);
return 0;
}
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 :
Nu bn nhp vo mt s thc, v d nh 2.9, n s t ng lm trn, ngha l n ch
gi li phn nguyn. Trong trng hp ny s 2 s c bin s lu li.
Nu bn nh vo bt k mt ch ci no (ydf ), bin s s khng thay i gi tr.
iu ny cng tt v trc chng ta gn cho bin s gi tr 0. Sau khi nhp nhng ch
ci vo th ngay lp tc, chng trnh hin th 0 tuoi , chng t scanf khng c thc
hin. Nu sau khi khai bo bin s chng ta khng gn cho n gi tr no, chng trnh
bn c th hin th bt c ci g !
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 64 - [email protected]
Chng ta sp kt thc bi hc v cc bin s
Ti xin nhc li l bin s s c s dng thng xuyn khi lp trnh. Nu nh bn hiu rng
bin s l mt thng tin c a vo b nh tm thi th bn hiu bi ging ny. Khng c
iu g khc ngoi vic bn cn bit nhng dng bin s (char, int, long, double).
Hy t luyn tp cch hin th nhng bin s ln mn hnh v cch nhp vo gi tr mt bin s
bng bn phm vi scanf.
Trong chng tip theo, chng ta s hc cch lm sao thc hin cc tnh ton trn ngn ng C.
Yu cu bn phi s dng tt printf v scanf.
TRC NGHIM KIN THC.
Khi ta khai bo mt bin s, b nh no s c s dng ?
A. Registers
B. Memory cache
C. RAM (main memory)
D. Hard Disk Drive
Khi tt my tnh, b nh no s khng b mt d liu ?
A. Registers
B. Memory cache
C. RAM (main memory)
D. Hard Disk Drive
Bin s no khng c t tn chnh xc ?
A. vitriMenu
B. chieurongCaS
C. tuoi_Capital
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 65 - [email protected]
Dng bin s no c th lu tr s 76.8 ?
A. char
B. long
C. double
D. int
Dng bin s no c th lu tr s -1000 ?
A. int
B. unsigned int
C. unsigned double
Nu nh bin s "taikhoanNganHang" thuc dng int c gi tr l 6 500 000 , mn hnh s
hin th on m ny th no ?
Code:
printf("Ban co %d dong trong tai khoan", taikhoanNganHang);
A. Ban co %d dong trong tai khoan
B. Ban co 6 500 000 dong trong tai khoan
C. Ban co d dong trong tai khoan, taikhoanNganHang
p n:
1- C
2- D
3- B
4- C
5- A
6- B
http://www.siteduzero.com/ -
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21
Dch gi: Mr. Hung Editor: M0N1M [email protected] - 66 - [email protected]
Bi 5: Cc cng c tnh ton
Ti ni vn ny phn trc: my tnh ca cc bn cng ging nh mt c my tnh ton
khng l.
Khi m bn mun nghe nhc, xem film hay chi game in t, my tnh ca bn khng lm iu
g khc hn vic tnh ton
phn ny ti s hng dn cho cc bn thc hin phn ln nhng php tnh m my tnh c th
thc hin. Cc bn bit th no l bin s, v tng l chng ta s thc hin nhng tnh ton
trn cc bin s : hy cho mt bin s gi tr no , sau hy nhn n ln, v gi tr nhn
c s a vo mt bin s khc .v.v
K c khi bn khng phi l mt fan ca ton hc, cc bn cng nn bit ni dung ca phn
hng dn ny.
S tht l nu bn khng bit cch thc hin php cng, bn khng th no c th thc hin vic
lp trnh.
Ni dung bi hc ny s gm:
Nhng php ton c bn
Nhng cch vit rt gn
Th vin ton hc
TRC NGHIM KIN THC.
http://www.siteduzero.com/