Chương 6 Biểu thức và phép gán thuộc bài giảng lý thuyết ngôn ngữ lập trình, cùng nắm kiến thức trong chương học này thông qua việc tìm hiểu các nội dung sau: biểu thức, biểu thức quan hệ và biểu thức Boolean, câu lệnh, tối ưu hoá tính toán, phép gán.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Lý thuyết ngôn ngữ lập trình: Chương 6 - CĐ CNTT Hữu nghị Việt Hàn
- Chương 6. BIỂU THỨC VÀ PHÉP GÁN
1. Biểu thức
2. Biểu thức quan hệ và biểu thức Boolean
3. Câu lệnh
4. Tối ưu hoá tính toán
5. Phép gán
- 1. Biểu thức
1. Khái niệm
Biểu thức là một sự kết hợp giữa các toán tử ( 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
đó.
2. Các toán tử cơ bản trong C
Toán tử Ý nghĩa
Các phép toán số học + Cộng
- Trừ
* Nhân
/ Chia lấy phần
nguyên
% Chia lấy phần dư
++ Tăng một đơn vị
-- Giảm một đơn vị
- 1. Biểu thức
Toán tử quan hệ và logic
Toán tử Ý nghĩa
Toán tử quan hệ
> Lớn hơn
>= Lớn hơn hoặc bằng
< Nhỏ hơn
- 1. Biểu thức
Toán tử Bitwise
Toán tử Ý nghĩa
& AND
| OR
^ XOR
~ NOT
>> Dịch phải
- 1. Biểu thức
Toán tử điều kiện ?
bt0 ? bt1 : bt2
Trong đó bt0, bt1,bt2 là các biểu thức và bt0 thường là biểu
thức điều kiện.
Cú pháp trên tương đương với câu lệnh sau :
if (bt0)
{
bt1 ;
}
else
{
bt2 ;
}
- 1. Biểu thức
Toán tử dấu phẩy ‘,’
Toán tử dấu phẩy được sử dụng để kết hợp các biểu thức lại với
nhau. Bên trái của toán tử dấu phẩy luôn được xem là kiểu void. Điều
đó có nghĩa là biểu thức bên phải trở thành giá trị của tổng các biểu
thức được phân cách bởi dấu phẩy.
Ví dụ: x = (y=3,y+1);
Trước hết gán 3 cho y rồi gán 4 cho x. Cặp dấu ngoặc đơn là cần
thiết vì toán tử dấu phẩy có độ ưu tiên thấp hơn toán tử gán.
Ngoài ra các toán tử trên, trong C còn có cặp dấu ngoặc đơn là toán
tử để tăng độ ưu tiên của các biểu thức bên trong nó. Và các cặp dấu
ngoặc vuông thực hiện thao tác truy xuất phần tử trong mảng.
- 1. Biểu thức
Độ ưu tiên của các toán tử trong C
Cao nhất () []
! ~ ++ --
*/%
+-
>
< >=
&
^
|
&&
||
?
= += -= *= /=
Thấp nhất ,
- 1. Biểu thức
Cách viết tắc trong C
Tổng quát:
(Biến) = (Biến) (Toán tử) (Biểu thức)
có thể được viết:
(Biến) (Toán tử) = (Biểu thức)
Cách viết này làm việc trên tất cả các toán tử nhị phân (phép toán hai
ngôi) của Cíụ. Ví dụ: x = x + 10 được viết thành x +=10.
- 2. Biểu thức quan hệ và biểu thức Boolean
Một toán tử quan hệ (relational operator) là một toán tử dùng để
so sánh các giá trị của hai toán hạng.
Một biểu thức quan hệ (relational expression) là một biểu thức
gồm có hai toán hạng và một toán tử quan hệ. Giá trị của một biểu thức
quan hệ là giá trị luận lý (boolean), ngoại trừ khi Boolean không được
định nghĩa trong ngôn ngữ. Các biểu thức quan hệ thường được nạp
chồng cho một lớp các kiểu
Biểu thức Boolean là biểu thức quy về điều kiện đúng hoặc sai.
Biểu thức Boolean gồm có các biến Boolean, các hằng Boolean, các
biểu thức quan hệ và các toán tử Boolean.
- 3. Câu lệnh
Một câu lệnh (statement) xác định một công việc mà chương
trình phải thực hiện để xử lý dữ liệu đã được mô tả và khai báo. Các
câu lệnh được ngăn cách nhau bởi dấu chấm phẩy (;).
Có hai loại câu lệnh : câu lệnh đơn và câu lệnh có cấu trúc.
Lệnh đơn là một lệnh không chứa các lệnh khác. Các lệnh đơn
gồm : lệnh gán, các lệnh nhập xuất dữ liệu, ...
Lệnh có cấu trúc là lệnh mà trong đó có chứa các lệnh khác.
Lệnh có cấu trúc bao gồm : lệnh điều kiện, lệnh lặp và lệnh hợp thành
- 4. Tôi ưu hóa tính toán
Để tối ưu hoá được các tính toán trong các biểu thức, khi xây
dựng chương trình chúng ta cần chú ý các vấn đề sau :
- Không dùng các biểu thức bất biến trong vòng lặp
- Loại bỏ các biểu thức con giống nhau trong vòng lặp
- Hạn chế khởi tạo các đối tượng không thật sự cần thiết
- 5. Phép gán
Gán trị cho biến là sự lưu trữ giá trị dữ liệu vào trong ô nhớ của
biến đó
Gán trị là một phép toán cơ bản trong các NNLT. Nó dùng để
thay đổi sự liên kết của giá trị với ÐTDL. Các ngôn ngữ khác nhau thì
phép gán cũng khác nhau.
Khác nhau về cú pháp
Khác nhau về kết quả trả về
Khac nhau cách thức tiến hành phép gán
- CÂU HỎI VÀ BÀI TẬP
1. Thế nào là một biểu thức ? Biểu thức có thể được dùng trong các
trường hợp nào ?
2. Phân biệt biểu thức quan hệ và biểu thức Boolean.
3. Thế nào là một phép gán ? Với các ngôn ngữ lập trình khác nhau,
phép gán có những điểm cơ bản khác nhau nào ?
4. Cho các ví dụ về việc dùng các toán tử trong ngôn ngữ lập trình C.