Biến và cách sử dụng của biến
Bất cứ chương
trình ứng dụng nào cần xử lý dữ liệu cũng cần có nơi để lưu trữ tạm thời dữ liệu
ấy. Nơi mà dữ liệu được lưu trữ gọi là bộ nhớ. Những vị trí khác nhau trong bộ
nhớ có thể được xác định bởi các địa chỉ duy nhất. Những ngôn ngữ lập trình trước
đây yêu cầu lập trình viên quản lý mỗi vị trí ô nhớ thông qua địa chỉ, cũng như
giá trị lưu trong nó. Các lập trình viên dùng những địa chỉ này để truy cập hoặc
thay đổi nội dung của các ô nhớ. Khi ngôn ngữ lập trình phát triển, việc truy cập
hay thay đổi giá trị ô nhớ đã được đơn giản hoá nhờ sự ra đời của khái niệm biến
.
Biến (variable)
Một chương
trình ứng dụng có thể quản lý nhiều loại dữ liệu. Trong trường hợp này, chương
trình phải chỉ định bộ nhớ cho mỗi đơn vị dữ liệu. Khi chỉ định bộ nhớ, có hai
điểm cần lưu ý như sau :
1. Bao nhiêu
bộ nhớ sẽ được gán
2. Mỗi đơn vị
dữ liệu được lưu trữ ở đâu trong bộ nhớ.
Trước đây,
các lập trình viên phải viết chương trình theo ngôn ngữ máy gồm các mã 1 và 0.
Nếu muốn lưu trữ một giá trị tạm thời, vị trí chính xác nơi mà dữ liệu được lưu
trữ trong bộ nhớ máy tính phải được chỉ định. Vị trí này là một con số cụ thể,
gọi là địa chỉ bộ nhớ.
Các ngôn ngữ
lập trình hiện đại cho phép chúng ta sử dụng các tên tượng trưng gọi là biến
(variable), chỉ đến một vùng bộ nhớ nơi mà các giá trị cụ thể được lưu trữ.
Kiểu dữ liệu
quyết định tổng số bộ nhớ được chỉ định. Những tên được gán cho biến giúp chúng
ta sử dụng lại dữ liệu khi cần đến.
Chúng ta đã
quen với cách sử dụng các ký tự đại diện trong một công thức. Ví dụ, diện tích
hình chữ nhật được tính bởi :
Diện tích = A
= chiều dài x chiều rộng = L x B
Cách tính lãi
suất đơn giản được cho như sau:
Tiền lãi = I
= Số tiền ban đầu x Thời gian x Tỷ lệ/100 = P x T x R /100
Các ký tự A,
L, B, I, P, T, R là các biến và là các ký tự viết tắt đại diện cho các giá trị
khác nhau.
Xem ví dụ sau đây :
Tính tổng điểm
cho 5 sinh viên và hiển thị kết quả. Việc tính tổng được thực hiện theo hướng dẫn
sau.
Hiển thị giá trị tổng của 24, 56, 72, 36 và 82
Khi giá trị tổng
được hiển thị, giá trị này không còn được lưu trong bộ nhớ máy tính. Giả sử, nếu
chúng ta muốn tính điểm trung bình, thì giá trị tổng đó phải được tính một lần
nữa.
Tốt hơn là
chúng ta sẽ lưu kết quả vào bộ nhớ máy tính, và sẽ lấy lại nó khi cần đến.
sum = 24 + 56
+ 72 + 36 + 82
Ở đây, sum là
biến được dùng để chứa tổng của 5 số. Khi cần tính điểm trung bình, có thể thực
hiện như sau:
Avg = sum / 5
Trong C, tất
cả biến cần phải được khai báo trước khi dùng chúng.
Chúng ta hãy
xét ví dụ nhập hai số và hiển thị tổng của chúng trong ví dụ 1.
Ví dụ 1:
BEGIN
DISPLAY
‘Enter 2 numbers’
INPUT A, B
C = A + B
DISPLAY C
END
A, B và C
trong đoạn mã trên là các biến. Tên biến giúp chúng ta tránh phải nhớ địa chỉ của
vị trí bộ nhớ. Khi đoạn mã được viết và thực thi, hệ điều hành đảm nhiệm việc cấp
không gian nhớ còn trống cho những biến này. Hệ điều hành ánh xạ một tên biến đến
một vị trí xác định trong bộ nhớ (ô nhớ). Và để tham chiếu tới một giá trị
riêng biệt trong bộ nhớ, chúng ta chỉ cần chỉ ra tên của biến. Trong ví dụ
trên, giá trị của hai biến được nhập từ người dùng và chúng được lưu trữ nơi
nào đó trong bộ nhớ. Những vị trí này có thể được truy cập thông qua các tên biến
A và B. Trong bước kế tiếp, giá trị của hai biến được cộng và kết quả được lưu
trong biến thứ 3 là biến C. Cuối cùng, giá trị biến C được hiển thị.
Trong khi một
vài ngôn ngữ lập trình cho phép hệ điều hành xóa nội dung trong ô nhớ và cấp
phát bộ nhớ này để dùng lại thì những ngôn ngữ khác như C yêu cầu lập trình
viên xóa vùng nhớ không sử dụng thông qua mã chương trình. Trong cả hai trường
hợp, hệ điều hành đều lo việc cấp phát và thu hồi ô nhớ.
Hệ điều hành
hoạt động như một giao diện giữa các ô nhớ và lập trình viên. Lập trình viên
không cần lưu tâm về vị trí ô nhớ mà để cho hệ điều hành đảm nhiệm. Vậy việc điều
khiển bộ nhớ (vị trí mà dữ liệu thích hợp lưu trữ) sẽ do hệ điều hành đảm
trách, chứ không phải lập trình viên.
Hằng (constant)
Trong trường
hợp ta dùng biến, giá trị được lưu sẽ thay đổi. Một biến tồn tại từ lúc khai
báo đến khi thoát khỏi phạm vi dùng nó. Những câu lệnh trong phạm vi khối mã
này có thể truy cập giá trị của biến, và thậm chí có thể thay đổi giá trị của
biến. Trong thực tế, đôi khi cần sử dụng một vài khoản mục mà giá trị của chúng
không bao giờ bị thay đổi.
Một hằng là một
giá trị không bao giờ bị thay đổi. Ví dụ, 5 là một hằng, mà giá trị toán học
luôn là 5 và không thể bị thay đổi bởi bất cứ ai. Tương tự, ‘Black’ là một hằng,
nó biểu thị cho màu đen. Khi đó, 5 được gọi là hằng số (numeric constant),
‘Black’ được gọi là hằng chuỗi (string constant).
Định danh (Identifier)
Tên của các
biến (variables), các hàm (functions), các nhãn (labels) và các đối tượng khác
nhau do người dùng định nghĩa gọi là định danh. Những định danh này có thể chứa
một hay nhiều ký tự. Ký tự đầu tiên của định danh phải là một chữ cái hay một dấu
gạch dưới ( _ ). Các ký tự tiếp theo có thể là các chữ cái, các con số hay dấu
gạch dưới.
Arena,
s_count, marks40, và class_one là những định danh đúng. Các ví dụ về các định
danh sai là 1sttest, oh!god, và start... end.
Các định danh
có thể có chiều dài tuỳ ý, nhưng số ký tự trong một biến được nhận diện bởi trình
biên dịch thì thay đổi theo trình biên dịch. Ví dụ, nếu một trình biên dịch nhận
diện 31 con số có ý nghĩa đầu tiên cho một tên định danh thì các câu sau sẽ hiển
thị cùng một kết quả:
Đây là biến testing.... testing
Đây là biến testing.... testing ... testing
Các định danh
trong C có phân biệt chữ hoa và chữ thường, cụ thể, arena thì khác ARENA.
Các nguyên tắc cho việc chỉ đặt tên
Các quy tắc đặt
tên biến khác nhau tuỳ ngôn ngữ lập trình. Tuy nhiên, vài quy ước chuẩn được
tuân theo như :
Tên biến phải
bắt đầu bằng một ký tự chữ cái.
Các ký tự
theo sau ký tự đầu bằng một chuỗi các chữ cái hoặc con số và cũng có thể bao gồm
ký tự đặc biệt như dấu gạch dưới.
Tránh dùng ký
tự O tại những vị trí mà có thể gây lầm lẫn với số không (0) và tương tự chữ
cái l (chữ thường của chữ hoa L) có thể
lầm lẫn với số 1.
Tên riêng nên
tránh đặt tên cho biến.
Theo tiêu chuẩn
C các chữ cái thường và hoa thì xem như khác nhau ví dụ. biến ADD, add và Add
là khác nhau.
Việc phân biệt
chữ hoa và chữ thường khác nhau tuỳ theo ngôn ngữ lập trình. Do đó, tốt nhất
nên đặt tên cho biến theo cách thức chuẩn.
Tên một biến
nên có ý nghĩa, gợi tả và mô tả rõ kiểu dữ liệu của nó. Ví dụ, nếu tìm tổng của
hai số thì tên biến lưu trữ tổng nên đặt là sum (tổng). Nếu đặt tên là s hay
ab12 thì không hay lắm.
Từ khóa (Keywords)
Tất cả các
ngôn ngữ dành một số từ nhất định cho mục đích riêng. Những từ này có một ý
nghĩa đặc biệt trong ngữ cảnh của từng ngôn ngữ, và được xem là “từ khóa”. Khi
đặt tên cho các biến, chúng ta cần bảo đảm rằng không dùng bất cứ từ khóa nào
làm tên biến.
Tên kiểu dữ
liệu tất cả được coi là từ khóa.
Do vậy, đặt
tên cho một biến là int sẽ phát sinh một lỗi, nhưng đặt tên cho biến là integer
thì không.
Vài ngôn ngữ
lập trình yêu cầu lập trình viên chỉ ra tên của các biến cũng như kiểu dữ liệu
của nó trước khi dùng biến đó thật sự. Bước này được gọi là khai báo biến. Ta sẽ
nói rõ bước này trong phần tiếp theo khi thảo luận về các kiểu dữ liệu. Ðiều
quan trọng cần nhớ bây giờ là bước này giúp hệ điều hành thật sự cấp phát một
khoảng không gian vùng nhớ cho biến trước khi bắt đầu sử dụng nó.
إرسال تعليق