You are on page 1of 11

Lp trnh cn bn Smith Nguyen Studio.

TNG QUAN
I. MC CH YU CU
Mn Lp Trnh Cn Bn A cung cp cho sinh vin nhng kin thc c bn v lp trnh thng qua ngn ng lp trnh C. Mn hc ny l nn tng tip thu hu ht cc mn hc khc trong chng trnh o to. Mt khc, nm vng ngn ng C l c s pht trin cc ng dng. Hc xong mn ny, sinh vin phi nm c cc vn sau: - Khi nim v ngn ng lp trnh. - Khi nim v kiu d liu - Kiu d liu c cu trc (cu trc d liu). - Khi nim v gii thut - Ngn ng biu din gii thut. - Ngn ng s (lu ), s dng lu biu din cc gii thut. - Tng quan v Ngn ng lp trnh C. - Cc kiu d liu trong C. - Cc lnh c cu trc. - Cch thit k v s dng cc hm trong C. - Mt s cu trc d liu trong C.

II. I TNG MN HC
Mn hc lp trnh cn bn c dng ging dy cho cc sinh vin sau: - Sinh vin nm th 2 chuyn ngnh Tin hc, Ton Tin, L Tin. - Sinh vin nm th 2 chuyn ngnh in t (Vin thng, T ng ha)

III. NI DUNG CT LI
Trong khun kh 45 tit, gio trnh c cu trc thnh 2 phn: Phn 1 gii thiu v lp trnh cu trc, cc khi nim v lp trnh, gii thut Phn 2 trnh by c h thng v ngn ng lp trnh C, cc cu lnh, cc kiu d liu PHN 1: Gii thiu cu trc d liu v gii thut PHN 2: Gii thiu v mt ngn ng lp trnh - Ngn ng lp trnh C Chng 1: Gii thiu v ngn ng C & mi trng lp trnh Turbo C Chng 2: Cc thnh phn ca ngn ng C Chng 3: Cc kiu d liu s cp chun v cc lnh n Chng 4: Cc lnh c cu trc Chng 5: Chng trnh con Chng 6: Kiu mng Chng 7: Kiu con tr Chng 8: Kiu chui k t Chng 9: Kiu cu trc
Trang 1

Lp trnh cn bn

Chng 10: Kiu tp tin

Smith Nguyen Studio.

IV. KIN THC LIN QUAN


hc tt mn Lp Trnh Cn Bn A, sinh vin cn phi c cc kin thc nn tng sau: - Kin thc ton hc. - Kin thc v k nng thao tc trn my tnh.
V. DANH MC TI LIU THAM KHO

[1] Nguyn Vn Linh, Gio trnh Tin Hc i Cng A, Khoa Cng Ngh Thng Tin, i hc Cn Th, 1991. [2] Nguyn nh T, Hong c Hi , Gio trnh l thuyt v bi tp ngn ng C; Nh xut bn Gio dc, 1999. [3] Nguyn Cn, C Tham kho ton din, Nh xut bn ng Nai, 1996. [4] V Vn Vin, Gip t hc Lp Trnh vi ngn ng C, Nh xut bn ng Nai, 2002. [5] Brain W. Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall Publisher, 1988.
VI. T KHA

Bi ton, chng trnh, gii thut, ngn ng gi, lu , biu thc, gn, r nhnh, lp, hm, mng, con tr, cu trc, tp tin.

Trang 2

Lp trnh cn bn Smith Nguyen Studio.

Phn 1: GII THIU V CU TRC D LIU V GII THUT


Hc xong chng ny, sinh vin s nm bt c cc vn sau: - Khi nim v ngn ng lp trnh. - Khi nim v kiu d liu - Kiu d liu c cu trc (cu trc d liu). - Khi nim v gii thut - Ngn ng biu din gii thut. - Ngn ng s (lu ), s dng lu biu din cc gii thut. Trng tm ca phn ny l gii thut & cch biu din gii thut. Chnh nh iu ny ta mi c th gii quyt cc yu cu bng chng trnh my tnh.

I. T BI TON N CHNG TRNH


Gi s chng ta cn vit mt chng trnh gii phng trnh bc 2 c dng ax + bx + c = 0 hay vit chng trnh ly cn bc n ca mt s thc m ( n m ). Cng vic u tin l chng ta phi hiu v bit cch gii bi ton bng li gii thng thng ca ngi lm ton. gii c bi ton trn bng my tnh (lp trnh cho my tnh gii) th chng ta cn phi thc hin qua cc bc nh: o M t cc bc gii bi ton. o V s x l da trn cc bc. o Da trn s x l vit chng trnh x l bng ngn ng gi (ngn ng bnh thng ca chng ta). o Chn ngn ng lp trnh v chuyn chng trnh t ngn ng gi sang ngn ng lp trnh to thnh mt chng trnh hon chnh. o Thc hin chng trnh: nhp vo cc tham s, nhn kt qu. Trong nhiu trng hp, t bi ton thc t chng ta phi xy dng m hnh ton ri mi xc nh c cc bc gii. Vn ny s c trnh by chi tit trong mn Cu Trc D Liu.
2

II. GII THUT


II.1. Khi nim gii thut
Gii thut l mt h thng cht ch v r rng cc quy tc nhm xc nh mt dy cc thao tc trn nhng d liu vo sao cho sau mt s hu hn bc thc hin cc thao tc ta thu c kt qu ca bi ton.

Trang 3

Lp trnh cn bn

V d 1: Gi s c hai bnh A v B ng hai loi cht lng khc nhau, chng hn bnh A ng ru, bnh B ng nc mm. Gii thut hon i (swap) cht lng ng trong hai bnh l: Yu cu phi c thm mt bnh th ba gi l bnh C. Bc 1: ru t bnh A sang bnh C. Bc 2: nc mm t bnh B sang bnh A. Bc 3: ru t bnh C sang bnh B. V d 2: Mt trong nhng gii thut tm c chung ln nht ca hai s a v b l: Bc 1: Nhp vo hai s a v b. Bc 2: So snh 2 s a,b chn s nh nht gn cho UCLN. Bc 3: Nu mt trong hai s a hoc b khng chia ht cho UCLN th thc hin bc 4, ngc li (c a v b u chia ht cho UCLN) th thc hin bc 5. Bc 4: Gim UCLN mt n v v quay li bc 3 Bc 5: In UCLN - Kt thc.

Smith Nguyen Studio.

II.2 Cc c trng ca gii thut


o Tnh kt thc: Gii thut phi dng sau mt s hu hn bc. o Tnh xc nh: Cc thao tc my tnh phi thc hin c v cc my tnh khc nhau thc hin cng mt bc ca cng mt gii thut phi cho cng mt kt qu. o Tnh ph dng: Gii thut phi "vt' ht cc trng hp v p dng cho mt lot bi ton cng loi. o Tnh hiu qu: Mt gii thut c nh gi l tt nu n t hai tiu chun sau: - Thc hin nhanh, tn t thi gian. - Tiu ph t ti nguyn ca my, chng hn tn t b nh. Gii thut tm UCLN nu trn t tnh kt thc bi v qua mi ln thc hin bc 4 th UCLN s gim i mt n v cho nn trong trng hp xu nht th UCLN=1, gii thut phi dng. Cc thao tc trnh by trong cc bc, my tnh u c th thc hin c nn n c tnh xc nh. Gii thut ny cng t tnh ph dng v n c dng tm UCLN cho hai s nguyen dng a v b bt k. Tuy nhin tnh hiu qu ca gii thut c th cha cao; c th l thi gian chy my c th cn tn nhiu hn mt s gii thut khc m chng ta s c dp tr li trong phn lp trnh C.

II.3 Ngn ng biu din gii thut


biu din gii thut, cn phi c mt tp hp cc k hiu dng biu din, mi k hiu biu din cho mt hnh ng no . Tp hp cc k hiu li to thnh ngn ng biu din gii thut. II.3.1 Ngn ng t nhin Ngn ng t nhin l ngn ng ca chng ta ang s dng, chng ta c th s dng ngn ng t nhin m t gii thut ging nh cc v d trn. V d: Ta c gii thut gii phng trnh bc nht dng ax + b = 0 nh sau: Bc 1: Nhn gi tr ca cc tham s a, b Bc 2: Xt gi tr ca a xem c bng 0 hay khng? Nu a=0 th lm bc 3, nu a khc khng th lm bc 4.
Trang 4

Lp cn bn Smith lun phng trnh vtrnhnghim, Nguyen Studio. Bc 3: (a bng 0) Nu b bng 0 th ta kt s

nu b khc 0 th ta kt lun phng trnh v nghim. Bc 4: ( a khc 0) Ta kt lun phng trnh c nghim x=-b/a II.3.2 Ngn ng s (Lu ) Ngn ng s (lu ) l mt ngn ng c bit dng m t gii thut bng cc s hnh khi. Mi khi qui nh mt hnh ng. Khi Tc dng ( ngha ca Khi Tc dng ( ngha hnh ng) ca hnh ng) Bt u/ Kt thc Nhp / Xut Thi hnh La chn ng i Chng trnh con Khi ni Li ch thch

Chng hn ta dng lu biu din gii thut tm UCLN nu trn nh sau:


A

Begin

Nhp a,b

a M UCLN V b M UCLN Sai Sai


UCLN=b

a<b

ng

ng
UCLN=a

UCLN=UCLN-1

In UCLN
End

II.3.3 Mt s gii thut c bn V d 1: Cn vit chng trnh cho my tnh sao cho khi thc hin chng trnh , my tnh yu cu ngi s dng chng trnh nhp vo cc s hng ca tng (n); nhp vo dy cc s hng ai ca tng. Sau , my tnh s thc hin vic tnh tng cc s ai ny v in kt qu ca tng tnh c. Yu cu: Tnh tng n s S=a1+ a2+a3+......+an .

Trang 5

Lp trnh cn bn

tnh tng trn, chng ta s dng phng php cng tch ly ngha l khi u cho S=0. Sau mi ln nhn c mt s hng ai t bn phm, ta cng tch ly ai vo S (ly gi tr c lu tr trong S, cng thm ai v lu tr li vo S). Tip tc qu trnh ny n khi ta tch ly c an vo S th ta c S l tng cc ai. Chi tit gii thut c m t bng ngn ng t nhin nh sau: - Bc 1: Nhp s cc s hng n. - Bc 2: Cho S=0 (lu tr s 0 trong S) - Bc 3: Cho i=1 (lu tr s 1 trong i) - Bc 4: Kim tra nu i<=n th thc hin bc 5, ngc li thc hin bc 8. - Bc 5: Nhp ai - Bc 6: Cho S=S+ai (lu tr gi tr S + ai trong S) - Bc 7: Tng i ln 1 n v v quay li bc 4. - Bc 8: In S v kt thc chng trnh. Ch tit gii thut bng lu :

Smith Nguyen Studio.

Begin

Nhp s cc s hng n
S=0 i=1

i<=n ng Nhp s ai
S=S+ai i=i+1

Sai In S

End

V d 2: Vit chng trnh cho php nhp vo 2 gi tr a, b mang ngha l cc h s a, b ca phng trnh bc nht. Da vo cc gi tr a, b cho bit nghim ca phng trnh bc nht ax + b = 0. M t gii thut bng ngn ng t nhin: - Bc 1: Nhp 2 s a v b - Bc 2: Nu a = 0 th thc hin bc 3, ngc li thc hin bc 4

Trang 6

Lp trnh cn bn Smith NguyenktStudio. - Bc 3: Nu b=0 th thng bo phng trnh v s nghim v thc chng

trnh, ngc li thng bo phng trnh v nghim v kt thc chng trnh. - Bc 4: Thng bo nghim ca phng trnh l b/a v kt thc.

Begin

Nhp hai s a,b a=0 Sai Nghim x=-b/a ng b=0 Sai PT v nghim PT v nh ng

End

V d 3: Vit chng trnh cho php nhp vo 1 s n, sau ln lt nhp vo n gi tr a1, a2,,an. Hy tm v in ra gi tr ln nht trong n s a1, a2, , an. gii quyt bi ton trn, chng ta p dng phng php th v sa. Ban u gi s a1 l s ln nht (c lu trong gi tr max); sau ln lt xt cc ai cn li, nu ai no ln hn gi tr max thi lc max s nhn gi tr l ai. Sau khi xt ht cc ai th max chnh l gi tr ln nht cn tm. M t gii thut bng ngn ng t nhin: - Bc 1: Nhp s n - Bc 2: Nhp s th nht a1 - Bc 3: Gn max=a1 - Bc 4: Gn i=2 - Bc 5: Nu i<=n th thc hin bc 6, ngc li thc hin bc 9 - Bc 6: Nhp ai - Bc 7: Nu max < ai th gn max=ai. - Bc 8: Tng i ln mt n v v quay li bc 5 - Bc 9: In max - kt thc Phn m t gii thut bng lu , sinh vin t lm xem nh bi tp. V d 4: Vit chng trnh cho php nhp vo 1 s n, sau ln lt nhp vo n gi tr a1, a2,,an. Sp theo th t tng dn mt dy n s a1, a2,...an ni trn. C rt
Trang 7

Lp trnh cn bn

nhiu gii thut gii quyt bi ton ny. Phn trnh by di y l mt phng php.

Smith Nguyen Studio.

Gi s ta nhp vo my dy n s a1, a2,..., an. Vic sp xp dy s ny tri qua (n-1) ln: - Ln 1: So snh phn t u tin vi tt c cc phn t ng sau phn t u tin. Nu c phn t no nh hn phn t u tin th i ch phn t u tin vi phn t nh hn . Sau ln 1, ta c phn t u tin l phn t nh nht. - Ln 2: So snh phn t th 2 vi tt c cc phn t ng sau phn t th 2. Nu c phn t no nh hn phn t th 2 th i ch phn t th 2 vi phn t nh hn . Sau ln 2, ta c phn t u tin v phn t th 2 l ng v tr ca n khi sp xp. - - Ln (n-1): So snh phn t th (n-1) vi phn t ng sau phn t (n-1) l phn t th n. Nu phn t th n nh hn phn t th (n-1) th i ch 2 phn t ny. Sau ln th (n-1), ta c danh sch gm n phn t c sp th t. M t gii thut bng ngn ng t nhin: - Bc 1: Gn i=1 - Bc 2: Gn j=i+1 - Bc 3: Nu i <=n-1 th thc hin bc 4, ngc li thc hin bc 8 - Bc 4: Nu j <=n th thc hin bc 5, ngc li th thc hin bc 7. - Bc 5: Nu ai > aj th hon i ai v aj cho nhau (nu khng th thi). - Bc 6: Tng j ln mt n v v quay li bc 4 - Bc 7: Tng i ln mt n v v quay li bc 3 - Bc 6: In dy s a1, a2,..., an - Kt thc. M t gii thut sp xp bng lu
i=1 j<=n-1 ng j=i+1 Sai

j<=n ng aj<ai ng tam=ai ai=aj aj=tam j=j+1 i=i+1 Trang 8 End In dy s : a1, a2, ,an Sai

Lp trnh cn bn Smith Nguyen Studio.

II.4 Cc cu trc suy lun c bn ca gii thut


Gii thut c thit k theo ba cu trc suy lun c bn sau y: II.4.1 Tun t (Sequential): Cc cng vic c thc hin mt cch tun t, cng vic ny ni tip cng vic kia. II.4.2 Cu trc la chn (Selection) La chn mt cng vic thc hin cn c vo mt iu kin no . C mt s dng nh sau: - Cu trc 1: Nu < iu kin> (ng) th thc hin <cng vic> - Cu trc 2: Nu < iu kin> (ng) th thc hin <cng vic 1>, ngc li (iu kin sai) th thc hin <cng vic 2> - Cu trc 3: Trng hp < i> thc hin <cng vic i> II.4.3. Cu trc lp (Repeating) Thc hin lp li mt cng vic khng hoc nhiu ln cn c vo mt iu kin no . C hai dng nh sau: - Lp xc nh: l loi lp m khi vit chng trnh, ngi lp trnh xc nh c cng vic s lp bao nhiu ln. - Lp khng xc nh: l loi lp m khi vit chng trnh ngi lp trnh cha xc nh c cng vic s lp bao nhiu ln. S ln lp s c xc nh khi chng trnh thc thi. Trong mt s trng hp ngi ta cng c th dng cc cu trc ny din t mt gii thut.

III. KIU D LIU


Cc s liu lu tr trong my tnh gi l d liu (data). Mi n v d liu thuc mt kiu d liu no . Kiu d liu l mt tp hp cc gi tr c cng mt tnh cht v tp hp cc php ton thao tc trn cc gi tr . Ngi ta chia kiu d liu ra lm 2 loi: kiu d liu s cp v kiu d liu c cu trc.

III.1 Kiu d liu s cp


Kiu d liu s cp l kiu d liu m gi tr ca n l n nht. V d: Trong ngn ng lp trnh C, kiu int gi l kiu s cp v kiu ny bao gm cc s nguyn t -32768 n 32767 v cc php ton +, -, *, /, %

III.2 Kiu d liu c cu trc


Kiu d liu c cu trc l kiu d liu m cc gi tr ca n l s kt hp ca cc gi tr khc.
Trang 9

Lp trnh cn bn

V d : Kiu chui k t trong ngn ng lp trnh C l mt kiu d liu c cu trc.

Smith Nguyen Studio.

Cc ngn ng lp trnh u c nhng kiu d liu do ngn ng xy dng sn, m ta gi l cc kiu chun. Chng hn nh kiu int, char trong C; integer, array trong Pascal. Ngoi ra, hu ht cc ngn ng u cung cp c ch cho php ngi lp trnh nh ngha kiu ca ring mnh phc v cho vic vit chng trnh.

IV. NGN NG LP TRNH


IV.1. Khi nim ngn ng lp trnh
Ngn ng lp trnh l mt ngn ng dng vit chng trnh cho my tnh. Ta c th chia ngn ng lp trnh thnh cc loi sau: ngn ng my, hp ng v ngn ng cp cao. Ngn ng my (machine language): L cc ch th di dng nh phn, can thip trc tip vo trong cc mch in t. Chng trnh c vit bng ngn ng my th c th c thc hin ngay khng cn qua bc trung gian no. Tuy nhin chng trnh vit bng ngn ng my d sai st, cng knh v kh c, kh hiu v ton nhng con s 0 v 1. Hp ng (assembly language): Bao gm tn cc cu lnh v quy tc vit cc cu lnh . Tn cc cu lnh bao gm hai phn: phn m lnh (vit ta ting Anh) ch php ton cn thc hin v a ch cha ton hng ca php ton . V d: INPUT a ; Nhp gi tr cho a t bn phm LOAD a ; c gi tr a vo thanh ghi tng A PRINT a; Hin th gi tr ca a ra mn hnh. INPUT b ADD b; Cng gi tr ca thanh ghi tng A vi gi tr b Trong cc lnh trn th INPUT, LOAD, PRINT, ADD l cc m lnh cn a, b l a ch. my thc hin c mt chng trnh vit bng hp ng th chng trnh phi c dch sang ngn ng my. Cng c thc hin vic dch c gi l Assembler. Ngn ng cp cao (High level language): Ra i v pht trin nhm phn nh cch thc ngi lp trnh ngh v lm. Rt gn vi ngn ng con ngi (Anh ng) nhng chnh xc nh ngn ng ton hc. Cng vi s pht trin ca cc th h my tnh, ngn ng lp trnh cp cao cng c pht trin rt a dng v phong ph, vic lp trnh cho my tnh v th m cng c nhiu khuynh hng khc nhau: lp trnh cu trc, lp trnh hng i tng, lp trnh logic, lp trnh hm... Mt chng trnh vit bng ngn ng cp cao c gi l chng trnh ngun (source programs). my tnh "hiu" v thc hin c cc lnh trong chng trnh ngun th phi c mt chng trnh dch dch chung trnh ngun (vit bng ngn ng cp cao) thnh dng chng trnh c kh nng thc thi.

IV.2 Chng trnh dch


Nh trn trnh by, mun chuyn t chng trnh ngun sang chng trnh ch phi c chng trnh dch. Thng thng mi mt ngn ng cp cao u c mt chng trnh dch ring nhng chung quy li th c hai cch dch: thng dch v bin dch.
Trang 10

Lp trnh cn Smithlnh mt, dch ti uStudio. Nguyen thc hinbn Thng dch (interpreter): L cch dch tng ti

. Chng hn ngn ng LISP s dng trnh thng dch. Bin dch (compiler): Dch ton b chng trnh ngun thnh chng trnh ch ri sau mi thc hin. Cc ngn ng s dng trnh bin dch nh Pascal, C... Gia thng dch v bin dch c khc nhau ch: Do thng dch l va dch va thc thi chng trnh cn bin dch l dch xong ton b chng trnh ri mi thc thi nn chng trnh vit bng ngn ng bin dch thc hin nhanh hn chng trnh vit bng ngn ng thng dch. Mt s ngn ng s dng kt hp gia thng dch v bin dch chng hn nh Java. Chng trnh ngun ca Java c bin dch to thnh mt chng trnh i tng (mt dng m trung gian) v khi thc hin th tng lnh trong chng trnh i tng c thng dch thnh m my.

V. BI TP
V.1 Mc ch yu cu
Lm quen v nm vng cc cch m t gii thut; t ng trc mt bi ton c th, sinh vin c th m t tht chi tit cc bc gii quyt vn .

V.2 Ni dung
Bng ngn ng t nhin v lu , anh (ch) hy m t gii thut cho cc bi ton sau: 1. Gii phng trnh bc 2 dng ax 2 + bx + c = 0 vi a, b, c l cc s s nhp t bn phm. 2 2 2.Tnh tng bnh phng ca n s nguyn c dng sau: S= a12 + a 2 + L + a n , vi n v ai (i=1..n) l cc s s nhp t bn phm. 2 2 3. Tnh tng c dng sau: S= 1 a12 + a 2 a 32 + L + (1) n a n , vi n v ai (i=1..n) l cc s s nhp t bn phm. 4. Trnh by kt qu qua cc bc lp (c m t trn) sp xp dy s sau theo th t tng dn. a) 12 13 11 10 10 9 8 7 6 5 b) 11 12 13 14 3 4 5 6 7 11 8

Trang 11

You might also like