Bài giảng Kỹ thuật lập trình - Chương 03: Tổ chức dữ liệu trong chương trình - Trần Quang

Nội dung

- Dữ liệu cố định • Hằng • Biến

Kiểu dữ liệu

- Từ khoá

Tầm vực biến

Phép toán và biểu thức • Kiểu enum, struct

Chuyển đổi kiểu dữ liệu

pdf 52 trang xuanthi 27/12/2022 2860
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 03: Tổ chức dữ liệu trong chương trình - Trần Quang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_03_to_chuc_du_lieu_trong.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 03: Tổ chức dữ liệu trong chương trình - Trần Quang

  1. Nội dung  Dữ liệu cố định  Hằng  Biến  Kiểu dữ liệu  Từ khoá  Tầm vực biến  Phép toán và biểu thức  Kiểu enum, struct  Chuyển đổi kiểu dữ liệu Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 2
  2. Giá trị cố định  Giá trị số:  Số nguyên hệ bát phân (octal): bắt đầu bằng số 0  Ví dụ: 0165 -0203  Số nguyên hệ thập lục(hexadecimal): bắt đầu bằng 0x  Ví dụ: 0x3D -0x3AF8  Số nguyên hệ thập phân (decimal): như bình thường  Ví dụ: 169 -2053  Số thực dấu chấm động: (floating point)  Ví dụ: 3.14159 13.5f -83.1E-9 Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 4
  3. Giá trị cố định  Giá trị kiểu ký tự - chuỗi  Ký tự: đặt trong 2 dấu nháy đơn ('). Có thể ký tự bình thường (plain character) hay escape sequence ('\n', '\t', )  Ví dụ: 'A' '7' '\101' '\t'  Chuỗi: đặt trong 2 dấu nháy kép (“)  Ví dụ: "Dai Hoc Bach Khoa" Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 6
  4. Hằng  Hằng là một giá trị được đặt tên (thường dùng chữ in hoa)  Cú pháp định nghĩa hằng: const = ; hay #define  Ví dụ:  const int MAX = 15;  #define MAX 15 Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 8
  5. Biến  Biến là một vùng trong bộ nhớ của máy tính và có các đặc điểm sau:  Cótên (name): do người dùng tựđặ t ra để dùng thay cho địa chỉ trong bộ nhớ  Cókiể u (type): liên quan đến loại và độ lớn của giá trị mà biến có thể chứa.  Códữ liệu: là giá trị chứa trong biến. Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 10
  6. Khai báo biến  Cú pháp: [= ]; trong đó:  : kiểu cósẵn hay người dùng tự định nghĩa  : tên biến do người dùng tự đặt  : giá trị ban đầu, có thể có hoặc không Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 12
  7. Khai báo biến  Khai báo biến đã được định nghĩa trong module khác: extern ;  Ví dụ: extern int so;  Khai báo biến tĩnh: static [= ];  Ví dụ: static long dem; Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 14
  8. Từ khoá  Là từ có ý nghĩa đặc biệt đã được quy định trước bởi ngôn ngữ lập trình.  Người lập trình không được dùng từ khoá để đặt tên cho các tên mình tạo ra như tên biến, tên kiểu, tên hàm, tên hằng, v.v. Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 16
  9. Kiểu dữ liệu Dữ liệu mà chương trình lưu trữ có thể thuộc nhiều dạng khác nhau, gọi là kiểu dữ liệu (data type)  Ký tự (character)  Kiểu số  Số nguyên (integer)  Số thực (float)  Kiểu chuỗi  Kiểu mảng (array)  Kiểu cấu trúc (struct)  Kiểu kiệt kê (enum)  Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 18
  10. Các loại kiểu dữ liệu  Kiểu dữ liệu cơ bản (fundamental data type)  Ngôn ngữ C/C++ cung cấp sẵn mộtsố các tên kiểu  Tên các kiểu này cũng là từ khoá  Kiểu dữ liệu do người lập trình định nghĩa (user- defined data type)  Tên kiểu do người lập trình tự đặt ra  Một số kiểu như: struct, enum  Kiểu dữ liệu dẫn xuất (derived data type)  Mảng (array)  Con trỏ (pointer) Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 20
  11. Hàm sizeof()  Hàm sizeof() trả về số byte của kiểu dữ liệu  Ví dụ: printf("%d", sizeof(int));  Số bytes của kiểu dữ liệu tuỳ thuộc vào phiên bản, tuy nhiên sẽ thoả mãn: 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 22
  12. Kiểu enum  enum dùng để định nghĩa các giá trị thuộc kiểu số nguyên nhưng được gán cho tên gợi nhớ  Cú pháp: enum enumName { enumeration list }  ví dụ: enum colors {RED, GREEN, BLUE}; enum months {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 24
  13. Kiểu enum  enum có thể xem như một tập hợp các hằng số.  Ở các ví dụ trên ta có các tập hợp: colors, months  Với tập colors có các hằng: RED, GREEN, BLUE như đã khai báo  Với tập months có các hằng: JAN, FEB, MAR, v.v  Về bản chất, các giá trị trong tập hợp (enum) được TỰ ĐỘNG gán một con số nguyên. Mặc định hằng đầu tiên là 0, kế tiếp là 1, v.v . Tuy nhiên ta có thể gán các giá trị này Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 26
  14. Kiểu void  Kiểu void chỉ rằng không có giá trị  Được dùng trong 3 trường hợp: 1. Hàm trả về kiểu void  Ví dụ: void exit (int status); 2. Hàm có tham số là void (không có tham số)  Ví dụ: int rand(void); 3. Pointer trỏ đến void  Ví dụ: hàm void *malloc( size_t size ); Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 28
  15. Kiểu struct struct HinhChuNhat { int dai; int rong; }; void main() { struct HinhChuNhat h1; h1.dai = 10; h1.rong = 5; cout << "Dien tich h1 = " << h1.dai * h1.rong << endl; system("pause"); } Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 30
  16. typedef  Từ khóa typedef có thể sử dụng để định nghĩa một tên kiểu mới.  Ví dụ: typedef unsigned char BYTE;  Sau đó ta có thể sử dụng BYTE như là tên viết tắt cho các kiểu unsigned char  Ví dụ: BYTE b1, b2;  Theo quy ước, người ta thường dùng chữ cái viết hoa cho những định nghĩa này Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 32
  17. Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 34
  18. Biểu thức (expression)  Biểu thức cũng giống như công thức toán học, dùng để mô tả quy trình tính toán nào đó trên các dữ liệu  Các thành phần của biểu thức :  Các toán hạng (operand): biến, hằng, dữ liệu,  Các toán tử (operator): +, -, *, /,  Quy trình tính biểu thức, độ ưu tiên của toán tử  Kiểu kết quả sau khi tính biểu thức. Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 36
  19. Các loại toán tử Toán tử số học Arithmetic Operators Toán tử so sánh Comparison Operators (Toán tử quan hệ) (Relational Operators) Toán tử luận lý Logical Operators Toán tử bitwise Bitwise Operators Toán tử gán Assignment Operators Các toán tử khác Other Operators Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 38
  20. Toán tử số học + cộng - trừ * nhân / chia lấy phần dư (trong phép chia), % cả hai toán hạng là số nguyên ++ toán tử tăng toán tử giảm Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 40
  21. Toán tử gán phức hợp Toán tử Ví dụ Ý nghĩa += x += a x = x + a -= x -= a x = x - a *= x *= a x = x * a /= x /= a x = x / a %= x %= a x = x % a Ví dụ: x += 5 tương đương x = x + 5 Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 42
  22. Toán tửluậ n lý  Toán hạng là các giá trị luận lý true (khác 0) hoặc false (bằng 0) Toán tử hàm luận lý ! NOT && AND || OR Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 44
  23. Toán tử bitwise Các phép toán trên bit (các số được chuyển về hệ nhị phân để tính toán trên từng bit):  bitwise AND & p q p & q p | q p ^ q  bitwise OR | 0 0 0 0 0  bitwise XOR ^ 0 1 0 1 1  bitwise NOT ~ 1 0 0 1 1  left shift > . Các phép gán phức hợp: =>> =<< &= ^= |= Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 46
  24. Độ ưu tiên của các toán tử Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 48
  25. Chuyển đổi kiểu  Khi người lập trình thực hiện phép gán mà kiểu của bên phải phép gán (kiểu nguồn) và kiểu bên trái phép gán (kiểu đích) khác nhau, cần chuyển đổi giá trị từ kiểu nguồn sang kiểu đích  Các dạng chuyển đổi  Chuyển đổi ngầm (mặc nhiên)  Có thể giữ nguyên giá trị nguồn  Có thể biến đổi giá trị nguồn  Ép kiểu  Người lập trình can thiệp bằng toán tử đặc biệt: cặp dấu ”(” và “)” Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 50
  26. Ép kiểu (type casting)  Là chuyển đổi kiểu tường minh, người lập trình đặt tả kiểu đích  Cú pháp  Dạng hàm double x = 10.5; int a = int(x);  Dạng c double x = 10.5; int a = (int) x; Trần Quang Kỹ thuật lập trình Chương 03: Tổ chức dữ liệu trong chương trình © 2016 52