Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 127 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
127
Dung lượng
4,17 MB
Nội dung
T T R R N N G G I I H H C C C C Ô Ô N N G G N N G G H H I I P P T T P P / / H H C C M M T T R R U U N N G G T T Â Â M M C C Ô Ô N N G G N N G G H H T T H H Ô Ô N N G G T T I I N N - - o o 0 0 o o - - G G i i á á o o T T r r ì ì n n h h P P H H N N G G P P H H Á Á P P L L P P T T R R Ì Ì N N H H T T H H Á Á N N G G 8 8 / / 2 2 0 0 0 0 8 8 Giáo trình PP lp trình TT.Công Ngh Thông Tin 2/127 MC LC Chng 1: TNG QUAN V NGÔN NG LP TRÍNH C/C++ 4 1. Lch s ca ngôn ng lp trình C/C++ 4 2. Phng pháp gii quyt mt bài toán 4 3. Các bc trong chu trình phát trin chng trình 5 4. Kho sát mt chng trình C/C++ n gin 7 5. Các chú thích (comments) 9 6. Cu trúc ca mt chng trình C/C++ 10 7. Các tp tin th vin thông dng 11 Chng 2: BIU THC 12 1. Kiu d liu (data types) 12 2. Các nh danh (Identifier names) 13 3. T khóa (keywords) 14 4. Bin (variables) 14 5. T khóa const 17 6. Hng (constants) 17 7. Hng chui ký t (string constants) 18 8. Hng ký t c bit (escape sequences) 18 9. Toán t (operators) 19 10. Các toán t s hc (arithmetic operators) 22 11. Toán t ++ và (increment and decrement operators) 23 12. Toán t quan h & lun lý 24 13. Toán t ? (? operator) 26 14. Toán t sizeof 26 15. Toán t du phy (comma operator) 27 16. Biu thc (expressions) 29 17. Chuyn i kiu trong các biu thc 29 18. Ép kiu (casting) 30 19. Dng vit tt ca câu lnh gán (shorthand assignments) 31 Chng 3: CÁC CU TRÚC IU KHIN 34 1. Gii thiu 34 2. Cu trúc la chn if 35 3. Cu trúc la chn switch case 39 4. Các cu trúc lp (Loop structures) 44 5. Các lnh r nhánh và nhy 50 Chng 4: MNG 61 1. Gii thiu Mng 61 2. Mng 1 chiu 61 Giáo trình PP lp trình TT.Công Ngh Thông Tin 3/127 3. Mng nhiu chiu 64 Chng 5: CON TR 71 1. Gii thiu Con tr 71 2. Bin con tr (pointer variables) 72 3. Mt s ví d v con tr 75 4. Cp phát b nh ng 75 5. Con tr void (void pointers) 78 6. Con tr null (Null pointers) 79 7. Con tr và mng 80 8. Mng con tr 81 Chng 6: HÀM 83 1. Khái nim hàm 83 2. Dng tng quát ca hàm 84 3. Các qui tc v phm vi ca hàm 85 4. Tham s hình thc và tham s thc 85 5. Truyn mng vào hàm 88 6. i s ca hàm main 89 7. Lnh return 90 8. qui 92 9. Nguyên m!u hàm (function prototypes) 93 10. Cu trúc ca mt chng trình vit di dng hàm 94 Chng 7: CHUI KÝ T 96 1. Gii thiu Chui 96 2. Khai báo và kh"i to chui 96 3. Nhp chui 97 4. Xut chui 97 5. Mt s hàm th vin thao tác trên chui 97 6. Mt s ví d v chui 98 7. Mng các chui 99 8. Mng con tr n các chui 101 Chng 8: STRUCTURES – ENUM - typedef 105 1. Structures 105 2. Kiu lit kê (Enumerations, enum) 111 3. typedef 112 Chng 9: TP TIN 114 1. Streams và Files 114 2. Streams (dòng nhp xut) 114 3. Files 115 4. Truy xut file ng!u nhiên 124 5. Các stream chun 124 Giáo trình PP lp trình TT.Công Ngh Thông Tin 4/127 Chng 1 TNG QUAN V NGÔN NG LP TRÌNH C/C++ 1. Lch s ca ngôn ng lp trình C/C++ C #c to b"i Dennis Ritchie " Bell Telephone Laboratories vào n$m 1972 cho phép lp trình viên phát trin các ng dng hiu qu hn các ngôn ng lp trình hin có ti th%i im ó. im mnh và mm d&o ca C cho phép các nhà phát trin " Bell Labs to nên các ng dng phc tp nh h iu hành Unix. Vào n$m 1983, hc vin chun quc gia M' (American National Standards Institute - ANSI) thành lp mt tiu ban chun hóa C #c bit n nh ANSI Standard C. Ngày nay, tt c trình biên dch C/C++ u tuân theo ANSI Standard C. C++ #c xây dng trên nn tng ca ANSI Standard C. C++ là mt ngôn ng lp trình hng i t#ng mà bao hàm ngôn ng C " trong nó. Trong giáo trình này cha kho sát ph(n lp trình hng i t#ng ca C++. 2. Phng pháp gii quyt mt bài toán Mt chng trình máy tính #c thit k gii quyt mt bài toán nào ó. Vì vy, nhng bc c(n tìm kim l%i gii cho mt bài toán c)ng ging nh nhng bc c(n vit mt chng trình. Các bc g*m: - Xác nh yêu c(u ca bài toán. - Ngh+ ra mt phng cách (algorithm) tìm l%i gii. - Thc hin phng cách ó. - Kim tra kt qu xem l%i gii có úng vi yêu c(u ca bài toán. Giáo trình PP lp trình TT.Công Ngh Thông Tin 5/127 Khi vit mt chng trình trong C/C++, ây là nhng bc #c ngh: 1. Xác nh mc ích ca chng trình 2. Ngh+ ra thut toán phù h#p gii quyt bài toán (dùng mã gi, lu *, ) 3. Cài t (vit) thut toán dùng ngôn ng lp trình C/C++ 4. Thc thi chng trình và kim th (testing). 3. Các b c trong chu trình phát trin chng trình Chu trình phát trin chng trình (program development cycle) có nhng bc sau ây. 1. Mt trình son tho v$n bn #c dùng nhp mã ngu*n (source code). 2. Mã ngu*n #c biên dch (compile) to nên tp tin i t#ng (object file). 3. Các tp tin i t#ng #c liên kt (link) to nên tp tin có th thc thi (executable file). 4. Thc hin (run) chng trình ch, ra chng trình có làm vic úng nh ã nh không. Use editor Source code Compile source file Object code Link object file Library files Exec utable program (C-free, Borland C/C++ editor) (.c; .cpp files) (bc.exe) (.h files) (.exe file) Giáo trình PP lp trình TT.Công Ngh Thông Tin 6/127 3.1. So!n tho mã ngu"n (source code editor) Mã ngu*n là mt tp các lnh dùng ch, d!n máy tính thc hin công vic mong mun. Tp tin mã ngu*n #c lu tr vi ph(n phân loi .c (C) hoc .cpp (C++). 3.2. Biên dch (compile) Tp tin mã ngu*n #c vit bng nhng t ging ting Anh nên d- dàng c và hiu. Tuy nhiên, máy tính không th hiu nhng t này. Máy tính yêu c(u các ch, d!n nh phân (binary) trong dng thc ca ngôn ng máy (machine language). Trc khi mt chng trình #c vit bng ngôn ng cp cao nh C/C++ có th thc thi trên máy tính, nó phi #c biên dch t mã ngu*n sang mã máy. Vic dch này #c thc hin b"i mt chng trình gi là trình biên dch (compiler). Các ch, d!n ngôn ng máy #c to b"i trình biên dch #c gi là mã i t#ng (object code) và tp tin cha chúng gi là tp tin i t#ng. Tp tin i t#ng có cùng tên nh tp tin mã ngu*n nhng có ph(n phân loi .obj. 3.3. T!o tp tin th#c thi (executable files) C/C++ có mt th vin hàm cha mã i t#ng cho nhng hàm ã #c to s.n. Nhng hàm này thc hin các tác v th%ng dùng nh xóa màn hình (clrscr()), nhp mt chui ký t t bàn phím (gets()), tính c$n bc hai (sqrt()), mà chng trình #c vit có th s dng mà không phi vit li. Tp tin i t#ng #c to ra b"i trình biên dch s kt h#p vi mã i t#ng ca các hàm th vin to nên tp tin thc thi. Quá trình này #c gi là liên kt (linking), #c thc hin b"i mt chng trình gi là b liên kt (linker). Giáo trình PP lp trình TT.Công Ngh Thông Tin 7/127 3.4. Th#c thi chng trình Khi chng trình ngu*n #c biên dch và liên kt to nên tp tin thc thi (có ph(n phân loi .exe), nó có th thc thi trên máy tính ti du nhc h thng. Nu chng trình hot ng không úng nh yêu c(u, vn có th là do li lp trình. Trong tr%ng h#p này, ch,nh sa chng trình ngu*n, biên dch li và liên kt li to nên phiên bn mi ca tp tin chng trình. Quá trình bn bc này #c lp i lp li cho n khi tp tin thc thi thc hin úng yêu c(u ca bài toán. 4. Kho sát mt chng trình C/C++ n gin Kho sát mt chng trình n gin dùng xut ra màn hình dòng ch Hello World! // my first program in C/C++ #include <conio.h> #include <iostream.h> int main() { cout << "Hello World!"; //Output “Hello World!” getche(); return 0; } ây là chng trình n gin nhng nó ã bao hàm nhng thành ph(n c bn mà mi chng trình C/C++ u có. Vi ý ngh+a ca tng dòng nh sau: // my first program in C/C++ ây là dòng chú thích, tt c các dòng bt (u bng hai du // #c coi là các dòng chú thích, nó không nh h"ng n hot ng ca chng trình, ch, dùng gii thích mã ngu*n ca chng trình. Giáo trình PP lp trình TT.Công Ngh Thông Tin 8/127 #include <iostream.h> Các lnh bt (u bng du # #c dùng cho các ch, th tin x lý (preprocessor). Trong ví d này, câu lnh #include báo cho trình biên dch bit c(n phi gp th vin iostream.h là tp tin header chun ca C/C++, cha các nh ngh+a v nhp và xut. int main() nh ngh+a hàm main(). Hàm main() là im mà tt c các chng trình C/C++ bt (u thc hin. Nó không ph thuc vào v trí ca hàm, ni dung ca nó luôn #c thc hin (u tiên khi chng trình thc thi. Mt chng trình C/C++ u phi t*n ti mt hàm main(). Hàm main() có th có hoc không có tham s. Ni dung ca hàm main() tip ngay sau ph(n khai báo chính thc #c t trong cp du ngoc { }. cout << "Hello World!"; ây là mt lnh nm trong ph(n thân ca hàm main. cout là mt dòng (stream) xut chun trong C/C++ #c nh ngh+a trong th vin iostream.h. Khi dòng lnh này #c thc thi, kt qu là chui "Hello World!" #c xut ra màn hình. Dòng lnh #c kt thúc bng du chm phy (;). getche(); ây là mt hàm th vin dùng ch% nhp mt ký t t bàn phím. return 0; Lnh return kt thúc hàm main và tr v giá tr biu thc i sau nó, trong tr%ng h#p này là 0. ây là mt kt thúc bình th%ng ca mt chng trình không có li trong quá trình thc hin. Chng trình trên có th vit li nh sau: int main() { cout << " Hello World! "; getch(); return 0;} c)ng cho cùng mt kt qu. Giáo trình PP lp trình TT.Công Ngh Thông Tin 9/127 5. Các chú thích (comments) Các chú thích #c các lp trình viên s dng ghi chú hay mô t trong các ph(n ca chng trình. Trong C/C++ có hai cách chú thích: Chú thích dòng: dùng cp du //. T v trí // n cui dòng #c xem là chú thích Chú thích khi (chú thích trên nhiu dòng) dùng cp /* */. Nhng gì nm gia cp du này #c xem là chú thích. Ví d: /* My second program in C/C++ with more comments Author: Novice programmer Date: 01/01/2008 */ #include <conio.h> #include <iostream.h> int main() { cout << "Hello World! "; // output Hello World! cout << "I hate C/C++."; // output I hate C/C++. getche(); return 0; } Kt qu xut ca chng trình là: Hello World! I hate C/C++. Giáo trình PP lp trình TT.Công Ngh Thông Tin 10/127 6. C$u trúc ca mt chng trình C/C++ Cu trúc mt chng trình C/C++ bao g*m các thành ph(n nh: Các ch, th tin x lý, khai báo bin toàn cc, chng trình chính (hàm main), Kho sát chng trình sau: /* fact.c Purpose: prints the factorials of the numbers from 0 through 10 Author: Mr.Beginner Date: 01/01/2008 */ #include <iostream.h> int factorial(int n); int main() { int i; for(i=0; i<=10; i++) cout<<i<<“!=“<<factorial(i); return 0; } /* This function computes the factorial of its parameter, returning it */ int factorial(int n) { int i, product; product = 1; for (i=2;i<=n;i++) prod *= i; return product; } Phn này thng dùng mô t mc ính chng trình, tác gi, ngày vit, (Phn không bt buc) Khai báo các tp tin th vin Khai báo prototype ca các hàm t to Hàm chính ca chng trình nh ngha các hàm do ngi dùng t xây dng [...]... V m t cú pháp, kh i l nh t ng ng 1 câu l nh n Do ó n i âu xu t hi n 1 l nh thì n i ó có th xu t hi n 1 kh i l nh Ví d : if (a . thut toán dùng ngôn ng lp trình C/C++ 4. Thc thi chng trình và kim th (testing). 3. Các b c trong chu trình phát trin chng trình Chu trình phát trin chng trình (program development. qu xut ca chng trình là: Hello World! I hate C/C++. Giáo trình PP lp trình TT.Công Ngh Thông Tin 10/ 127 6. C$u trúc ca mt chng trình C/C++ Cu trúc mt chng trình C/C++ bao g*m. trình này #c gi là liên kt (linking), #c thc hin b"i mt chng trình gi là b liên kt (linker). Giáo trình PP lp trình TT.Công Ngh Thông Tin 7/127 3.4. Th#c thi chng trình