Bài giảng Lập trình C - Chương 3: Các khai báo, biểu thức, khối lệnh - Ngô Công Thắng

Bên trong một khối lệnh có thể chứa các khối lượng khác. Sự lồng nhau này không bị hạn chế. Lưu ý rằng thân của một hàm cũng là một khối lệnh, đó là khối lệnh chứa các khối lệnh, đó là khối lệnh chứa các khối lệnh bên trong nó và không khối lệnh nào chứa nó. Các biến không chỉ khai báo ở đầu một hàm mà có thể khai báo ở đầu một khối lệnh. Biến được khai báo trong một khối lệnh thì chỉ có phạm vi hoạt động trong khối lệnh đó. Khi máy bắt đầu thực hiện khối lệnh thì các biến khai báo bên trong nó mới được hình thành và được cấp phát bộ nhớ. Các biến này chỉ tồn tại trong thời gian làm việc bên trong khối lệnh và chúng sẽ lập tức biến mất ngay sau khi máy ra khỏi khối lệnh

pdf28 trang | Chia sẻ: huongthu9 | Lượt xem: 399 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình C - Chương 3: Các khai báo, biểu thức, khối lệnh - Ngô Công Thắng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 1 Ch ng 3. Các khai báo, bi u th c, kh i l nhươ ể ứ ố ệ I. Các khai báo II. Bi u th cể ứ III. Kh i l nhố ệ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 2 I.1. Khai báo s d ng th vi n hàmử ụ ư ệ  Các trình biên d ch C có s n r t nhi u ch ng trình ị ẵ ấ ề ươ con (g i là hàm), các hàm này đ trong các th vi n ọ ể ư ệ hàm khác nhau. Mu n s d ng hàm nào ta ph i khai ố ử ụ ả báo s d ng th vi n hàm ch a hàm đó.ử ụ ư ệ ứ  Cú pháp khai báo nh sau:ư #includeệ ho c #include “tên t p header”ặ ệ Tên t p header c a th vi n hàm có đuôi .hệ ủ ư ệ Ví d :ụ #include //Khai báo s d ng các ch ng ử ụ ươ trình vào/ra Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 3 I.2. Khai báo h ngằ Khai báo h ng là đ t tên cho m t giá tr c ằ ặ ộ ị ụ thể Cú pháp khai báo h ng:ằ #define Tên_h ng Giá_tr _c a_h ngằ ị ủ ằ Ví d :ụ #define PI 3.141593 Khai báo h ng có th đ t b t kỳ đâu trong ằ ể ặ ấ ch ng trình. Khi biên d ch ch ng trình, t t ươ ị ươ ấ c tên h ng đ c s d ng sau dòng khai báo ả ằ ượ ử ụ h ng s đ c thay b ng giá tr c a tên h ng.ằ ẽ ượ ằ ị ủ ằ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 4 I.3. Khai báo bi nế  Bi n là ô nh trong b nh trong (RAM) c a máy ế ớ ộ ớ ủ tính dùng đ c t ch a d li u.ể ấ ứ ữ ệ Khai báo bi n là đ t tên cho ô nh và xác đ nh ki u ế ặ ớ ị ể d li u cho ô nh . Ô nh có ki u d li u nào thì ch ữ ệ ớ ớ ể ữ ệ ỉ ch a đ c giá tr c a ki u d li u đó. Khai báo bi n ứ ượ ị ủ ể ữ ệ ế có th đ b t kỳ đâu trong ch ng trình.ể ể ấ ươ  Cú pháp: Tên_ki u_dl Tên_bi n;ể ế Ví d :ụ int a; //bi n tên là a, có ki u s nguyên intế ể ố  N u có nhi u bi n cùng ki u thì có th khai báo cùng nhau, ế ề ế ể ể gi a các tên bi n phân tách nhau b i d u ph y.ữ ế ở ấ ẩ Ví d :ụ float a,b,c; Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 5 I.3. Khai báo bi n (ti p)ế ế Khi khai báo bi n có th kh i t o giá tr ban ế ể ở ạ ị đ u cho bi n b ng đ t d u b ng và m t giá tr ầ ế ằ ặ ấ ằ ộ ị nào đó cách ngay sau tên bi n.ế Ví d :ụ int a,b=20,c,d=35; Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 6 II. Bi u th cể ứ 1. Bi u th cể ứ 2. Phép toán s h cố ọ 3. Phép toán quan h và logicệ 4. Phép toán tăng gi mả 5. Th t u tiên c a các phép toánứ ự ư ủ 6. Các hàm s h cố ọ 7. Câu l nh gán và bi u th c gánệ ể ứ 8. Bi u th c đi u ki nể ứ ề ệ 9. Chuy n đ i ki u giá trể ổ ể ị Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 7 II.1. Bi u th cể ứ Bi u th c là s k t h p các giá tr b ng các ể ứ ự ế ợ ị ằ phép toán đ có đ c m t giá tr m i. Các giá ể ượ ộ ị ớ tr đem ra k t h p đ c g i là toán h ng. ị ế ợ ượ ọ ạ Toán h ng có th là h ng, bi n, hàm.ạ ể ằ ế Bi u th c dùng đ b o máy tính th c hi n ể ứ ể ả ự ệ m t tính toán nào đó đ có đ c m t giá tr ộ ể ượ ộ ị m i.ớ M i bi u th c s có m t giá tr và nói chung ỗ ể ứ ẽ ộ ị cái gì có giá tr đ u đ c coi là bi u th c.ị ề ượ ể ứ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 8 II.1. Bi u th c (ti p)ể ứ ế Có hai lo i bi u th c:ạ ể ứ  Bi u th c s : có giá tr là nguyên ho c th cể ứ ố ị ặ ự  Bi u th c logic: có giá tr là đúng (giá tr khác 0) ể ứ ị ị ho c sai (giá tr b ng 0)ặ ị ằ Ví d :ụ (a+b+c)/2 (-b-sqrt(delta))/(2*a) (a+b) > 2*c Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 9 II.2. Phép toán s h cố ọ Phép toán hai ngôi: + - * / %  % là phép l y ph n d , ví d : 11%2 = 1ấ ầ ư ụ  Phép chia hai s nguyên ch gi l i ph n nguyênố ỉ ữ ạ ầ Ví d : 11/2 = 5ụ Phép toán m t ngôi: d u âm –ộ ấ Ví d -(a+b)ụ Các phép toán s h c tác đ ng trên t t c các ố ọ ộ ấ ả ki u d li u c b n.ể ữ ệ ơ ả Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 10 II.3. Phép toán so sánh và logic  Các phép toán so sánh và logic cho ta giá tr đúng ị (có giá tr b ng 1) ho c sai (có giá tr b ng 0).ị ằ ặ ị ằ  Các phép toán quan h g m có:ệ ồ Phép toán > >= < <= = = != Ý nghĩa L n h nớ ơ L n h n ho c b ngớ ơ ặ ằ Nh h nỏ ơ Nh h n ho c b ngỏ ơ ặ ằ B ng (hai d u b ng sát nhau)ằ ấ ằ Khác nhau Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 11 II.3. Phép toán quan h và logic (ti p)ệ ế  Các phép toán logic g m có:ồ Phép toán ! && || Ý nghĩa Ph đ nh (NOT)ủ ị Và (AND) Ho c (OR)ặ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 12 II.4. Phép toán tăng gi mả  C++ có hai phép toán m t ngôi đ tăng và gi m giá ộ ể ả tr ị c a các bi nủ ế (có ki u nguyên ho c th c). Toán ể ặ ự t tăng ++ c ng 1 vào toán h ng c a nó, toán t ử ộ ạ ủ ử gi m -- tr toán h ng c a nó đi 1.ả ừ ạ ủ Ví d :ụ gi s bi n n đang có giá tr là 8, sau phép tính ++n ả ử ế ị làm cho n có giá tr là 9, sau phép tính --n làm cho n có ị giá tr là 7.ị  Phép toán ++ và -- có th đ ng tr c ho c sau toán ể ứ ướ ặ h ng. N u đ ng tr c thì toán h ng c a nó s đ c ạ ế ứ ướ ạ ủ ẽ ượ tăng/gi m tr c khi nó đ c s d ng, n u đ ng sau ả ướ ượ ử ụ ế ứ thì toán h ng c a nó s đ c tăng/gi m sau khi nó ạ ủ ẽ ượ ả đ c s d ng.ượ ử ụ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 13 II.5. Th t u tiên c a các phép toánứ ự ư ủ Khi trong m t bi u th c có ch a nhi u phép toán thì ộ ể ứ ứ ề các phép toán đ c th c hi n theo th t u tiên: ượ ự ệ ứ ự ư Các phép toán có m c u tiên cao th c hi n tr c, ứ ư ự ệ ướ các phép toán cùng m c u tiên đ c th c hi n t ứ ư ượ ự ệ ừ trái qua ph i ho c t ph i qua trái.ả ặ ừ ả  B ng th t u tiên các phép toán: Các phép toán ả ứ ự ư cùng lo i cùng m c u tiên. Các phép toán lo i 1 có ạ ứ ư ạ m c u tiên cao nh t, r i đ n các phép toán lo i 2, ứ ư ấ ồ ế ạ 3, Các phép toán lo i 2 (phép toán m t ngôi), 14 ạ ộ (phép toán đi u ki n) và 15 (phép toán gán) k t h p ề ệ ế ợ t ph i qua trái, các phép toán còn l i k t h p t trái ừ ả ạ ế ợ ừ qua ph i.ả Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 14 II.5. Th t u tiên c a các phép toán (ti p)ứ ự ư ủ ế TT Lo i phép toánạ Phép toán Ý nghĩa 1 Cao nh tấ ( ) [ ] -> . :: L i g i hàm, d u ngo cờ ọ ấ ặ Truy nh p ph n t m ngậ ầ ử ả Truy nh p gián ti pậ ế Truy nh p tr c ti pậ ự ế Truy nh p tên mi nậ ề 2 Phép toán 1 ngôi ! ~ + - ++ -- Ph đ nh (NOT)ủ ị Đ o bitả D u d ngấ ươ D u âmấ Toán t tăngử Toán t gi mử ả Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 15 II.5. Th t u tiên c a các phép toán (ứ ự ư ủ ti pế ) TT Lo i phép toánạ Phép toán Ý nghĩa 2 Phép toán 1 ngôi & * sizeof new delete (Ki u dl)ể L y đ a ch bi nấ ị ỉ ế Truy nh p qua con trậ ỏ Cho kích th c toán h ngướ ạ C p phát b nh đ ngấ ộ ớ ộ Giái phóng b nhộ ớ Phép ép ki u d li uể ữ ệ 3 Phép toán truy nh p thành viênậ .* ->* 4 Phép toán nhân * / % Nhân Chia Chia l y ph n dấ ầ ư Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 16 5. Th t u tiên c a các phép toán (ứ ự ư ủ ti pế ) TT Lo i phép toánạ Phép toán Ý nghĩa 5 Phép toán c ngộ + - C ngộ Trừ 6 Phép toán d ch bitị >> << D ch ph iị ả D ch tráiị 7 Phép toán quan hệ < <= > >= Nh h nỏ ơ Nh h n ho c b ngỏ ơ ặ ằ L n h nớ ơ L n h n ho c b ngớ ơ ặ ằ 8 Phép toán so sánh b ngằ == != B ngằ Khác nhau Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 17 5. Th t u tiên c a các phép toán (ứ ự ư ủ ti pế ) TT Lo i phép toánạ Phép toán Ý nghĩa 9 Phép toán v bitề & Phép AND bit 10 Phép toán v bitề ^ Phép XOR bit 11 Phép toán v bitề | Phép OR bit 12 Phép toán logic && Phép AND logic 13 Phép toán logic || Phép OR logic 14 Phép toán đi u ki nề ệ ? : Ví d : a ? x : y //n u a ụ ế đúng thì b ng x, còn ằ không b ng yằ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 18 5. Th t u tiên c a các phép toán (ứ ự ư ủ ti pế ) TT Lo i phép toánạ Phép toán Ý nghĩa 15 Phép toán gán = *= /= %= += -= &= ^= |= <<= >>= Phép gán đ n gi nơ ả Phép gán nhân Phép gán chia Phép gán chia l y ph n dấ ầ ư Phép gán c ngộ Phép gán trừ Phép gán AND bit Phép gán XOR bit Phép gán OR bit Phép gán d ch trái bitị Phép gán d ch ph i bitị ả 16 D u ph yấ ẩ , Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 19 II.6. M t s hàm s h c c b nộ ố ố ọ ơ ả Các hàm s h c n m trong th vi n hàm math, mu n ố ọ ằ ư ệ ố s d ng các hàm này ta ph i khai báo: ử ụ ả #include D i đây là m t s hàm s h c hay dùng:ướ ộ ố ố ọ Tên hàm Ý nghĩa cos(x) sin(x) acos(x) asin(x) Cho cos(x) Cho sin(x) Cho arccos(x) Cho arcsin(x) Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 20 6. Các hàm s h c (ti p)ố ọ ế Tên hàm Ý nghĩa tan(x) fabs(x) exp(x) log(x) log10(x) pow(y,x) sqrt(x) Cho tgx Cho |x| ex Cho lnx Cho log10x Cho yx Cho căn b c 2 c a xậ ủ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 21 II.7. Câu l nh gán và bi u th c gánệ ể ứ Câu l nh gánệ  Đ đ a giá tr vào các bi n t i th i đi m l p trình ể ư ị ế ạ ờ ể ậ ta s d ng l nh gán. Có l nh gán đ n gi n và ử ụ ệ ệ ơ ả l nh gán ph c h p.ệ ứ ợ  L nh gán đ n gi n có d ng: ệ ơ ả ạ Bi n = Bi u th cế ể ứ ; L nh gán này đ a giá tr c a bi u th c bên ệ ư ị ủ ể ứ ph i vào bi n bên trái. V trái c a phép ả ế ế ủ gán ch có th là bi n và ch m t mà thôi.ỉ ể ế ỉ ộ Ví d :ụ a = 2*x*x + 3*x + 1; Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 22 II.7. Câu l nh gán và bi u th c gán (ti p)ệ ể ứ ế Câu l nh gánệ  L nh gán ph c h p có d ng:ệ ứ ợ ạ Bi n Phép_toán= Bi u th cế ể ứ ; Phép toán đ ngay tr c d u b ng, có th là ể ướ ấ ằ ể các phép toán s h c ho c các phép toán v ố ọ ặ ề bit. Ví d :ụ a += 2; L nh gán này đem giá tr c a bi n k t h p ệ ị ủ ế ế ợ v i giá tr c a bi u th c theo phép toán r i ớ ị ủ ể ứ ồ đ a k t qu vào bi n, t c là th c hi n phép ư ế ả ế ứ ự ệ toán tr c r i m i gán.ướ ồ ớ a *= 5; //l nh này t ng đ ng v i l nh a = ệ ươ ươ ớ ệ a*5; Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 23 II.7. Câu l nh gán và bi u th c gán (ti p)ệ ể ứ ế  Bi u th c gánể ứ  Bi u th c gán là bi u th c có d ng:ể ứ ể ứ ạ v = e (Sau bi u th c gán không có d u ch m ph yể ứ ấ ấ ẩ ) trong đó v là m t bi n, e là m t bi u th c.ộ ế ộ ể ứ  Bi u th c gán th c hi n gán e vào v. Giá tr c a bi u th c gán ể ứ ự ệ ị ủ ể ứ là giá tr c a bi u th c e, ki u c a bi u th c gán là ki u c a ị ủ ể ứ ể ủ ể ứ ể ủ bi n v. Bi u th c gán đ c s d ng nh b t kỳ bi u th c ế ể ứ ượ ử ụ ư ấ ể ứ khác, ch ng h n đem gán giá tr c a nó vào bi n.ẳ ạ ị ủ ế Ví d :ụ sau l nh a = b = 5; thì a và b s b ng 5 vì bi u th c gán ệ ẽ ằ ể ứ đ a 5 vào b còn l nh gán đ a giá tr c a bi u th c gán b=5 ư ệ ư ị ủ ể ứ vào a. Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 24 II.8. Bi u th c đi u ki nể ứ ề ệ  Bi u th c đi u ki n là bi u th c có d ng:ể ứ ề ệ ể ứ ạ e1 ? e2 : e3 trong đó e1, e2, e3 là các bi u th c nào đó.ể ứ Giá tr c a bi u th c đi u ki n b ng giá tr c a e2 ị ủ ể ứ ề ệ ằ ị ủ n u e1 đúng (có giá tr khác 0) và b ng giá tr c a ế ị ằ ị ủ e3 n u e1 sai (có giá tr b ng 0).ế ị ằ  Bi u th c đi u ki n th c s là m t bi u th c, b i ể ứ ề ệ ự ự ộ ể ứ ở v y ta có th s d ng nó nh b t kỳ m t bi u th c ậ ể ử ụ ư ấ ộ ể ứ nào khác. Ví d :ụ bi u th c (a > b) ? a : b s cho giá tr a n u a ể ứ ẽ ị ế l n h n b, còn không cho giá tr b.ớ ơ ị Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 25 II.9. Chuy n đ i ki u giá trể ổ ể ị Vi c chuy n đ i ki u giá tr th ng di n m t cách ệ ể ổ ể ị ườ ễ ộ t đ ng trong hai tr ng h p sau:ự ộ ườ ợ  Khi bi u th c có các toán h ng khác ki uể ứ ạ ể  Khi gán m t giá tr ki u này cho m t bi n ki u khác.ộ ị ể ộ ế ể  Chuy n đ i ki u trong bi u th c: Khi hai toán h ng ể ổ ể ể ứ ạ trong m t phép toán có ki u khác nhau thì ki u th p ộ ể ể ấ h n s đ c nâng thành ki u cao h n. K t qu thu ơ ẽ ượ ể ơ ế ả đ c m t giá tr có ki u cao h n.ượ ộ ị ể ơ Ví d :ụ gi a int và long thì int chuy n thành longữ ể gi a int và float thì int chuy n thành floatữ ể Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 26 9. Chuy n đ i ki u giá tr (ti p)ể ổ ể ị ế Chuy n đ i ki u khi gán: Giá tr c a v ph i ể ổ ể ị ủ ế ả đ c chuy n sang ki u c a v trái.ượ ể ể ủ ế Ta cũng có th th c hi n chuy n đ i ki u ể ự ệ ể ổ ể theo ý mu n b ng toán t ép ki u, có d ng: ố ằ ử ể ạ (Tên ki u mu n ép) Bi u_th cể ố ể ứ Ví d : (int) x (float)(a+b) ụ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 27 III. Kh i l nhố ệ Nhi u l nh đ t gi a d u ngo c { và } t o thành m t ề ệ ặ ữ ấ ặ ạ ộ kh i l nh.ố ệ { a=2; b=3; cout<<a<<’ ’<<b; }  C++ coi m t kh i l nh nh m t câu l nh riêng l . ộ ố ệ ư ộ ệ ẻ B i v y ch nào vi t đ c m t câu l nh thì ch đó ở ậ ỗ ế ượ ộ ệ ỗ vi t cũng đ t đ c m t kh i l nh. Sau d u ngo c } ế ặ ượ ộ ố ệ ấ ặ c a kh i l nh không có d u ch m ph y.ủ ố ệ ấ ấ ẩ Bài gi ng Ngôn ng C - Ch ng 03 - GV. Ngô Công Th ngả ữ ươ ắ 28 III. Kh i l nh (ti p)ố ệ ế  Bên trong m t kh i l nh có th ch a các kh i l nh ộ ố ệ ể ứ ố ệ khác. S l ng nhau này không b h n ch . L u ý r ng ự ồ ị ạ ế ư ằ thân c a m t hàm cũng là m t kh i l nh, đó là kh i ủ ộ ộ ố ệ ố l nh ch a các kh i l nh bên trong nó và không kh i ệ ứ ố ệ ố l nh nào ch a nó.ệ ứ  Các bi n không ch khai báo đ u m t hàm mà có th ế ỉ ở ầ ộ ể khai báo đ u m t kh i l nh. Bi n đ c khai báo trong ở ầ ộ ố ệ ế ượ m t kh i l nh thì ch có ph m vi ho t đ ng trong kh i ộ ố ệ ỉ ạ ạ ộ ố l nh đó. Khi máy b t đ u th c hi n kh i l nh thì các ệ ắ ầ ự ệ ố ệ bi n khai báo bên trong nó m i đ c hình thành và ế ớ ượ đ c c p phát b nh . Các bi n này ch t n t i trong ượ ấ ộ ớ ế ỉ ồ ạ th i gian máy làm vi c bên trong kh i l nh và chúng s ờ ệ ố ệ ẽ l p t c bi n m t ngay sau khi máy ra kh i kh i l nh.ậ ứ ế ấ ỏ ố ệ

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_lap_trinh_c_chuong_3_cac_khai_bao_bieu_thuc_khoi_l.pdf