HẰNG, BIẾN và BIU THỨC
7.1.1. Khái nim về biến và hằng :
Trong phn trước ta đã biết mỗi kiểu dữ liệu có một tập các giá tr
tương ứng. Các giá tr của kiểu nguyên hay kiểu thực là các số, như 40 hay
5.72, các gía tr của kiu ký tự là các ký tnhư ‘A’ hay ‘a’, còn kiểu lôgic
thì chỉ có hai a trị là True và False, ...
Qúa trình xử lý trong máy tính đòi hỏi mỗi gía tr phải được lưu trữ ở
một ô nhớ nào đó trong bộ nhớ của máy, và ô nhớ này được đặt một cái tên
để gọi. Khi đó mọi việc tính toán hay xử liên quan đến mỗi gía trị được
thực hiện gián tiếp thông qua tên của ô nhớ chứa giá tr đó. Ví dụ, nếu số
5.72 được lưu trong ô nhớ có tên là x, thì biu thức 5.72*2 có thể được viết
là x*2. Việc dùng tên x dnhớ và tiện hơn nhiều so với việc dùng và nhsố
5.72.
Như vậy, khi một ô nhớ được đặt tên thì tên này đồng nhất với giá trị
của nó. Trong một chương trình, mỗi ô nhớ một tên duy nhất nhưng giá
trị của nó thì có thể thay đổi hoặc không. Nếu gía trị của ô nhớ có thể thay
đổi được thì ô nhnày là một biến, tên của ô nhớ là tên biến, ngược lại, nếu
a trị của ô nhớ không thể thay đổi, thì ô nhlà một hằng, n của ô nhớ là
tên hng.
Các biến và hằng tham gia trong chương trình đều phải được khai báo.
Việc khai báo có tác dụng báo trước cho máy dành sẵn các ô nhớ thích hợp
trong bnhớ để sẵn sàng chứa dữ liệu.
7.1.2. Khai báo biến và khai báo hằng :
Biến là đại nggía trị thay đổi được trong chương trình. Cách khai
báo biến như sau :
Var
Danhsáchtênbiến : TênKiuDữliệu ;
Tên biến là tự đặt, theo đúng quy tắc ca một tên. Ví dụ :
Var
i, j : Integer;
x, y : Real;
Theo khai báo trên, ta có hai biến i và j cùng kiểu số nguyên (Integer),
và hai biến x, y cùng kiu số thực (Real).
Hằng là một đại lượng có gía trị không đổi trong chương trình. Cách
khai báo :
Const
Tên_hằng = gíatrị ;
Tên hằng là tự đặt, theo đúng quy tắc của một tên. Ví d :
Const
N = 10;
SoPi = 3.1416;
SoE = 2.718;
Turbo Pascal có sẵn một số hằ?g chuẩn cho phép sử dụng mà không
phải khai báo, như : Pi, MaxInt . Hằng Pi có gía tr bằng số  , còn MaxInt =
32767, là số Integer lớn nhất. Chẳng hạn, có thể dùng các lệnh sau:
Writeln(‘Dien tich hinh tron ban kinh r=5 la: ‘ , Pi*5*5:8:3);
Writeln(‘So Integer lon nhat =, MaxInt);
7.1.3. Biểu thức :
Biểu thức là một công thức gm có một hay nhiều thành phần được kết
nối với nhau bởic phép toán. Mỗi thành phầ? (hay toán hng) có thể là
hằng, là biến hay là hàm. Khi các phép toán trong biểu thức được thực hiện
thì ta nhn được một gía trị gọi là kết qủa của biu thức. Kiểu dữ liệu của kết
qủa gọi là kiểu dữ liệu của biểu thức. Ví dụ:
3* 5 div 2 + 7 mod 4 biểu thức nguyên, có kết qủa là 10
2 + sin(pi/2) là biu thức thực,kết qủa là 3.0
Chr( ord(‘a’) - 32 ) là biểu thức ký t, có kết qủa A’
(4+2=6) and (‘B’<>‘b’) biểu thức lôgic,kết qủa là True
‘AB’+’CD’ là biểu thức chuỗi, có kết qủa là ‘ABCD’
Các thành phn trong biểu thức cầ? phải có kiểu dữ liu phù hợp để cho
các phép toán thc hiện được, nếu kng máy sẽ báo lỗi. Ví dụ, biu thức
sau :
5 + ‘A’
là sai vì ta không thể cộng một số nguyên với một ký tự.
Một biểu thức có thể chứa nhiu phép toán. Thứ tự thực hiện các phép toán
được cho trong bảng 7.1 dưới đây.
Cấp ưu tiên Phép toán
1 biểu thức trong ngoặc đơn (...)
2 Các hàm
3 NOT, - (phép lấy dấu âm)
4 * , /, DIV, MOD, AND
5 Shl, Shr
6 +, - (trư?, OR, XOR
7 =, <>, <, <=, >, >=, IN
Bng 7.1
Việc tính toán một biu thức dựa theo hai quy tắc :
Quy tắc 1: Phép toáncấp ưu tiên nhỏ thì được tính trước, phép toán có
cấp ưu tiên lớn thì được tính sau.
Quy tắc 2: Ði với các phép toán đứng lin nhau và có cùng cp ưu tiên,
thìi nào đứng trước được tính trước.
Ví d: tính biểu thức số học :