Lệnh gán Gán hằng, gán biểu thức

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 1 (Trang 31 - 32)

Ch−ơng 1 Những yếu tố cơ bản của ngôn ngữ FORTRAN

1.10 Lệnh gán Gán hằng, gán biểu thức

Lệnh gán là câu lệnh đ−ợc sử dụng phổ biến nhất trong lập trình. Cú pháp câu lệnh gán có dạng:

vname = expr

Trong đó vname là tên của biến hoặc hằng, expr là giá trị (hằng) hoặc biểu thức. Mục đích của câu lệnh gán là tính giá trị của biểu thức ở vế phải (nếu cần) và gán cho biến/hằng ở vế trái. Nh− vậy, dấu bằng (=) trong câu lệnh gán hồn tồn khơng có nghĩa nh− dấu bằng trong tốn học, mà nó đ−ợc hiểu là dấu gán, và nên đọc là vname đ−ợc gán bởi giá trị của expr. Ví dụ, câu lệnh

X = A + B

đ−ợc hiểu là nội dung của biến X đ−ợc gán bởi giá trị của tổng nội dung của biến A và nội dung của biến B. Khi thực hiện câu lệnh, máy sẽ lấy giá trị của A cộng với giá trị của B, kết quả nhận đ−ợc sau đó sẽ gán cho biến X.

T−ơng tự, câu lệnh

N = N + 1

hàm nghĩa là tăng giá trị của biến N lên một đơn vị. Đ−ơng nhiên trong toán học biểu thức này khơng có ý nghĩa. Tác động của q trình thực hiện câu lệnh là lấy nội dung của biến N cộng với 1, đ−ợc bao nhiêu gán lại cho biến N.

Nếu expr không cùng kiểu dữ với vname, nó đ−ợc chuyển đổi sang kiểu dữ liệu của

vname tr−ớc khi gán. Có nghĩa là điều đó có thể dẫn đến sai số tính tốn. Ví dụ, giả sử N

là biến nguyên, còn X và Y là những biến thực thì:

N = 10. / 3 (giá trị của N sẽ là 3) X = 10 / 3 (giá trị của X sẽ là 3.0) Y = 10 / 3. (giá trị của Y sẽ là 3.33333)

33 Sự vơ ý trong lập trình nhiều lúc cũng có thể dẫn đến kết quả sai khơng đáng có. Chẳng hạn, khi muốn tính trung bình cộng hai số (ví dụ điểm trung bình của hai mơn học), nếu đặt tên biến các mơn đó là M1 và M2 mà khơng khai báo chúng là biến thực (tức máy sẽ hiểu đó là hai biến nguyên theo qui tắc kiểu ẩn), thì điểm trung bình đ−ợc xác định bởi câu lệnh:

TBinh = (M1 + M2) / 2

sẽ bị chặt cụt phần thập phân do vế phải là kết quả của phép chia hai số nguyên. Nếu

tổng (M1+M2) khơng chia hết cho 2 thì kết quả nhận đ−ợc là sai. Nh−ng, nếu câu lệnh trên đ−ợc viết d−ới dạng:

TBinh = (M1 + M2) / 2.0

thì kết quả lại hồn tồn chính xác mặc dù M1 và M2 vẫn là những biến nguyên. Sau đây là một số ví dụ về câu lệnh gán.

C = (A ** 2 + B ** 2) ** 0.5 / (2 * A) A = P * (1 + R / 100) ** N

Câu lệnh thứ nhất có thể đ−ợc viết bằng cách khác khi sử dụng hàm th− viện SQRT (hàm lấy căn bậc hai) của Fortran nh− sau:

C = SQRT ( A ** 2 + B ** 2 ) / (2 * A)

Tuy nhiên, không đ−ợc viết câu lệnh d−ới dạng:

C = (A ** 2 + B ** 2) ** (1/2) / (2 * A)

Bởi vì (1/2) trong biểu thức lũy thừa sẽ nhận giá trị bằng 0 do phép chia hai số nguyên cho nhau.

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 1 (Trang 31 - 32)

Tải bản đầy đủ (PDF)

(101 trang)