SKKN Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con

SKKN Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con

Mỗi môn học đều có đặc thù riêng, môn Tin học cũng vậy. Đối với môn Tin học, các tiết bài tập và bài tập thực hành chiếm thời lượng giảng dạy khá nhiều. Kết quả học lý thuyết thể hiện ở năng lực giải quyết bài tập và bài tập thực hành của các em. Tuy nhiên, đối với học sinh khối 11, việc làm quen với lập trình dù chỉ là các bài toán đơn giản cũng còn nhiều lạ lẫm và khó khăn. Đó là những kiến thức mới, cách tiếp cận cũng như thực hành không như những môn học các em đã được làm quen lâu nay. Để làm được bài tập phải vận dụng nhiều kỹ năng như: Tư duy toán học, tư duy logic . Mà không phải tất cả học sinh đều có tư chất và say mê đối với môn học để tìm tòi và đáp ứng được.

Đặc biệt khi giảng dạy nội dung bài 18 - chương VI: “Ví dụ về cách viết và sử dụng chương trình con” – Tin học 11 tôi nhận thấy đa số học sinh đều gặp khó khăn khi tìm hiểu các khái niệm trừu tượng như: Danh sách tham số, tham số giá trị(tham trị), tham số biến(tham biến). Thông qua các ví dụ minh họa trong sách giáo khoa hầu hết các em chưa nắm bắt được các khái niệm một cách hiệu quả nhất, và dễ bị nhầm lẫn các khái niệm: Tham biến, tham trị.

Đề tài này được viết dựa trên kinh nghiệm thực tiễn giảng dạy của bản thân, và tôi xây dựng thành: “Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con”.

 

doc 21 trang thuychi01 6623
Bạn đang xem 20 trang mẫu của tài liệu "SKKN Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
 MỞ ĐẦU
- Lý do chọn đề tài:
Mỗi môn học đều có đặc thù riêng, môn Tin học cũng vậy. Đối với môn Tin học, các tiết bài tập và bài tập thực hành chiếm thời lượng giảng dạy khá nhiều. Kết quả học lý thuyết thể hiện ở năng lực giải quyết bài tập và bài tập thực hành của các em. Tuy nhiên, đối với học sinh khối 11, việc làm quen với lập trình dù chỉ là các bài toán đơn giản cũng còn nhiều lạ lẫm và khó khăn. Đó là những kiến thức mới, cách tiếp cận cũng như thực hành không như những môn học các em đã được làm quen lâu nay. Để làm được bài tập phải vận dụng nhiều kỹ năng như: Tư duy toán học, tư duy logic ... Mà không phải tất cả học sinh đều có tư chất và say mê đối với môn học để tìm tòi và đáp ứng được.
Đặc biệt khi giảng dạy nội dung bài 18 - chương VI: “Ví dụ về cách viết và sử dụng chương trình con” – Tin học 11 tôi nhận thấy đa số học sinh đều gặp khó khăn khi tìm hiểu các khái niệm trừu tượng như: Danh sách tham số, tham số giá trị(tham trị), tham số biến(tham biến). Thông qua các ví dụ minh họa trong sách giáo khoa hầu hết các em chưa nắm bắt được các khái niệm một cách hiệu quả nhất, và dễ bị nhầm lẫn các khái niệm: Tham biến, tham trị.
Đề tài này được viết dựa trên kinh nghiệm thực tiễn giảng dạy của bản thân, và tôi xây dựng thành: “Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con”.
- Mục đích nghiên cứu
 Giúp học sinh phân biệt và sử dụng tham trị, tham biến trong quá trình lập trình. Từ đó, các em có thể hiểu vận dụng vào viết các chương trình con hỗ trợ phục vụ cho quá trình lập trình giải quyết các bài toán từ đơn giản đến phức tạp. 
- Đối tượng nghiên cứu
Học sinh khối 11 trường THPT Triệu Sơn 1.
- Phương pháp nghiên cứu
Trong phạm vi đề tài này tôi lựa chọn phương pháp nghiên cứu xây dựng cơ sở lí thuyết
NỘI DUNG SÁNG KIẾN KINH NGHIỆM
 Cơ sở lí luận của sáng kiến kinh nghiệm
Cũng như những môn học khác, việc dạy Tin học cần được thực hiện trong hoạt động và bằng hoạt động tự giác, tích cực, chủ động và sáng tạo của người học. Khi cần dạy một nội dung Tin học cho học sinh, người giáo viên phải biết phân tích nội dung đó xem nó liên quan đến những hoạt động nào và một số hoạt động trong đó lại được phân tích thành những hoạt động thành phần, rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang thiết bị hiện có mà lựa chọn cho học sinh tập luyện và thực hiện một số trong những hoạt động tiềm tàng trong nội dung cần dạy. Để học sinh có ý thức về ý nghĩa của những hoạt động, cần tạo động cơ học tập cho học sinh, để học sinh học bằng sự hứng thú thực sự được nảy sinh từ việc ý thức sâu sắc ý nghĩa của nội dung bài học.
Bên cạnh đó cần phải tập luyện cho học sinh những hoạt động ăn khớp với những tri thức phương pháp. Phải phân bậc hoạt động để tuần tự nêu cao yêu cầu khi tình huống dạy học cho phép hoặc hạ thấp yêu cầu khi học sinh gặp khó khăn. Hệ thống bài tập được phân bậc để học sinh luyện tập tại lớp hoặc làm ở nhà.
Quan điểm hoạt động trong phương pháp dạy học có thể được thể hiện ở các tư tưởng chủ đạo sau:
* Cho học sinh thực hiện và tập luyện những hoạt động và hoạt động thành phần tương thích với nội dung và mục tiêu dạy học;
* Gợi động cơ cho các hoạt động học tập;
* Dẫn dắt học sinh kiến tạo tri thức, đặc biệt là tri thức phương pháp như phương tiện và kết quả của hoạt động;
* Phân bậc hoạt động làm căn cứ điều khiển quá trình dạy học.
Trong các tư tưởng chủ đạo đó, tôi lựa chọn tư tưởng: "Cho học sinh thực hiện và tập luyện những hoạt động và hoạt động thành phần tương thích với nội dung và mục tiêu dạy học" làm cơ sở lý luận cho SKKN này. Có thể cụ thể hóa tư tưởng như sau:
*Phát hiện những hoạt động tương thích với nội dung:
Việc phát hiện những hoạt động tương thích với nội dung căn cứ một phần quan trọng vào sự hiểu biết về những hoạt động nhằm lĩnh hội những dạng nội dung khác nhau.
Ví dụ: Khi giới thiệu về danh sách tham số sử dụng trong phần đầu của chương trình con ta có thể giải quyết như sau:
Nếu một chương trình con có danh sách tham số thì các tham số phải được khai báo ở phần đầu chương trình con, cụ thể đối với thủ tục và hàm có cấu trúc để khai báo:
Thủ tục: Procedure [()];
Hàm: Function [()]: ;
 Trong đó: [()] là tên của một hoặc nhiều biến đơn, và phải khai báo kiểu dữ liệu của các biến đơn trong danh sách tham số. Thành phần danh sách tham số có thể có hoặc không trong khai báo. 
Ví dụ:	1.Procedure	 Ve_HCN;
	2.Procedure Ve_HCN(chdai,chrong:integer); 
 	Dựa vào khái niệm đưa ra và các ví dụ điển hình trong SGK học sinh dễ dàng chỉ ra được thành phần danh sách tham số. Trong ví dụ 1 là một trường hợp của bài toán đơn giản không cần sử dụng danh sách tham số còn ví dụ 2 là một trường hợp có sử dụng danh sách tham số và cách khai báo các tham số sử dụng trong chương trình đó là chdai, chrong có kiểu dữ liệu là integer. 
*Phân tách hoạt động thành các hoạt động thành phần
Trong quá trình hoạt động, nhiều khi một hoạt động này có thể xuất hiện như một thành phần của một hoạt động khác. Phân tách được một hoạt động thành những hoạt động thành phần là biết được cách tiến hành hoạt động toàn bộ, nhờ đó có thể vừa quan tâm rèn luyện cho học sinh hoạt động toàn bộ vừa chú ý cho học sinh luyện tập tách riêng những hoạt động thành phần khó hoặc quan trọng khi cần thiết. 
Ví dụ: Khi giới thiệu về khái niệm tham trị và tham biến ta có thể giải quyết như sau:
Theo SGK Tin học 11, tham biến và tham trị được định nghĩa như sau:
* Tham trị: Trong lệnh gọi chương trình con, các tham số hình thức được thay bằng các tham số thực sự tương ứng là các giá trị cụ thể được gọi là các tham số giá trị (tham trị).
* Tham biến: Trong lệnh gọi chương trình con, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến (tham biến).
* Để phân biệt tham trị và tham biến, ngôn ngữ lập trình Pascal sử dụng từ khóa Var để khai báo những tham số biến.
Hoạt động 1: Nhận biết tham trị và tham biến thông qua phần đầu chương trình con:
Ví dụ 1: a. Procedure Hoan_doi(a,b:integer);
	 b. Procedure Hoan_doi(x:integer; Var y:integer);
Học sinh dễ dàng nhận biết:
Ví dụ 1.a: a,b là tham trị; 
Ví dụ 1.b: x là tham trị và b là tham biến.
Hoạt động 2: Nhận biết tham trị và tham biến thông qua lệnh gọi chương trình con:
Ví dụ 2: Với thủ tục có khai báo:
Procedure Hoan_doi(a,b:integer);
Hãy cho biết trong các lệnh gọi sau đâu là tham trị? tham biến?
Hoan_doi(a,b);
Hoan_doi(7,5);
Dựa vào khái niệm tham trị và tham biến học sinh chỉ ra được:
Ví dụ 2.a: a và b đóng vai trò là tham biến;
Ví dụ 2.b: 5 và 7 đóng vai trò làm tham trị;
 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Trong các chương học trước các em đã làm quen khá nhiều với các dạng bài tập lập trình, và các phương pháp lập trình. Tuy nhiên trong chương VI này, các em được làm quen với phương pháp lập trình có cấu trúc do đó còn nhiều bỡ ngỡ và chưa thành thạo. Mặc dù các ví dụ của sách giáo khoa là các chương trình cụ thể để giải quyết bài toán tuy nhiên học sinh sẽ gặp rất nhiều khó khăn. Chính vì vậy, đối với những học sinh khá và giỏi việc vận dụng lý thuyết để làm các bài tập đã khó; đối với học sinh trung bình và yếu càng khó hơn.
Thực tế giảng dạy đặt ra vấn đề: làm thế nào để học sinh hiểu bài, có khả năng tư duy vận dụng để giải quyết các bài tập, từ đó khơi dậy tính tích cực, chủ động, sáng tạo và say mê tìm tòi dẫn đến yêu thích môn học là điều quan trọng đối với mỗi giáo viên. 
Bên cạnh đó, nếu sau một thời gian học sinh không biết cách vận dụng lý thuyết vào để làm các bài tập và cảm thấy khó khăn khi giải quyết vấn đề sẽ dẫn đến tình trạng các em thụ động trong việc tiếp thu bài giảng, không còn hứng thú với môn học. Để giải quyết vấn đề này là không phải là đơn giản.
 Do đó khi giảng dạy nội dung bài 18 chương VI- Tin học 11 tôi đã áp dụng SKKN của mình với hi vọng có thể giúp học sinh vận dụng để giải quyết được các bài tập lập trình có sử dụng chương trình con.
Thuận lợi:
Có nhiều tài liệu viết về chương trình con.
Thời lượng cho các tiết bài tập và thực hành Tin học khối 11 nhiều thuận lợi cho việc áp dụng các bài tập trong sáng kiến vào bài dạy.
Các phòng học đều có máy chiếu, có phòng máy đáp ứng được các yêu cầu giảng dạy của bộ môn.
Sự quan tâm và chỉ đạo kịp thời của Ban giám hiệu nhà trường.
Khó khăn:
Chương trình con là một phần mới và khó đối với học sinh.
Môn tin là môn học không không được học sinh đầu tư nhiều thời gian như các môn học khác.
Để học tốt chương trình tin học 11 học sinh phải có nền tảng tư duy toán học.
 Các biện pháp tiến hành để giải quyết
Sự khác nhau cơ bản của tham trị và tham biến
Ngoài sự khác nhau trong cách khai báo, trong lệnh gọi chương trình con mà học sinh dễ dàng nhận biết thì sự khác nhau về bản chất của tham trị và tham biến lại thực sự là một vấn đề khá phức tạp và dễ nhầm lẫn trong quá trình viết chương trình giải quyết các bài toán. Vậy làm thế nào để học sinh nhận biết được sự khác nhau cơ bản giữa tham trị và tham biến?
Giá trị của tham biến thay đổi còn giá trị của tham trị không thay đổi sau khi thực hiện lời gọi chương trình con.
Bài toán 1: Quan sát kết quả thực hiện chương trình và cho biết:
Tham biến và tham trị sử dụng trong chương trình?
Đưa ra nhận xét về sự thay đổi giá trị của tham biến và tham trị sau khi lệnh gọi thủ tục được thực hiện?
Program ThamSo;
Var x,y:integer;
Procedure Gia_tri(Var a:integer; b:integer);
 Begin
 a:=5;b:=5;
 End;
Begin
 x:=10;y:=10;
 Writeln('Gia tri ban dau:x=',x,' y=',y);
 Gia_tri(x,y);
 Writeln('Sau khi thu hien CHƯƠNG TRÌNH CON:x=',x,' y=',y);
 Readln
End.
 Kết quả sau khi thực hiện chương trình:
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích
Bài toán 1a học sinh nhận biết tham trị và tham biến thông qua phần đầu chương trình con có sử dụng từ khóa Var trong danh sách tham số hay không? Do đó học sinh chỉ ra trong danh sách tham số a là tham biến còn b là tham trị. Và trong lệnh gọi thủ tục tương ứng thì x là tham biến, y là tham trị.
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Bài toán 1b, đầu tiên x và y được truyền giá trị là x:=10; y:=10; 
Khi lệnh gọi thủ tục Thamso(x,y) được thực hiện, do tham biến là biến chứa dữ liệu ra nên giá trị của tham biến x sẽ bị tác động bởi câu lệnh trong thủ tục a:=5 (Tương ứng là x:=5). 
Bên cạnh đó, khi lệnh gọi thủ tục Thamso(x,y) được thực hiện, do tham trị là các giá trị cụ thể nên lệnh gọi lúc này có thể hiểu là Thamso(x,10). Chính vì vậy giá trị của y không bị thay đổi bởi lệnh b:=5 trong thủ tục và giá trị của y vẫn là 10. 
Kết luận: Sau khi thực hiện lệnh gọi chương trình con, giá trị của tham biến thay đổi còn giá trị của tham trị không thay đổi.
Chương trình con có tham số sử dụng tham biến và tham trị như thế nào? 
Bài toán 2: Quan sát chương trình và cho biết kết quả của chương trình sau khi thực hiện? Và cho biết để nhận được kết quả phù hợp cần sử dụng tham biến hoặc tham trị như thế nào?
Program BaiToan2;
Var a,b:integer;
Procedure Hoandoi(x,y:integer);
Var tg:integer;
Begin
 tg:=x;
 x:=y;
 y:=tg;
End;
Begin
 a:=5;b:=10;
 Writeln('Truoc khi hoan doi a=',a,' ', 'b=',b);
 Hoandoi(a,b);
 Write('Sau khi thuc hien thu tuc a=',a,' ','b=',b);
Readln
End.
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích: 
Thuật toán sử dụng trong chương trình con là thuật toán tráo đổi giá trị của hai số x,y cho thông qua biến trung gian tg mà các em đã được học trong bài toán sắp xếp mảng một chiều. Do đó học sinh sẽ phát hiện được chương trình con là thủ tục thực hiện công việc tráo đổi giá trị của hai số nguyên x,y.
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần 
Hoạt động 2.1: Danh sách tham số sử dụng trong chương trình là tham biến hay tham trị?
Thông qua việc khai báo danh sách tham số các em nhận biết được x và y là tham trị; còn trong lệnh gọi thủ tục Hoandoi(a,b) hai tham số a,b là tương ứng với x,y nên a và b là tham trị.
Hoạt động 2.2: Tìm hiểu hoạt động của chương trình thông qua hoạt động của các câu lệnh và đưa ra kết quả sau khi thực hiện chương trình.
Thủ tục Hoandoi(x,y) trong ví dụ này dùng để đổi giá trị giữa 2 biến nguyên x và y. Tuy nhiên khi chạy chương trình, điều này không xảy ra. Giá trị của 2 biến nguyên a và b trước khi gọi thủ tục a có giá trị bằng 5, b có giá trị bằng 10 và sau khi gọi thủ tục Hoandoi(a,b) giá trị của a, b có giá trị vẫn không đổi: a=5, b=10. Việc phát hiện giá trị của a,b không thay đổi sau khi thực hiện lệnh gọi thủ tục là do “Giá trị của tham trị không thay đổi” (Kết luận của Bài toán 1) và kết quả trên màn hình là:
Hoạt động 2.3: Chỉnh sửa lại chương trình cho phù hợp.
Rõ ràng lỗi xảy ra do thủ tục Hoandoi(x,y) sử dụng tham trị nên các giá trị của các biến a và b không bị ảnh hưởng bởi các lệnh tráo đổi giá trị trong thủ tục. Nếu muốn nhận được giá trị của a=10 và b=5 thì trong danh sách tham số của chương trình con cần phải khai báo các tham số x, y là tham biến:
Procedure Hoandoi(Var x,y:integer);
Khi đó chương trình sẽ cho kết quả như mong muốn: a=10, b=5. Và trên màn hình kết quả sẽ là: 
Đây là một ví dụ điển hình để chỉ ra cho học sinh thấy khi nào cần sử dụng tham trị và tham biến trong chương trình con.
Kết luận: Việc sử dụng tham trị hay tham biến cho một tham số là không thể tuỳ tiện vì nó có thể dẫn đến những kết quả sai với yêu cầu của bài toán. Bài toán trên đã minh hoạ các tình huống có thể xảy ra. Chương trình cho kết quả sai khi sử dụng tham trị, nếu sửa lại việc khai báo các tham số trong thủ tục Hoandoi là tham biến thì chương trình sẽ cho kết quả đúng với yêu cầu của bài toán.
Một số bài tập đơn giản để rèn luyện kĩ năng cho học sinh trong việc sử dụng tham trị và tham biến khi lập trình có cấu trúc
Bài toán 3: Sử dụng chương trình con để lập trình tính chu vi và diện tích hình chữ nhật có độ dài các cạnh là a, b. Với a, b nguyên dương nhập vào từ bàn phím.
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích:
* Câu lệnh gán để tính chu vi và diện tích hình chữ nhật;
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần:
Hoạt động 2.1: Xây dựng các câu lệnh gán để tính chu vi và diện tích hình chữ nhật có kích thước a,b:
CV:=(a+b)*2;
DT:=a*b;
Hoạt động 2.2: Khi lựa chọn chương trình con cần sử dụng trong chương trình thì học sinh xác định cần phải dùng thủ tục vì trong trường hợp này nếu dùng Hàm thì cần phải viết 2 Hàm: một hàm tính chu vi và một hàm tính diện tích vì vậy chương trình sẽ dài hơn và mất thời gian.
Hoạt động 2.3: Viết chương trình con dạng thủ tục tính chu vi và diện tích hình chữ nhật có kích thước a,b.
Để viết chương trình con, học sinh cần xác định xem danh sách tham số cần sử dụng là những tham số nào? Và trong đó những tham số nào khai báo là tham trị và tham biến?
Trong bài toán này, các cạnh của hình chữ nhật sẽ có giá trị không thay đổi nên cần khai báo là tham trị; còn chu vi và diện tích cần phải tính trong thủ tục nên khai báo là tham biến. Do đó danh sách tham số gồm bốn tham số, trong đó x, y là tham trị với mục đích lưu trữ độ dài các cạnh của hình chữ nhật và CV, DT là tham biến với mục đích lưu trữ giá trị CV, DT sau khi tính.
Thủ tục được học sinh viết như sau:
Procedure Tinh(x,y:word; Var CV,DT:word);
Begin
 CV:=(x+y)*2;
 DT:=x*y;
end;
Hoạt động 2.4: Hoàn thiện chương trình
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn chỉnh để giải quyết bài toán ban đầu:
Program BaiToan3;
Uses crt;
Var a,b,C,S:word;
Procedure Tinh(x,y:word; Var CV,DT:word);
Begin
 CV:=(x+y)*2;
 DT:=x*y;
end;
Begin
 clrscr;
 Write('Nhap a va b:');
 Readln(a,b);
 Tinh(a,b,C,S);
 Writeln('Chu vi HCN la:C= ',C,'(dvcv)');
 Writeln('Dien tich HCN la: S= ',S,'(dvdt)');
 Readln
End.
Bài toán 4: Sử dụng chương trình con để lập trình tính tổng hai dãy số a1, a2, a3, ..., aN và b1, b2, b3, ..., bM . Với N, M nguyên dương nhập vào từ bàn phím (N, M <= 250);
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích
* Nhập N, M, hai dãy số và dùng câu lệnh gán để tính tổng;
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Hoạt động 2.1: Đây là một bài toán các em đã được làm quen từ các chương học trước khi thao tác với mảng một chiều, do đó các em dễ dàng xác định được cách nhập N, dãy số a và tổng dãy a:
S1:=0;
Write('Nhap so luong phan tu chua day N=');
Readln(N);
For i:=1 to N do
 Begin
	 Write('Nhap phan tu thu ',i, ': ');
	 Readln(a[i]);
 S1:=S1+a[i];
 End;
Tương tự như vậy đối với M, dãy b và tổng dãy b.
Hoạt động 2.2: Lựa chọn chương trình con cần sử dụng:
Bài toán này là bài toán quen thuộc mà học sinh đã làm trong các chương học trước. Có nhiều cách để thực hiện tính tổng hai dãy số chính vì thế khi sử dụng chương trình con cũng có thể có nhiều cách để triển khai. Nên khuyến khích các em phát triển tư duy lập trình theo nhiều cách. Ở đây tôi đề xuất cách viết có sử dụng tham biến và tham trị trong việc viết các thủ tục để giải quyết bài toán ban đầu.
Hoạt động 2.3: Danh sách tham số cần sử dụng:
Bao gồm:
* Tham trị X là tham số tương ứng với N và M
* Tham trị C là tham số tương ứng với mảng A và B lưu trữ giá trị hai dãy số;
* Tham biến S là tham số tương ứng lưu trữ giá trị tổng của từng dãy số;
Hoạt động 2.4: Hoàn thiện chương trình:
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn chỉnh để giải quyết bài toán ban đầu:
Program Baitoan4;
Uses Crt;
Type KM=Array [1..250] of integer;
Var A,B:KM;
 N,M:Byte;
 S1,S2:longint;
Procedure Tong(X:byte;C:KM;Var S:longint);
Var i:Byte;
Begin
 S:=0;
 Writeln('Moi nhap day so ',X,' phan tu:');
 For i:=1 to X do
 Begin
 Write('Nhap phan tu thu ',i,':');
 Readln(C[i]);
 S:=S+C[i];
 End;
End;
Begin
Clrscr;
Write('Nhap gia tri N va M:');
Readln(N,M);
Tong(N,A,S1);
Tong(M,B,S2);
Writeln('Tong hai day so A va B la: S=',S1+S2);
Readln
End.
Bài toán 5: Sử dụng chương trình con viết chương trình tìm và thông báo có hay không số nguyên dương có giá trị bằng K trong dãy số nguyên a1, a2, a3, ..., aN. Với N nguyên dương (N<=250) . N và K nhập vào từ bàn phím.
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích
* Nhập N, K, dãy số A từ bàn phím và kiểm tra xem có tồn tại số K trong dãy hay không? 
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Hoạt động 2.1: Nhập N, K, dãy số A và kiểm tra có tồn tại K trong dãy hay không?
Việc nhập N, K, và dãy số A tương tự như Bài toán 4, và thay thế câu lệnh tính tổng dãy số bằng câu lệnh kiểm tra xem có tồn tại số K trong dãy số hay không? Đoạn chương trình như sau:
 KT:=False;
 Writeln('Moi nhap so phan tu cua day N=');
 Readln(N);
 For i:=1 to N do
 Begin
 Write('Nhap phan tu thu ',i,' :');
 Readln(A[i]);
 If A[i]=K then KT:=True;
 End;
Hoạt động 2.2: : Lựa chọn chương trình con cần sử dụng:
Bài toán này là bài toán tìm kiếm mà học sinh đã làm trong các chương học trước. Có nhiều cách viết chương trình để giải quyết bài toán. Vì thế khi sử dụng chương trình con cũng có thể có nhiều cách để triển khai. Ở đây tôi đề xuất cách viết có sử dụng tham biến và tham trị trong việc sử dụng thủ tục để giải quyết bài toán ban đầu.
Hoạt động 2.3: Hoàn thiện chương trình:
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn chỉnh để giải quyết bài toán ban đầu:
Program Baitoan5;
Uses Crt;
Type KM=Array[1..250] of integer;
Var N:byte;
 A:KM;
 K:integer;
 KT:Boolean;
Procedure Nhap(X:Byte;C:KM;Var KT:Boolean);
Var i:Byte;
Begin
 KT:=False;
 Writeln('Moi nhap day ',X,' phan tu:');
 For i:=1 to X do
 Begin
 Write('Nhap phan tu thu ',i,' :');
 Readln(C[i]);
 If C[i]=K

Tài liệu đính kèm:

  • docskkn_huong_dan_hoc_sinh_phan_biet_va_su_dung_tham_bien_va_th.doc