Bài giảng Nhập môn 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 đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn 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:
bai_giang_nhap_mon_lap_trinh_chuong_3_to_chuc_du_lieu_trong.pdf

