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

Lp trnh cn bn

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 TURBO C 3.0


Hc xong chng ny, sinh vin s nm c cc vn sau: - Tng quan v ngn ng lp trnh C. - Mi trng lm vic v cch s dng Turbo C 3.0.

I. TNG QUAN V NGN NG LP TRNH C


C l ngn ng lp trnh cp cao, c s dng rt ph bin lp trnh h thng cng vi Assembler v pht trin cc ng dng. Vo nhng nm cui thp k 60 u thp k 70 ca th k XX, Dennish Ritchie (lm vic ti phng th nghim Bell) pht trin ngn ng lp trnh C da trn ngn ng BCPL (do Martin Richards a ra vo nm 1967) v ngn ng B (do Ken Thompson pht trin t ngn ng BCPL vo nm 1970 khi vit h iu hnh UNIX u tin trn my PDP-7) v c ci t ln u tin trn h iu hnh UNIX ca my DEC PDP-11. Nm 1978, Dennish Ritchie v B.W Kernighan cho xut bn quyn Ngn ng lp trnh C v c ph bin rng ri n nay. Lc ban u, C c thit k nhm lp trnh trong mi trng ca h iu hnh Unix nhm mc ch h tr cho cc cng vic lp trnh phc tp. Nhng v sau, vi nhng nhu cu pht trin ngy mt tng ca cng vic lp trnh, C vt qua khun kh ca phng th nghim Bell v nhanh chng hi nhp vo th gii lp trnh ri cc cng ty lp trnh s dng mt cch rng ri. Sau , cc cng ty sn xut phn mm ln lt a ra cc phin bn h tr cho vic lp trnh bng ngn ng C v chun ANSI C cng c khai sinh t . Ngn ng lp trnh C l mt ngn ng lp trnh h thng rt mnh v rt mm do, c mt th vin gm rt nhiu cc hm (function) c to sn. Ngi lp trnh c th tn dng cc hm ny gii quyt cc bi ton m khng cn phi to mi. Hn th na, ngn ng C h tr rt nhiu php ton nn ph hp cho vic gii quyt cc bi ton k thut c nhiu cng thc phc tp. Ngoi ra, C cng cho php ngi lp trnh t nh ngha thm cc kiu d liu tru tng khc. Tuy nhin, iu m ngi mi va hc lp trnh C thng gp rc ri l hi kh hiu do s mm do ca C. D vy, C c ph bin kh rng ri v tr thnh mt cng c lp
Trang 12

Lp trnh cn bn

trnh kh mnh, c s dng nh l mt ngn ng lp trnh ch yu trong vic xy dng nhng phn mm hin nay. Ngn ng C c nhng c im c bn sau: o Tnh c ng (compact): C ch c 32 t kha chun v 40 ton t chun, nhng hu ht u c biu din bng nhng chui k t ngn gn. o Tnh cu trc (structured): C c mt tp hp nhng ch th ca lp trnh nh cu trc la chn, lp T cc chng trnh vit bng C c t chc r rng, d hiu. o Tnh tng thch (compatible): C c b tin x l v mt th vin chun v cng phong ph nn khi chuyn t my tnh ny sang my tnh khc cc chng trnh vit bng C vn hon ton tng thch. o Tnh linh ng (flexible): C l mt ngn ng rt uyn chuyn v c php, chp nhn nhiu cch th hin, c th thu gn kch thc ca cc m lnh lm chng trnh chy nhanh hn. o Bin dch (compile): C cho php bin dch nhiu tp tin chng trnh ring r thnh cc tp tin i tng (object) v lin kt (link) cc i tng li vi nhau thnh mt chng trnh c th thc thi c (executable) thng nht.

II. MI TRNG LP TRNH TURBO C


Turbo C l mi trng h tr lp trnh C do hng Borland cung cp. Mi trng ny cung cp cc chc nng nh: son tho chng trnh, dch, thc thi chng trnh Phin bn c s dng y l Turbo C 3.0.

II.1. Gi Turbo C
Chy Turbo C cng ging nh chy cc chng trnh khc trong mi trng DOS hay Windows, mn hnh s xut hin menu ca Turbo C c dng nh sau:

Dng trn cng gi l thanh menu (menu bar). Mi mc trn thanh menu li c th c nhiu mc con nm trong mt menu ko xung. Dng di cng ghi chc nng ca mt s phm c bit. Chng hn khi g phm F1 th ta c c mt h thng tr gip m ta c th tham kho nhiu thng tin b ch.
Trang 13

Lp trnh cn bn

Mun vo thanh menu ngang ta g phm F10. Sau dng cc phm mi tn qua tri hoc phi di chuyn vng sng ti mc cn chn ri g phm Enter. Trong menu ko xung ta li dng cc phm mi tn ln xung di chuyn vng sng ti mc cn chn ri g Enter. Ta cng c th chn mt mc trn thanh menu bng cch gi phm Alt v g vo mt k t i din ca mc (k t c mu sc khc vi cc k t khc). Chng hn chn mc File ta g Alt-F (F l k t i din ca File)

II.2. Son tho chng trnh mi


Mun son tho mt chng trnh mi ta chn mc New trong menu File (File >New) Trn mn hnh s xut hin mt vng trng cho ta son tho ni dung ca chng trnh. Trong qu trnh son tho chng trnh ta c th s dng cc phm sau: Cc phm xem thng tin tr gip: - F1: Xem ton b thng tin trong phn tr gip. - Ctrl-F1: Tr gip theo ng cnh (tc l khi con tr ang trong mt t no o, chng hn int m bn g phm Ctrl-F1 th bn s c c cc thng tin v kiu d liu int) Cc phm di chuyn con tr trong vng son tho chng trnh: Phm ngha Phm tt ( t hp phm) Enter a con tr xung dng Mi tn i ln a con tr ln hng trc Ctrl-E Mi tn i xung a con tr xung hng sau Ctrl-X Mi tn sang tri a con tr sang tri mt k t Ctrl-S Mi tn sang phi a con tr sang phi mt k t Ctrl-D End a con tr n cui dng Home a con tr n u dng PgUp a con tr ln trang trc Ctrl-R PgDn a con tr xung trang sau Ctrl-C a con tr sang t bn tri Ctrl-A a con tr sang t bn phi Ctrl-F Cc phm xo k t/ dng: Phm ngha Phm tt Delete Xo k t ti v tr con tr Ctrl-G BackSpace Di chuyn sang tri ng thi xo k t ng trc con tr Ctrl-H Xo mt dng cha con tr Ctrl-Y Xa t v tr con tr n cui dng Ctrl-Q-Y Xa k t bn phi con tr Ctrl-T Cc phm chn k t/ dng: Insert Thay i vit xen hay vit chng Ctrl-N Xen mt dng trng vo trc v tr con tr S dng khi : Khi l mt on vn bn chng trnh hnh ch nht c xc nh bi u khi l gc trn bn tri v cui khi l gc di bn phi ca hnh ch nht. Khi mt khi c xc nh (trn mn hnh khi c mu sc khc ch bnh thng) th ta c
Trang 14

Lp trnh cn bn

th chp khi, di chuyn khi, xo khi... S dng khi cho php chng ta son tho chng trnh mt cch nhanh chng. sau y l cc thao tc trn khi: Phm tt ngha Ctrl-K-B nh du u khi Ctrl-K-K nh du cui khi Ctrl-K-C Chp khi vo sau v tr con tr Ctrl-K-V Chuyn khi ti sau v tr con tr Ctrl-K-Y Xo khi Ctrl-K-W Ghi khi vo a nh mt tp tin Ctrl-K-R c khi (tp tin) t a vo sau v tr con tr Ctrl-K-H Tt/m khi Ctrl-K-T nh du t cha chon tr Ctrl-K-P In mt khi Cc phm, phm tt thc hin cc thao tc khc: Phm ngha Phm tt Ctrl-K-D, F10 Kch hot menu chnh Ctrl-K-Q F2 Lu chng trnh ang son vo a Ctrl-K-S F3 To tp tin mi Tab Di chuyn con tr mt khong ng thi y dng vn bn Ctrl-I ESC Hy b thao tc lnh Ctrl-U ng tp tin hin ti Alt-F3 Hin hp thoi tm kim Ctrl-Q-F Hin hp thoi tm kim v thay th Ctrl-Q-A Tm kim tip tc Ctrl-L V d: Bn hy g on chng trnh sau:
#include <stdio.h> #include<conio.h> int main () { char ten[50]; printf(Xin cho biet ten cua ban !); scanf(%s,ten); printf(Xin chao ban %s,ten); getch(); return 0; }

II.3. Ghi chng trnh ang son tho vo a


S dng File/Save hoc g phm F2. C hai trng hp xy ra: - Nu chng trnh cha c ghi ln no th mt hi thoi s xut hin cho php bn xc nh tn tp tin (FileName). Tn tp tin phi tun th quy cch t tn ca DOS v khng cn c phn m rng (s t ng c phn m rng l .C hoc .CPP s ni thm trong phn Option). Sau g phm Enter. - Nu chng trnh c ghi mt ln ri th n s ghi nhng thay i b sung ln tp tin chng trnh c.

Trang 15

Lp trnh cn bn

Ch : phng mt in trong khi son tho chng trinh thnh thong bn nn g phm F2. Quy tc t tn tp tin ca DOS: Tn ca tp tin gm 2 phn: Phn tn v phn m rng. o Phn tn ca tp tin phi bt u l 1 k t t a..z (khng phn bit hoa thng), theo sau c th l cc k t t a..z, cc k s t 0..9 hay du gch di (_), phn ny di ti a l 8 k t. o Phn m rng: phn ny di ti a 3 k t. V d: Ghi chng trnh va son tho trn ln a vi tn l CHAO.C

II.4. Thc hin chng trnh


thc hin chng trnh hy dng Ctrl-F9 (gi phm Ctrl v g phm F9). V d: Thc hin chng trnh va son tho xong v quan st trn mn hnh thy kt qu ca vic thc thi chng trnh sau g phm bt k tr li vi Turbo.

II.5. M mt chng trnh c trn a


Vi mt chng trnh c trn a, ta c th m n ra thc hin hoc sa cha b sung. m mt chng trnh ta dng File/Open hoc g phm F3. Sau g tn tp tin vo hp File Name hoc la chn tp tin trong danh sch cc tp tin ri g Enter. V d: M tp tin CHAO.C sau b sung c chng trnh mi nh sau:
#include <stdio.h> #include<conio.h> int main () { char ten[50]; printf(Xin cho biet ten cua ban !); scanf(%s,ten); printf(Xin chao ban %s\n ,ten); printf(Chao mung ban den voi Ngon ngu lap trinh C); getch(); return 0; }

Ghi li chng trnh ny (F2) v cho thc hin (Ctrl-F9). Hy so snh xem c g khc trc?

II.6. Thot khi Turbo C v tr v DOS (hay Windows)


Dng File/Exit hoc Alt-X.

II.7. S dng mt s lnh trn thanh menu


II.7.1. Cc lnh trn menu File (Alt -F) - Lnh New : Dng to mi mt chng trnh. Tn ngm nh ca chng trnh l NONAMEXX.C (XX l 2 s t 00 n 99). - Lnh Open : Dng m mt chng trnh c sn trn a sa cha, b sung hoc thc hin chng trnh
Trang 16

Lp trnh cn bn

. Khi tp tin c m th vn bn chng trnh c trnh by trong vng son tho; hp thoi Open nh sau:

Ni nhp tn file

Th mc hin hnh

Trong trng hp ta nhp vo tn tp tin cha tn ti th chng trnh c to mi v sau ny khi ta lu tr, chng trnh c lu vi tn . - Lnh Save : Dng lu chng trnh ang son tho vo a. - Lnh Save as... : Dng lu chng trnh ang son tho vi tn khc, hp thoi lu tp tin ang son vi tn khc nh sau:

Tn hin ti (tn c) Tn mi ( k c tn th mc)

- Lnh : Save All: Trong lc lm vic vi Turbo C, ta c th m mt lc nhiu chng trnh sa cha, b sung. Lnh Save All dng lu li mi thay i trn tt c cc chng trnh ang m y.. - Lnh Change Dir ... : Dng i th mc hin hnh

Trang 17

Lp trnh cn bn

Th mc hin hnh Chn th mc khc

- Lnh Print : Dng in chng trnh ang son tho ra my in. - Lnh Printer Setup ...: Dng thit t mt s thng s cho my in. - Lnh Dos Shell : Dng thot tm thi v Dos, tr li Turbo C ta nh EXIT. - Lnh Exit : Dng thot khi C. II.7.2. Cc lnh trn menu Edit (Alt -E) - Lnh Undo : Dng hy b thao tc son tho cui cng trn ca s son tho. - Lnh Redo : Dng phc hi li thao tc b Undo cui cng. - Lnh Cut : Dng xa mt phn vn bn c nh du khi, phn d liu b xa s c lu vo mt vng nh c bit gi l Clipboard. - Lnh Copy : Dng chp phn chng trnh c nh du khi vo Clipboard. - Lnh Paste : Dng dn phn chng trnh ang c lu trong Clipboard vo ca s ang son tho, bt u ti v tr ca con tr. - Lnh Clear : Dng xa phn d liu c nh du khi, d liu b xa khng c lu vo Clipboard. - Lnh Show clipboard : Dng hin th phn chng trnh ang c lu trong Clipboard trong mt ca s mi. II.7.3. Cc lnh trn menu Search (Alt -S) - Lnh Find ...: Dng tm kim mt cm t trong vn bn chng trnh. Nu tm thy th con tr s di chuyn n on vn bn trng vi cm t cn tm; hp thoi Find nh sau:

Trang 18

Lp trnh cn bn

Nhp cm t cn tm vo y

ngha cc la chn trong hp thoi trn nh sau: Case sentitive : Phn bit ch IN HOA vi ch in thng trong khi so snh cm t cn tm vi vn bn chng trnh. Whole word only: Mt on vn bn chng trnh trng vi ton b cm t cn tm th mi c xem l tm thy. Regular expression: Tm theo biu thc Global :Tm trn tt c tp tin. Forward : Tm n cui tp tin. Selected text: Ch tm trong khi vn bn c nh du. Backward: Tm n u tp tin. From cursor : Bt u t v tr con nhy. Entire scope: Bt u ti v tr u tin ca khi hoc tp tin. - Lnh Replace...: Dng tm kim mt on vn bn no , v t ng thay bng mt on vn bn khc, hp thoi replace nh sau:

Tm cc cm t Scanf v thay th bng scanf

- Lnh Search again : Dng thc hin li vic tm kim. - Cc lnh cn li trn menu Search, cc bn s tm hiu thm khi thc hnh trc tip trn my tnh. II.7.4. Cc lnh trn menu Run (Alt -R) - Lnh Run : Dng thc thi hay "chy" mt chng trnh. - Lnh Step over : Dng "chy" chng trnh tng bc. - Lnh Trace into : Dng chy chng trnh tng bc. Khc vi lnh Step over ch: Lnh Step over khng cho chng ta xem tng bc "chy" trong chng trnh con, cn lnh Trace into cho chng ta xem tng bc trong chng trnh con.
Trang 19

Lp trnh cn bn

- Cc lnh cn li, cc bn s tm hiu thm khi thc hnh trn my. II.7.5. Cc lnh trn menu Compile (Alt C) - Lnh Complie: Bin dch mt chng trnh. - Lnh Make , Build, : Cc lnh ny bn s tm hiu thm khi thc hnh trc tip trn my tnh. - Lnh Information : Dng hin th cc thng tin v chng trnh, Mode, mi trng .

II.7.6. Cc lnh trn menu Debug (Alt-D) Trn menu Debug bao gm mt s lnh gip ngi lp trnh "g ri" chng trnh . Ngi lp trnh s dng chc nng "g ri" khi gp mt s "li" v thut ton, s dng bin nh - Lnh Breakpoints: Dng t "im dng" trong chng trnh. Khi chng trnh thc thi n "im dng th n s dng li" . - Lnh Watch : Dng m mt ca s hin th kt qu trung gian ca mt bin nh no khi chy chng trnh tng bc. - Lnh Evaluate/Modify: Bn s tm hiu khi thc hnh trc tip trn my. II.7.7. Cc lnh trn menu Project (Alt- P) Trn menu Project bao gm cc lnh lin quan n d n nh : ng, m, thm , xa cc mc, II.7.8. Cc lnh trn menu Option (Alt -O) Trn menu Option bao gm cc lnh gip ngi lp trnh thit t mt s t chn khi chy chng trnh. Thng thng, ngi lp trnh khng cn phi thit t li cc t chn. - Lnh Compiler ...: Dng thit t li mt s thng s khi bin dch chng trnh nh hnh sau Phn trnh by di y thuc v 3 mc: Directories, Enviroment v Save; cc phn khc sinh vin t tm hiu. - Lnh Directories...: Dng t li ng dn tm n cc tp tin cn thit khi bin dch chng trnh nh hnh sau:

Trang 20

Lp trnh cn bn

Include directory: Th mc cha cc tp tin m chng ta mun a vo chng trnh (cc tp tin .h trong dng #include). Library directory : Th mc cha cc tp tin th vin ( cc tp tin .Lib) Output directory: Th mc cha cc tp tin i tng (c phn m rng l .OBJ), tp tin thc thi (.exe) khi bin dch chng trnh. Source directory: Th mc cha cc tp tin ngun (c phn m rng l .obj, .lib). - Lnh Environment: dng thit lp mi trng lm vic nh: Reference: Cc tham chiu. Editor: Mi trng son tho gm: to tp tin d phng khi c s chnh sa (create backup file), ch vit (insert mode), t ng tht u dng (indent), i mu t kha (Syntax highlighting) c bit, trong phn ny l thit lp phn m rng mc nh (Default Extension) ca tp tin chng trnh l C hay CPP (C Plus Plus: C++).

Mouse...: t chut. Colors: t mu. II.7.9. Cc lnh trn menu Window (Alt- W) Trn menu Window bao gm cc lnh thao tc n ca s nh: - Lnh Cascade : Dng sp xp cc ca s. - Lnh Close all : Dng ng tt c cc ca s. - Lnh Zoom: Dng phng to/ thu nh ca s. - Cc lnh Tile, Refresh display, Size/ Move, Next, Previous, Close, List...: Cc bn s tm hiu thm khi thc hnh trc tip trn my tnh. II.7.10. Cc lnh trn menu Help (Alt- H) Trn menu Help bao gm cc lnh gi tr gip khi ngi lp trnh cn gip mt s vn no nh: C php cu lnh, cch s dng cc hm c sn - Lnh Contents: Hin th ton b ni dung ca phn help.
Trang 21

Lp trnh cn bn

- Lnh Index : Hin th bng tm kim theo ch mc. - Cc lnh cn li, bn s tm hiu khi thc hnh trn my.

Trang 22

Lp trnh cn bn

Chng 2 CC THNH PHN C BN CA NGN NG C


Hc xong chng ny, sinh vin s nm c cc vn sau: B ch vit trong C. Cc t kha. Danh biu. Cc kiu d liu Bin v cc biu thc trong C. Cu trc ca mt chng trnh vit bng ngn ng lp trnh C

I. B CH VIT TRONG C
B ch vit trong ngn ng C bao gm nhng k t, k hiu sau: (phn bit ch in hoa v in thng): 26 ch ci latinh ln A,B,C...Z 26 ch ci latinh nh a,b,c ...z. 10 ch s thp phn 0,1,2...9. Cc k hiu ton hc: +, -, *, /, =, <, >, (, ) Cc k hiu c bit: :. , ; " ' _ @ # $ ! ^ [ ] { } ... Du cch hay khong trng.

Ii. Cc t kho trong c


T kha l cc t dnh ring (reserved words) ca C m ngi lp trnh c th s dng n trong chng trnh ty theo ngha ca tng t. Ta khng c dng t kha t cho cc tn ca ring mnh. Cc t kha ca Turbo C 3.0 bao gm: asm auto break case cdecl char class const continue _cs default delete do double _ds else enum _es extern _export far _fastcall float for friend goto huge if inline int interrupt _loadds long near new operator pascal private protected public register return _saveregs _seg short signed sizeof _ss static struct switch template this typedef union unsigned virtual void volatile while

Iii. Cp du ghi ch thch


Khi vit chng trnh i lc ta cn phi c vi li ghi ch v 1 on chng trnh no d nh v d iu chnh sau ny; nht l phn ni dung ghi ch phi
Trang 23

Lp trnh cn bn

khng thuc v chng trnh (khi bin dch phn ny b b qua). Trong ngn ng lp trnh C, ni dung ch thch phi c vit trong cp du /* v */. V d :
#include <stdio.h> #include<conio.h> int main () { char ten[50]; /* khai bao bien ten kieu char 50 ky tu */ /*Xuat chuoi ra man hinh*/ printf(Xin cho biet ten cua ban !); scanf(%s,ten); /*Doc vao 1 chuoi la ten cua ban*/ printf(Xin chao ban %s\n ,ten); printf(Chao mung ban den voi Ngon ngu lap trinh C); /*Dung chuong trinh, cho go phim*/ getch(); return 0; }

IV. CC KIU D LIU S CP CHUN TRONG C


Cc kiu d liu s cp chun trong C c th c chia lm 2 dng : kiu s nguyn, kiu s thc.

IV.1. Kiu s nguyn


Kiu s nguyn l kiu d liu dng lu cc gi tr nguyn hay cn gi l kiu m c. Kiu s nguyn trong C c chia thnh cc kiu d liu con, mi kiu c mt min gi tr khc nhau IV.1.1. Kiu s nguyn 1 byte (8 bits) Kiu s nguyn mt byte gm c 2 kiu sau: STT Kiu d liu Min gi tr (Domain) T 0 n 255 (tng ng 256 k t trong 1 unsigned char bng m ASCII) 2 char T -128 n 127 Kiu unsigned char: lu cc s nguyn dng t 0 n 255. => khai bo mt bin l kiu k t th ta khai bo bin kiu unsigned char. Mi s trong min gi tr ca kiu unsigned char tng ng vi mt k t trong bng m ASCII . Kiu char: lu cc s nguyn t -128 n 127. Kiu char s dng bit tri nht lm bit du. => Nu gn gi tr > 127 cho bin kiu char th gi tr ca bin ny c th l s m (?). IV.1.2. Kiu s nguyn 2 bytes (16 bits) Kiu s nguyn 2 bytes gm c 4 kiu sau: STT Kiu d liu Min gi tr (Domain) 1 enum T -32,768 n 32,767 2 unsigned int T 0 n 65,535
Trang 24

Lp trnh cn bn

3 short int T -32,768 n 32,767 4 int T -32,768 n 32,767 Kiu enum, short int, int : Lu cc s nguyn t -32768 n 32767. S dng bit bn tri nht lm bit du. => Nu gn gi tr >32767 cho bin c 1 trong 3 kiu trn th gi tr ca bin ny c th l s m. Kiu unsigned int: Kiu unsigned int lu cc s nguyn dng t 0 n 65535. IV.1.3. Kiu s nguyn 4 byte (32 bits) Kiu s nguyn 4 bytes hay cn gi l s nguyn di (long) gm c 2 kiu sau: STT Kiu d liu Min gi tr (Domain) 1 unsigned long T 0 n 4,294,967,295 2 long T -2,147,483,648 n 2,147,483,647 Kiu long : Lu cc s nguyn t -2147483658 n 2147483647. S dng bit bn tri nht lm bit du. => Nu gn gi tr >2147483647 cho bin c kiu long th gi tr ca bin ny c th l s m. Kiu unsigned long: Kiu unsigned long lu cc s nguyn dng t 0 n 4294967295

IV.2. Kiu s thc


Kiu s thc dng lu cc s thc hay cc s c du chm thp phn gm c 3 kiu sau: STT Kiu d liu Kch thc (Size) Min gi tr (Domain) 1 float 4 bytes T 3.4 * 10-38 n 3.4 * 1038 2 double 8 bytes T 1.7 * 10-308 n 1.7 * 10308 3 long double 10 bytes T 3.4 *10-4932 n 1.1 *104932 Mi kiu s thc trn u c min gi tr v chnh xc (s s l) khc nhau. Ty vo nhu cu s dng m ta c th khai bo bin thuc 1 trong 3 kiu trn. Ngoi ra ta cn c kiu d liu void, kiu ny mang ngha l kiu rng khng cha gi tr g c.

V. Tn v hng trong C
V.1 Tn (danh biu)
Tn hay cn gi l danh biu (identifier) c dng t cho chng trnh, hng, kiu, bin, chng trnh con... Tn c hai loi l tn chun v tn do ngi lp trnh t. Tn chun l tn do C t sn nh tn kiu: int, char, float,; tn hm: sin, cos... Tn do ngi lp trnh t t dng trong chng trnh ca mnh. S dng b ch ci, ch s v du gch di (_) t tn, nhng phi tun th quy tc: Bt u bng mt ch ci hoc du gch di. Khng c khong trng gia tn.
Trang 25

Lp trnh cn bn

Khng c trng vi t kha. di ti a ca tn l khng gii hn, tuy nhin ch c 31 k t u tin l c ngha. Khng cm vic t tn trng vi tn chun nhng khi ngha ca tn chun khng cn gi tr na. V d: tn do ngi lp trnh t: Chieu_dai, Chieu_Rong, Chu_Vi, Dien_Tich Tn khng hp l: Do Dai, 12A2,

V.2. Hng (Constant)


L i lng khng i trong sut qu trnh thc thi ca chng trnh. Hng c th l mt chui k t, mt k t, mt con s xc nh. Chng c th c biu din hay nh dng (Format) vi nhiu dng thc khc nhau. V.2.1 Hng s thc S thc bao gm cc gi tr kiu float, double, long double c th hin theo 2 cch sau: - Cch 1: S dng cch vit thng thng m chng ta s dng trong cc mn Ton, L, iu cn lu l s dng du thp phn l du chm (.); V d: 123.34 -223.333 3.00 -56.0 - Cch 2: S dng cch vit theo s m hay s khoa hc. Mt s thc c tch lm 2 phn, cch nhau bng k t e hay E Phn gi tr: l mt s nguyn hay s thc c vit theo cch 1. Phn m: l mt s nguyn Gi tr ca s thc l: Phn gi tr nhn vi 10 m phn m. V d: 1234.56e-3 = 1.23456 (l s 1234.56 * 10-3) -123.45E4 = -1234500 ( l -123.45 *104) V.2.2 Hng s nguyn S nguyn gm cc kiu int (2 bytes) , long (4 bytes) c th hin theo nhng cch sau. - Hng s nguyn 2 bytes (int) h thp phn: L kiu s m chng ta s dng thng thng, h thp phn s dng cc k s t 0 n 9 biu din mt gi tr nguyn. V d: 123 ( mt trm hai mi ba), -242 ( tr hai trm bn mi hai). - Hng s nguyn 2 byte (int) h bt phn: L kiu s nguyn s dng 8 k s t 0 n 7 biu din mt s nguyn. Cch biu din: 0<cc k s t 0 n 7> V d : 0345 (s 345 trong h bt phn) -020 (s -20 trong h bt phn) Cch tnh gi tr thp phn ca s bt phn nh sau: S bt phn : 0dndn-1dn-2d1d0 ( di c gi tr t 0 n 7) => Gi tr thp phn= d i * 8 i
i =0 n

0345=229 , 020=16
Trang 26

Lp trnh cn bn

- Hng s nguyn 2 byte (int) h thp lc phn: L kiu s nguyn s dng 10 k s t 0 n 9 v 6 k t A, B, C, D, E ,F biu din mt s nguyn. K t gi tr A 10 B 11 C 12 D 13 E 14 F 15 Cch biu din: 0x<cc k s t 0 n 9 v 6 k t t A n F> V d: 0x345 (s 345 trong h 16) 0x20 (s 20 trong h 16) 0x2A9 (s 2A9 trong h 16) Cch tnh gi tr thp phn ca s thp lc phn nh sau: S thp lc phn : 0xdndn-1dn-2d1d0 ( di t 0 n 9 hoc A n F) => Gi tr thp phn= d i *16 i
i =0 n

0x345=827 , 0x20=32 , 0x2A9= 681 - Hng s nguyn 4 byte (long): S long (s nguyn di) c biu din nh s int trong h thp phn v km theo k t l hoc L. Mt s nguyn nm ngoi min gi tr ca s int ( 2 bytes) l s long ( 4 bytes). V d: 45345L hay 45345l hay 45345 - Cc hng s cn li: Vit nh cch vit thng thng (khng c du phn cch gia 3 s) V d: 12 (mi hai) 12.45 (mi hai chm 45) 1345.67 (mt ba trm bn mi lm chm su mi by) V.2.3. Hng k t Hng k t l mt k t ring bit c vit trong cp du nhy n (). Mi mt k t tng ng vi mt gi tr trong bng m ASCII. Hng k t cng c xem nh tr s nguyn. V d: a, A, 0, 9 Chng ta c th thc hin cc php ton s hc trn 2 k t (thc cht l thc hin php ton trn gi tr ASCII ca chng) V.2.4. Hng chui k t Hng chui k t l mt chui hay mt xu k t c t trong cp du nhy kp (). V d: Ngon ngu lap trinh C, Khoa CNTT-DHCT, NVLinh-DVHieu Ch : 1. Mt chui khng c ni dung c gi l chui rng.

Trang 27

Lp trnh cn bn

2. Khi lu tr trong b nh, mt chui c kt thc bng k t NULL (\0: m Ascii l 0). 3. biu din k t c bit bn trong chui ta phi thm du \ pha trc. V d: Im a student phi vit I\m a student Day la ky tu dac biet phi vit Day la ky tu \dac biet\

VI. BIN V BIU THC


VI.1. Bin
Bin l mt i lng c ngi lp trnh nh ngha v c t tn thng qua vic khai bo bin. Bin dng cha d liu trong qu trnh thc hin chng trnh v gi tr ca bin c th b thay i trong qu trnh ny. Cch t tn bin ging nh cch t tn ni trong phn trn. Mi bin thuc v mt kiu d liu xc nh v c gi tr thuc kiu . VI.1.1. C php khai bo bin: <Kiu d liu> V d: Danh sch cc tn bin cch nhau bi du phy;
/*Ba bin a, b,c c kiu int*/ /*Bin chu_vi c kiu long*/ /*Bin nua_chu_vi c kiu float*/ /*Bin dien_tich c kiu double*/

int a, b, c; long int chu_vi; float nua_chu_vi; double dien_tich;

Lu : kt thc 1 lnh phi c du chm phy (;) cui lnh. VI.1.2. V tr khai bo bin trong C Trong ngn ng lp trnh C, ta phi khai bo bin ng v tr. Nu khai bo (t cc bin) khng ng v tr s dn n nhng sai st ngoi mun m ngi lp trnh khng lng trc (hiu ng l). Chng ta c 2 cch t v tr ca bin nh sau: a) Khai bo bin ngoi: Cc bin ny c t bn ngoi tt c cc hm v n c tc dng hay nh hng n ton b chng trnh (cn gi l bin ton cc). V d:
int i; float int main() { } /*Bien ben ngoai */ pi; /*Bien ben ngoai*/

b) Khai bo bin trong: Cc bin c t bn trong hm, chng trnh chnh hay mt khi lnh. Cc bin ny ch c tc dng hay nh hng n hm, chng trnh hay khi lnh cha n. Khi khai bo bin, phi t cc bin ny u ca khi lnh, trc cc lnh gn, V d 1:
#include <stdio.h> #include<conio.h> int bienngoai; /*khai bao bien ngoai*/ int main () { int j,i; /*khai bao bien ben trong chuong trinh chinh*/ clrscr(); i=1; j=2; bienngoai=3;

Trang 28

Lp trnh cn bn
printf("\n Gia7 tri cua i la %d",i); /*%d l s nguyn, s bit sau */ printf("\n Gia tri cua j la %d",j); printf("\n Gia tri cua bienngoai la %d",bienngoai); getch(); return 0; }

V d 2:
#include <stdio.h> #include<conio.h> int main () { int i, j; clrscr(); i=4; j=5; printf("\n Gia tri cua i la printf("\n Gia tri cua j la if(j>i) { int hieu=j-i; printf("\n Hieu so cua } else { int hieu=i-j printf("\n Gia tri cua } getch(); return 0; }

/*Bien ben trong*/ %d",i); %d",j); /*Bien ben trong */ j tru i la %d",hieu);

; /*Bien ben trong*/ i tru j la %d",hieu);

VI.2. Biu thc


Biu thc l mt s kt hp gia cc ton t (operator) v cc ton hng (operand) theo ng mt trt t nht nh. Mi ton hng c th l mt hng, mt bin hoc mt biu thc khc. Trong trng hp, biu thc c nhiu ton t, ta dng cp du ngoc n () ch nh ton t no c thc hin trc. V d: Biu thc nghim ca phng trnh bc hai: (-b + sqrt(Delta))/(2*a) Trong 2 l hng; a, b, Delta l bin. VI.2.1 Cc ton t s hc Trong ngn ng C, cc ton t +, -, *, / lm vic tng t nh khi chng lm vic trong cc ngn ng khc. Ta c th p dng chng cho a s kiu d liu c sn c cho php bi C. Khi ta p dng php / cho mt s nguyn hay mt k t, bt k phn d no cng b ct b. Chng hn, 5/2 bng 2 trong php chia nguyn. Ton t ngha + Cng Tr * Nhn / Chia
Trang 29

Lp trnh cn bn

% Chia ly phn d -Gim 1 n v ++ Tng 1 n v Tng v gim (++ & --) Ton t ++ thm 1 vo ton hng ca n v tr bt 1. Ni cch khc: x = x + 1 ging nh ++x x = x 1 ging nh x C 2 ton t tng v gim u c th tin t (t trc) hay hu t (t sau) ton hng. V d: x = x + 1 c th vit x++ (hay ++x) Tuy nhin gia tin t v hu t c s khc bit khi s dng trong 1 biu thc. Khi 1 ton t tng hay gim ng trc ton hng ca n, C thc hin vic tng hay gim trc khi ly gi tr dng trong biu thc. Nu ton t i sau ton hng, C ly gi tr ton hng trc khi tng hay gim n. Tm li: x = 10 y = ++x //y = 11 Tuy nhin: x = 10 x = x++ //y = 10 Th t u tin ca cc ton t s hc: ++ -- sau l * / % ri mi n + VI.2.2 Cc ton t quan h v cc ton t Logic tng chnh ca ton t quan h v ton t Logic l ng hoc sai. Trong C mi gi tr khc 0 c gi l ng, cn sai l 0. Cc biu thc s dng cc ton t quan h v Logic tr v 0 nu sai v tr v 1 nu ng. ngha Cc ton t quan h > Ln hn >= Ln hn hoc bng < Nh hn <= Nh hn hoc bng == Bng != Khc Cc ton t Logic && AND || OR ! NOT Bng chn tr cho cc ton t Logic: P q p&&q p||q 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1
Trang 30

Ton t

!p 1 1 0 0

Lp trnh cn bn

Cc ton t quan h v Logic u c u tin thp hn cc ton t s hc. Do mt biu thc nh: 10 > 1+ 12 s c xem l 10 > (1 + 12) v kt qu l sai (0). Ta c th kt hp vi ton t li vi nhau thnh biu thc nh sau: 10>5&&!(10<9)||3<=4 Kt qu l ng Th t u tin ca cc ton t quan h l Logic Cao nht: ! > >= < <= == != && Thp nht: || VI.2.3 Cc ton t Bitwise: Cc ton t Bitwise ni n kim tra, gn hay s thay i cc Bit tht s trong 1 Byte ca Word, m trong C chun l cc kiu d liu v bin char, int. Ta khng th s dng cc ton t Bitwise vi d liu thuc cc kiu float, double, long double, void hay cc kiu phc tp khc.

Ton t ngha & AND | OR ^ XOR ~ NOT >> Dch phi << Dch tri Bng chn tr ca ton t ^ (XOR) p q 0 0 0 1 1 0 1 1 VI.2.4 Ton t ? cng vi :

p^q 0 1 1 0

C c mt ton t rt mnh v thch hp thay th cho cc cu lnh ca IfThen-Else. C php ca vic s dng ton t ? l: E1 ? E2 : E3 Trong E1, E2, E3 l cc biu thc. ngha: Trc tin E1 c c lng, nu ng E2 c c lng v n tr thnh gi tr ca biu thc; nu E1 sai, E2 c c lng v tr thnh gi tr ca biu thc. V d:
X = 10 Y = X > 9 ? 100 : 200

Trang 31

Lp trnh cn bn

Th Y c gn gi tr 100, nu X nh hn 9 th Y s nhn gi tr l 200. on m ny tng ng cu trc if nh sau:


X = 10 if (X < 9) Y = 100 else Y = 200

VII.2.5 Ton t con tr & v * Mt con tr l a ch trong b nh ca mt bin. Mt bin con tr l mt bin c khai bo ring cha mt con tr n mt i tng ca kiu ch ra n. Ta s tm hiu k hn v con tr trong chng v con tr. y, chng ta s cp ngn gn n hai ton t c s dng thao tc vi cc con tr. Ton t th nht l &, l mt ton t quy c tr v a ch b nh ca h s ca n. V d: m = &count t vo bin m a ch b nh ca bin count. Chng hn, bin count v tr b nh 2000, gi s count c gi tr l 100. Sau cu lnh trn m s nhn gi tr 2000. Ton t th hai l *, l mt b sung cho &; y l mt ton t quy c tr v gi tr ca bin c cp pht ti a ch theo sau . V d: q = *m S t gi tr ca count vo q. By gi q s c gi tr l 100 v 100 c lu tr ti a ch 2000. VI.2.6 Ton t du phy , Ton t du , c s dng kt hp cc biu thc li vi nhau. Bn tri ca ton t du , lun c xem l kiu void. iu c ngha l biu thc bn phi tr thnh gi tr ca tng cc biu thc c phn cch bi du phy. V d: x = (y=3,y+1); Trc ht gn 3 cho y ri gn 4 cho x. Cp du ngoc n l cn thit v ton t du , c u tin thp hn ton t gn. VI.2.7 Xem cc du ngoc n v cp du ngoc vung l ton t Trong C, cp du ngoc n l ton t tng u tin ca cc biu thc bn trong n. Cc cp du ngoc vung thc hin thao tc truy xut phn t trong mng. VI.2.8 Tng kt v u tin Cao nht () [] ! ~ ++ -- (Kiu) * & */% +<< >> < <= > >= & ^
Trang 32

Lp trnh cn bn

Thp nht VI.2.9 Cch vit tt trong C

| && || ?: = += -= *= /= ,

C nhiu php gn khc nhau, i khi ta c th s dng vit tt trong C na. Chng hn: x = x + 10 c vit thnh x +=10 Ton t += bo cho chng trnh dch bit tng gi tr ca x ln 10. Cch vit ny lm vic trn tt c cc ton t nh phn (php ton hai ngi) ca C. Tng qut: (Bin) = (Bin) c th c vit: (Bin) (Ton t)= (Biu thc) (Ton t) (Biu thc)

VII. Cu trc caA mt chng trnh C


VII.1. Tin x l v bin dch
Trong C, vic dch (translation) mt tp tin ngun c tin hnh trn hai bc hon ton c lp vi nhau: - Tin x l. - Bin dch. Hai bc ny trong phn ln thi gian c ni tip vi nhau mt cch t ng theo cch thc m ta c n tng rng n c thc hin nh l mt x l duy nht. Ni chung, ta thng ni n vic tn ti ca mt b tin x l (preprocessor?) nhm ch r chng trnh thc hin vic x l trc. Ngc li, cc thut ng trnh bin dch hay s bin dch vn cn nhp nhng bi v n ch ra khi th ton b hai giai on, khi th li l giai on th hai. Bc tin x l tng ng vi vic cp nht trong vn bn ca chng trnh ngun, ch yu da trn vic din gii cc m lnh rt c bit gi l cc ch th dn hng ca b tin x l (destination directive of preprocessor); cc ch th ny c nhn bit bi chng bt u bng k hiu (symbol) #. Hai ch th quan trng nht l: - Ch th s gp vo ca cc tp tin ngun khc: #include - Ch th vic nh ngha cc macros hoc k hiu: #define Ch th u tin c s dng trc ht l nhm gp vo ni dung ca cc tp tin cn c (header file), khng th thiu trong vic s dng mt cch tt nht cc hm ca th vin chun, ph bin nht l: #include <stdio.h>

Trang 33

Lp trnh cn bn

Ch th th hai rt hay c s dng trong cc tp tin th vin (header file) c nh ngha trc v thng c khai thc bi cc lp trnh vin trong vic nh ngha cc k hiu nh l: #define NB_COUPS_MAX 100 #define SIZE 25

VII.2 Cu trc mt chng trnh C


Mt chng trnh C bao gm cc phn nh: Cc ch th tin x l, khai bo bin ngoi, cc hm t to, chng trnh chnh (hm main). Cu trc c th nh sau:
Cc ch th tin x l (Preprocessor directives) #include <Tn tp tin th vin> #define .

nh ngha kiu d liu (phn ny khng bt buc): dng t tn li cho mt kiu d liu no gi nh hay t 1 kiu d liu cho ring mnh da trn cc kiu d liu c. C php: typedef <Tn kiu c> <Tn kiu mi> V d: typedef int SoNguyen; // Kiu SoNguyen l kiu int Khai bo cc prototype (tn hm, cc tham s, kiu kt qu tr v, ca cc hm s ci t trong phn sau, phn ny khng bt buc): phn ny ch l cc khai bo u hm, khng phi l phn nh ngha hm. Khai bo cc bin ngoi (cc bin ton cc) phn ny khng bt buc: phn ny khai bo cc bin ton cc c s dng trong c chng trnh.

Chng trnh chnh phn ny bt buc phi c <Kiu d liu tr v> main() { Cc khai bo cc b trong hm main: Cc khai bo ny ch tn ti trong hm m thi, c th l khai bo bin hay khai bo kiu. Cc cu lnh dng nh ngha hm main return <kt qu tr v>; // Hm phi tr v kt qu } Ci t cc hm <Kiu d liu tr v> function1( cc tham s) { Cc khai bo cc b trong hm. Cc cu lnh dng nh ngha hm Lu : Mt s tp tin header thng dng: return <kt qu tr v>; } Trang 34

Lp trnh cn bn

Mt chng trnh C bt u thc thi t hm main (thng thng l t cu lnh u tin n cu lnh cui cng).

VII.3 Cc tp tin th vin thng dng


y l cc tp tin cha cc hm thng dng khi lp trinh C, mun s dng cc hm trong cc tp tin header ny th phi khai bo #include <Tn tp tin> phn u ca chng trnh 1) stdio.h: Tp tin nh ngha cc hm vo/ra chun (standard input/output). Gm cc hm in d liu (printf()), nhp gi tr cho bin (scanf()), nhn k t t bn phm (getc()), in k t ra mn hnh (putc()), nhn mt dy k t t bm phm (gets()), in chui k t ra mn hnh (puts()), xa vng m bn phm (fflush()), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), getw(), putw() 2) conio.h : Tp tin nh ngha cc hm vo ra trong ch DOS (DOS console). Gm cc hm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(), 3) math.h: Tp tin nh ngha cc hm tnh ton gm cc hm abs(), sqrt(), log(). log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(), 4) alloc.h: Tp tin nh ngha cc hm lin quan n vic qun l b nh. Gm cc hm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), 5) io.h: Tp tin nh ngha cc hm vo ra cp thp. Gm cc hm open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(), 6) graphics.h: Tp tin nh nghacc hm lin quan n ha. Gm initgraph(), line(), circle(), putpixel(), getpixel(), setcolor(), Cn nhiu tp tin khc na.

VII.4 C php khai bo cc phn bn trong mt chng trnh C


VII.4.1. Ch th #include s dng tp tin th vin
C php:

#include <Tn tp tin> // Tn tp tin c t trong du <> hay #include Tn ng dn Menu Option ca Turbo C c mc INCLUDE DIRECTORIES, mc ny dng ch nh cc tp tin th vin c lu tr trong th mc no. Nu ta dng #include<Tn tp tin> th Turbo C s tm tp tin th vin trong th mc c xc nh trong INCLUDE DIRECTORIES. V d: include <stdio.h> Nu ta dng #includeTn ng dn th ta phi ch r tn u, tn th mc v tp tin th vin. V d: #includeC:\\TC\\math.h Trong trng hp tp tin th vin nm trong th mc hin hnh th ta ch cn a tn tp tin th vin. V d: #includemath.h. V d:
Trang 35

Lp trnh cn bn
#include <stdio.h> #include <conio.h> #include math.h

VII.4.2. Ch th #define nh ngha hng s C php: #define <Tn hng> <Gi tr> V d: #define MAXINT 32767 VII.4.3. Khai bo cc prototype ca hm C php: <Kiu kt qu tr v> V d: Tn hm (danh sch i s)

long giaithua( int n); //Hm tnh giai tha ca s nguyn n double x_mu_y(float x, float y); /*Hm tnh x m y*/

VII.4.4. Cu trc ca hm bnh thng C php: <Kiu kt qu tr v> Tn hm (cc i s) { Cc khai bo v cc cu lnh nh ngha hm return kt qu; } V d:
int tong(int x, int y) /*Hm tnh tng 2 s nguyn*/ { return (x+y); } float tong(float x, float y) /*Hm tnh tng 2 s thc*/ { return (x+y); }

VII.4.5. Cu trc ca hm main Hm main chnh l chng trnh chnh, gm cc lnh x l, cc li gi cc hm khc. C php: <Kt qu tr v> main( i s) { Cc khai bo v cc cu lnh nh ngha hm return <kt qu>; } V d 1:
int main() { printf(Day la chuong trinh chinh); getch();

Trang 36

Lp trnh cn bn
return 0; }

V d 2:
int main() { int a=5, b=6,c; float x=3.5, y=4.5,z; printf(Day la chuong trinh chinh); c=tong(a,b); printf(\n Tong cua %d va %d la %d,a,b,c); z=tong(x,y); printf(\n Tong cua %f v %f l %f, x,y,z); getch(); return 0; }

VIII. BI TP
Bi 1: Biu din cc hng s nguyn 2 byte sau y di dng s nh phn, bt phn, thp lc phn a)12 b) 255 c) 31000 d) 32767 e) -32768 Bi 2: Biu din cc hng k t sau y di dng s nh phn, bt phn. a) A b) a c) Z d) z

Trang 37

You might also like