1. Trang chủ
  2. » Công Nghệ Thông Tin

PHƯƠNG PHÁP LẬP TRÌNH_10 pptx

127 116 0

Đ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

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 lp trình TT.Công Ngh Thông Tin 2/127 MC LC Chng 1: TNG QUAN V NGÔN NG LP TRÍNH C/C++ 4 1. Lch s ca ngôn ng lp trình C/C++ 4 2. Phng pháp  gii quyt mt bài toán 4 3. Các bc trong chu trình phát trin chng trình 5 4. Kho sát mt chng trình C/C++ n gin 7 5. Các chú thích (comments) 9 6. Cu trúc ca mt chng trình C/C++ 10 7. Các tp tin th vin thông dng 11 Chng 2: BIU THC 12 1. Kiu d liu (data types) 12 2. Các nh danh (Identifier names) 13 3. T khóa (keywords) 14 4. Bin (variables) 14 5. T khóa const 17 6. Hng (constants) 17 7. Hng chui ký t (string constants) 18 8. Hng ký t c bit (escape sequences) 18 9. Toán t (operators) 19 10. Các toán t s hc (arithmetic operators) 22 11. Toán t ++ và (increment and decrement operators) 23 12. Toán t quan h & lun lý 24 13. Toán t ? (? operator) 26 14. Toán t sizeof 26 15. Toán t du phy (comma operator) 27 16. Biu thc (expressions) 29 17. Chuyn i kiu trong các biu thc 29 18. Ép kiu (casting) 30 19. Dng vit tt ca câu lnh gán (shorthand assignments) 31 Chng 3: CÁC CU TRÚC IU KHIN 34 1. Gii thiu 34 2. Cu trúc la chn if 35 3. Cu trúc la chn switch case 39 4. Các cu trúc lp (Loop structures) 44 5. Các lnh r nhánh và nhy 50 Chng 4: MNG 61 1. Gii thiu Mng 61 2. Mng 1 chiu 61 Giáo trình PP lp trình TT.Công Ngh Thông Tin 3/127 3. Mng nhiu chiu 64 Chng 5: CON TR 71 1. Gii thiu Con tr 71 2. Bin con tr (pointer variables) 72 3. Mt s ví d v con tr 75 4. Cp phát b nh ng 75 5. Con tr void (void pointers) 78 6. Con tr null (Null pointers) 79 7. Con tr và mng 80 8. Mng con tr 81 Chng 6: HÀM 83 1. Khái nim hàm 83 2. Dng tng quát ca hàm 84 3. Các qui tc v phm vi ca hàm 85 4. Tham s hình thc và tham s thc 85 5. Truyn mng vào hàm 88 6. i s ca hàm main 89 7. Lnh return 90 8.  qui 92 9. Nguyên m!u hàm (function prototypes) 93 10. Cu trúc ca mt chng trình vit di dng hàm 94 Chng 7: CHUI KÝ T 96 1. Gii thiu Chui 96 2. Khai báo và kh"i to chui 96 3. Nhp chui 97 4. Xut chui 97 5. Mt s hàm th vin thao tác trên chui 97 6. Mt s ví d v chui 98 7. Mng các chui 99 8. Mng con tr n các chui 101 Chng 8: STRUCTURES – ENUM - typedef 105 1. Structures 105 2. Kiu lit kê (Enumerations, enum) 111 3. typedef 112 Chng 9: TP TIN 114 1. Streams và Files 114 2. Streams (dòng nhp xut) 114 3. Files 115 4. Truy xut file ng!u nhiên 124 5. Các stream chun 124 Giáo trình PP lp trình TT.Công Ngh Thông Tin 4/127 Chng 1 TNG QUAN V NGÔN NG LP TRÌNH C/C++ 1. Lch s ca ngôn ng lp trình C/C++ C #c to b"i Dennis Ritchie " Bell Telephone Laboratories vào n$m 1972  cho phép lp trình viên phát trin các ng dng hiu qu hn các ngôn ng lp trình hin có ti th%i im ó. im mnh và mm d&o ca C cho phép các nhà phát trin " Bell Labs to nên các ng dng phc tp nh h iu hành Unix. Vào n$m 1983, hc vin chun quc gia M' (American National Standards Institute - ANSI) thành lp mt tiu ban  chun hóa C #c bit n nh ANSI Standard C. Ngày nay, tt c trình biên dch C/C++ u tuân theo ANSI Standard C. C++ #c xây dng trên nn tng ca ANSI Standard C. C++ là mt ngôn ng lp trình hng i t#ng mà bao hàm ngôn ng C " trong nó. Trong giáo trình này cha kho sát ph(n lp trình hng i t#ng ca C++. 2. Phng pháp  gii quyt mt bài toán Mt chng trình máy tính #c thit k  gii quyt mt bài toán nào ó. Vì vy, nhng bc c(n  tìm kim l%i gii cho mt bài toán c)ng ging nh nhng bc c(n  vit mt chng trình. Các bc g*m: - Xác nh yêu c(u ca bài toán. - Ngh+ ra mt phng cách (algorithm)  tìm l%i gii. - Thc hin phng cách ó. - Kim tra kt qu  xem l%i gii có úng vi yêu c(u ca bài toán. Giáo trình PP lp trình TT.Công Ngh Thông Tin 5/127 Khi vit mt chng trình trong C/C++, ây là nhng bc #c  ngh: 1. Xác nh mc ích ca chng trình 2. Ngh+ ra thut toán phù h#p  gii quyt bài toán (dùng mã gi, lu *, ) 3. Cài t (vit) thut toán dùng ngôn ng lp trình C/C++ 4. Thc thi chng trình và kim th (testing). 3. Các b c trong chu trình phát trin chng trình Chu trình phát trin chng trình (program development cycle) có nhng bc sau ây. 1. Mt trình son tho v$n bn #c dùng  nhp mã ngu*n (source code). 2. Mã ngu*n #c biên dch (compile)  to nên tp tin i t#ng (object file). 3. Các tp tin i t#ng #c liên kt (link)  to nên tp tin có th thc thi (executable file). 4. Thc hin (run) chng trình  ch, ra chng trình có làm vic ú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 lp trình TT.Công Ngh Thông Tin 6/127 3.1. So!n tho mã ngu"n (source code editor) Mã ngu*n là mt tp các lnh dùng  ch, d!n máy tính thc hin công vic mong mun. Tp tin mã ngu*n #c lu tr vi ph(n phân loi .c (C) hoc .cpp (C++). 3.2. Biên dch (compile) Tp tin mã ngu*n #c vit bng nhng t ging ting Anh nên d- dàng  c và hiu. Tuy nhiên, máy tính không th hiu nhng t này. Máy tính yêu c(u các ch, d!n nh phân (binary) trong dng thc ca ngôn ng máy (machine language). Trc khi mt chng trình #c vit bng ngôn ng cp cao nh C/C++ có th thc thi trên máy tính, nó phi #c biên dch t mã ngu*n sang mã máy. Vic dch này #c thc hin b"i mt chng trình gi là trình biên dch (compiler). Các ch, d!n ngôn ng máy #c to b"i trình biên dch #c gi là mã i t#ng (object code) và tp tin cha chúng gi là tp tin i t#ng. Tp tin i t#ng có cùng tên nh tp tin mã ngu*n nhng có ph(n phân loi .obj. 3.3. T!o tp tin th#c thi (executable files) C/C++ có mt th vin hàm cha mã i t#ng cho nhng hàm ã #c to s.n. Nhng hàm này thc hin các tác v th%ng dùng nh xóa màn hình (clrscr()), nhp mt chui ký t t bàn phím (gets()), tính c$n bc hai (sqrt()), mà chng trình #c vit có th s dng mà không phi vit li. Tp tin i t#ng #c to ra b"i trình biên dch s kt h#p vi mã i t#ng ca các hàm th vin  to nên tp tin thc thi. Quá trình này #c gi là liên kt (linking), #c thc hin b"i mt chng trình gi là b liên kt (linker). Giáo trình PP lp trình TT.Công Ngh Thông Tin 7/127 3.4. Th#c thi chng trình Khi chng trình ngu*n #c biên dch và liên kt  to nên tp tin thc thi (có ph(n phân loi .exe), nó có th thc thi trên máy tính ti du nhc h thng. Nu chng trình hot ng không úng nh yêu c(u, vn  có th là do li lp trình. Trong tr%ng h#p này, ch,nh sa chng trình ngu*n, biên dch li và liên kt li  to nên phiên bn mi ca tp tin chng trình. Quá trình bn bc này #c lp i lp li cho n khi tp tin thc thi thc hin úng yêu c(u ca bài toán. 4. Kho sát mt chng trình C/C++ n gin Kho sát mt chng trình n gin dùng  xut 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à chng trình n gin nhng nó ã bao hàm nhng thành ph(n c bn mà mi chng trình C/C++ u có. Vi ý ngh+a ca tng dòng nh sau: // my first program in C/C++ ây là dòng chú thích, tt c các dòng bt (u bng hai du // #c coi là các dòng chú thích, nó không nh h"ng n hot ng ca chng trình, ch, dùng  gii thích mã ngu*n ca chng trình. Giáo trình PP lp trình TT.Công Ngh Thông Tin 8/127 #include <iostream.h> Các lnh bt (u bng du # #c dùng cho các ch, th tin x lý (preprocessor). Trong ví d này, câu lnh #include báo cho trình biên dch bit c(n phi gp th vin iostream.h là tp tin header chun ca C/C++, cha các nh ngh+a v nhp và xut. int main() nh ngh+a hàm main(). Hàm main() là im mà tt c các chng trình C/C++ bt (u thc hin. Nó không ph thuc vào v trí ca hàm, ni dung ca nó luôn #c thc hin (u tiên khi chng trình thc thi. Mt chng trình C/C++ u phi t*n ti mt hàm main(). Hàm main() có th có hoc không có tham s. Ni dung ca hàm main() tip ngay sau ph(n khai báo chính thc #c t trong cp du ngoc { }. cout << "Hello World!"; ây là mt lnh nm trong ph(n thân ca hàm main. cout là mt dòng (stream) xut chun trong C/C++ #c nh ngh+a trong th vin iostream.h. Khi dòng lnh này #c thc thi, kt qu là chui "Hello World!" #c xut ra màn hình. Dòng lnh #c kt thúc bng du chm phy (;). getche(); ây là mt hàm th vin dùng  ch% nhp mt ký t t bàn phím. return 0; Lnh return kt thúc hàm main và tr v giá tr biu thc i sau nó, trong tr%ng h#p này là 0. ây là mt kt thúc bình th%ng ca mt chng trình không có li trong quá trình thc hin. Chng trình trên có th vit li nh sau: int main() { cout << " Hello World! "; getch(); return 0;} c)ng cho cùng mt kt qu. Giáo trình PP lp 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 lp trình viên s dng  ghi chú hay mô t trong các ph(n ca chng trình. Trong C/C++ có hai cách  chú thích: Chú thích dòng: dùng cp du //. T v trí // n cui dòng #c xem là chú thích Chú thích khi (chú thích trên nhiu dòng) dùng cp /* */. Nhng gì nm gia cp du 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; } Kt qu xut ca chng trình là: Hello World! I hate C/C++. Giáo trình PP lp trình TT.Công Ngh Thông Tin 10/127 6. C$u trúc ca mt chng trình C/C++ Cu trúc mt chng trình C/C++ bao g*m các thành ph(n nh: Các ch, th tin x lý, khai báo bin toàn cc, chng trình chính (hàm main), Kho sát chng 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; } Phn này thng dùng  mô t mc ính chng trình, tác gi, ngày vit, (Phn không bt buc) Khai báo các tp tin th vin Khai báo prototype ca các hàm t to Hàm chính ca chng trình nh ngha các hàm do ngi dùng t xây dng [...]... 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 . thut toán dùng ngôn ng lp trình C/C++ 4. Thc thi chng trình và kim th (testing). 3. Các b c trong chu trình phát trin chng trình Chu trình phát trin chng trình (program development. qu xut ca chng trình là: Hello World! I hate C/C++. Giáo trình PP lp trình TT.Công Ngh Thông Tin 10/ 127 6. C$u trúc ca mt chng trình C/C++ Cu trúc mt chng trình C/C++ bao g*m. trình này #c gi là liên kt (linking), #c thc hin b"i mt chng trình gi là b liên kt (linker). Giáo trình PP lp trình TT.Công Ngh Thông Tin 7/127 3.4. Th#c thi chng trình

Ngày đăng: 27/06/2014, 11:20

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN