Bài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 3: Khai báo các thành phần biểu thức, khối lệnh

3.1. Các khai báo

3.2. Biểu thức

3.3. Khối lệnh

pdf34 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 1546 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 3: Khai báo các thành phần biểu thức, khối lệnh, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
n 
phân tách nhau bởi dấu phẩy. 
 Ví dụ: float a,b,c; 
3.1.4. Khai báo biến (tiếp) 
9 
 Biến có kiểu nào thì chỉ chứa được giá trị của kiểu đó. 
 Khi khai báo biến có thể khởi tạo giá trị ban đầu cho 
biến bằng cách đặt dấu bằng và một giá trị nào đó cách 
ngay sau tên biến. 
 Ví dụ: int a,b=20,c,d=35; 
// khai báo các biến và khởi tạo b=20, d=35 
3.2. Biểu thức 
10 
3.2.1. Biểu thức 
3.2.2. Phép toán số học 
3.2.3. Phép toán quan hệ và logic 
3.2.4. Phép toán tĕng giảm 
3.2.5. Thứ tự ưu tiên của các phép toán 
3.2.6. Các hàm số học 
3.2.7. Câu lệnh gán và biểu thức gán 
3.2.8. Biểu thức điều kiện 
3.2.9. Chuyển đổi kiểu giá trị 
3.2.1. Biểu thức 
11 
 Biểu thức là một sự kết hợp giữa các phép toán và các 
toán hạng để diễn đạt một công thức toán học nào đó, 
để có được một giá trị mới. Toán hạng có thể xem là 
một đại lượng có giá trị. Toán hạng có thể là hằng, 
biến, hàm. 
 Khi viết biểu thức có thể dùng dấu ngoặc tròn để thể 
hiện đúng trình tự tính toán trong biểu thức. 
 Mỗi biểu thức sẽ có một giá trị và nói chung cái gì có 
giá trị đều được xem là biểu thức. 
3.2.1. Biểu thức (tiếp) 
12 
 Có hai loại biểu thức: 
Biểu thức số: có giá trị là nguyên hoặc thực 
Biểu thức logic: có giá trị là đúng (giá trị khác 0) 
hoặc sai (giá trị bằng 0) 
  Ví dụ: (a+b+c)/2 
 (a+b) > 2*c 
 (-b-sqrt(delta))/(2*a) 
3.2.2. Phép toán sӕ học 
13 
 Phép toán hai ngôi: + - * / % 
% là phép lấy phần dư, ví dụ: 11%2 = 1 
 / là phép chia hai số nguyên chỉ giữ lại phần nguyên 
 Ví dụ: 11/2 = 5 
  Phép toán một ngôi: dấu âm – 
 Ví dụ -(a+b) 
 Các phép toán số học tác động trên tất cả các 
kiểu dữ liệu cơ bản 
3.2.3. Phép toán quan hệ và logic 
14 
 Các phép toán quan hệ và logic cho ta giá trị đúng (có 
giá trị bằng 1) hoặc sai (có giá trị bằng 0). 
 Các phép toán quan hệ gồm có: 
Phép toán Ý nghĩa 
> Lớn hơn 
>= Lớn hơn hoặc bằng 
< Nhỏ hơn 
<= Nhỏ hơn hoặc bằng 
== Bằng (hai dấu bằng sát nhau) 
!= Khác nhau 
3.2.3. Phép toán quan hệ và logic (tiếp) 
15 
 Các phép toán logic gồm có: 
Phép toán Ý nghĩa 
! Phủ định (NOT) 
&& Và (AND) 
|| Hoặc (OR) 
3.2.4. Phép toán tĕng giảm 
16 
 C++ có hai phép toán một ngôi để tĕng và giảm giá trị 
của các biến (có kiểu nguyên hoặc thực). Toán tử 
tĕng ++ cộng 1 vào toán hạng của nó, toán tử 
giảm -- trừ toán hạng của nó đi 1. 
 Ví dụ: giả sử biến n đang có giá trị là 8, sau phép tính ++n làm cho n có giá 
trị là 9, sau phép tính --n làm cho n có giá trị là 7.  Phép toán ++ và -- có thể đứng trước hoặc sau toán 
hạng. Nếu đứng trước thì toán hạng của nó sẽ được 
tĕng/giảm trước khi nó được sử dụng, nếu đứng sau 
thì toán hạng của nó sẽ được tĕng/giảm sau khi nó 
được sử dụng. 
3.2.5. Thứ tӵ ѭu tiên của các phép toán 
17 
 Khi trong một biểu thức có chứa nhiều phép toán thì 
các phép toán được thực hiện theo thứ tự ưu tiên: Các 
phép toán có mức ưu tiên cao thực hiện trước, các 
phép toán cùng mức ưu tiên được thực hiện từ trái qua 
phải hoặc từ phải qua trái. 
 Bảng thứ tự ưu tiên các phép toán: Các phép toán cùng 
loại cùng mức ưu tiên. Các phép toán loại 1 có mức 
ưu tiên cao nhất, rồi đến các phép toán loại 2, 3,… 
Các phép toán loại 2 (phép toán một ngôi), 14 (phép 
toán điều kiện) và 15 (phép toán gán) kết hợp từ phải 
qua trái, các phép toán còn lại kết hợp từ trái qua phải. 
3.2.5. Thứ tӵ ѭu tiên của các phép toán (tiếp) 
18 
TT Loại phép toán Phép toán Ý nghĩa 
1 
Cao nhất 
() Lời gọi hàm, dấu ngoặc 
[] Truy nhập phần tử mảng 
-> Truy nhập gián tiếp 
. Truy nhập trực tiếp 
:: Truy nhập tên miền 
2 
Phép toán 1 ngôi 
! Phủ định (NOT) 
~ Đảo bit 
+ Dấu dương 
- Dấu âm 
++ Toán tử tĕng 
-- Toán tử giảm 
3.2.5. Thứ tӵ ѭu tiên của các phép toán (tiếp) 
19 
TT Loại phép toán Phép toán Ý nghĩa 
2 
Phép toán 1 ngôi 
& Lấy địa chỉ biến 
* Truy nhập qua con trỏ 
sizeof Cho kích thước toán hạng 
New Cấp phát bộ nhớ động 
Delete Giải phóng bộ nhớ 
(Kiểu dl) Phép ép kiểu dữ liệu 
3 
Phép toán truy 
nhập thành viên 
.* 
->* 
4 
Phép toán nhân 
* Nhân 
/ Chia 
% Chia lấy phần dư 
3.2.5. Thứ tӵ ѭu tiên của các phép toán (tiếp) 
20 
TT Loại phép toán Phép toán Ý nghĩa 
5 Phép toán cộng + Cộng 
- Trừ 
6 Phép toán dịch bit >> Dịch phải 
<< Dịch trái 
7 
Phép toán quan hệ 
< Nhỏ hơn 
<= Nhỏ hơn hoặc bằng 
> Lớn hơn 
>= Lớn hơn hoặc bằng 
8 Phép toán so sánh bằng == Bằng 
!= Khác nhau 
3.2.5. Thứ tӵ ѭu tiên của các phép toán (tiếp) 
21 
TT Loại phép toán Phép toán Ý nghĩa 
9 Phép toán về bit & Phép AND bit 
10 Phép toán về bit ^ Phép XOR bit 
11 Phép toán về bit | Phép OR bit 
12 Phép toán logic && Phép AND logic 
13 Phép toán logic || Phép OR logic 
14 
Phép toán điều kiện 
?: Ví dụ: a ? x : y //nếu a 
đúng thì bằng x, còn 
không thì bằng y 
3.2.5. Thứ tӵ ѭu tiên của các phép toán (tiếp) 
22 
TT Loại phép toán Phép toán Ý nghĩa 
15 
Phép toán gán 
= Phép gán đơn giản 
*= Phép gán nhân 
/= Phép gán chia 
%= Phép gán chia lấy phần dư 
+= Phép gán cộng 
-= Phép gán trừ 
&= Phép gán AND bit 
^= Phép gán XOR bit 
|= Phép gán OR bit 
<<= Phép gán dịch trái bit 
>>= Phép gán dịch phải bit 
16 Dấu phẩy , 
3.2.6. Các hàm sӕ học 
23 
 Các hàm số học nằm trong thư viện chương trình 
math, muốn sử dụng các hàm này ta phải khai báo: 
 #include 
 Dưới đây là một số hàm số học hay dùng: 
 Tên hàm Ý nghĩa 
cos(x) Cho cos(x) 
sin(x) Cho sin(x) 
acos(x) Cho arccos(x) 
asin(x) Cho arcsin(x) 
3.2.6. Các hàm sӕ học (tiếp) 
24 
Tên hàm Ý nghĩa 
tan(x) Cho tg(x) 
fabs(x) Cho |x| 
exp(x) ex 
log(x) Cho lnx 
log10(x) Cho log10x
pow(y,x) Cho yx 
sqrt(x) Cho cĕn bậc 2 của x 
3.2.7. Câu lệnh gán và biểu thức gán 
25 
 Câu lệnh gán 
 Để đưa giá trị vào các biến tại thời điểm lập trình ta sử 
dụng lệnh gán. Có lệnh gán đơn giản và lệnh gán phức 
hợp. 
 Lệnh gán đơn giản có dạng: Biến = Biểu thức; 
 Lệnh gán này đưa giá trị của biểu thức bên phải vào biến 
bên trái. Vế trái của phép gán chỉ có thể là biến và chỉ một 
mà thôi. 
 Ví dụ: a = 2*x*x + 3*x + 1; 
3.2.7. Câu lệnh gán và biểu thức gán (tiếp) 
26 
 Câu lệnh gán 
 Lệnh gán phức hợp có dạng: 
 Biến Phép_toán= Biểu thức; 
 Phép toán để ngay trước dấu bằng, có thể là các phép 
toán số học hoặc các phép toán về bit. 
 Ví dụ: a += 2; 
 Lệnh gán này đem giá trị của biến kết hợp với giá trị của 
biểu thức theo phép toán rồi đưa kết quả vào biến, tức là 
thực hiện phép toán trước rồi mới gán. 
 Ví dụ: a *= 5; //lệnh này tương đương với lệnh a = a*5; 
3.2.7. Câu lệnh gán và biểu thức gán (tiếp) 
27 
 Biểu thức gán 
 Biểu thức gán là biểu thức có dạng: 
 v=e 
 (Sau biểu thức gán không có dấu chấm phẩy) 
 trong đó v là một biến, e là một biểu thức. 
 Biểu thức gán thực hiện gán e vào v. Giá trị của biểu thức gán 
là giá trị của biểu thức e, kiểu của biểu thức gán là kiểu của 
biến v. Biểu thức gán được sử dụng như bất kỳ biểu thức 
khác, chẳng hạn đem gán giá trị của nó vào biến. 
 Ví dụ: sau lệnh a = b = 5; thì a và b sẽ bằng 5 vì biểu thức 
gán đưa 5 vào b còn lệnh gán đưa giá trị của biểu thức gán b=5 
vào a. 
3.2.8. Biểu thức điều kiện 
28 
 Biểu thức điều kiện là biểu thức có dạng: 
 e1 ? e2 : e3 
 trong đó e1, e2, e3 là các biểu thức nào đó. 
 Giá trị của biểu thức điều kiện bằng giá trị của e2 nếu 
e1 đúng (có giá trị khác 0) và bằng giá trị của e3 nếu e1 
sai (có giá trị bằng 0). 
 Biểu thức điều kiện thực sự là một biểu thức, bởi vậy ta 
có thể sử dụng nó như bất kỳ một biểu thức nào khác. 
 Ví dụ: biểu thức (a > b) ? a : b sẽ cho giá trị a nếu a 
lớn hơn b, còn không thì cho giá trị b. 
3.2.9. Chuyển đổi kiểu giá trị 
29 
 Việc chuyển đổi kiểu giá trị thường diễn một cách tự 
động trong hai trường hợp sau: 
 Khi biểu thức có các toán hạng khác kiểu 
 Khi gán một giá trị kiểu này cho một biến kiểu khác. 
 Chuyển đổi kiểu trong biểu thức: Khi hai toán hạng 
trong một phép toán có kiểu khác nhau thì kiểu thấp 
hơn sẽ được nâng thành kiểu cao hơn. Kết quả thu 
được một giá trị có kiểu cao hơn. 
 Ví dụ: giữa int và long thì int chuyển thành long, giữa int và 
float thì int chuyển thành float 
3.2.9. Chuyển đổi kiểu giá trị (tiếp) 
30 
 Chuyển đổi kiểu khi gán: Giá trị của vế phải được 
chuyển sang kiểu của vế trái. 
 Ta cũng có thể thực hiện chuyển đổi kiểu theo ý 
muốn bằng toán tử ép kiểu, có dạng: 
 (Tên_kiểu_muӕn_ép) Biểu_thức 
  Ví dụ: (int) a (float)(a+b) 
3.3. Khӕi lệnh 
31 
 Nhiều lệnh đặt giữa dấu ngoặc { và } tạo thành một 
khối lệnh. 
 Ví dụ: { 
 a=2; 
 b=3; 
 cout<<a<<’ ’<<b; 
 }  C++ coi một khối lệnh như một câu lệnh riêng lẻ. Bởi 
vậy chỗ nào viết được một câu lệnh thì chỗ đó cũng 
đặt được một khối lệnh. Sau dấu ngoặc } của khối 
lệnh không có dấu chấm phẩy. 
3.3. Khӕi lệnh (tiếp) 
32 
 Bên trong một khối lệnh có thể chứa các khối lệnh khác. 
Sự lồng nhau này không bị hạn chế. Lưu ý rằng thân của 
một hàm cũng là một khối lệnh, đó là khối lệnh chứa các 
khối lệnh bên trong nó và không khối lệnh nào chứa nó. 
 Các biến không chỉ khai báo ở đầu một hàm mà có thể 
khai báo ở đầu một khối lệnh. Biến được khai báo trong 
một khối lệnh thì chỉ có phạm vi hoạt động trong khối 
lệnh đó. Khi máy bắt đầu thực hiện khối lệnh thì các biến 
khai báo bên trong nó mới được hình thành và được cấp 
phát bộ nhớ. Các biến này chỉ tồn tại trong thời gian máy 
làm việc bên trong khối lệnh và chúng sẽ lập tức biến mất 
ngay sau khi máy ra khỏi khối lệnh. 
3.3. Khӕi lệnh (tiếp) 
33 
 Nếu bên trong một khối lệnh ta khai báo một biến có 
tên là a thì tên biến này không ảnh hưởng tới một biến 
khác cũng có tên là a được dùng ở đâu đó ngoài khối 
lệnh. 
 Nếu một biến được khai báo ở ngoài và trước một khối 
lệnh mà không trùng tên với các biến khai báo bên 
trong khối lệnh này thì biến đó có thể sử dụng cả bên 
ngoài và bên trong khối lệnh. 
BÀI TẬP VÀ THӴC HÀNH 
Q & A? 
34 

File đính kèm:

  • pdfBài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 3 Khai báo các thành phần biểu thức, khối lệnh.pdf