Tong Quan LTCB PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Lp trnh cn bn

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

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

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.

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 trnh cn bn

Bc 3: (a bng 0) Nu b bng 0 th ta kt lun phng trnh v s nghim, 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 :

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

- Bc 3: Nu b=0 th thng bo phng trnh v s nghim v kt 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. 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

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. 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 bn

Thng dch (interpreter): L cch dch tng lnh mt, dch ti u thc hin 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 , vi n v ai 2.Tnh tng bnh phng ca n s nguyn c dng sau: S= a12 + a 2 + L + an (i=1..n) l cc s s nhp t bn phm. 2 2 2 3. Tnh tng c dng sau: S= 1 a12 + a 2 , vi n v ai (i=1..n) l cc s a3 + L + (1) n a n 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