Slide bài giảng Lập trình C++ - Lương Trần Hy Hiến - Làm việc với dữ liệu
Kiểu dữliệu cơsở
Kiểu không dấu unsigned
unsigned char
unsigned short
unsigned int
unsigned long
Kiểu rỗng –void
hàm không trảlại kết quả
ứng với mọi kiểu (con trỏvoid)
Nội dung Kiểu dữ liệu cơ sở Biến và hằng số Toán tử và biểu thức 2 Kiểu dữ liệu cơ sở Số nguyên char: 1 bytes short (int): 2 bytes int: 4 bytes long (int): 4 bytes Số thực dấu phẩy động độ chính xác đơn float: 4 bytes độ chính xác kép double: 8 bytes long double: 12 bytes Ký tự - char: 1 byte Kiểu logic – bool (C++) 3 Kiểu dữ liệu cơ sở Kiểu không dấu unsigned unsigned char unsigned short unsigned int unsigned long Kiểu rỗng – void hàm không trả lại kết quả ứng với mọi kiểu (con trỏ void) 4 Biến (variable) Dữ liệu được thao tác thông qua các biến Biến: là đại lượng được đặt tên thuộc một kiểu dữ liệu đã xác định phải được khai báo trước khi sử dụng 5 Tên (name) Bao gồm các chữ cái, chữ số, dấu gạch dưới _ Không bắt đầu bằng chữ số, không chứa dấu cách Không trùng với từ khóa Ví dụ i, tmp, diem_so, DiemSo, x1 Nên đặt tên có nghĩa, tránh lạm dụng chữ in 6 Khai báo dữ liệu Câu lệnh khai báo: [ … ] ; Khai báo có khởi tạo: [= giá trị khởi tạo]; Ví dụ int m, n; long tmp, sum = 0; double r1, r2; 7 Ví dụ #include using namespace std; int main() { int m = 0, n = 100; cout << m << ”, ” << n << endl; cin >> m >> n; cout << m << ”, ” << n; return 0; } 8 Giá trị khởi tạo mặc định Phụ thuộc vào hệ thống, thông thường gồm toàn bit 0 int m; double d; cout << m << endl; cout<< d; 9 Toán tử (phép toán) và biểu thức Số học cộng +, trừ - nhân *, chia /, lấy phần dư % (số nguyên) Logic và &&, hoặc || phủ định ! so sánh , >=, = =, != 10 Ví dụ int m, n, p; m = n + p; m = n / p; m = n % p; m = m + n; m = m + n * p; m = m / (n + p); 11 Ví dụ về toán tử chia “/” Trình biên dịch dựa vào kiểu của các toán hạng để quyết định phép chia tương ứng int main(void) {“i”, “j” kiểu int, “/” là int i = 5, j = 4, k; double f = 5.0, g = 4.0, h; k = i / j; h = f / g; h = i / j; return 0; } phép chia lấy nguyên k nhận giá trị 1 “f”, “g” kiểu double, “/” là phép chia số thực h nhận giá trị 1.25 Phép chia nguyên, bất kể “h” có kiểu double. Kết quả là 1.00000 Chuyển đổi kiểu Toán tử chỉ làm việc với biến cùng kiểu tự động chuyển đổi thành kiểu lớn hơn long m , n; short i; m = n * i; i = m * n; // chú ý double d = m / 2.0; 13 Ép kiểu làm thay đổi tạm thời kiểu của một biến trong một biểu thức Có thể chủ động chuyển đổi kiểu số nguyên thành số thực kiểu lớn hơn thành kiểu nhỏ hơn Ví dụ double r1, r2; int m = 10, n = 3; r1 = m / n; r2 = (double) m / n; 14 Ép kiểu int main(void) { int i = 5, j = 4; double f; f = (double)i / j; f = i / (double)j; f = (double)i / (double)j; f = (double)(i / j); return 0; } Phép chia số nguyên được thực hiện, kết quả, 1, được đổi sang kiểu double, 1.00000 Toán tử và biểu thức (mở rộng) Dạng mở rộng = +=, -=, *=, /=,… Ví dụ a += b; //a = a + b a *= b; a /= b; a -= b + c; //a = a – (b + c) 16 Toán tử một ngôi ++ và -- Tăng hoặc giảm 1 với biến số nguyên (tốc độ cao) Tiền tố thực hiện toán tử xong thì dùng kết quả đó thực hiện biểu thức a = b * ++c; Hậu tố thực hiện biểu thức xong mới thực hiện toán tử với biến đó a = b * c++; 17 Ví dụ int i = 5, j = 4; 18 i ++; -- j; ++ i; “i” 6 “j” 3 “i” 7 Trước hay sau ? Thứ tự thực hiện các toán tử ++ và -- phụ thuộc vào vị trí của chúng (trước hay sau) so với biến: #include Tương đương: 1. j++; int main(void) { int i, j = 5; i = ++j; cout<<"i=“<<i<<“, j=“<<j<<endl; j = 5; i = j++; cout<<"i=“<<i<<“, j=“<<j<<endl; return 0; } i=6, j=6 i=5, j=6 2. i = j; Tương đương: 1. i = j; 2. j++; Biểu thức logic Biểu thức của các giá trị logic Biểu thức quan hệ bool a, b, c; int m, n; … a = b && c; b = (m >= n); c = true; 20 Logic và số nguyên Chuyển logic sang số nguyên Giá trị true, false được chuyển tương ứng thành 1 và 0; Chuyển số nguyên sang logic Số nguyên dương tương ứng với true Số nguyên âm và 0 tương ứng với false Ví dụ bool b = false; cout << b << endl; b = 10; cout << b << endl; 21 Kiểu ký tự Về cơ bản giống như biến số nguyên 1 byte hiện thị ký tự ra luồng dữ liệu chuẩn (màn hình) giá trị ký tự được đặt trong ngoặc đơn: ’A’, ’a’ một số hằng ký tự đặc biệt: ’\t’,’\n’,endl,… char c = ’a’; cout << c << endl; cout << (int) c << endl; c++; cout << c << endl; c = 97; cout << c << endl; 22 Phép gán Phép gán cũng là một toán tử: có giá trị trả lại chính là giá trị của biến được gán kết hợp được phép gán với các toán tử khác Ví dụ a = b = 10; a += a = b; if ( 0 != (a = b)) {… } 23 Phạm vi của biến Biến có phạm vi sử dụng trong block được khai báo biến tổng thể (toàn cục): sử dụng trên toàn bộ ch ng trìnhươ Chỉ khai báo biến khi cần sử dụng: cục bộ hóa Hạn chế sử dụng biến tổng thể dễ xung đột, khó sử dụng lại 24 Ví dụ #include int main() { int a = 10, b = 20; { int tmp = a; a = b; b = tmp; } cout << a << ”, ” << b << endl; cout << tmp; // compile error return 0; } 25 Ví dụ: biến tổng thể và biến cục bộ #include using namespace std; int a = 0; // global variable int main() { int a = 10; // local variable cout << a << endl; //In local a = ::a; cout << a << endl;//In global return 0; } 26 Toán tử bít Tác động trực tiếp lên các bít và, hoặc, chỉ hoặc &, |, ^ dịch chuyển bit > &=, |=, ^=, >= Ví dụ int m, n; m &= n; m <<= 2; 27 Toán tử ba ngôi ?: Cú pháp (biểu thức logic)?(biểu thức A):(biểu thức B) Ví dụ int a, b, max; … max = (a>b)?(a):(b); 28 Thứ tự ưu tiên Dấu ngoặc () Một ngôi !, ++, --, Nhân *, chia /, dư % Cộng +, trừ - > So sánh , >=, ==, != Toán tử bit: &, |, ^ Logic &&, || ?: Gán =, … 29 Hằng số Hằng số là các giá trị không đổi trong chương trình 0, ”Hello, world”, … Có thể khai báo (gán tên) cho hằng số (như các biến) const = ; không thay đổi được giá trị const int Size = 100; Một số hằng đã được khai báo true, false,… 30 Hằng không định kiểu (C) Có thể khai báo các hằng không định kiểu bằng chỉ thị chương trình dịch #define #define PI 3.14 #define TRUE 1 #define FALSE 0 #define NULL 0 … double x = PI; Đây là cách làm của ngôn ngữ C, nên hạn chế sử dụng 31 Tự thực hành Thao tác thành thạo với các biến số nguyên, số thực, logic khai báo (cục bộ, tổng thể) sử dụng các toán tử khác nhau chuyển đổi kiểu kiểm tra thứ tự ưu tiên kiểm tra biên của các số, tràn số số và kiểu ký tự Khai báo hằng số Nhập dữ liệu từ bàn phím, xuất ra màn hình 32 Bài tập: Tìm hiểu về hàm xuất nhập dữ liệu chuẩn của C++: cin, cout Dữ liệu thực tế được lưu trữ ở đâu và thao tác nh thế nào?ư Sự khác nhau giữa câu lệnh khai báo biến và câu lệnh thông thường (v.d. phép toán)? 33 NHẬP/XUẤT TRONG C++ Thư viện: #include using namespace std; Nhập dữ liệu từ bàn phím: cin >> biến_1 ; ho c:ặ cin >> biến_1 >> biến_2 >> biến_3 ; In dữ liệu ra màn hình: cout << bt_1 ; hoặc: cout << bt_1 << bt_2 << bt_3 ; cout<< “Chao mung ban den voi C++”; 34
File đính kèm:
- Slide bài giảng Lập trình C++ - Lương Trần Hy Hiến - Làm việc với dữ liệu.pdf