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

Giáo trình phương pháp lập trình - ĐH CÔNG NGHI pot

127 312 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 [...]... c Ví d : x = (y=3, y+1); (u tiên y #c gán giá tr 3 và r*i x TT .Công Ngh Thông Tin #c gán giá tri y+1 là 4 27/127 Giáo trình PP l p trình B ng tóm t2t Cao nh t Th p nh t u tiên c a các toán t () [] ! ~ ++ * / + > < –– (type) * & sizeof % > -= >= *= /= %= 28/127 Giáo trình PP l p trình 16 Bi u th*c (expressions) M t bi u th c trong C/C++ là... d; // (4) TT .Công Ngh Thông Tin 20/127 Giáo trình PP l p trình i 100 double 100.0 (1) l f d 200 123.456 1.23456789 double 200.0 double 123.456 double 1.23456789 424.69056789 int n có giá tr là 424 i l 100 (3) f d 200 123.456 1.23456789 double double double double 100.0 200.0 123.456 1.23456789 424.69056789 float p có giá tr là 424.690567 TT .Công Ngh Thông Tin 21/127 Giáo trình PP l p trình i 100 double... gVar; } void increase() { gVar = gVar + 1;} TT .Công Ngh Thông Tin 16/127 Giáo trình PP l p trình void decrease() { gVar = gVar -1 ;} Sau khi th c thi ch ng trình trên, k t qu xu t trên màn hình là: Value of gVar= 100 After increased, gVar= 101; After decreased, gVar= 100; 5 T) khóa const Giá tr c a bi n có th thay i trong su t quá trình th c thi ch ng trình giá tr c a bi n không b thay i, ta t tr c... tgx=tan(t), cotgx=1/tgx 12 Nh p to o n AB 2 i m A(xA,yA), B(xB,yB) Tính và xu t TT .Công Ngh Thông Tin dài 32/127 Giáo trình PP l p trình HD: |AB|=dAB= ( x B − x A ) 2 + ( y B − y A ) 2 ) 13 Nh p to 2 i m A(xA,yA), B(xB,yB) Tính h s góc c a %ng th0ng i qua hai i m ó theo công th c: H s góc = (yB - yA) /(xB - xA) 14 Vi t ch ng trình nh p vào s nguyên n và s th c x Tính và 2 n 2 n in ra bi u th c A = ( x +... +=, -= , *=, /=, và %= Nh ng l nh có d ng: variable = variable operator expression; variable: Tên bi n operator: Toán t s h c (+, -, *, /, %) expression: Bi u th c có th #c vi t d i d ng ng n g n h n nh sau: variable operator= expression; Ví d : x = x + 10; x += 10; x = x – 10; x -= 10; x = x * 10; x *= 10; x = x / 10; x /= 10; x = x % 10; x %= 10; TT .Công Ngh Thông Tin 31/127 Giáo trình PP l p trình. .. là 1E-37 n 1E+37 Ki u void dùng khai báo hàm không tr v giá tr ho c t o nên các con tr t ng quát (generic pointers) Ngo i tr ki u void, các ki u d li u c s" có th có các t nh signed, unsigned, long, short i tr c nó Các t này làm thay i ph m vi t i thi u m i ki u c s" có th ch a B ng sau trình bày t t c các k t h#p h#p l c a ki u d li u v i các t trên TT .Công Ngh Thông Tin 12/127 Giáo trình PP l p trình. .. _creat(), creatnew(), eof(), filelength(), lock(), … TT .Công Ngh Thông Tin 11/127 Giáo trình PP l p trình Ch ng 2 BI U TH C (Expressions) Bi u th c #c t o thành t nh ng thành t nh d li u và toán t D li u có th ch a trong bi n ho c h ng Toán t trong các ngôn ng l p trình có cùng ý ngh+a nh trong toán h c Có nhi u lo i toán t nh toán t gán (=), toán t s h c (+ - * / %), toán t quan h (== < >= !=), toán... môn Toán, Lý, Hóa c a m t h c sinh In ra i m trung bình c a h c sinh ó v i hai s l& th p phân 21 Vi t ch ký s ng trình TT .Công Ngh Thông Tin o ng #c m t s nguyên d ng có úng 3 33/127 Giáo trình PP l p trình Ch ng 3 CÁC C U TRÚC I U KHI N (Control structures) 1 GI4I THI U T t c các ch ng trình máy tính dù n gi n hay ph c t p u #c vi t b ng cách s d ng các c u trúc i u khi n Có 3 lo i c u trúc i u khi... s h c g*m: + (c ng), - (tr ), * (nhân), / (chia), và % (l y ph(n d c a phép chia nguyên) Khi t s và m!u s c a phép chia là s nguyên thì ó là phép chia nguyên nên ph(n d c a phép chia nguyên b c t b Ví d , 5/2 thì k t qu là 2 Toán t l y ph(n d % (modulus operator) ch, áp d ng v i s nguyên và tr v ph(n d Ví d , 7%2 thì k t qu là 1 TT .Công Ngh Thông Tin 22/127 Giáo trình PP l p trình 11 Toán t ++ và... C/C++, giá tr 0 (zero) #c xem là false và giá tr khác 0 (non-zero) #c xem là true Các toán t quan h g*m: Toán t > >= < = 500 // false Các toán t lu n lý: Operator && || . 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. 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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

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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w