Bài giảng Giới thiệu lập trình - Chương 2: Kiểu dữ liệu cơ bản - Lê Nguyên Khôi

pdf 30 trang hoanguyen 4720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Giới thiệu lập trình - Chương 2: Kiểu dữ liệu cơ bản - Lê Nguyên Khôi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_gioi_thieu_lap_trinh_chuong_2_kieu_du_lieu_co_ban.pdf

Nội dung text: Bài giảng Giới thiệu lập trình - Chương 2: Kiểu dữ liệu cơ bản - Lê Nguyên Khôi

  1. ơ ư
  2.  Ki u d li u c bn  Phép toán  Bi n s  Hng s  Hàm s toán hc Gi i Thi u L p Trình 1
  3. o  Khi s dng ki u d li u, ví d int , cn bi t mi n giá tr bi u di n ư c  Ki u d li u int bi u di n s nguyên t -2.147.483.648 n +2.147.483.647  Có nh hư ng gì không? Gi i Thi u L p Trình 2
  4. e  C quan V tr châu Âu phóng tên la y ngày 04/06/1996, tr giá 7 t ô la M  Ariane 5 dùng li mã ca h th ng iu khi n y ca Ariane 4  Tc A5 ln hn A4, nh ưng khi thi t k không ki m tra mi n d li u bi u di n  Khi A5 t ti tc nh t nh, xy ra li tràn b nh , b x lý tt  A5 b mt iu khi n, sau ó gây n Gi i Thi u L p Trình 3
  5.  S nguyên dư ng Cơ số 10 (3 ch ữ số) = ∗ + ∗ + ( ∗ ) Cơ số 2 (3 ch ữ số) = ∗ + ∗ + ( ∗ )  S nguyên âm: s dng bit trái ngoài cùng bi u di n = ∗ − + ∗ +(∗) =− = ∗ − + ∗ +(∗) =− Gi i Thi u L p Trình 4
  6. char  Trong C++ ki u d li u char là ki u nh nh t  S dng 1 byte b nh  1 byte trong máy tính gm 8 bit  Nh ư vy, kho ng bi u di n t -128 n +127 −2 2 2 2 2 2 2 2 −128 64 32 16 8 4 2 1  10000000 = −128 và 01111111 = 127  Kho ng bi u di n t −2 n +2 − 1 Gi i Thi u L p Trình 5
  7. ơ o Ki ểu Độ Lớn Mi ền Giá Tr ị char 1 byte -128 n +127 (−2, +2 − 1) short 2 byte -32.768 n +32.767 (−2 , +2 − 1) int 4 byte -2.147.483.648 n +2.147.483.647 (−2 , +2 − 1) Gi i Thi u L p Trình 6
  8. ơ o Ki ểu Độ Lớn Mi ền Giá Tr ị float 4 byte (−10 , +10 ) double 8 byte (−10 , +10 ) long 10 byte (−10 , +10 ) double Gi i Thi u L p Trình 7
  9. o o ki ểu của toán hạng, xác định phép toán tươ ng ứng Phép Toán Toán Tử Ví Dụ Áp Dụng a + b s nguyên & 1 + 2 Cng + s th c 1.1 + 2.2 a - b s nguyên & 1 – 2 Tr - s th c 1.1 – 2.2 a * b s nguyên & 1 * 2 Nhân * s th c 1.1 * 2.2 a / b s nguyên & 1 / 2 Chia / s th c 1.1 / 2.2 a % b ch s nguyên Ph n dư % 1 % 2 Gi i Thi u L p Trình 8
  10. o  Chia nguyên: c hai toán hng là s nguyên  Chia th c: mt trong hai toán hng là s th c 1 int main() 2 { 3 int i = 1, j = 2, k; 4 double f = 1.0, g = 2.0, h; 5 k = i / j; // chia nguyên k = 0 6 k = j / i; // chia nguyên k = 2 7 h = f / g; // chia th ực h = 0.5 8 h = i / g; // chia th ực h = 0.5 9 h = f / j; // chia th ực h = 0.5 10 return 0; 11 } Gi i Thi u L p Trình 9
  11.  s dng hi u qu kt qu ca các phép toán, cn lưu kt qu sau khi tính toán vào các bi n s  Bi n s dùng lưu giá tr thu c mt ki u d li u nh t nh, ví d: int , double  Mi bi n s có 03 thu c tính: tên, ki u, giá tr  s dng bi n s, ph i t tên hp l bng cách khai báo bi n s  Ph i khai báo bi n s tr ư c khi s dng  Nu không trình biên dch s báo li ch ưa khai báo error: was not declared in this scope Gi i Thi u L p Trình 10
  12. o  Cú pháp : ki ểuDL tênBi ến;  Ý ngh a: to mt bi n s có tên là tênBi n lưu d li u ki u ki uDL  Ví d: int x;  Ý ngh a : khai báo bi n s nguyên x ki u int  Chú ý: ngay sau khai báo, bi n s ã có giá tr !  s dng mnh lnh cout << in ra giá tr bi n  Lưu ý: khi nào s dng bi n s mi khai báo Gi i Thi u L p Trình 11
  13.  Cú pháp : tênBi ến = giáTr ị; tênBi ến = bi ểuTh ức;  Ý ngh a: lưu giáTr ho c kt qu ca bi uTh c vào bi n s có tên là tênBi n  Ví d: x = 24; x = (x * 24) / y;  Chú ý: bên trái ca phép gán (du =) là giá tr trái (gt-T), bên ph i là giá tr ph i (gt-P)  x có th va là gt-T và gt-P trong cùng mt phép gán Gi i Thi u L p Trình 12
  14. o o  Cú pháp : ki ểuDL tênBi ến = giáTr ị; ki ểuDL tênBi ến = bi ểuTh ức;  Ý ngh a: to mt bi n s có tên là tênBi n lưu d li u ki u ki uDL , sau ó lưu giáTr ho c kt qu ca bi uTh c vào bi n s ó  Ví d: int x = 24; int x = (x * 24) / y;  Chú ý: ây là phong cách lp trình tt, do khi ch khai báo, bi n vn có mt giá tr nào ó int x; int x; x = x + 1; cout << x; Gi i Thi u L p Trình 13
  15.  Tên bi n s dùng nh danh  Bt u bng ch cái ho c du gch chân “_”  Ti p n là ch cái, ch s, du gch chân  Không có du cách “ “ trong tên bi n s  C++ phân bi t ch hoa và ch th ư ng  Tên bi n s không ư c trùng vi t khóa C++  Ví d: i, k62 , X, x, soPT , soThu1 , soThu2 , tong , hieu  Chú ý: tên bi n s nên gi ngh a và ng n gn Gi i Thi u L p Trình 14
  16.  Bi n s: giá tr có th thay i trong quá trình ch y ch ư ng trình  Hng s: giá tr không ư c phép thay i nh ư bi n s, nu thay i, dch báo li  Ví d: s ngày trong mt tu n, s nm trong mt tháng, tc ánh sáng, s pi, s e  Hng s ph i có giá tr ngay khi khai báo và s dng t khóa const const double PI = 3.14159; const double SOL = 1.079e+9; Gi i Thi u L p Trình 15
  17. o  Cú pháp : tênBi ến = giáTr ị; tênBi ến = bi ểuTh ức;  Ví d: x = 24; x = (x * 24) / y;  Th c hi n xác nh gt-P ca phép gán (tính toán giá tr ca bi uTh c) sau ó gán giá tr ó cho gt-T ca phép gán  Chú ý:  gt-T ca phép gán ph i là mt bi n s  Ki u d li u ca gt-P ph i gi ng ki u d li u gt-T Gi i Thi u L p Trình 16
  18. o  Giá tr thu c mt ki u d li u có th ư c chuy n sang giá tr thu c mt ki u d li u khác  Ví d: 1 → 1.0 ho c 1.0 → 1  2 cách:  T ng bi C++ int x = 1.0; double y = 1.0; double y = 1; int x = y;  Ch ng bi lp trình viên int x = (int)1.0; double y = 1.0; double y = (double)1; int x = (int)y;  Lưu ý: chuy n i ki u làm thay i chính xác ca giá tr . S dng cn th n Gi i Thi u L p Trình 17
  19. ơ o Ki ểu Độ Lớn Mi ền Giá Tr ị bool 1 byte úng ho c sai (true, false)  Các phép toán so sánh và các phép toán lô-gic tr v giá tr ki u lô-gic. Gi i Thi u L p Trình 18
  20. o o o Phép Toán Toán Tử Ví Dụ Kết qu ả a b Ln hn > 1 > 2 false Ln hn a >= b >= false ho c bng 1 >= 2 a == b Bng == 1 == 2 false Không bng a != b != true (khác) 1 != 2 Gi i Thi u L p Trình 19
  21. o o Phép Toán Toán Tử Ví Dụ Kết qu ả a && b true Và && true && true a || b Ho c || false || false false !a Ph nh ! !true false Gi i Thi u L p Trình 20
  22. o ư a b a && b a b a || b false false false false false false false true false false true true true false false true false true true true true true true true int a = 0; bool b; b = (false) && (1/a); cout << b; b = (true) || (1/a); cout << b; Gi i Thi u L p Trình 21
  23. o  Xác nh th t tính giá tr bi u th c Độ Ưu Tiên Toán Tử Cao nh t ++ , , ! *, /, % +, - , >= == , != && || Th p nh t =, += , -=, *= , /= , %=  S dng cp du ngo c () d c Gi i Thi u L p Trình 22
  24. o o  Nhi u hàm s toán hc ư c nh ngh a sn  Ví d: khai cn (sqrt ), s m (pow ), tr tuy t i (abs )  s dng các hàm toán hc cn ti các th ư vi n tư ng ng #include #include double x = sqrt(9); // x = 3.0 double y = pow(3, 2); // y = 9.0 int z = rand(); Gi i Thi u L p Trình 23
  25. o  Trong toán hc có th t nh ngh a hàm s , = + 2 + + 4  T nh ngh a ca hàm và giá tr ca bi n s, có th tính ư c giá tr ca hàm = 2, = 1 = + 2 + + 4 = 26  Chuy n sang ngôn ng lp trình, cn có  Tên hàm, danh sách bi n s  Ki u d li u ca hàm và bi n s  nh ngh a ca hàm da trên danh sách bi n s  S dng câu lnh return tr v giá tr ca hàm sau khi tính Gi i Thi u L p Trình 24
  26. o , = + 2 + + 4  Tên hàm: f  Danh sách bi n s: a, b  Ki u d li u: int  nh ngh a ca hàm:  S dng câu lnh return tr v giá tr ca hàm sau khi tính int f(int a, int b) { return a^3 + 2*a^2*b + 3*a*b^2 + 4*b^3; } Gi i Thi u L p Trình 25
  27. o  Lp trình viên có th t nh ngh a các hàm hu ích, ph c v mc ích c th da trên yêu cu bài toán  Các hàm t nh ngh a nm :  Ngoài và tr ư c int main() 1 #include 2 3 int hieu(int a, int b) 4 { 5 return a – b; 6 } 7 int main() { } Gi i Thi u L p Trình 26
  28. 1 #include 2 3 int hieu(int a, int b) { return a – b; } 4 5 int main() 6 { 7 int a, b; 8 std::cin >> a; std::cin >> b; 9 while (a != b) 10 { 11 if (a > b) a = hieu(a, b) ; 12 else b = hieu(b, a) ; 13 } 14 std::cout << "UCLN: " << a << std::endl; 15 return 0; 16 } Gi i Thi u L p Trình 27
  29.  S dng cout > , cerr <<  In d li u các nh dng khác nhau  S dng ki u s nguyên char qu n lý các ký t (xem bng mã ASCII)  S nguyên trong các h c s khác (8, 16)  Các toán t gán ph c hp += , -=, *= , /= , %=  Các toán t tng/gi m mt n v ++ ,  Các hàm toán hc trong cmath , cstdlib  T nh ngh a mt s hàm n gi n Gi i Thi u L p Trình 28
  30. o  Làm quen vi CodeBlock và các ch c nng h biên so n ca CodeBlock  Làm các bài tp trên codehub.now-ip.org  c sách:  Ch ư ng 2, Lp Trình C Bn C++ Gi i Thi u L p Trình 29