Sáng kiến kinh nghiệm b4
Chia sẻ bởi Nguyễn Thị Thúy Vinh |
Ngày 16/10/2018 |
64
Chia sẻ tài liệu: Sáng kiến kinh nghiệm b4 thuộc Tư liệu tham khảo
Nội dung tài liệu:
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. Nhng 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,b,c,d) th× gi¸
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. Nhng 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,b,c,d) th× gi¸
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Thúy Vinh
Dung lượng: 65,50KB|
Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)