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

Chương 3  
Tꢀ chꢁc dꢂ liꢃu trong chương  
trꢄnh  
Presenter:  
Nhập môn về lập trình (C3)  
Slide 1  
Learning outcomes  
L.O.2.1 – 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++).  
L.O.2.2 – Khai báo được các biến và hằng.  
L.O.2.3 – Xác định và giải thích rõ các kiểu lưu trꢂ biến.  
L.O.2.4 – Sử dụng được các toán tử có thể thực hiꢃn được  
với các kiểu dꢂ liꢃu để thành lập biểu thꢁc.  
L.O.2.5 – 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 (nhắc  
lại có nâng cao).  
L.O.2.6 – Định nghĩa được các kiểu có cấu trúc và sử dụng  
chúng.  
Nhập môn về lập trình (C3)  
Slide 2  
Tꢀ chꢁc dꢂ liꢃu trong chương trꢄnh C  
Phân loại  
Dꢂ liꢃu dꢅng trong cꢆc chương trꢄnh C thưꢇng  
xuất hiꢃn dưới 3 hꢄnh thꢁc:  
• Giꢆ trị tꢁc thꢇi (value).  
• Hằng (constant): cꢈ tên (name) vꢉ giꢆ trị thay thế  
(value).  
• Biến (variable): cꢈ tên (name), kiểu (type) vꢉ nội dung  
chꢁa bên trong (value).  
Nhập môn về lập trình (C3)  
Slide 3  
Giꢆ trị tꢁc thꢇi  
Cꢆch viết  
Dꢂ liꢃu số:  
• Số nguyên hꢃ 8: bắt đꢊu bằng chꢂ „O‟ (Octal)  
Vꢋ dụ: O165  
• Số nguyên hꢃ 16: bắt đꢊu bằng 0x (Hexadecimal)  
Vꢋ dụ: 0x3D -0x3AF8  
• Số nguyên hꢃ 10: (Decimal)  
-O203  
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ự / chuꢍi  
• Kꢌ tự: đꢎt trong 2 dấu nhꢆy đơn („)  
Vꢋ dụ: „A‟  
• Chuꢍi: đꢎt trong 2 dấu nhꢆy kꢏp (“)  
Vꢋ dụ: “Nhap so: “ “%-10.3f\n”  
„7‟  
„\064‟ „\t‟  
Nhập môn về lập trình (C3)  
Slide 4  
Hằng  
Hằng lꢉ một giꢆ trị được đꢎt tên (thưꢇng dꢅng chꢂ lớn)  
Cú phꢆp định nghĩa hằng gợi nhớ cơ bản :  
const <type> <name> = <value> ;  
hay  
#define <ConstName> <value>  
Vꢋ dụ:  
const int VMAX = 15;  
#define VMAX 15  
Lưu ꢌ : dấu < > chꢐ để miêu tả phꢊn tử do ngưꢇi sử dụng đꢎt  
tên chꢁ không viết ra.  
Nhập môn về lập trình (C3)  
Slide 5  
Biến  
Định nghĩa  
Biến dꢅng trong chương trꢄnh C++ chꢋnh lꢉ bộ nhớ của  
mꢆy tꢋnh vꢉ cꢈ cꢆc đꢎc điểm sau:  
• Cꢈ tên (name): do ngưꢇi sử dụng đꢎt ra để dꢅng thay cho địa chꢐ  
(address).  
<address>=&<name>  
• 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ꢈ nội dung: lꢉ giꢆ trị chꢁa trong biến.  
Kiểu dꢂ liꢃu cung cấp bởi C++ chia ra thꢉnh kiểu cꢈ sẳn  
(tên kiểu do C++ qui định) vꢉ kiểu của ngưꢇi sử dụng (tên  
kiểu do ngưꢇi sử dụng đꢎt thông qua đꢎc tả kiểu).  
Nhập môn về lập trình (C3)  
Slide 6  
Kiểu dꢂ liꢃu có sẳn của C++  
void : 0 byte (không cꢈ giꢆ trị nꢉo), được dꢅng để miêu tả kiểu trả về  
của hꢉm mꢉ không muốn trả về giꢆ trị.  
char : 1 byte (-128 127)  
unsigned char : 1 byte (0 255)  
short / short int : 2 bytes (-32,768 32,767)  
unsigned short : 2 bytes (0 to 65535)  
int / long (long integer) : 4 bytes (-2,147,483,648 2,147,483,647)  
unsigned int / unsigned long : 4 bytes (0 to 4,294,967,295)  
float (single-precision floating-point) :4 bytes  
(1.175494351E-38F 3.402823466E+38)  
[6 chꢂ số]  
double (double-precision floating-point) : 8 bytes  
[15 chꢂ số]  
(2.2250738585072014E-308 1.7976931348623158E+308)  
Nhập môn về lập trình (C3)  
Slide 7  
Biến  
Định nghĩa vꢉ khai bꢆo  
Định nghĩa biến theo cú phꢆp:  
<type> <variable> [=<ConstExpr>];  
trong đꢈ <type> cꢈ thể lꢉ kiểu cꢈ sẳn hay kiểu của ngưꢇi sử dụng.  
<ConstExpr> 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 (đꢑ được định nghĩa trong module khꢆc):  
extern <type> <variable> ;  
Vꢋ dụ:  
extern int so;  
extern char gioitinh;  
Định nghĩa biến tĩnh:  
static <type> <variable> [=<ConstExpr>];  
Vꢋ dụ:  
static long dem;  
Biꢃn automatic lꢄ biꢃn cꢅc bꢁ  
Biꢃn static lꢄ biꢃn toꢄn cꢅc  
Biꢃn dynamic cꢆp phꢇt lꢈc chꢀy  
Nhập môn về lập trình (C3)  
Slide 8  
Biểu thꢁc  
Cꢆc thꢉnh phꢊn của biểu thꢁc  
Biểu thꢁc thể hiꢃn cꢆch xử lꢌ dꢂ liꢃu trong chương trꢄnh.  
Biểu thꢁc lꢉ cꢆch tꢋnh toán của 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, hằng 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 của phꢊn mềm.  
• Kiểu kꢃt quꢉ sau khi tꢋnh biểu thꢁc.  
Nhập môn về lập trình (C3)  
Slide 9  
Biểu thꢊc  
Biểu thꢊc cơ bꢉn  
Biểu thꢊc cơ bꢉn lꢉ phꢊn tử nhỏ nhất tạo ra biểu thꢁc.  
Cꢆc biểu thꢁc cơ bản gꢒm :  
• Biꢃn.  
[ nꢁi dung biꢃn ]  
• Hằng gợi nhꢂ.  
[ giꢇ trꢋ đꢀi diꢌn cꢍa hằng ]  
• Giꢇ trꢋ ( kiểu nguyên, thực, chuꢎi, ...).  
• Gọi hꢄm.  
• ( Biểu thꢊc ).  
[ chꢏnh giꢇ trꢋ ]  
[ trꢋ trꢉ vꢐ tꢑ hꢄm ]  
[ giꢇ trꢋ Biểu thꢊc ]  
Biểu thꢁc cơ bản lꢉ biểu thꢁc.  
Nhiều biểu thꢁc cơ bản kết hợp với nhau bằng cꢆc toꢇn  
tử cꢓng lꢉ biểu thꢁc.  
Nhập môn về lập trình (C3)  
Slide 10  
Biểu thꢁc  
Các toán tử  
Phân loại theo số lượng toꢆn hạng :  
• Toꢇn tử 1 ngôi : chꢐ cꢊn 1 toꢆn hạng.  
Vꢋ dụ: toꢆn tử '-' (số âm), toꢆn tử „!‟ (not luận lꢌ).  
• Toꢇn tử 2 ngôi : cꢊn dꢅng 2 toꢆn hạng.  
[ &, *, +, -, ~, ! ]  
Vꢋ dụ: toꢆn tử '*' (nhân 2 số), „%‟ (chia lấy phꢊn dư), ...  
• Toꢇn tử 3 ngôi : cꢊn dꢅng 3 toꢆn hạng.  
Vꢋ dụ: toꢆn tử 'c?v1:v2' (kiểm tra điều kiꢃn c, nếu c đúng trả về  
v1, c sai trả về v2).  
VC++ thưꢇng dꢅng cꢆc kꢌ tự đꢎc biꢃt để miêu tả toꢆn tử.  
Vꢋ dụ: '+' lꢉ cộng, '-' lꢉ trừ, '*' lꢉ nhân, '/' lꢉ chia, ...  
Nhập môn về lập trình (C3)  
Slide 11  
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 1 toꢆn tử  
(CurrentOp) thꢄ phải nhꢄn tiếp toꢆn tử đi ngay sau nꢈ  
(SussesorOp), so sꢆnh độ ưu tiên của 2 toꢆn tử vꢉ ra  
quyết định như sau :  
• Nếu không có SussesorOp thì tính ngay toán tử CurrentOp (trên  
1, 2 hay 3 toán hạng của nó).  
• Nếu toán tử CurrentOp có độ ưu tiên cao hơn hay bằng toán tử  
SussesorOp thì tính ngay toán tử CurrentOp (trên 1, 2 hay 3  
toán hạng của nó).  
• Các trưꢇng hợp còn lại thì cố gắng thực hiꢃn toán tử  
SussesorOp trước. Đꢀi SussesorOp thꢉnh CurrentOp vꢉ trở lại  
bước đꢊu, ...  
Nhập môn về lập trình (C3)  
Slide 12  
Biểu thꢊc  
Nhꢒm toá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 về lập trình (C3)  
Slide 13  
Biểu thꢊc  
Nhꢒm toán tử vꢄ đꢁ ưu tiên (2)  
Operator  
Name or Meaning  
Associativity  
*
Dereference  
Address-of  
None  
None  
None  
None  
None  
None  
&
+
–
!
Unary plus  
Arithmetic negation (unary)  
Logical NOT  
~
Bitwise complement  
sizeof  
sizeof ( )  
typeid( )  
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  
Nhập môn về lập trình (C3)  
Slide 14  
Biểu thꢊc  
Nhꢒm toá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  
Left to right  
Left to right  
Left to right  
Left to right  
Left to right  
Left to right  
>
<=  
>=  
==  
!=  
Less than or equal to  
Greater than or equal to  
Equality  
Inequality  
&
^
|
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 về lập trình (C3)  
Slide 15  
Biểu thꢊc  
Nhꢒm toán tử vꢄ đꢁ ưu tiên (4)  
Operator  
Name or Meaning  
Associativity  
=
*=  
/=  
%=  
+=  
-=  
<<=  
>>=  
&=  
|=  
Assignment  
Multiplication assignment  
Division 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  
Modulus assignment  
Addition assignment  
Subtraction assignment  
Left-shift assignment  
Right-shift assignment  
Bitwise AND assignment  
Bitwise inclusive OR assignment  
^=  
Bitwise exclusive OR assignment  
,
Comma  
Left to right  
Nhập môn về lập trình (C3)  
Slide 16  
Biểu thꢁc  
Kiểu của biểu thꢁc  
Kiểu của biểu thꢁc lấy theo kiểu của toꢆn hạng lớn nhất.  
So sꢆnh cꢆc kiểu số dựa trên độ 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  
1
2
4
4
8
2
4
9
6
15  
102  
104  
109  
1032  
10302  
char < short < int/long < double  
char < short < float < double  
Ngoại lꢃ: float gꢎp int/long đꢀi ra double.  
Nhập môn về 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 -= iNum2  
iNum1 *= iNum2  
iNum1 /= iNum2  
iNum1 %= iNum2  
+=  
-=  
*=  
/=  
iNum1 = iNum1 + iNum2  
iNum1 = iNum1 - iNum2  
iNum1 = iNum1 * iNum2  
iNum1 = iNum1 / iNum2  
iNum1 = iNum1 % iNum2  
%=  
Vꢋ dụ : tꢋnh tꢀng S=1+2+3+...+7  
tong=0;  
for (dem=1; dem<=7; dem++) tong += dem;  
Nhập môn về lập trình (C3)  
Slide 18  
Biểu thꢁc  
Toán tử tăng / giảm  
Toꢇn tử  
Chꢊc năng  
----------------------------------------------------------------------------------  
++  
--  
Cộng 1 vꢉo toꢆn hạng  
Trừ 1 vꢉo toꢆn hạng  
++ hay -- lꢉ cꢆc toꢆn tử một toꢆn hạng cꢈ thể dꢅng ở trước (prefix)  
hoꢎc sau (postfix) tên biến.  
Toꢆn tử prefix sẽ được thực hiꢃn trước khi sử dụng toꢆn hạng.  
Vꢋ dụ :  
dem = ++tridau; tương đương  
tridau++; dem=tridau;  
Toꢆn tử postfix sẽ được thực hiꢃn sau khi sử dụng toꢆn hạng.  
Vꢋ dụ :  
dem = tridau--; tương đương  
dem=tridau; tridau--;  
Nhập môn về lập trình (C3)  
Slide 19  
Biểu thꢁc  
Biểu thꢁc số hꢔc  
Toꢆn tử số hꢔc gꢒm cꢆc nhꢈm:  
• Một ngôi :  
• Nhân/Chia :  
• Cộng/Trừ :  
• Bit :  
+ (dương), - (âm)  
*, /, %  
+, -  
~ (not), & (and), | (or), ^ (xor)  
Biểu thꢁc số hꢔc lꢉ biểu thꢁc gꢒm cꢆc biểu thꢁc cơ bản  
kết hợp với nhau chꢐ bằng toꢆn tử số hꢔc.  
Toꢆn hạng đꢊu vꢉo kiểu số, kết quả đꢊu ra kiểu số.  
Thưꢇng dꢅng để tꢋnh toꢆn dꢂ liꢃu số.  
Nhập môn về lập trình (C3)  
Slide 20  
Tải về để xem bản đầy đủ
pdf 26 trang yennguyen 19080 Free
Bạn đang xem 20 trang mẫu của tài liệu "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", để 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_nhap_mon_ve_lap_trinh_chuong_3_to_chuc_du_lieu_tro.pdf