TAILIEUCHUNG - Tài liệu trình biên dịch C (ĐH Cần Thơ) part 22

TRUYỀN THAM SỐ Khi một chương trình con gọi một chương trình con khác thì phương pháp thông thường để giao tiếp giữa chúng là thông qua tên không cục bộ và thông qua các tham số của chương trình được gọi. Ví dụ : Ðể đổi hai giá trị a[i] và a[j] cho nhau ta dùng (1) (2) (3) (4) (5) procedure exchange(i,j : integer); var x : integer; begin x := a[i]; a[i] := a[j]; a[j] := x; end; trong đó mảng a là tên không cục bộ và i,j là các tham số. Có rất nhiều phương pháp. | V. TRUYỀN THAM SỐ Khi một chương trình con gọi một chương trình con khác thì phương pháp thông thường để giao tiếp giữa chúng là thông qua tên không cục bộ và thông qua các tham số của chương trình được gọi. Ví dụ Để đổi hai giá trị a i và a j cho nhau ta dùng 1 procedure exchange i j integer 2 var x integer 3 begin 4 x a i a i a j a j x 5 end trong đó mảng a là tên không cục bộ và i j là các tham số. Có rất nhiều phương pháp truyền tham số như - Truyền bằng giá trị Transmision by value call- by-value - Truyền bằng tham khảo Transmision by name call- by-name . Ở đây chúng ta xét hai phương pháp phổ biến nhất 1. Truyền bằng giá trị Là phương pháp đơn giản nhất của truyền tham số được sử dụng trong C và Pascal. Truyền bằng giá trị được xử lý như sau 1. Tham số hình thức được xem như là tên cục bộ do đó ô nhớ của các tham số hình thức nằm trong mẩu tin kích hoạt của chương trình được gọi. 2. Chương trình gọi đánh giá các tham số thực tế và đặt các giá trị của chúng vào trong ô nhớ của tham số hình thức. 2. Truyền tham chiếu truyền địa chỉ hay truyền vị trí Chương trình gọi truyền cho chương trình được gọi con trỏ tới địa chỉ của mỗi một tham số thực tế. Ví dụ 1 program reference input output 2 var i integer 3 a array of integer 4 procedure swap var x y integer 5 var temp integer 6 begin 7 temp x 160 8 x y 9 y temp 10 end 11 begin 12 i 1 a 1 2 13 swap i a 1 14 end Hình - Chương trình Pascal với thủ tục swap Với lời gọi tại dòng 13 ta có các bước sau 1. Copy địa chỉ của i và a i vào trong mẩu tin hoạt động của swap thành arg1 arg2 tương ứng với x y. 2. Đặt temp bằng nội dung của vị trí được trả về bởi arg1 tức là temp 1. Bước này tương ứng lệnh temp x trong dòng 7 của swap. 3. Đặt nội dung của vị trí được trỏ bằng arg1 bởi giá trị của vị trí được trả bởi arg2 tức là i a 1 . Bước này tương ứng lệnh x y trong dòng 8 của swap. 4. Đặt nội dung của vị trí được trỏ bởi arg2 bởi giá trị của temp. Tức là a 1 i. Bước này tương ứng lệnh y temp. VI. BẢNG KÝ .

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.