BIỂUTHỨCBIỂUTHỨC
CHƯƠNG 2
BIỂU
THỨCBIỂU
THỨC
(Expressions)(Expressions)
(Expressions)(Expressions)
1. Khái niệmvề biểuthức1. Khái niệmvề biểuthức
1.
Khái
niệm
về
biểu
thức1.
Khái
niệm
về
biểu
thức
Biểuthứclàmộtsự kếthợpgiữacáctoán
t
ử
(operator) và các toán hạn
g
(operand)
theo đúng mộttrậttự nhất định.
ỗ
M
ỗ
itoánhạn
g
có th
ể
là mộthằn
g
,mộtbiến
hoặcmộtbiểuthứckhác.
Trong trường hợp, biểuthức có nhiềutoán
tử,tadùngcặpdấungoặc đơn()để chỉ
đị h
tá
tử
à
đượ
thự
hiệ
t ướ
đị
n
h
t
o
á
n
tử
n
à
o
đượ
c
thự
c
hiệ
n
t
r
ướ
c.
2. Kiểudữ liệu(Data type)2. Kiểudữ liệu(Data type)
2.
Kiểu
dữ
liệu(Data
type)2.
Kiểu
dữ
liệu(Data
type)
C/C++ có nămkiểudữ liệucơ sở:
−Ký tự (char)
−
Số
nguyên
(int)
−
Số
nguyên
(int)
−Số thực(float)
−Số thựccóđộ chính xác
g
ấp đôi (double)
−Kiểuvôđịnh (void).
Kích thướcvàphạmvicủanhững kiểudữ
liệu
này
có
thể
thay
đổi
tùy
theo
loại
CPU
và
liệu
này
có
thể
thay
đổi
tùy
theo
loại
CPU
và
trình biên dịch.
2. Kiểudữ liệu(Data type)2. Kiểudữ liệu(Data type)
2.
Kiểu
dữ
liệu(Data
type)2.
Kiểu
dữ
liệu(Data
type)
Kiểucharchứagiá trị củabộ mã ASCII
(
A
mercican Standard Code fo
r
Information
Interchange). Kích thướclà1byte.
Kích thướccủakiểu int là 16 bits (2 bytes)
trên môi trường 16-bit như DOS và 32 bits
(
4
bt )
tê
ôi
t ườ
32
bit
hư
(
4
b
y
t
es
)
t
r
ê
nm
ôi
t
r
ườ
n
g
32
-
bit
n
hư
Windows 95
Kiể
id
dù
để
kh i
bá
hà
khô
t ả
Kiể
uvo
id
dù
n
g
để
kh
a
i
bá
o
hà
m
khô
n
g
t
r
ả
về giá trị hoặctạonêncáccontrỏ tổng
quát
(generic
pointers)
quát
(generic
pointers)
.
2. Kiểudữ liệu(Data type)2. Kiểudữ liệu(Data type)
2.
Kiểu
dữ
liệu(Data
type)2.
Kiểu
dữ
liệu(Data
type)
3. Định danh (Identifier Name)3. Định danh (Identifier Name)
3.
Định
danh
(Identifier
Name)3.
Định
danh
(Identifier
Name)
Trong C/C++, tên biến, hằng, hàm,…
được
g
ọi là định danh
Những định danh này có thể là 1 hoặc nhiều
ký t
ự
.Kýt
ự
đầutiênphảilàmộtch
ữ
cái
hoặcdấu _ (underscore), những ký tự theo
hải
là
hữ
ái
hữ
ố
h ặ
dấ
sau p
hải
là
c
hữ
c
ái
,c
hữ
s
ố
,
h
o
ặ
c
dấ
u_
C/C++ phân biệtký tự HOA và thường.
Định danh không đượctrùngvớitừ khóa
(keywords).
4. Từ khóa (keywords)4. Từ khóa (keywords)
4.
Từ
khóa
(keywords)4.
Từ
khóa
(keywords)
Là những từ được dành riêng bởi ngôn ngữ
lập trình cho nhữn
g
mục đích riên
g
của nó
Tất cả các từ khóa trong C/C++ đều là chữ
thườn
g
(lowercase).
Danh sách các từ khóa tron
g
C/C++
g
5. Biến (variables)5. Biến (variables)
5.
Biến
(variables)
5.
Biến
(variables)
Biếnlàđịnh danh củamột vùng trong bộ
hớ
dù
để
iữ
ột
iá
t ị
à
ó
thể
bị
n
hớ
dù
n
g
để
giữ
m
ột
giá
t
r
ị
m
à
c
ó
thể
bị
thay đổibởichương trình.
Tất
cả
biến
phải
được
khai
báo
trước
khi
sử
Tất
cả
biến
phải
được
khai
báo
trước
khi
sử
dụng.
Cách
khai
báo
:
Cách
khai
báo
:
type variableNames;
t
là
ột
t
á
kiể
dữ
liệ
hợ
lệ
−
t
yp
e
:
là
m
ột
t
ron
g
c
á
c
kiể
u
dữ
liệ
u
hợ
p
lệ
.
−
variableNames
:têncủamột hay nhiều
biến
phân
cách
nhau
bởi
dấu
phẩy
biến
phân
cách
nhau
bởi
dấu
phẩy
.
5. Biến (variables)5. Biến (variables)
5.
Biến
(variables)
5.
Biến
(variables)
Ngoài ra, ta có thể vừa khai báo vừa khởi
tạo
g
iá trị ban đầu cho biến:
type varName1=value, ,varName_n=value;
Ví dụ:
float mark1, mark2, mark3, average = 0;
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
Biếncụcbộ (local variables)
− Những biến được khai báo bên trong một
hàm gọilàbiếncụcbộ.
− Các biếncụcbộ chỉđược tham chiếu đến
bởinhững lệnh trong khối (block) có khai
báo biến.
− Mộtkhối được đặttrongcặpdấu{}.
− Biếncụcbộ chỉ tồntạitrongkhikhốichứa
nó đang thựcthivàbị hủykhikhốichứanó
h
h
t
h
ựct
h
ixon
g
.
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
Ví dụ:
void func1(void)
void
func1(void)
{
int x
;
;
x = 10;
}
void func2(void)
{
{
int x;
x = -199;
}
}
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
Tham số hình thức(formal parameters)
− Nếumộthàmcónhậncácđốisố truyền
vàohàm thìnóphảikhaibáo các biến
đ
ể
nhận
g
iá trị củacácđốisố khi
hàm đượcgọi.
− Những biếnnàygọi là các tham số
hình thức. Những biếnnàyđượcsử dụng
iố
hư
á
biế
bộ
giố
n
g
n
hư
c
á
c
biế
ncục
bộ
.
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
Ví dụ:
int sum(int from, int to)
{
{
int total=0;
for
(
int i=from
;
i<=to
;
i++
)
(;;)
total +=i;
return total;
return
total;
}
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
Biếntoàncục (global variables)
− Biếntoàncụccóphạmvilàtoànbộ
chương trình.
− Tấtcả các lệnh có trong chương trình
đềucóth
ể
tham chiếu đếnbiếntoàn
cục.
− Biếntoànc
ụ
c đư
ợ
c khai báo bên n
g
oài tấ
t
ụ
ợ
g
cả hàm.
6. Phạmvicủabiến6. Phạmvicủabiến
6.
Phạm
vi
của
biến6.
Phạm
vi
của
biến
#include <iostream.h>
int
g
Var = 100;
void increase()
{ V V 1}
{ gV
ar
=
gV
ar
+
1
;
}
void decrease()
{ gVar = gVar
-
1;}
{ gVar = gVar
-
1;}
void main()
{
{
cout << “Value of gVar= “ << gVar; increase();
cout << “After increased, gVar= “ << gVar; decrease();
cout << “After decreased, gVar= “ << gVar;
}
7. Từ khóa const7. Từ khóa const
7.
Từ
khóa
const
7.
Từ
khóa
const
Giá trị củabiếnthayđổi trong suốtquá
trình thựcthichươn
g
trình.
Để giá trị củabiếnkhôngbị thay đổi, ta đặt
trước khai báo biếnt
ừ
khóa const.
T
hôn
g
thườn
g
ta dùn
g
ch
ữ
HO
A
đ
ể
đ
ặ
ttên
g
g
g
ặ
cho những biếnnày.
Ví d
ụ
:
ụ
const int MAX = 200;
8. Hằng (constants)8. Hằng (constants)
8.
Hằng
(constants)8.
Hằng
(constants)
Hằng là những giá trị cốđịnh (fixed
ể
values) mà chươn
g
trình khôn
g
th
ể
thay
đổi. Mỗikiểudữ liệu đềucóhằng tương
ứng
Hằng
còn
được
gọi
là
literals
ứng
.
Hằng
còn
được
gọi
là
literals
.
Hằng ký tựđược đặttrongcặp nháy đơn.
Ví
d
'’
Ví
d
ụ:
'
a
’
Hằng nguyên là những số mà không có
phần
thập
phân
phần
thập
phân
.
Ví dụ 100 , -100
8. Hằng (constants)8. Hằng (constants)
8.
Hằng
(constants)8.
Hằng
(constants)
y Hằng số thựcyêucầumộtdấuchấm
phân cách phầnn
g
uyên và phầnthập phân.
Ví dụ: 123.45
y Cách viết một số loại hằng số
8. Hằng chuỗikýtự8. Hằng chuỗikýtự
(string constants(string constants
))
8.
Hằng
chuỗi
ký
tự
8.
Hằng
chuỗi
ký
tự
(string constants(string constants
)
)
Hằng chuỗi ký tự là một tập các ký tự đặt
tron
g
cặp nháy kép “”.
Ví dụ:
• "This is a string" //là một chuỗi.
•
‘
a
’
//là mộthằng ký tự
•
a
//là
một
hằng
ký
tự
.
• “a” //là một hằng chuỗi.
9. 9.
HH
ằằ
ng ký tng ký t
ựự
đđ
ặặ
c bic bi
ệệ
t(escape sequences)t(escape sequences)
9. 9.
HH
ằằ
ng ký tng ký t
ựự
đđ
ặặ
c bic bi
ệệ
t(escape sequences)t(escape sequences)
9. 9.
HH
ằằ
ng ký tng ký t
ựự
đđ
ặặ
c bic bi
ệệ
t(escape sequences)t(escape sequences)
9. 9.
HH
ằằ
ng ký tng ký t
ựự
đđ
ặặ
c bic bi
ệệ
t(escape sequences)t(escape sequences)
#include <iostream.h>
void main(void)
{
cout <<"Items:\n";
cout <<”\tItem1\n”;
cout <<”\tItem2\n”;
cout <<”\tItem3\n”;
}
}
10. Toán tử (operators)10. Toán tử (operators)
10.
Toán
tử
(operators)10.
Toán
tử
(operators)
Toán tử gán (assignment operator)
Cú pháp tổng quát
variableName = expression;
−
variableName
: Tên biến
−
ex
p
ressio
n
: Biểu thức
p
Lưuý:phíabêntráidấu=phảilàmột biến
hay con trỏ và không thể là hàm hay hằng.
Ví dụ:
total = a + b + c + d;
11. Chuy11. Chuy
ểể
n đn đ
ổổ
i kii ki
ểể
u trong câu lu trong câu l
ệệ
nh gánnh gán
11. Chuy11. Chuy
ểể
n đn đ
ổổ
i kii ki
ểể
u trong câu lu trong câu l
ệệ
nh gánnh gán
y Đốivớicâulệnh gán, giá trị củabiểuthức
ể
bên phảidấu=đượct
ự
độn
g
chuy
ể
n thành
kiểudữ liệucủabiếnbêntráidấu=
í
d
V
í
d
ụ:
int i=100;
double d = 123.456;
y Nếuthựcthilệnh i = d;thìi = 123 (chuyển
đổi
kiể
ất
át
thô
ti )
đổi
kiể
um
ất
m
át
thô
n
g
ti
n
)
.
y Nếuthựcthilệnh d = i;thìd =100.0
(chuyển
đổi
kiểu
không
mất
mát
thông
tin)
(chuyển
đổi
kiểu
không
mất
mát
thông
tin)
.
11. Chuy11. Chuy
ểể
n đn đ
ổổ
i kii ki
ểể
u trong câu lu trong câu l
ệệ
nh gánnh gán
11. Chuy11. Chuy
ểể
n đn đ
ổổ
i kii ki
ểể
u trong câu lu trong câu l
ệệ
nh gánnh gán
y Khi chuyển đổitừ kiểudữ liệucómiềngiá
ể
trị nhỏ san
g
ki
ể
ud
ữ
liệucómiền
g
iá trị lớn
hơn:charÆintÆlongÆfloatÆdouble, thì việc
chuyển
đổi
kiểu
này
là
không
mất
mát
chuyển
đổi
kiểu
này
là
không
mất
mát
thông tin
Khi
h ể
đổi
từ
kiể
dữ
liệ
ó
iề
iá
y
Khi
c
h
uy
ể
n
đổi
từ
kiể
u
dữ
liệ
uc
ó
m
iề
n
giá
trị lớnsangkiểudữ liệucómiềngiátrị nhỏ
hơn
:
double
Æ
float
Æ
long
Æ
int
Æ
char
thì
hơn
:
double
Æ
float
Æ
long
Æ
int
Æ
char
,
thì
việc chuyển đổikiểunàylàmấtmát thông
tin
12. Toán t12. Toán t
ửử
ss
ốố
hh
ọọ
c (arithmetic operators) c (arithmetic operators)
12. Toán t12. Toán t
ửử
ss
ốố
hh
ọọ
c (arithmetic operators) c (arithmetic operators)
To
á
nt
ử
Tên
V
í
d
ụ
To
á
n
t
ử
Tên
V
í
d
ụ
+
Cộng 12 + 4.9 // kết quả
16 9
16
.
9
-
Trừ 3.98 - 4 // kết quả -
002
0
.
02
*Nhân
2 * 3.4 // kết quả 6.8
/Chia
9 / 2.0 // kết quả 4.5
%
L
ấ
h
ầ
dư
13
%
3//k
ế
t
ả
1
%
L
ấ
y p
h
ầ
n
dư
13
%
3
//
k
ế
t
qu
ả
1