THAM SỐ TRỊ VÀ THAM SỐ BIẾN
Số trang: 10
Loại file: pdf
Dung lượng: 185.12 KB
Lượt xem: 12
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:
THAM SỐ TRỊ VÀ THAM SỐ BIẾN Trong khai báo ở đầu của chương trình con, các tham số hình thức có từ khóa Var đứng trước gọi là tham số biến, ngược lại, nếu không có từ khóa Var đi trước thì gọi là tham số trị. Ví dụ, trong khai báo hàm tính lũy thừa zk, ta viết : Function Lt(z : Real ; k: Byte) : Real; thì z và k đều là các tham số trị hình thức . Còn theo khai báo của thủ tục Doicho : Procedure Doicho(Var u, v : Real) ; thì...
Nội dung trích xuất từ tài liệu:
THAM SỐ TRỊ VÀ THAM SỐ BIẾN THAM SỐ TRỊ VÀ THAM SỐ BIẾN Trong khai báo ở đầu của chương trình con, các tham số hình thức có từkhóa Var đứng trước gọi là tham số biến, ngược lại, nếu không có từ khóaVar đi trước thì gọi là tham số trị. Ví dụ, trong khai báo hàm tính lũy thừa zk, ta viết : Function Lt(z : Real ; k: Byte) : Real;thì z và k đều là các tham số trị hình thức . Còn theo khai báo của thủ tục Doicho : Procedure Doicho(Var u, v : Real) ;thì u và v đều là các tham số biến hình thức. 13.1.1. Tham số trị : 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ó được coi như mộtbiến địa phương, nhận gía trị ban đầu là tham số thực sự được chuyển đến từchương trình chính qua lời gọi chương trình con. Sau đó chương trình con cóthể thay đổi giá trị của tham số trị hình thức ở bên trong chương trình con,song điều đó không làm thay đổi gía trị của tham số thực sự. Trong lời gọi chương trình con các tham số trị thực sự có thể là biến,hằ?g hay biểu thức. Ví dụ, muốn tính S= 43, ta viết : S:= Lt(4, 3);hoặc : x:=4; S:= Lt(x, 2+1);trong đó x là biến kiểu thực . Cách thức hoạt động của lệnh S:= Lt(x, 2+1); là như sau: Ðầu tiên các tham số hình thức z và k sẽ được khởi tạo giá trị ban đầuz:=x; và k:=2+1; kết qủa là z=4 và k=3. Kế đó các lệnh trong hàm Lt sẽ tính toán zk và gán kết qủa cho tên hàm,nên Lt=43. Gía trị này được gán tiếp cho S. Trước và sau khi thực hiện chương trình con, gía trị của tham số thực sự xkhông hề bị thay đổi, x vẫn có gía trị là 4. Vậy, các biến được truyền vào chương trình con dưới dạng tham số trị thìkhông bị thay đổi. Nói cách khác, mọi sự thay đổi của tham số trị hình thứctrong chương trình con không làm thay đổi gía trị của tham số thực sự tươngứng được truyền vào từ chương trình chính. 13.1.2. Tham số biến : Trong lời gọi chương trình con các tham số biến thực sự chỉ có the?làbiến, không the?là hằ?g hay biểu thức. Ví dụ, các lệnh sau đây là sai : Doicho(3, 4); { Sai vì 3 và 4 là các hằng} Doicho(a+1, b); { Sai vì a+1 là một biểu thức} Giả sử trong chương trình chính có hai biến thực a, b có gía trị a=4 vàb=3. Ðể hoán đổi gía trị của a và b ta dùng lệnh: Doicho(a, b); Vì u và v là các tham số biến hình thức nên chương trình con sẽ đồng nhấtu với a và đồng nhất v với b. Mọi thay đổi của tham số u trong chương trìnhcon đều là thay đổi của chính biến a, tương tự, mọi thay đổi của tham số vđều là thay đổi của chính biến b. Kết qủa là trước khi gọi thủ tục Doicho(a,b)thì a=3, b=4, sau khi thực hiện thủ tục xong thì a=4, b=3. Vậy, các biến được truyền vào chương trình con dưới dạng tham số biếnthì sẽ thay đổi theo tham số biến hình thức tương ứng trong chương trìnhcon. Thông thường, ta dùng tham số biến khi muốn nhận lại một gía trị mớisau khi thực hiện chương trình con. Bây giờ ta hiểu tại sao trong thủ tục Saptang thì N là tham số trị còn X làtha m số biến: Procedure SapTang( Var X : Kmang ; N: Integer); N là số phần tử của mảng X thì không cần thay đổi, còn mảng X thì lạicần thay đổi để trở thành một dãy tăng. Nếu ta bỏ từ khóa Var trước X đi,tức là: Procedure SapTang( X : Kmang ; N: Integer);thì lệnh : Saptang(A, N);sẽ không làm thay đổi dãy A. Thực chất của sự truyền tham số đối với các tham số biến là sự truyền địachỉ. Chương trình con sẽ dùng các ô nhớ của chính các biến đượ? truyền vàodưới dạng tham số biến. Ví dụ 13.1: Trong chương trình dưới đây, thủ tục TT có hai tham số avà b : a là tham số trị còn b là tham số biến. Hãy xem sự thay đổi gía trị củahai biến x, y của chương trình chính trước và sau khi gọi thủ tục TT: PROGRAM VIDU13_1; Var x, y: Integer; PROCEDURE TT( a : integer ; Var b : integer); Begin a:=a+6; b:=b+8; Writeln(‘a= ’, a); Writeln(‘b= ’, b);End;BEGINx:=4;y:=7;TT(x,y); {14}Writeln(‘x= ’, x); {15}Writeln(‘y= ’, y); {16}Readln;END.ChạyChép tập tin nguồn Trước khi gọi thủ tục TT thì x=4, y=7. Khi gọi thủ tục TT(x, y); thì các tham số hình thức a, b được gán a:=x;b:=y; nên a=4, và b=7. Các lệnh trong thủ tục a:=a+6; và b:=b+8; sẽ làmthay đổi các tham số a và b : a=10, b=15, và do đó hai lệnh: Writeln(‘a= ’, a); sẽ in ra a = 10 Writeln(‘b= ’, b); sẽ in ra b = 15 Thực hiện xong thủ thục TT, máy trở lại chương trình chính làm tiếp cáclệnh {15} và {16} : Writeln(‘x= ’, x); sẽ in ra x = 4 Writeln(‘y= ’, y); sẽ in ra y =15 Như vậy, x được truyền vào chương trình con thông qua tham số trị a nênmọi sự thay đổi của a trong chương trình con đều không ảnh hưởng gì đến x.Ngược lại, biến y được truyền vào chương trình con thông qua tham số biếnb nên mọi sự thay đổi của b ...
Nội dung trích xuất từ tài liệu:
THAM SỐ TRỊ VÀ THAM SỐ BIẾN THAM SỐ TRỊ VÀ THAM SỐ BIẾN Trong khai báo ở đầu của chương trình con, các tham số hình thức có từkhóa Var đứng trước gọi là tham số biến, ngược lại, nếu không có từ khóaVar đi trước thì gọi là tham số trị. Ví dụ, trong khai báo hàm tính lũy thừa zk, ta viết : Function Lt(z : Real ; k: Byte) : Real;thì z và k đều là các tham số trị hình thức . Còn theo khai báo của thủ tục Doicho : Procedure Doicho(Var u, v : Real) ;thì u và v đều là các tham số biến hình thức. 13.1.1. Tham số trị : 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ó được coi như mộtbiến địa phương, nhận gía trị ban đầu là tham số thực sự được chuyển đến từchương trình chính qua lời gọi chương trình con. Sau đó chương trình con cóthể thay đổi giá trị của tham số trị hình thức ở bên trong chương trình con,song điều đó không làm thay đổi gía trị của tham số thực sự. Trong lời gọi chương trình con các tham số trị thực sự có thể là biến,hằ?g hay biểu thức. Ví dụ, muốn tính S= 43, ta viết : S:= Lt(4, 3);hoặc : x:=4; S:= Lt(x, 2+1);trong đó x là biến kiểu thực . Cách thức hoạt động của lệnh S:= Lt(x, 2+1); là như sau: Ðầu tiên các tham số hình thức z và k sẽ được khởi tạo giá trị ban đầuz:=x; và k:=2+1; kết qủa là z=4 và k=3. Kế đó các lệnh trong hàm Lt sẽ tính toán zk và gán kết qủa cho tên hàm,nên Lt=43. Gía trị này được gán tiếp cho S. Trước và sau khi thực hiện chương trình con, gía trị của tham số thực sự xkhông hề bị thay đổi, x vẫn có gía trị là 4. Vậy, các biến được truyền vào chương trình con dưới dạng tham số trị thìkhông bị thay đổi. Nói cách khác, mọi sự thay đổi của tham số trị hình thứctrong chương trình con không làm thay đổi gía trị của tham số thực sự tươngứng được truyền vào từ chương trình chính. 13.1.2. Tham số biến : Trong lời gọi chương trình con các tham số biến thực sự chỉ có the?làbiến, không the?là hằ?g hay biểu thức. Ví dụ, các lệnh sau đây là sai : Doicho(3, 4); { Sai vì 3 và 4 là các hằng} Doicho(a+1, b); { Sai vì a+1 là một biểu thức} Giả sử trong chương trình chính có hai biến thực a, b có gía trị a=4 vàb=3. Ðể hoán đổi gía trị của a và b ta dùng lệnh: Doicho(a, b); Vì u và v là các tham số biến hình thức nên chương trình con sẽ đồng nhấtu với a và đồng nhất v với b. Mọi thay đổi của tham số u trong chương trìnhcon đều là thay đổi của chính biến a, tương tự, mọi thay đổi của tham số vđều là thay đổi của chính biến b. Kết qủa là trước khi gọi thủ tục Doicho(a,b)thì a=3, b=4, sau khi thực hiện thủ tục xong thì a=4, b=3. Vậy, các biến được truyền vào chương trình con dưới dạng tham số biếnthì sẽ thay đổi theo tham số biến hình thức tương ứng trong chương trìnhcon. Thông thường, ta dùng tham số biến khi muốn nhận lại một gía trị mớisau khi thực hiện chương trình con. Bây giờ ta hiểu tại sao trong thủ tục Saptang thì N là tham số trị còn X làtha m số biến: Procedure SapTang( Var X : Kmang ; N: Integer); N là số phần tử của mảng X thì không cần thay đổi, còn mảng X thì lạicần thay đổi để trở thành một dãy tăng. Nếu ta bỏ từ khóa Var trước X đi,tức là: Procedure SapTang( X : Kmang ; N: Integer);thì lệnh : Saptang(A, N);sẽ không làm thay đổi dãy A. Thực chất của sự truyền tham số đối với các tham số biến là sự truyền địachỉ. Chương trình con sẽ dùng các ô nhớ của chính các biến đượ? truyền vàodưới dạng tham số biến. Ví dụ 13.1: Trong chương trình dưới đây, thủ tục TT có hai tham số avà b : a là tham số trị còn b là tham số biến. Hãy xem sự thay đổi gía trị củahai biến x, y của chương trình chính trước và sau khi gọi thủ tục TT: PROGRAM VIDU13_1; Var x, y: Integer; PROCEDURE TT( a : integer ; Var b : integer); Begin a:=a+6; b:=b+8; Writeln(‘a= ’, a); Writeln(‘b= ’, b);End;BEGINx:=4;y:=7;TT(x,y); {14}Writeln(‘x= ’, x); {15}Writeln(‘y= ’, y); {16}Readln;END.ChạyChép tập tin nguồn Trước khi gọi thủ tục TT thì x=4, y=7. Khi gọi thủ tục TT(x, y); thì các tham số hình thức a, b được gán a:=x;b:=y; nên a=4, và b=7. Các lệnh trong thủ tục a:=a+6; và b:=b+8; sẽ làmthay đổi các tham số a và b : a=10, b=15, và do đó hai lệnh: Writeln(‘a= ’, a); sẽ in ra a = 10 Writeln(‘b= ’, b); sẽ in ra b = 15 Thực hiện xong thủ thục TT, máy trở lại chương trình chính làm tiếp cáclệnh {15} và {16} : Writeln(‘x= ’, x); sẽ in ra x = 4 Writeln(‘y= ’, y); sẽ in ra y =15 Như vậy, x được truyền vào chương trình con thông qua tham số trị a nênmọi sự thay đổi của a trong chương trình con đều không ảnh hưởng gì đến x.Ngược lại, biến y được truyền vào chương trình con thông qua tham số biếnb nên mọi sự thay đổi của b ...
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 334 4 0 -
122 trang 214 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 213 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 172 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 158 0 0 -
Memory-RAM - Một số thuật ngữ và kỹ thuật tin học
5 trang 156 0 0 -
Hướng dẫn tạo file ghost và bung ghost
12 trang 153 0 0