Bài giảng Nhập môn về lập trình - Chương 3: Tổ chức dữ liệu trong chương trình với mục tiêu giúp sinh viên biết được tên và các thuộc tính của các kiểu dữ liệu cơ bản về số, ký tự, enum và logic (logic trong mở rộng của C, C++); nhập được giá trị của các biến từ bàn phím và xuất được giá trị của các biến ra màn hình... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng.
Chương Tổ chức dữ liệu chương trình Presenter: Nhập mơn lập trình (C3) Slide Learning outcomes L.O.2.1 – Biết tên thuộc tính kiểu dữ liệu số, ký tự, enum logic (logic mở rộng C, C++) L.O.2.2 – Khai báo biến L.O.2.3 – Xác định giải thích rõ kiểu lưu trữ biến L.O.2.4 – Sử dụng toán tử thực hiện với kiểu dữ liệu để thành lập biểu thức L.O.2.5 – Nhập giá trị biến từ bàn phím xuất giá trị biến hình (nhắc lại có nâng cao) L.O.2.6 – Định nghĩa kiểu có cấu trúc sử dụng chúng Nhập mơn lập trình (C3) Slide Tở chức dữ liệu chương trình C Phân loại Dữ liệu dùng các chương trình C thường xuất hiện hình thức: • Giá trị tức thời (value) • Hằng (constant): có tên (name) và giá trị thay (value) • Biến (variable): có tên (name), kiểu (type) và nội dung chứa bên (value) Nhập mơn lập trình (C3) Slide Giá trị tức thời Cách viết Dữ liệu số: • Số nguyên hệ 8: bắt đầu chữ „O‟ (Octal) Ví dụ: O165 -O203 • Số nguyên hệ 16: bắt đầu 0x (Hexadecimal) Ví dụ: 0x3D -0x3AF8 • Số nguyên hệ 10: (Decimal) Ví dụ: 169 -2053 • Số thực chấm động: (floating point) Ví dụ: 3.14159 -0.31459e1 -83.1E-9 Dữ liệu ký tự / ch̃i • Ký tự: đặt dấu nháy đơn („) Ví dụ: „A‟ „7‟ „\064‟ „\t‟ • Ch̃i: đặt dấu nháy kép (“) Ví dụ: “Nhap so: “ “%-10.3f\n” Nhập mơn lập trình (C3) Slide Hằng Hằng là giá trị đặt tên (thường dùng chữ lớn) Cú pháp định nghĩa gợi nhớ : const = ; hay #define Ví dụ: const int VMAX = 15; #define VMAX 15 Lưu ý : dấu < > chỉ để miêu tả phần tử người sử dụng đặt tên chứ khơng viết Nhập mơn lập trình (C3) Slide Biến Định nghĩa Biến dùng chương trình C++ chính là nhớ máy tính và có các đặc điểm sau: • Có tên (name): người sử dụng đặt để dùng thay cho địa chỉ (address) =& • Có kiểu (type): liên quan đến loại và độ lớn giá trị mà biến có thể chứa • Có nội dung: là giá trị chứa biến Kiểu dữ liệu cung cấp C++ chia thành kiểu có sẳn (tên kiểu C++ qui định) và kiểu người sử dụng (tên kiểu người sử dụng đặt thông qua đặc tả kiểu) Nhập mơn lập trình (C3) Slide Kiểu dữ liệu có sẳn C++ void : byte (không có giá trị nào), dùng để miêu tả kiểu trả hàm mà không muốn trả giá trị char : byte (-128 127) unsigned char : byte (0 255) short / short int : bytes (-32,768 32,767) unsigned short : bytes (0 to 65535) int / long (long integer) : bytes (-2,147,483,648 2,147,483,647) unsigned int / unsigned long : bytes (0 to 4,294,967,295) float (single-precision floating-point) :4 bytes [6 chữ số] (1.175494351E-38F 3.402823466E+38) double (double-precision floating-point) : bytes [15 chữ số] (2.2250738585072014E-308 1.7976931348623158E+308) Nhập mơn lập trình (C3) Slide Biến Định nghĩa và khai báo Định nghĩa biến theo cú pháp: [=]; đó có thể là kiểu có sẳn hay kiểu người sử dụng là trị ban đầu, có thể không có Ví dụ: int so=3; char kytu; float x1,x2; hoso sv1; Khai báo biến (đã định nghĩa module khác): extern ; Ví dụ: extern int so; extern char gioitinh; Định nghĩa biến tĩnh: static [=]; Ví dụ: static long dem; Biến automatic là biến cục bộ Nhập mơn lập trình (C3) Biến static là biến toàn cục Biến dynamic cấp phát lúc chạy Slide Biểu thức Các thành phần biểu thức Biểu thức thể hiện cách xử lý dữ liệu chương trình Biểu thức là cách tính toán chương trình Các thành phần xác định biểu thức : • • • • • Các toán hạng : các biến, dữ liệu, Các toán tử tham gia biểu thức : +,-,*,/, Qui tắc kết hợp toán tử và toán hạng để tạo biểu thức Qui trình tính biểu thức phần mềm Kiểu kết quả sau tính biểu thức Nhập mơn lập trình (C3) Slide Biểu thức Biểu thức bản Biểu thức bản là phần tử nhỏ tạo biểu thức Các biểu thức gồm : • • • • • Biến [ nội dung biến ] Hằng gợi nhớ [ giá trị đại diện của ] Giá trị ( kiểu nguyên, thực, chuỗi, ) [ chính giá trị ] Gọi hàm [ trị trả về từ hàm ] ( Biểu thức ) [ giá trị Biểu thức ] Biểu thức là biểu thức Nhiều biểu thức kết hợp với các toán tử cũng là biểu thức Nhập mơn lập trình (C3) Slide 10 Biểu thức Qui trình tính biểu thức Qui trình tính : Từ trái sang phải, mỗi lần gặp toán tử (CurrentOp) thì phải nhìn tiếp toán tử sau nó (SussesorOp), so sánh độ ưu tiên toán tử và định sau : • Nếu khơng có SussesorOp tính tốn tử CurrentOp (trên 1, hay tốn hạng nó) • Nếu tốn tử CurrentOp có độ ưu tiên cao hay tốn tử SussesorOp tính tốn tử CurrentOp (trên 1, hay tốn hạng nó) • Các trường hợp cịn lại cố gắng thực hiện tốn tử SussesorOp trước Đởi SussesorOp thành CurrentOp và trở lại bước đầu, Nhập mơn lập trình (C3) Slide 12 Biểu thức Nhóm tốn tử và đợ ưu tiên (1) Bảng liệt kê độ ưu tiên các toán tử từ cao xuống thấp : Operator Name or Meaning Associativity [] () () Array subscript Function call Conversion Left to right Left to right None -> Member selection (object) Member selection (pointer) Left to right Left to right ++ -++ Postfix increment Postfix decrement Prefix increment Prefix decrement None None None None Nhập môn lập trình (C3) Slide 13 Biểu thức Nhóm tốn tử và độ ưu tiên (2) Operator Name or Meaning Associativity Dereference Address-of Unary plus Arithmetic negation (unary) Logical NOT Bitwise complement None None None None None None Size of object Size of type type name None None None * / % Multiplication Division Remainder (modulus) Left to right Left to right Left to right + – Addition Subtraction Left to right Left to right * & + – ! ~ sizeof sizeof ( ) typeid( ) Nhập môn lập trình (C3) Slide 14 Biểu thức Nhóm tốn tử và độ ưu tiên (3) Operator Name or Meaning Associativity > Left shift Right shift Left to right Left to right < > = == != Less than Greater than Less than or equal to Greater than or equal to Equality Inequality Left to right Left to right Left to right Left to right Left to right Left to right & ^ | Bitwise AND Bitwise exclusive OR Bitwise OR Left to right Left to right Left to right && || Logical AND Logical OR Left to right Left to right e1?e2:e3 Conditional Right to left Nhập môn lập trình (C3) Slide 15 Biểu thức Nhóm tốn tử và độ ưu tiên (4) Operator = *= /= %= += -= = &= |= ^= Name or Meaning Associativity Assignment Multiplication assignment Division assignment Modulus assignment Addition assignment Subtraction assignment Left-shift assignment Right-shift assignment Bitwise AND assignment Bitwise inclusive OR assignment Bitwise exclusive OR assignment Right to left Right to left Right to left Right to left Right to left Right to left Right to left Right to left Right to left Right to left Right to left Comma Left to right , Nhập mơn lập trình (C3) Slide 16 Biểu thức Kiểu biểu thức Kiểu biểu thức lấy theo kiểu toán hạng lớn So sánh các kiểu số dựa độ lớn (10x) và độ chính xác (số chữ số có nghĩa) Kiểu Số byte Độ chính xác Độ lớn - char short int / long float double 4 15 102 104 109 1032 10302 char < short < int/long < double char < short < float < double Ngoại lệ: float gặp int/long đổi double Nhập mơn lập trình (C3) Slide 17 Biểu thức Toán tử gán Toán tử Sử dụng Giải thích = iNum1 = iNum2 += iNum1 += iNum2 iNum1 = iNum1 + iNum2 -= iNum1 -= iNum2 iNum1 = iNum1 - iNum2 *= iNum1 *= iNum2 iNum1 = iNum1 * iNum2 /= iNum1 /= iNum2 iNum1 = iNum1 / iNum2 %= iNum1 %= iNum2 iNum1 = iNum1 % iNum2 Ví dụ : tính tổng S=1+2+3+ +7 tong=0; for (dem=1; dem