Lap trinh can ban

70 189 0
Lap trinh can ban

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giỏo Trỡnh Lp Trỡnh C Bn MC LC Ni dung Trang LI NểI U CHNG I: GII THIU NGễN NG LP TRèNH C LCH S HèNH THNH V PHT TRIN CC TNH CHT C TRNG CA NGễN NG 2.1 B Kí T: 2.2 T KHO 2.3 TấN CC BC CHY MT CHNG TRèNH C CC KIU D LIU 4.1 Kiu s nguyờn (int) 4.2 Kiu ký t (Char) 4.3 Kiu du phy ng CHNG 2: KHAI BO HNG, BIN, BIU THC, TON T, VO , RA D LIU TRONG C 10 HNG, BIN 10 1.1 KHAI BO HNG 10 1.2 KHAI BO BIN 11 BIU THC V CC PHẫP TON TRONG C 12 2.1 BIU THC 12 2.2 CC PHẫP TON 12 VO, RA D LIU 16 3.1 HM PRINTF() 16 3.2 HM SCANF() 17 CC HM CHUN 18 4.1 HM GETS 18 4.2 HM GETCHAR 19 4.3 HM PUTCHAR 19 4.4.HM PUTS 19 CHNG III: LNH Cể CU TRC 20 CU LNH 20 1.1 CU LNH N: 20 1.2 CU LNH GHẫP: 20 Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn CU TRC IU KHIN IF 20 2.1 IF DNG KHUYT 20 2.2 IF DNG Y 22 CU TRC SWITCH 24 CHNG IV: LNH Cể CU TRC LP 26 CU LNH FOR 26 CU LNH BREAK VO CONTINUE 28 2.3 Lnh break 28 2.2 Lnh continue 29 CU LNH WHILE 29 CU LNH DOWHILE 31 CU LNH GOTO 32 CHNG 5: HM 33 TNG QUAN V CHNG TRèNH CON 33 1.1 HM TH VIN 33 1.2 HM NGI DNG 34 KHAI BO V NH NGHI HM 34 THAO TC TRONG LI GI HM 35 NGUYấN TC HOT NG CA MT HM 37 CCH TRUYN THAM S 38 CU LNH RETURN V EXIT 39 6.1 LNH RETURN: 39 6.2 LNH EXIT 40 CHNG 6: KIU MNG 40 NH NGHA 40 KHAI BO MNG MT CHIU 40 CH S CA MNG MT CHIU 41 NHP XUT D LIU CHO CC PHN T CA MNG MT CHIU 41 LY A CH CA PHN T MNG MT CHIU 41 TRUY NHP VO CC PHN T CA MNG 42 6.1 Sp xp mng theo th t gim dn 42 6.2 Sp xp mng theo th t tng dn 45 MNG NHIU CHIU 46 7.1 Khai bỏo : 46 7.2 Truy xut tng phn t ca mng chiu 46 CHNG 7: KIU D LIU XU Kí T Trửụứng Cao ng Nghe BR-VT 48 Trang Giỏo Trỡnh Lp Trỡnh C Bn KHI NIM 48 Cỏc hng chui ký t c t cp du nhỏy kộp KHAI BO 48 2.1 Khai bỏo theo mng 48 2.2 Khai bỏo theo tr 48 2.3 Va khai bỏo va gỏn giỏ tr 49 VO RA VI XU Kí T 49 3.1 Nhp chui t bn phớm 49 3.2 Xut chui lờn mn hỡnh 49 CC HM TRONG XU Kí T CHNG 8: 49 BIN CON TR 53 BIN CON TR 53 1.1 Khỏi nim tr ( pointer ) v a ch : 53 1.2 Tớnh toỏn trờn bin tr ( pointer ) 53 CON TR V MNG MT CHIU 54 CON TR V MNG NHIU CHIU 55 CHNG 9: KIU D LIU Cể CU TRC 56 KHI NIM V NGHA CA KIU CU TRC 56 KHAI BO KIU CU TRC 57 T TấN KIU D LIU BNG TYPEDEF 57 TRUY NHP N CC THNH PHN TRONG BIN CU TRC 58 NHP D LIU CHO BIN CU TRC 61 CHNG 10: KIU D LIU TP TIN 62 KHI NIM V TP TIN TRONG C 62 CC KIU VO RA VI TP: 62 2.1 Khai bỏo bin tin 63 2.2 M tin 63 2.3 úng tin 64 2.4 Kim tra n cui tin hay cha? 64 2.5 Di chuyn tr tin v u tin - Hm rewind() 64 CC THAO TC TRấN TP: 64 3.1 Ghi d liu lờn tin bn 64 3.2 c d liu t tin bn 65 TI LIU THAM KHO Trửụứng Cao ng Nghe BR-VT 70 Trang Giỏo Trỡnh Lp Trỡnh C Bn LI NểI U Ngụn ng lp trỡnh C l mt ngụn ng mnh lnh c phỏt trin t u thp niờn 1970 bi Ken Thompson v Dennis Ritchie dựng h iu hnh UNIX T dú, ngụn ng ny ó lan rng nhiu h iu hnh khỏc v tr thnh mt nhng ngụn ng ph dng nht C l ngụn ng rt cú hiu qu v c a chung nht vit cỏc phn mm h thng, mc dự nú cng c dựng cho vic vit cỏc ng dng Ngoi ra, C cng thng c dựng lm phng tin ging dy khoa hc mỏy tớnh Giỏo trỡnh Ngụn ng lp trỡnh dựng cho hc sinh h Trung cp ngh Lp rỏp mỏy tớnh trng Cao ng ngh Tnh BR VT nhm cung cp cho sinh viờn cỏc thut toỏn tng quỏt, t ú sinh viờn s tng bc ci tin thut toỏn xõy dng c nhng chng trỡnh hiu qu v cú tớnh ng dng cao Ngoi ra,cũn trang b cho sinh viờn nhng kin thc lm tin chun b cho mt s mụn hc tip theo, nh: cu trỳc d liu, cụng ngh phn mm, Mc ớch ca giỏo trỡnh l trang b cho hc viờn nhng kin thc v k nng: + Cú c k nng lp trỡnh cu trỳc thụng qua mt s thut toỏn quan trng, gm: cỏc k nng v lp trỡnh cu trỳc, tr v móng, duyt v quy, sp xp v tỡm kim, + Phõn tớch c mt bi toỏn v thit k thut gii cho bi toỏn ú + S dng cỏc kiu d liu, cỏc cu trỳc iu khin, cỏc gii thut, khai bỏo v s dng hm Ni dung chớnh ca giỏo trỡnh gm chng: Chng 1: Gii thiu ngụn ng lp trỡnh C Chng 2: Khai bỏo hng, bin, biu thc, toỏn t, vo , d liu c Chng 3: Lnh cú cu trỳc Chng 4: Lnh cú cu trỳc lp Chng 5: Hm Chng 6: Kiu Mng Chng 7: Kiu d liu xõu ký t Chng 8: Bin tr Chng 9: Kiu d liu cú cu trỳc Chng 10: Kiu d liu tin Trong quỏ trỡnh biờn son giỏo trỡnh cú nhiu c gng nhng khú trỏnh cỏc khim khuyt Rt mong c s úng gúp ý kin ca ngi c giỏo trỡnh c hon thin hn TC GI Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn CHNG I: GII THIU NGễN NG LP TRèNH C LCH S HèNH THNH V PHT TRIN Ngụn ng C Brian W.Kernighan v Dennis M.Ritchie phats trin vo u nhng nm 70 ti phũng thớ nghim BELL( Hoa k) vi mc ớch ban u l phỏt trin h iu hnh Unix Bụớ cnh i xut phỏt t nhu cu cn phi cú mt ngụn ng lptỡnh h thng thay th cho hp ng Assembly nng n, tin cy thp v rt khú chuyn i gia cỏc h mỏy tớnh khỏc Phn ln cỏc ý tng quan trng nht ca c xut phỏt t mt ngụn ng cú trc ú vi tờn gi BCPL, Martin Richards nghiờn ca Anh hng ca BCPL i vi c giỏn tip thụng qua ngụn ng B, Ken Thompson vit nm 1970 h Unix, chy trờn h mỏy tớnh PDP-7 Ngoi C c dựng vit h iu hnh Unix( Hin trờn 90% chng trỡnh ngun ca h iu hnh Unix c vit bng C, cha y 10% bng hp ng) , ngi ta nhan h chúng nhn sc mnh ca C vic x lý cỏc hin i ca tin hc: x lý s , bn, c s d liu, lp trỡnh hng i tng Thc t C ó t hp c cỏc thnh tu tiờn tin ca tin hc v ó tr thnh mt chun mc nhiờn Liờn quan n s hỡnh thnh v phỏt trin ca ngụn ng, cú th k n mt s s kin ỏng quan tõm sau: + Nm 1978, cun giỏo trỡnh dy bng ngụn ng lp trỡnh C The C prrogramming langguage chớnh hai tỏc gi Brian W.Kernighan v Dennis M.Ritchie biờn son ó c xut bn rng rói + Nm 1983 mt tiu ban ca vin tiờu chun quc gia m (ANSI) c thnh lp nhm xut mt chun cho ngụn ng C + Nm 1988 chun ANSI C chớnh thc c ban hnh Chun ny bao gm cỏc mụ t v ngụn ng theo Brian W.Kernighan v Dennis M.Ritchiev qui nh cỏc th vin chun ca ngụn ng C, nh ú tng tớnh kh chuyn ca chng trỡnh vit bng C + th gii mỏy vi tớnh cú cỏc h chng trỡnh dch C ni ting nh: Turbo C, Borland C ca Borland Inc MSC, Vc ca Microsoft Corp Lattice C ca Lattice + S phỏt trin ca ngụn ng lp trỡnh nhng nm 80 ó a n phong cỏch lp trỡnh hng i tng, Mt trng nhng ngụn ng rt c a dựng l C++, mt b sung mi cỏc yu t hng i tng vo ngụn ng C ng v thoỏt C Khi ng: - Vo ci t Turbo C \ TC\ Bin\ TC.EXE hoc vo biu tng TC trờn mn hỡnh desktop - Hoc vo Run ỏnh ng dn ci t C: c:\TC\TC\Bin\TC.exe Chy Turbo C cng ging nh chy cc chng trỡnh khc mi trng DOS hay Windows, mn hỡnh s xut hin menu ca Turbo C cú dng nh sau: Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn Hỡnh Dũng trờn cựng gi l menu (menu bar) Mi mc trờn menu li cú th cú nhiu mc nm mt menu kộo xung Dũng di cựng ghi chc nng ca mt s phớm c bit Chng hn gừ phớm F1 thỡ ta cú c mt h thng tr giỳp m ta cú th tham kho nhiu thụng tin b ớch Mun vo menu ngang ta gừ phớm F10 Sau ú dựng cỏc phớm mi tờn qua trỏi hoc phi di chuyn vựng sỏng ti mc cn chn ri gừ phớm Enter Trong menu kộo xung ta li dựng cỏc phớm mi tờn lờn xung di chuyn vựng sỏng ti mc cn chn ri gừ Enter Ta cng cú th chn mt mc trờn menu bng cỏch gi phớm Alt v gừ vo mt ký t i din ca mc ú (ký t cú mu sc khỏc vi cỏc ký t khỏc) Chng hn chn mc File ta gừ Alt-F (F l ký t i din ca File) Thoỏt C Thoỏt Turbo C v tr v DOS (hay Windows) Dựng File/Exit hoc Alt-X CC TNH CHT C TRNG CA NGễN NG 2.1 B Kí T: - Gm 26 ch cỏi in hoa: A, B, C Z, - Gm 26 ch cỏi in thng: a, b,, z - 10 ch s: 0,1,2, ,9 - Ký t gch ni _ ( chỳ ý phõn bit du - ) - Du cỏch ( space) : dựng phõn bit cỏc t : Vớ d : lop Hc( kớ t) - LopHoc( kớ t) Chỳ ý : Khi vit chng trỡnh, ta khụng c s dng bt k ký t no khỏc ngoi cỏc ký t trờn 2.2 T KHO T khoỏ l nhng t c s dng khai bỏo cỏc kiu d liu, vit cỏc toỏn t v cỏc cõu lnh Bng di õy lit kờ cỏc t khoỏ ca TURBO C : Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn asm break case cdecl char const continue default double else enum extern far float for goto huge if int interrupt long near pascal register return short signed sizeof static struct switch tipedef union unsigned void volatile while ý ngha v cỏch s dng ca mi t khoỏ s c cp sau ny, õy ta cn chỳ ý : - Khụng c dựng cỏc t khoỏ t tờn cho cỏc hng, bin, mng, hm - T khoỏ phi c vit bng ch thng, vớ d : vit t khoỏ khai bỏo kiu nguyờn l int ch khụng phi l INT 2.3 TấN L dóy kớ t bt u bng ch hoc ký t gch di, theo sau l ch cỏi, ch s hoc ký t gch ni (-) - Tờn : dựng lm tờn hnG, tờn bin , nhón , tờn hm Vớ d : Tờn ỳng : _abc, Delta_1, BETA Tờn sai : 1xyz ( vỡ bt u l ch s ) A#B ( vỡ cú dõu #) Del ta ( vỡ cú khong trng) , X-1 (vỡ s dng du gch ngang) * Chỳ ý : + Tờn : ch hoa v ch thng c xem l khỏc ( ( # pascal ) + Thụng thng : - ét ch hoa cho cỏc hng, ch thng cho cỏc i lng cũn li(bin, hm ) - Nờn t cỏch gi nh ( kớ t u l cú ngha v tu thuc chng trỡnh ) CC BC CHY MT CHNG TRèNH C - chy mt chng trỡnh C ta thc hin theo cỏc bc sau ging nh cỏc chng trỡnh khỏc bng ngụn ng lp trỡnh Dos: + Vào menu file ghi lại tên tập vừa làm - Nu chng trỡnh cha c ghi ln no thỡ mt hi thoi s xut hin cho phộp bn xỏc nh tờn tin (FileName) Tờn tin phi tuõn th quy cỏch t tờn ca DOS v khụng cn cú phn m rng (s t ng cú phn m rng l C hoc CPP s núi thờm phn Option) Sau ú gừ phớm Enter - Nu chng trỡnh ó c ghi mt ln ri thỡ nú s ghi nhng thay i b sung lờn tin chng trỡnh c Chỳ ý: phũng mt in son tho chng trinh thnh thong bn nờn gừ phớm F2 Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn Quy tc t tờn tin ca DOS: Tờn ca tin gm phn: Phn tờn v phn m rng Phn tờn ca tin phi bt u l ký t t a z (khụng phõn bit hoa thng), theo sau cú th l cỏc ký t t a z, cỏc ký s t hay du gch di (_), phn ny di ti a l ký t Phn m rng: phn ny di ti a ký t Vớ d: Ghi chng trỡnh va son tho trờn lờn a vi tờn l CHAO.C Thc hin chng trỡnh + n phớm F9 dch v kim tra li + thc hin chng trỡnh hóy dựng Ctrl-F9 (gi phớm Ctrl v gừ phớm F9) Vớ d: Thc hin chng trỡnh va son tho xong v quan sỏt trờn mn hỡnh thy kt qu ca vic thc thi chng trỡnh sau ú gừ phớm bt k tr li vi Turbo Vớ d: M tin CHAO.C sau ú b sung cú chng trỡnh mi nh sau: #include #include 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 trỡnh ny (F2) v cho thc hin (Ctrl-F9) - Chý ý: Mi cõu lnh cú th vit trờn mt hay nhiu dũng nhng phi kt thỳc bng du chm phy (;) CC KIU D LIU 4.1 Kiu s nguyờn (int) Trong C cho phộp s dng cỏc kiu s nguyờn sau: Kiu Phm vi biu din Kớch thc Int Unsigned int Long (int) Unsigned long (int) -32768 n 32767 n 65535 -2147483648 n -2147483647 n 4294967295 byte byte byte byte Nhn xột: Cỏc kiu ký t cng cú th xem l mt dng ca kiu s nguyờn Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn 4.2 Kiu ký t (Char) Mt giỏ tr kiu ký t (char) chim byte b nh v biu din mt ký t thụng qua bng mó ASCII Vớ d Ký t Mó ASCII 048 049 050 A 065 a 097 Cú hai kiu ký t (char) sau: Phm vi biu din Th nht l: char (signed char) Th hai l: unsigned char S ký t Kớch thc -128 -> 127 256 byte -> 255 256 byte Vớ d char ch1; unsigned char ch2; ch1=200; ch2=200; Khi ú thc cht: Ch1=-56 Ch1 + 56=0 Ch2 + 56=256 Nhng ch1 v ch2 u biu din mt ký t cú mó 200 4.3 Kiu du phy ng Trong C s dng ba loi giỏ tr du phy ng: float ( chớnh xỏc n), double v long double ( chớnh xỏc kộp) Kiu Phm vi biu din Float 3.4E-38 -> 3.4E+38 Double 1.7E-308->1.7E+308 Long double 3.4E-4932-> 1.1E+4932 S ch s cú ngha 7-8 15-16 17-184 byte Kớch thc byte byte 10 byte - - Trửụứng Cao ng Nghe BR-VT Trang Giỏo Trỡnh Lp Trỡnh C Bn CHNG 2: KHAI BO HNG, BIN, BIU THC, TON T, VO , RA D LIU TRONG C HNG, BIN 1.1 KHAI BO HNG - Khỏi nim L mt giỏ tr bt bin chng trỡnh khụng thay i, khụng bin i Cỏc loi hng c s dng C tng ng vi cỏc kiu d liu nht nh - Trong C, thng cú cỏc loi hng sau: + Hng s + Hng ký t + Hng chui Hng s éú l cỏc giỏ tr s ó xỏc nh, mt hng s cú th l nguyờn hay thc v c vit chng trỡnh mt cỏch bỡnh thng Hng nguyờn - Giỏ tr ch bao gm cỏc ch s, du +, - c lu tr theo kiu int Vớ d: 12,-12 - Nu giỏ tr vt quỏ giỏ tr ca int hoc cú ký t l (hay L ) theo sau giỏ tr thỡ lu theo kiu long int Vớ d: 43L hoc 43l l hng nguyờn lu theo kiu long int Hng thc: Trong giỏ tr cú du chm thp phõn, hoc ghi di dng s cú m, v c lu theo kiu float, double, long double Vớ d: 1.2 , 2.1E -3 (2.1E-3=0.0021) hoc 3.1e-2 (3.1e-2=0.031) Hng ký t - Mt hng kiu ký t c vit du ngoc n (' ) nh 'A' hoc 'z' - Hng ký t 'A' thc s ng ngha vi giỏ tr nguyờn 65, l giỏ tr bng mó ASCII ca ch hoa 'A' (Nh vy giỏ tr ca hng chớnh l mó ASCII ca nú) éi vi mt vi hng ký t c bit, ta cn s dng cỏch vit thờm du \ , nh '\t' tng ng vi phớm tab: Cỏch vit \n \t \0 Ký t Xung hng Tab null- ng vi giỏ tr nguyờn bng mó ASCII (khỏc vi s 0) \b Backspacse \r CR (v u dũng) \f LF (sang trang) \\ \ \ \ Hng ký t cú th tham gia vo phộp toỏn nh mi s nguyờn khỏc: '8' - '1'= 56-49=7 Hng chui L chui ký t nm cp du nhỏy kộp " " Cỏc ký t ny cng cú th l cỏc ký t c biu din bng chui thoỏt Vớ d: "Turbo C", "Ngụn ng C++ \n\r" Trửụứng Cao ng Nghe BR-VT Trang 10 Giỏo Trỡnh Lp Trỡnh C Bn #include " stdio.h " main ( ) { float a[2][3] , *p ; int i ; p = (float*)a ; /* lu ý lnh ny */ for ( i = ; i < 2*3 ; ++i) scanf ( "%f", (p+i)) ; /* (p_+ i ) l a ch */ ( X ) } + Cỏch : Sa lnh ( X ) nh sau : scanf ( "%f", (float*)a + ) ; + Cỏch : #include " stdio.h " #define m #define n main ( ) { float a[m][n] ; int i , j ; float *p ; p = ( float* )a ; for ( i=0 ; i

Ngày đăng: 14/09/2017, 22:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan