Chào mừng quý vị đến với Thư viện điện tử Sở GD&ĐT Nghệ An.
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy đăng ký thành viên tại đây hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.
kinh nghiệm

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Hoàng Văn Lập
Ngày gửi: 09h:33' 22-12-2009
Dung lượng: 13.9 KB
Số lượt tải: 169
Nguồn:
Người gửi: Hoàng Văn Lập
Ngày gửi: 09h:33' 22-12-2009
Dung lượng: 13.9 KB
Số lượt tải: 169
Số lượt thích:
0 người
A - Đặt Vấn đề
Khi giảng dạy về phần chương trình con ( CTC ) – Tin học 11 tôi nhận thấy hầu hết học sinh rất bỡ ngỡ với các khái niệm hoàn toàn mới mẻ mang tính trừu tượng như: Danh sách tham số, tham số giá trị, tham số biến, tham số hình thức, tham số thực sự…
Điều làm tôi không khỏi băn khoăn đó là làm thế nào để học sinh hiểu và nắm bắt được các khái niệm này một cách hiệu quả nhất, nhằm tránh những sự hiểu lầm giữa các khái niệm tham biến và tham trị .
Hiện nay hầu hết các ngôn ngữ bậc cao đều tổ chức hai cách truyền tham số khi gọi một CTC, đó là truyền theo trị và truyền theo biến. Việc truyền tham chiếu theo hai cách khác nhau nhiều khi gây ra những kết quả khác nhau không mong muốn, điều này dẫn đến những lỗi logic rất khó phát hiện. Dưới đây trình bày những sai lầm có thể xảy ra khi sử dụng hai cách truyền tham chiếu và cách dùng chúng cho đúng để đạt được múc đích đã đề ra của chương trình.
Bài viết này không nghiêng về thuật toán của các bài toán khó mà chỉ đưa ra các bài toán có thuật toán đơn giản nhất để học sinh không rơi vào việc giải quyết thuật toán mà chú trọng đến vấn đề của bài viết: “Một số sai lầm khi dùng tham biến và tham trị trong PASCAL”
B- Giải quyết vấn đề:
1. Những tình huống có thể xẩy ra trong khi sử dụng tham biến và tham trị .
Nếu một CTC có danh sách tham số thì các tham số phải được khai báo ở phần đầu sau tên CTC, trong cặp dấu ngoặc tròn. Khai báo một tham số có nghĩa là chỉ ra nó thuộc loại tham số nào ( tham số biến hay tham số trị ) và nó có kiểu dữ liệu là gì?
Ví dụ: Procedure Delta(Var x: integer ; y: real);
Function Beta( a, b: real): real;
Danh sách tham số là x, y, a, b. Với x có kiểu dữ liệu Integer y, a, b, có kiểu số thực. Vậy trong danh sách tham số x, y, a, b đâu là tham biến, đâu là tham trị? Bằng trực quan ta dễ dàng nhận thấy x là tham biến vì x có từ khoá Var đứng trước; y, a, b là tham trị vì không có từ khoá Var đứng trước. Để thấy rõ hơn về bản chất sự khác nhau giữa tham biến và tham trị ta xét ví dụ sau:
Ví dụ1:
Progam Vidu1;
Procedure Tong_hieu(a, b: Integer; Var c, d: Integer );
Begin
c:= a – b ;
d:= a + b ;
a:= a*b ;
End;
Begin clrscr;
a:= 10; b:= 3; c:= 5; d:= 6;
Tong_hieu(a,b,c,d);
Write(a,b,c,d);
Readln;
End.
Mới nhìn vào chương trình nhiều học sinh có thể chủ quan đưa ra các giá trị 30, 3, 7, 13 tương ứng với các tham số a, b, c, d. Nhưng kết qủa nhận được sau khi chạy chương trình lại là 10, 3, 7, 13 tương ứng với các tham số a, b, c, d. Vậy tại sao lại có kết quả này?
Thật vậy, do a, b được truyền theo trị nên khi có lời gọi Tong_hieu(a,
Khi giảng dạy về phần chương trình con ( CTC ) – Tin học 11 tôi nhận thấy hầu hết học sinh rất bỡ ngỡ với các khái niệm hoàn toàn mới mẻ mang tính trừu tượng như: Danh sách tham số, tham số giá trị, tham số biến, tham số hình thức, tham số thực sự…
Điều làm tôi không khỏi băn khoăn đó là làm thế nào để học sinh hiểu và nắm bắt được các khái niệm này một cách hiệu quả nhất, nhằm tránh những sự hiểu lầm giữa các khái niệm tham biến và tham trị .
Hiện nay hầu hết các ngôn ngữ bậc cao đều tổ chức hai cách truyền tham số khi gọi một CTC, đó là truyền theo trị và truyền theo biến. Việc truyền tham chiếu theo hai cách khác nhau nhiều khi gây ra những kết quả khác nhau không mong muốn, điều này dẫn đến những lỗi logic rất khó phát hiện. Dưới đây trình bày những sai lầm có thể xảy ra khi sử dụng hai cách truyền tham chiếu và cách dùng chúng cho đúng để đạt được múc đích đã đề ra của chương trình.
Bài viết này không nghiêng về thuật toán của các bài toán khó mà chỉ đưa ra các bài toán có thuật toán đơn giản nhất để học sinh không rơi vào việc giải quyết thuật toán mà chú trọng đến vấn đề của bài viết: “Một số sai lầm khi dùng tham biến và tham trị trong PASCAL”
B- Giải quyết vấn đề:
1. Những tình huống có thể xẩy ra trong khi sử dụng tham biến và tham trị .
Nếu một CTC có danh sách tham số thì các tham số phải được khai báo ở phần đầu sau tên CTC, trong cặp dấu ngoặc tròn. Khai báo một tham số có nghĩa là chỉ ra nó thuộc loại tham số nào ( tham số biến hay tham số trị ) và nó có kiểu dữ liệu là gì?
Ví dụ: Procedure Delta(Var x: integer ; y: real);
Function Beta( a, b: real): real;
Danh sách tham số là x, y, a, b. Với x có kiểu dữ liệu Integer y, a, b, có kiểu số thực. Vậy trong danh sách tham số x, y, a, b đâu là tham biến, đâu là tham trị? Bằng trực quan ta dễ dàng nhận thấy x là tham biến vì x có từ khoá Var đứng trước; y, a, b là tham trị vì không có từ khoá Var đứng trước. Để thấy rõ hơn về bản chất sự khác nhau giữa tham biến và tham trị ta xét ví dụ sau:
Ví dụ1:
Progam Vidu1;
Procedure Tong_hieu(a, b: Integer; Var c, d: Integer );
Begin
c:= a – b ;
d:= a + b ;
a:= a*b ;
End;
Begin clrscr;
a:= 10; b:= 3; c:= 5; d:= 6;
Tong_hieu(a,b,c,d);
Write(a,b,c,d);
Readln;
End.
Mới nhìn vào chương trình nhiều học sinh có thể chủ quan đưa ra các giá trị 30, 3, 7, 13 tương ứng với các tham số a, b, c, d. Nhưng kết qủa nhận được sau khi chạy chương trình lại là 10, 3, 7, 13 tương ứng với các tham số a, b, c, d. Vậy tại sao lại có kết quả này?
Thật vậy, do a, b được truyền theo trị nên khi có lời gọi Tong_hieu(a,
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓





