intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Vo Van Tien | Ngày: | Loại File: PDF | Số trang:127

100
lượt xem
41
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

C #được tạo bởi Dennis Ritchie " Bell Telephone Laboratories vào n$m 1972 cho phép lp trình viên phát tri n các ng dng hiu qu hn các ngôn ng lp trình hin có ti th%i i m ó. i m mnh và mm d&o ca C cho phép các nhà phát tri n " 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 m t ti u ban  chun hóa C #c bi t  n nh ANSI Standard C. Ngày nay, tt c trình biên dch C/C++ u tuân theo...

Chủ đề:
Lưu

Nội dung Text: PHƯƠNG PHÁP LẬP TRÌNH_10

  1. TR NG I H C C Ô N G N G H I P TP / H C M TRUNG TÂM CÔNG NGH THÔNG TIN -o0o- Giáo Trình PH NG PHÁP L P TRÌNH T H Á N G 8 /2 0 0 8
  2. Giáo trình PP l p trình M CL 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 TT.Công Ngh Thông Tin 2/127
  3. Giáo trình PP l p trình 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 TT.Công Ngh Thông Tin 3/127
  4. Giáo trình PP l p trình 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. - T h 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. TT.Công Ngh Thông Tin 4/127
  5. Giáo trình PP l p trình 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 (C-free, Borland C/C++ editor) editor Source (.c; .cpp files) code Compile (bc.exe) source file Object code (.h files) (.exe file) Link Executable Library object file files program TT.Công Ngh Thông Tin 5/127
  6. Giáo trình PP l p trình 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). TT.Công Ngh Thông Tin 6/127
  7. Giáo trình PP l p trình 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 #include int main() { cout
  8. Giáo trình PP l p trình #include 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
  9. Giáo trình PP l p trình 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 #include int main() { cout
  10. Giáo trình PP l p trình 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 Ph n này th ng dùng mô Purpose: prints the factorials of t m c ính ch ng trình, tác the numbers from 0 through 10 gi , ngày vi t, ... (Ph n không Author: Mr.Beginner b t b u c) Date: 01/01/2008 */ Khai báo các t p tin th vi n #include Khai báo prototype c a các int factorial(int n); hàm t t o int main() { int i; Hàm chính c a ch ng trình for(i=0; i
  11. Giáo trình PP l p trình 7. Các t p tin th vi%n thông d&ng ây là các t p tin ch a nh ngh+a các hàm thông d ng khi l p trình C/C++. Mu n s d ng các hàm trong các t p tin header này thì ph i khai báo #include " ph(n (u c a ch ng trình, v i FileName.h là tên t p tin th vi n. Các t p tin th vi n thông d ng g*m: stdio.h(C), iostream.h(C++) T p tin nh ngh+a các hàm vào/ra chu n (standard input/output) g*m các hàm xu t d li u (printf())/cout), nh p giá tr cho bi n (scanf())/cin), nh n ký t t bàn phím (getc()), in ký t ra màn hình (putc()), nh p m t chu i ký t t bàm phím (gets()), xu t chu i ký t ra màn hình (puts()), xóa vùng m bàn phím (fflush()), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(), ... conio.h : T p tin nh ngh+a các hàm vào ra trong ch DOS (DOS console) g*m các hàm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(), … math.h: T p tin nh ngh+a các hàm toán h c g*m các hàm abs(), sqrt(), log(), log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(), … alloc.h: T p tin nh ngh+a các hàm liên quan n vi c qu n lý b nh g*m các hàm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), … io.h: T p tin nh ngh+a các hàm vào ra c p th p g*m các hàm open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(), … TT.Công Ngh Thông Tin 11/127
  12. 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 t lu n lý (&& || !), ... 1. Ki u d li%u (data types) C/C++ có n$m ki u d li u c s": ký t (char), s nguyên (int), s th c (float), s th c có chính xác g p ôi (double), và ki u vô nh (void). T t c nh ng ki u d li u khác u d a trên 5 ki u c s" này. Kích th c và ph m vi c a nh ng ki u d li u này có th thay i tùy theo lo i CPU và trình biên d ch. Ki u char #c dùng gi các giá tr c a b mã ASCII (Amercican Standard Code for Information Interchange). Ki u char chi m 1 byte b nh . Kích th c c a ki u int là 16 bits (2 bytes) trên môi tr %ng 16-bit nh DOS, Windows 3.1. Môi tr %ng 32-bit nh Windows 95, kích th c ki u int là 32 bits (4 bytes). Nói chung, tùy thu c môi tr %ng, kích th c c a ki u int có th khác nhau. Chu n C ch, ra ph m vi t i thi u c a ki u d li u s th c (float, double) 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
  13. Giáo trình PP l p trình Kích th c Ki u d li%u Ph!m vi t(i thi u b'ng bits char 8 -127 to 127 unsigned char 8 0 to 255 signed char 8 -127 to 127 int 16 or 32 -32,767 to 32,767 unsigned int 16 or 32 0 to 65,535 signed int 16 or 32 gi ng nh int short int ho c short 16 -32,767 to 32,767 unsigned short int 16 0 to 65,535 signed short int 16 gi ng nh short int long int ho c long 32 -2,147,483,647 to 2,147,483,647 signed long int 32 gi ng nh long int unsigned long int 32 0 to 4,294,967,295 float 32 chính xác là 6 ký s double 64 chính xác là 10 ký s long double 80 chính xác là 10 ký s nh danh (Identifier names) 2. Các Trong C/C++, tên c a các bi n, h ng, hàm,... # c g i là n h danh. Nh ng nh danh này có th là 1 ho c nhi u ký t . Ký t ( u tiên ph i là m t ch cái ho c d u _ (underscore), nh ng ký t theo sau ph i là ch cái, ch s , ho c d u _. Sau ây là nh ng nh danh úng và sai: úng Sai count 1count test23 hi!there high_balance high...balance C/C++ phân bi t ký t HOA và th %ng. Vì v y, count, Count, và COUNT là 3 danh nh khác nhau. TT.Công Ngh Thông Tin 13/127
  14. Giáo trình PP l p trình nh danh không #c trùng v i các t khóa (keywords) và không nên có cùng tên nh các hàm th vi n c a C/C++. 3. T) khóa (keywords) Là nh ng t ã #c dành riêng b"i ngôn ng l p trình cho nh ng m c ích riêng c a nó. Không #c dùng t khóa t tên cho nh ng nh danh nh bi n, h ng, hàm, ... T t c các t khóa trong C/C++ u là ch th %ng (lowercase). Sau ây là danh sách các t khóa c a C/C++: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 4. Bi n (variables) M t bi n là nh danh c a m t vùng trong b nh dùng gi m t giá tr mà có th b thay i b"i ch ng trình. T t c bi n ph i #c khai báo tr c khi #c s d ng. D ng khai báo bi n t ng quát là: type variableNames; type: ph i là m t trong các ki u d li u h#p l . variableNames: tên c a m t hay nhi u bi n phân cách nhau b"i d u ph y. Ngoài ra, ta có th v a khai báo v a kh"i t o giá tr ban ( cho u các bi n dùng cú pháp sau: type varName1=value, ... , varName_n=value; Ví d : int i, j; // khai báo 2 bi n i, j ki u int // khai báo ba bi n day, month và year ki u short int short day, month, year; TT.Công Ngh Thông Tin 14/127
  15. Giáo trình PP l p trình char ch; // khai báo bi n ch ki u ký t // khai bao 4 bien kieu float, gán average giá tr 0 float mark1, mark2, mark3, average = 0; L u ý: Khi khai báo bi n n u không cung c p giá tr kh i t o thì giá tr c a bi n là ch a xác nh. Do ó, vi c dùng nh ng bi n này trong các bi u th c là vô ngh a. Bi n #c khai báo t i ba n i: bên trong hàm, trong nh ngh+a tham s c a hàm, và bên ngoài t t c hàm. Nh ng bi n này #c g i l(n l #t là bi n c c b , các tham s hình th c, và bi n toàn c c. 4.1. Bi n c&c b (local variables) Nh ng bi n #c khai báo bên trong m t hàm g i là bi n c c b . Các bi n c c b ch, #c tham chi u n ch, b"i nh ng l nh n m trong kh i (block) có khai báo bi n. M t kh i b t (u v i d u { và k t thúc v i d u }. Bi n c c b ch, t*n t i trong khi kh i ch a nó ang th c thi và b h y khi kh i ch a nó th c thi xong. Ví d : Xem xét hai hàm sau: void func1(void) { int x; x = 10; } void func2(void) { int x; x = -199; } Bi n nguyên x #c khai báo 2 l(n, m t trong hàm func1() và m t trong hàm func2(). Bi n x trong func1() không có quan h gì v i bi n x trong func2() b"i vì m i x ch, t*n t i trong kh i ch a nó. TT.Công Ngh Thông Tin 15/127
  16. Giáo trình PP l p trình 4.2. Các tham s( hình th*c (formal parameters) N u m t hàm có nh n các i s truy n vào hàm thì nó ph i khai báo các bi n nh n giá tr c a các i s khi hàm #c g i. Nh ng bi n này g i là các tham s hình th c. Nh ng bi n này #c i x gi ng nh các bi n c c b khác #c khai báo trong hàm. Xem xét ví d sau: int sum(int from, int to) { int total=0; for(int i=from ; i
  17. 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 khai báo bi n t khóa const. T khi bi n ã có giá tr , giá tr này s không bao gi% b thay i b"i b t k/ l nh nào trong ch ng trình. Thông th %ng ta dùng ch HOA t tên cho nh ng bi n này. Ví d : khai báo h ng nguyên MAX có giá tr 100 const int MAX = 200; 6. H'ng (constants) H ng là nh ng giá tr c nh (fixed values) mà ch ng trình không th thay i. B t k/ ki u d li u nào c)ng có h ng t ng ng. H ng còn #c g i là literals. H ng ký t #c bao quanh b"i c p d u nháy n. Ví d 'a' và '%' là nh ng h ng ký t . H ng nguyên là nh ng s mà không có ph(n th p phân. Ví d 100 và -100 là nh ng h ng nguyên. H ng s th c yêu c(u m t d u ch m th p phân phân cách ph(n nguyên v i ph(n th p phân. Ví d 123.45 là m t h ng s th c. Ví d v cách vi t các lo i h ng s : Ki u d li%u Các ví d& v+ h'ng Ghi chú int 1, 123, 21000, 234 long int 35000L, 34l Có ký t l ho c L " cu i unsigned int 10000U, 987u, 40000U Có ký t u ho c U " cu i float 123.23f, 4.34e-3F Có ký t f ho c F " cu i double 123.23, 1.0, 0.9876324 long double 1001.2L Có ký t l ho c L " cu i TT.Công Ngh Thông Tin 17/127
  18. Giáo trình PP l p trình 7. H'ng chu,i ký t# (string constants) C/C++ cung c p m t l ai h ng khác g i là chu i. M t chu i là m t t p các ký t #c bao quanh b"i c p d u nháy ôi. Ví d , "This is a string" là m t chu i. L u ý phân bi t h ng chu i và h ng ký t . M t h ng ký t là m t ký t bao quanh b"i c p d u nháy n. Do ó, 'a' là h ng ký t nh ng "a" là h ng chu i. 8. H'ng ký t# - bi%t (escape sequences) c C/C++ có nh ng h ng ký t c bi t mà không th bi u di-n nh nh ng h ng ký t thông th %ng. Nh ng h ng này còn g i là escape sequences. Sau ây là danh sách các h ng c bi t ó: Mã Ý ngh.a \b Lùi sang trái 1 ký t \f V (u dòng \n Sang dòng m i \r Xu ng dòng \t Tab theo chi u ngang \" D u nháy ôi \' D u nháy n \0 Null \\ D u\ \v Tab theo chi u ng \a C nh báo \? D uh i \N H ng bát phân (v i N là m t h ng bát phân) \xN H ng th p l c phân (v i N là m t h ng th p l c phân) Xem xét ví d sau: \n Enter #include void main(void) { Items: cout
  19. Giáo trình PP l p trình 9. Toán t (operators) C/C++ có b n lo i toán t : s h c (arithmetic), quan h (relational), lu n lý (logical), và toán t trên bit (bitwise). 9.1. Toán t gán (assignment operator) D ng t ng quát c a toán t gán là variableName = expression; variableName: Tên bi n expression: Bi u th c L u ý, phía bên trái d u b ng ph i là m t bi n hay con tr và không th là hàm hay h ng. Ví d : total = a + b + c + d; 9.2. Chuy n / ki u trong câu l%nh gán i Khi nh ng bi n c a m t ki u k t h#p v i nh ng bi n c a m t ki u khác thì m t s chuy n i ki u x y ra. i v i câu l nh gán, giá tr c a bi u th c bên ph i d u b ng #c t ng chuy n thành ki u d li u c a bi n bên trái d u b ng. Ví d : int i=100; double d = 123.456; N u th c thi l nh i = d; thì i s có giá tr là 123 vì 123.456 s t ng chuy n thành s nguyên nên b c t b ph(n th p phân. S chuy n i ki u này g i là chuy n i ki u b m t mát thông tin. N u th c thi l nh TT.Công Ngh Thông Tin 19/127
  20. Giáo trình PP l p trình d = i; thì d s có giá tr là 100.0. S chuy n i ki u này g i là chuy n i ki u không m t mát thông tin. Tóm l i, khi chuy n i ki u t ki u d li u có mi n giá tr nh sang ki u d li u có mi n giá tr l n h n thì vi c chuy n i ki u này là an toàn vì không b m t mát thông tin. Th t t$ng d(n t ki u d li u có mi n giá tr nh n ki u d li u có mi n giá tr l n là char int long float double. Khi chuy n i ki u d li u có mi n giá tr l n sang ki u d li u có mi n giá tr nh h n thì vi c chuy n i ki u này là không an toàn vì có th m t mát thông tin. Th t gi m d(n t ki u d li u có mi n giá tr l n n ki u d li u có mi n giá tr nh là double float long int char. Ví d : int i = 100; long l = 200; float f = 123.456f; double d = 1.23456789; Kh o sát các l nh gán sau: int n; long m; float p; double q; n = i + l + f + d; // (1) m = i + l + f + d; // (2) p = i + l + f + d; // (3) q = i + l + f + d; // (4) TT.Công Ngh Thông Tin 20/127
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2