126
Tài liệu hướng dn lp trình C www.siteduzero.com Apprenez à programmer en C Tác gi: M@teo21 Dch gi: Mr. Hung Editor: M0N1M [email protected] - 1 - [email protected] LỜI MỞ ĐẦU Chào mừng các bạn đến với bài học lập trình C/C++ . Tôi sẽ người hướng dẫn (hay là thầy giáo nếu bạn thích ) trong suốt các bài học. Vậy tôi là ai? Tên tôi, hay là nickname của tôi là M@teo21. Tôi đã từng viết rất nhiều bài hướng dẫn khác trên http://www.siteduzero.com, tôi cũng chính là người đã tạo nên trang web này. đây không phải lần đầu tiên tôi viết những bài hướng dẫn bản . Nhưng khoan hãy nói về tôi đã, hãy nói về chính bản thân các bạn. Bạn không hề biết tí gì về lập trình. Cũng không chắc đã biết “lập trìnhlà gì nhưng... chắc chắn bạn đang muốn học lập trình đúng không? bạn phải xác định chính xác mục tiêu của mình là: “học lập trình”. Nhưng lập trình C / C++... Đó nghĩa là gì? Và có thật sự tốt nếu ta bắt đầu học từ nó? bạn đã biết lập trình trước đó chưa? phải chúng ta có thể làm tất cả mọi thứ trên máy tính với nó? Nhiệm vụ quan trọng của chương này là trả lời tất cả những câu hỏi đơn giản như thế.

[Tai Lieu Lap Trinh C] - Chuong 1

Embed Size (px)

DESCRIPTION

c/c++

Citation preview

  • 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/