PHẠM VI TÁC DỤNG CỦA CÁC KHAI BÁO
Số trang: 15
Loại file: pdf
Dung lượng: 1.17 MB
Lượt xem: 1
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Biến toàn cục và biến địa phương : Một chương trình có chứa hàm hay thủ tục gọi là chương trình chính, thủ tục hay hàm gọi là chương trình con. Vì chương trình con cũng là một chương trình nên trong chương trình con cũng có khai báo biến, khai báo hằng, .v.v., cũng có khai báo chương trình con của riêng nó, ...
Nội dung trích xuất từ tài liệu:
PHẠM VI TÁC DỤNG CỦA CÁC KHAI BÁO PHẠM VI TÁC DỤNG CỦA CÁC KHAI BÁO 13.2.1. Biến toàn cục và biến địa phương : Một chương trình có chứa hàm hay thủ tục gọi là chương trình chính, thủtục hay hàm gọi là chương trình con. Vì chương trình con cũng là một chương trình nên trong chương trình concũng có khai báo biến, khai báo hằng, .v.v., cũng có khai báo chương trìnhcon của riêng nó, ... Các biến được khai báo trong chương trình chính gọi là biến toàn cục(global variable), chúng dùng được ở mọi nơi kể từ lúc khai báo cho đến khikết thúc chương trình. Các biến được khai báo trong một chương trình con gọi là biến địaphương (local variable). Sở dĩ gọi là địa phương vì chúng chỉ có tác dụngtrong chương trình con nơi nó được khai báo mà thôi. Các tham số trị hìnhthức của chương trình con cũng là biến địa phương. Các biến địa phương chỉtồn tại trong thời gian chương trình con đang thực hiện, khi chương trìnhcon thực hiên xong thì các biến địa phương sẽ bị xóa khỏi bộ nhớ. Trong ví dụ 12.5 ( Bài 12 ), biến N và A là các biến toàn cục, còn biếnTam là biến địa phương của thủ tục Doicho, nó chỉ có tác dụng trong thủ tụcDoicho mà thôi. Tương tự, biến j là biến địa phương của thủ tục Saptang.Mỗi thủ tục Nhap, Saptang và Inday đều có một biến địa phương tên là i, tuychúng trùng tên song trong bộ nhớ chúng là ba ô nhớ khác nhau, có phạm vitác dụng khác nhau. Ví dụ 13.3 : Xét chương trình dưới đây : Program VIDU13_3; {1} Var {2} x: Integer; {3} Procedure TTUC1; {4} Var {5} y: Integer; {6} Begin {7} y:=x+5; {8} Writeln(y); {9} End; {10} { hết TTUC1 } BEGIN {11} x:=10; {12} TTUC1; {13} Writeln(y); {14} { lệnh này bị lỗi} Readln; {15} END. {16} Chương trình gồm 16 dòng được đánh số từ {1} đến {16}. Biến x là toàn cục nên có phạm vi tác dụng từ dòng {3} đến dòng {16}.Biến y là biến địa phương của TTUC1 nên có phạm vi tác dụng từ dòng {6}đến dòng {10}. Lệnh Writeln(y); ở dòng {9} in ra số 15, còn lệnh Writeln(y); ở dòng{14} lại bị lỗi. Thật vậy, sau khi thực hiện lệnh {12} gán x:=10; dòng {13}gọi TTUC1 và điều khiển chuyển đến dòng {4}. Các dòng {5} {6} cấp ônhớ cho biến y địa phương, dòng {8} gán y:=x+5; nên y=15 và dòng {9} ingía trị 15 của y. Ðến đây, TTUC1 kết thúc và biến y bị xóa khỏi bộ nhớ, điềukhiển được trả về cho lệnh {14} trong chương trình chính, nhưng vì y đã bịxóa nên không thể in được, và máy sẽ báo lỗi. 13.2.2. Phạm vi tác dụng của các khai báo : Hình 13.1 Phạm vi tác dụng hay tầm tác dụng của biến (hay hằng, kiểu dữ liệu,chương trình con) là khu vực mà trong đó nó có thể sử dụng được, ngoài khuvực đó nó bị xem là chưa khai báo. Ðể diễn tả phạm vi tác dụng của biến nói riêng, của các khai báo nóichung, kể cả khai báo chương trình con, ta đưa ra khái niệm gọi là mức: mức0 là chương trình chính, mức 1 là các chương trình con của chương trìnhchính, mức 2 là các chương trình con của các chương trình con mức 1, .v.v. Hình vẽ 13.1 mô tả một chương trình có hai chương trình con A và B ởmức 1, trong chương trình con A lại có hai chương trình con A1 và A2 ởmức 2. Việc xác định phạm vi tác dụng của các biến (hay hằng, kiểu dữ liệu,chương trình con) dựa trên các nguyên tắc sau: Các biến được khai báo ở mức 0 (chương trình chính) có phạm vi tác dụnglà toàn bộ chương trình . Các biến được khai báo ở mức nào sẽ có phạm vi là vùng giới hạn mức đó,kể cả các mức cao hơn nằm trong mức này. Ví dụ: các biến được khai báo trong thủ tục A sẽ dùng được trong thủ tụcA, A1 và A2, nhưng không dùng được trong chương trình chính và trong thủtục B. Các biến được khai báo trong thủ tục B sẽ dùng được trong thủ tục Bnhưng không dùng được trong chương trình chính và trong các thủ tục A,A1 và A2. -Có thể khai báo hai (hay nhiều) biến trùng tên ở các mức khác nhaunhưng chúng vẫn là hai biến khác nhau có phạm vi tác dụng khác nhau. Nếu hai biến trùng tên lại nằm trong hai mức có phạm vi bao trùm nhauthì biến ở mức thấp hơn sẽ tạm bị che khuất khi làm việc ở mức cao hơn. Ví dụ : Nếu chương trình chính và thủ tục B có khai báo hai biến trùng tênlà x, thì trong thủ tục B chỉ có biến x địa phương của B là có tác dụng, cònbiến x của chương trình chính tạm thời bị che đi. Ra khỏi thủ tục B, biến xđịa phương của B bị xóa và biến x toàn cục hoạt động lại bình thường. Ví dụ 13.4: Xét chương trình sau: Program VIDU13_4; {1} Var {2} x: Integer; {3} Procedure B; {4} Var {5} x: Integer; {6} Begin {7} x:=5; {8} Writeln(x); {9} End; {10} BEGIN {11} x:=10; {12} B; {13} Writeln(x); {14} Readln; {15} END. {16} Chạy Chép tập tin nguồn Khi chạy chương trình kết qủa in ra là : 5 10 Ðầu tiên lệnh {12} gán cho biến x của chương trình chính gía trị x=10.Lệnh {13} gọi thủ tục B. Vì thủ tục B cũng có biến địa phương tên x nênbiến x toàn cục tạm thời ngưng hoạt động và lệnh {8} gán cho biến x địaphương gía trị x:=5 . Lệnh {9} in gía trị của biến x địa phương là số 5. Khi trở lại chương trình chính thì biến x địa phương bị xóa khỏi bộ nhớ vàbiến x toàn cục hoạt động trở lại, lệnh {14} sẽ in gía trị của biến x toàn cụclà số 10. Phạm vi của các chương trình con cũng được xác định tương tự. Câu hỏi là thủ tục A2 có thể gọi được ở những đâu ? Vì thủ tục A2 được khai báo trong thủ tục A nên nó chỉ được biết đến bêntrong thủ tục A, nghĩa là: Có thể gọi thủ tục A2 từ một vị trí trong thân của thủ tục A, trong thân củathủ tục A1,và cả trong thân ...
Nội dung trích xuất từ tài liệu:
PHẠM VI TÁC DỤNG CỦA CÁC KHAI BÁO PHẠM VI TÁC DỤNG CỦA CÁC KHAI BÁO 13.2.1. Biến toàn cục và biến địa phương : Một chương trình có chứa hàm hay thủ tục gọi là chương trình chính, thủtục hay hàm gọi là chương trình con. Vì chương trình con cũng là một chương trình nên trong chương trình concũng có khai báo biến, khai báo hằng, .v.v., cũng có khai báo chương trìnhcon của riêng nó, ... Các biến được khai báo trong chương trình chính gọi là biến toàn cục(global variable), chúng dùng được ở mọi nơi kể từ lúc khai báo cho đến khikết thúc chương trình. Các biến được khai báo trong một chương trình con gọi là biến địaphương (local variable). Sở dĩ gọi là địa phương vì chúng chỉ có tác dụngtrong chương trình con nơi nó được khai báo mà thôi. Các tham số trị hìnhthức của chương trình con cũng là biến địa phương. Các biến địa phương chỉtồn tại trong thời gian chương trình con đang thực hiện, khi chương trìnhcon thực hiên xong thì các biến địa phương sẽ bị xóa khỏi bộ nhớ. Trong ví dụ 12.5 ( Bài 12 ), biến N và A là các biến toàn cục, còn biếnTam là biến địa phương của thủ tục Doicho, nó chỉ có tác dụng trong thủ tụcDoicho mà thôi. Tương tự, biến j là biến địa phương của thủ tục Saptang.Mỗi thủ tục Nhap, Saptang và Inday đều có một biến địa phương tên là i, tuychúng trùng tên song trong bộ nhớ chúng là ba ô nhớ khác nhau, có phạm vitác dụng khác nhau. Ví dụ 13.3 : Xét chương trình dưới đây : Program VIDU13_3; {1} Var {2} x: Integer; {3} Procedure TTUC1; {4} Var {5} y: Integer; {6} Begin {7} y:=x+5; {8} Writeln(y); {9} End; {10} { hết TTUC1 } BEGIN {11} x:=10; {12} TTUC1; {13} Writeln(y); {14} { lệnh này bị lỗi} Readln; {15} END. {16} Chương trình gồm 16 dòng được đánh số từ {1} đến {16}. Biến x là toàn cục nên có phạm vi tác dụng từ dòng {3} đến dòng {16}.Biến y là biến địa phương của TTUC1 nên có phạm vi tác dụng từ dòng {6}đến dòng {10}. Lệnh Writeln(y); ở dòng {9} in ra số 15, còn lệnh Writeln(y); ở dòng{14} lại bị lỗi. Thật vậy, sau khi thực hiện lệnh {12} gán x:=10; dòng {13}gọi TTUC1 và điều khiển chuyển đến dòng {4}. Các dòng {5} {6} cấp ônhớ cho biến y địa phương, dòng {8} gán y:=x+5; nên y=15 và dòng {9} ingía trị 15 của y. Ðến đây, TTUC1 kết thúc và biến y bị xóa khỏi bộ nhớ, điềukhiển được trả về cho lệnh {14} trong chương trình chính, nhưng vì y đã bịxóa nên không thể in được, và máy sẽ báo lỗi. 13.2.2. Phạm vi tác dụng của các khai báo : Hình 13.1 Phạm vi tác dụng hay tầm tác dụng của biến (hay hằng, kiểu dữ liệu,chương trình con) là khu vực mà trong đó nó có thể sử dụng được, ngoài khuvực đó nó bị xem là chưa khai báo. Ðể diễn tả phạm vi tác dụng của biến nói riêng, của các khai báo nóichung, kể cả khai báo chương trình con, ta đưa ra khái niệm gọi là mức: mức0 là chương trình chính, mức 1 là các chương trình con của chương trìnhchính, mức 2 là các chương trình con của các chương trình con mức 1, .v.v. Hình vẽ 13.1 mô tả một chương trình có hai chương trình con A và B ởmức 1, trong chương trình con A lại có hai chương trình con A1 và A2 ởmức 2. Việc xác định phạm vi tác dụng của các biến (hay hằng, kiểu dữ liệu,chương trình con) dựa trên các nguyên tắc sau: Các biến được khai báo ở mức 0 (chương trình chính) có phạm vi tác dụnglà toàn bộ chương trình . Các biến được khai báo ở mức nào sẽ có phạm vi là vùng giới hạn mức đó,kể cả các mức cao hơn nằm trong mức này. Ví dụ: các biến được khai báo trong thủ tục A sẽ dùng được trong thủ tụcA, A1 và A2, nhưng không dùng được trong chương trình chính và trong thủtục B. Các biến được khai báo trong thủ tục B sẽ dùng được trong thủ tục Bnhưng không dùng được trong chương trình chính và trong các thủ tục A,A1 và A2. -Có thể khai báo hai (hay nhiều) biến trùng tên ở các mức khác nhaunhưng chúng vẫn là hai biến khác nhau có phạm vi tác dụng khác nhau. Nếu hai biến trùng tên lại nằm trong hai mức có phạm vi bao trùm nhauthì biến ở mức thấp hơn sẽ tạm bị che khuất khi làm việc ở mức cao hơn. Ví dụ : Nếu chương trình chính và thủ tục B có khai báo hai biến trùng tênlà x, thì trong thủ tục B chỉ có biến x địa phương của B là có tác dụng, cònbiến x của chương trình chính tạm thời bị che đi. Ra khỏi thủ tục B, biến xđịa phương của B bị xóa và biến x toàn cục hoạt động lại bình thường. Ví dụ 13.4: Xét chương trình sau: Program VIDU13_4; {1} Var {2} x: Integer; {3} Procedure B; {4} Var {5} x: Integer; {6} Begin {7} x:=5; {8} Writeln(x); {9} End; {10} BEGIN {11} x:=10; {12} B; {13} Writeln(x); {14} Readln; {15} END. {16} Chạy Chép tập tin nguồn Khi chạy chương trình kết qủa in ra là : 5 10 Ðầu tiên lệnh {12} gán cho biến x của chương trình chính gía trị x=10.Lệnh {13} gọi thủ tục B. Vì thủ tục B cũng có biến địa phương tên x nênbiến x toàn cục tạm thời ngưng hoạt động và lệnh {8} gán cho biến x địaphương gía trị x:=5 . Lệnh {9} in gía trị của biến x địa phương là số 5. Khi trở lại chương trình chính thì biến x địa phương bị xóa khỏi bộ nhớ vàbiến x toàn cục hoạt động trở lại, lệnh {14} sẽ in gía trị của biến x toàn cụclà số 10. Phạm vi của các chương trình con cũng được xác định tương tự. Câu hỏi là thủ tục A2 có thể gọi được ở những đâu ? Vì thủ tục A2 được khai báo trong thủ tục A nên nó chỉ được biết đến bêntrong thủ tục A, nghĩa là: Có thể gọi thủ tục A2 từ một vị trí trong thân của thủ tục A, trong thân củathủ tục A1,và cả trong thân ...
Tìm kiếm theo từ khóa liên quan:
Tin học căn bản giáo trình tin học hướng dẫn học tin học bài tập tin học tài liệu tin họcGợi ý tài liệu liên quan:
-
Giáo trình Tin học (Trình độ: Trung cấp nghề) - Trường Trung cấp nghề Củ Chi
268 trang 333 4 0 -
122 trang 213 0 0
-
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 212 0 0 -
Xử lý tình trạng máy tính khởi động/tắt chậm
4 trang 211 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 203 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 198 0 0 -
Giới thiệu tổng quan về SharePoint 2007
41 trang 170 0 0 -
TÀI LIỆU HƯỚNG DẪN SỬ DỤNG PHẦN MỀM KHAI BÁO HẢI QUAN ĐIỆN TỬ phần 1
18 trang 157 0 0 -
Memory-RAM - Một số thuật ngữ và kỹ thuật tin học
5 trang 155 0 0 -
Hướng dẫn tạo file ghost và bung ghost
12 trang 153 0 0