Biến toàn cục, biến địa phƣơng, khái niệm tầm tác dụng

Một phần của tài liệu Bài giảng tin học đại cương đh hàng hải (Trang 56)

b) Chuyển tham số bằng giá trị (tham trị)

5.4.Biến toàn cục, biến địa phƣơng, khái niệm tầm tác dụng

Visual Basic 6 là ngôn ngữ lập trình thủ tục, hƣớng sự kiện. Tập hợp các thủ tục, biến cố, các hàm liên quan đến một biểu mẫu đƣợc gọi là đơn thể chƣơng trình biểu mẫu. Tập hợp các thủ tục, biến cố, các hàm không liên quan đến một biểu mẫu đƣợc gọi là đơn thể chƣơng trình độc lập. Tập hợp thủ tục, hàm biến cố liên quan đƣợc đặt trong các

_57_

modul hoặc các đơn thể riêng. Một đơn thể có thể liên quan đến một biểu mẫu hoặc không liên quan đến một biểu mẫu nào cả.

Một biến có thể đƣợc khai báo bên trong một thủ tục/hàm hay khai báo ở phần đầu của đơn thể lập trình, trong phần khai báo General. Đối với các biến khai báo trong thủ tục hoặc hàm ta dùng từ khóa Dim, khi đó các biến này chỉ có tác dụng trong hàm hoặc thủ tục đó, khi ra khỏi hàm và thủ tục, biến sẽ mất tác dụng. Biến kiểu này đƣợc gọi là biến địa phƣơng (hay biến cục bộ).

Đối với các biến khai báo trong các đơn thể chƣơng trình ta có thể dùng các từ khóa

Private, Dim, Public, Global. Nếu dùng từ khóa Private hoặc Dim, biến sẽ chỉ có tác dụng trong đơn thể chƣơng trình đó, tức là nó có thể đƣợc sử dụng cho các hàm và thủ tục nằm trong đơn thể đó. Nếu dùng từ khóa Public hoặc Global thì biến có phạm vi tác dụng trong toàn bộ chƣơng trình, nghĩa là nó có thể đƣợc sử dụng trong các đơn thể chƣơng trình của dự án, trong tất cả các hàm và thủ tục của các đơn thể ấy. Khi đó ngƣời ta nói biến có phạm vi toàn cục.

Hình dƣới đây sẽ cho ta thấy vị trí của khai báo biến:

Lƣu ý:

Ở các CTC khác nhau, ở các mức độ khai báo khác nhau, ta có thể khai báo một biến có cùng tên với biến ở CTC khác, mức độ khai báo khác. Tên biến khi này không phải là một biến duy nhất mà là các biến khác nhau với tác dụng khác nhau. Ví dụ trong CTC A có biến địa phƣơng X và trong CTC B có biến địa phƣơng cũng tên là X. Lúc đó, máy sẽ dùng hai ô nhớ khác nhau để lƣu trữ hai biến, khi ra khỏi CTC A, biến địa phƣơng X trong CTC A mất tác dụng và khi ra khỏi CTC B, biến địa phƣơng X trong B mất tác dụng.

Nếu một biến đƣợc khai báo với từ khóa Static thì biến đó có phạm vi tác động toàn cục dù nó đƣợc khai báo trong hàm hoặc thủ tục. Khi gọi CTC, sau mỗi lần sử dụng giá

Biến cấp độ modul

_58_

trị của biến sẽ đƣợc nhớ lại và thoát khỏi CTC, giá trị của nó sẽ giữ nguyên giá trị nhận đƣợc trong CTC.

Ví dụ:

Fuction Cong(Number) Static SoLuong

SoLuong= SoLuong + Number Cong = SoLuong

End Function

Với đoạn chƣơng trình trên, sau mỗi lần gọi hàm, khi thoát khỏi hàm Cong, biến SoLuong vẫn giữ lại giá trị của mình.

Phạm vi và tầm tác dụng của CTC tƣơng tự nhƣ đối với biến. Không dùng từ khóa Dim khi đặt phạm vi tác dụng của CTC, có thể sử dụng các từ khóa Private, Public.

_59_

CHƢƠNG 6

Một phần của tài liệu Bài giảng tin học đại cương đh hàng hải (Trang 56)