You are on page 1of 12

Ti liu hng dn lp trnh C www.siteduzero.

com
Apprenez programmer en C 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 ) 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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -1- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

CHNG I NHNG IU C BN V
NGN NG LP TRNH C
1) "lp trnh" l g? 5) Cng c tnh ton
Lp trnh l g ? Nhng tnh ton c bn.
Lp trnh bng ngn ng lp trnh Phng php vit rt gn.
no ? Th vin ton hc.
Lp trnh c kh khng ? Trc Nghim Kin Thc.
Trc Nghim Kin Thc.

6) Conditions (iu kin)


2) Cng c cn c hc lp trnh Condition "if... else".
Nhng cng c cn thit cho lp Boolean, trung tm ca nhng
trnh. condition.
Cc bn c th chn... Dev-C++ Condition "switch".
Hay l... Visual C++ Ternary : nhng conditions rt gn.
V ci ny na... Code::Blocks.
Hoc Mac... Xcode. 7) Loops (vng lp)
Th no l vng lp.
Vng lp while.
3) Chng trnh u tin ca bn Vng lp do... while.
Console hay l ca s ? Vng lp for.
Nhng dng code ti thiu cn phi
c. 8) Test Program: Hn hay km, tr chi u
Vit mt tin nhn ra mn hnh. tin ca bn
Nhng ch thch, v cng tin dng ! Chun b v mt vi gi .
p n.
tng ci tin.
4) Th gii ca nhng bin s
Cng vic ca b nh. 9) Function
Cch khai bo mt bin. Cch to v gi mt function.
Hin th gi tr ca bin s. Xem thm vi v d hiu r hn.
Cch gn gi tr vo bin s.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -2- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C 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.

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)

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -3- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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++

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -4- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -5- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -6- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C 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).

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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -7- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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++).

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -8- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr -9- thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C 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:

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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr - 10 - thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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.

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr - 11 - thaibaminh2512@gmai.com
Ti liu hng dn lp trnh C www.siteduzero.com
Apprenez programmer en C Tc gi: M@teo21

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

Dch gi: Mr. Hung Editor: M0N1M


daihung.pham@yahoo.fr - 12 - thaibaminh2512@gmai.com

You might also like