Professional Documents
Culture Documents
Tham Bien Tham Tri
Tham Bien Tham Tri
Tham Bien Tham Tri
Trong khai báo ờ dầu cUa chương trình con,các tham số hlnh thửc có tà•
khóa Var đứng tniớc gọi là tham sổ biến, ngược lại, nếu không có ưr khoa
Tham số trị hình thức được cấp một ô nhớ riêng khi chương trình con được
gọi và bị xóa bỏ khi chương trình con chạy xong. Nỏ dược coi như một biến địa
phương, nhận gia trị ban đầu là tham số thực sự được chuyền đến tà٠ chương
trình chinh qua lời gọi chương trình con. Sau đó chương trinh con cỏ
thể thay dổi giá 仕 ؛của tham số trị hlnh thức ở bên trong chương trình con ,
song điều dó không làm thay đối gia trị cUa tham số thực sự.
Trong lơi gọi chương trinh con các tham so trị thực sự có thê là bien, hầ?g
x:jị;
each thức hoạt động của lệnh s:= Lt(x,2+1); là như sau:
Đầu tiên các tham số hlnh thửc z và k sẽ dược khơi tạo giá trị ban dầu
r
z:=x; và k:=2+l; kêt qủa là z^ị và k=3.
ke dó các lệnh trong hàm Lt sẽ tinh toán và gán kết qUa cho tên ham,
Ղ Ị
Vậy, các biến được truyền vào chương trinh con dưới dạng tham số trị thi
khống bị thay đổi. Nói cách khác, mọi ՏԱ thay đổi của tham so trị hình thức
trong chương trình con không làm thay dôi gia trị của xơ 认和 tương
١
f ,
Trong lơi gọi chương trinh con các tham so men thực sự chi có the?là biến,
Giả sử trong chương trình chinh co haỉ bien thực a,b cỏ gia trị a=4 và
Դ Դ
b=3. Đê hoán aoi gia trị của a và b ta dùng lệnh:
Doicho(a, b);
Vi u và V là các tham số biến hình thức nên chương trinh con sẽ đồng Ểất u
với a và dồng nhất V với b. Mọi thay dổi cúa tham số u trong chương trình con
đều là thay đồi của chinh biến a, tuơng tụ٠, mọi thay đổi của tham số V đều là
thay đổi của chíỂ biến b. Ket qua là trước khi gọi thủ tục Doicho(a,b) thi a=3,
b=4, sau khi thực hiện thủ tục xong thl a b=3.
Vậy, các bien được truyền vào chương trinh con dưới dạng tham sổ bìến
con.
Thông thường,ta dùng tham số biến khi muốn nhận lại một gia trị mới sau khi
Bây giờ ta hieu tại sao trong thủ tục Saptang thl N là tham số trị còn X là
tham só bien:
Saptang(A,N);
Thực chất của sự truyền tham số đốì với các tham số biến là sự truyền địa じ
みム Chương trình con sẽ dùng các ô nhớ cUa chinh các biến dượ? truyền vào
tham số trị còn b là tham số biến. Hãy xem sự thay đổi gia trị của hai bien X, y
cua chương trinh chinh trước và sau khi gọi thủ tục TT: PROGRAM VIDU13.1;
Var
X, y ؛Integer;
Begin
a:=a+6;
b:=b+8;
Writel٠(،a= % a);
Writel٠(،b= % b);
End;
BEGIN
x:=4;
y:=7;
TT(x,y); {14}
Readin;
END.
Chav<VD13 l.EXE>
Tru٠ớc khi gọi thủ tục TT thi x=4, y=7.
Khi gọi thú tục TT(x١ y); thi các tham số hình thức a, b dược gán շլ :պ;
b:=y; nên ẵ=4) và b=7. Các lệnh trong thú tục a:=a+6; và b:=b + 8; sẽ làm
Thực hiện xong thủ thục TT,máy trO lại chương trình chinh làm tiếp các lệnh
{15} và {16}:
Như vậy, X dược truyên vào chương trinh con thong qua tham sô trị a nên mọi
sụ٠ thay dổi của a trong chương trình con dều không ảnh hưởng gi dến X. Ngugc
lại, biến y được truyền vào chương trinh con thong qua tham số biến b nên mọi
sự thay dổi của b trong thủ tục TT đều kéo biến y thay dối theo. Tinh chất trên
đây cUa tham số biến cho phép khai thác thêm các kha năng
f X
của thii và hàm. Ta biêt thủ tục không trả vê gia trị nào thông qua tên nó,
X ք
còn hàm thi trả vê môt gia tri duy nhat qua tên hàm. Song môt chươnR trinh con
hoàn toàn có thề trả về hai hay nhiều gia trị thông qua các tham số biến, như
vi dụ 13.2.
٠VÍ dụ 13.2: Chương trinh sau nhập vào hai cạnh a,b cUa հ、ւոհ chữ nhật
và sử dụng một thú tục để tíỂ cả diện tích và chu vi.
PROGRAM VIDƯ13_2;
Var
a,b, s, L: Real;
Begin
DT:=cl*c2;
CV:=2*(cl+c2);
End;
BEGIN
Wrỉte(، Nhập hai cạnh a, b:،);
Readỉn(a,b);
TINH(a,b,S,L); {12)
Writeln(،Chu vi = % L:4:l);
Readỉn;
END•
Chạy <|3]>ا
w thủ TINH cân phải trả vê hai gia trị diện tích và chu vi nên ta khai
báo hai tham số biến là DT và cv. Trong chương trình chinh,ta khai báo hai
r
bien tu٠ơng ứng là s và L. Sau khi nnạp hai cạnh a, b và gọi tnu tục :
TINH(a,b,S,L); {12}
thi cl :=a; c2:=b; bien s aong nhất với DT, biến L aong nhất với cv. Thành
ra,khi tinh dỉện tich DT và chu vi cv thi s và L cũng dược tinh ( S=DT,
L^cv )_ Khi thực hiện xong thủ ^ic TINH,các tham số cl,c2, DT, cv không
tồn tại trong bộ nhớ nữa,song hai biến s và し vẫn còn tồn tại cho áến khi kết
thúc chương trình. W thế, trong chương trình chinh,ta in s và L,chử
khônginDTvàCV.