SKKN Hướng dẫn học sinh lớp 11A1, 11A2 Trường THPT Quan Sơn tiếp cận nhanh Chương trình con và lập trình có cấu trúc

SKKN Hướng dẫn học sinh lớp 11A1, 11A2 Trường THPT Quan Sơn tiếp cận nhanh Chương trình con và lập trình có cấu trúc

Xuất phát từ thực tiễn của việc dạy tin và học môn Tin học hàng ngày trên lớp. Trong quá trình dạy và học đó tôi gặp không ít khó khăn, một trong những khó khăn lớn nhất đó là việc dạy cho học sinh nắm được kiến thức chương trình con và lập trình có cấu trúc. Trước tình hình trên hàng loạt câu hỏi đặt ra trước mắt tôi đó là làm thế nào để khi giảng môn Tin mà học sinh có thể hiểu bài và học tốt.

Với tư cách là người trực tiếp đứng lớp giảng dạy môn Tin học hàng ngày việc dạy học sinh hiểu rõ về chương trình con và lập trình có cấu trúc không phải là vấn đề đơn giản vì lẽ đó sau một thời gian suy nghĩ, tìm tòi và nghiên cứu tôi đã lựa chọn đề tài “Hướng dẫn học sinh lớp 11A1, 11A2 Trường THPT Quan Sơn tiếp cận nhanh Chương trình con và lập trình có cấu trúc”. Nhằm giúp bản thân tôi tháo gỡ một phần khó khăn, vướng mắc trong quá trình dạy lập trình cho học sinh ở đây.

Mặt khác, sự phát triển mạnh mẽ của ngành tin học và truyền thông đã tác vào nền kinh tế đất nước đặc biệt Việt Nam gia nhập tổ chức thương mại Quốc tế WTO nên bộ giáo dục và đào tạo đã đưa môn tin học vào trường THPT toàn quốc năm học 2006-2007 với tư cách là một môn học chính thống vấn đề đặt ra bộ môn tin học và đặt biệt người đứng trên mục giảng như tôi phải tìm ra phương pháp giảng dạy chương VI chương trình con và lập trình có cấu trúc để

doc 21 trang thuychi01 5775
Bạn đang xem 20 trang mẫu của tài liệu "SKKN Hướng dẫn học sinh lớp 11A1, 11A2 Trường THPT Quan Sơn tiếp cận nhanh Chương trình con và lập trình có cấu trúc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PHẦN I. MỞ ĐẦU
I. Lí do chọn đề tài
Xuất phát từ thực tiễn của việc dạy tin và học môn Tin học hàng ngày trên lớp. Trong quá trình dạy và học đó tôi gặp không ít khó khăn, một trong những khó khăn lớn nhất đó là việc dạy cho học sinh nắm được kiến thức chương trình con và lập trình có cấu trúc. Trước tình hình trên hàng loạt câu hỏi đặt ra trước mắt tôi đó là làm thế nào để khi giảng môn Tin mà học sinh có thể hiểu bài và học tốt. 
Với tư cách là người trực tiếp đứng lớp giảng dạy môn Tin học hàng ngày việc dạy học sinh hiểu rõ về chương trình con và lập trình có cấu trúc không phải là vấn đề đơn giản vì lẽ đó sau một thời gian suy nghĩ, tìm tòi và nghiên cứu tôi đã lựa chọn đề tài “Hướng dẫn học sinh lớp 11A1, 11A2 Trường THPT Quan Sơn tiếp cận nhanh Chương trình con và lập trình có cấu trúc”. Nhằm giúp bản thân tôi tháo gỡ một phần khó khăn, vướng mắc trong quá trình dạy lập trình cho học sinh ở đây.
Mặt khác, sự phát triển mạnh mẽ của ngành tin học và truyền thông đã tác vào nền kinh tế đất nước đặc biệt Việt Nam gia nhập tổ chức thương mại Quốc tế WTO nên bộ giáo dục và đào tạo đã đưa môn tin học vào trường THPT toàn quốc năm học 2006-2007 với tư cách là một môn học chính thống vấn đề đặt ra bộ môn tin học và đặt biệt người đứng trên mục giảng như tôi phải tìm ra phương pháp giảng dạy chương VI chương trình con và lập trình có cấu trúc để nâng cao chất lượng truyền thụ kiến thức và rèn luyện kỹ năng cho người học.
II. Mục đích nghiên cứu
- Theo quan điểm cũ dạy học là truyền thụ những kiến thức, kinh nghiệm, kỹ năng kỷ xảo cho người học, theo quan điểm dạy học tích cực thì dạy học lấy học sinh làm đối tượng trung tâm dù có quan điểm nào đi nữa người giáo viên nên tìm tòi những cách dạy học phù hợp với đối tượng học sinh từng vùng miền khác nhau. Đặc biệt là miền núi cao mà tôi là người trực tiếp giảng dạy, nhiều đêm trăn trở tìm tòi, suy nghĩ làm thế nào? cách nào đưa các em học và tiếp thu tốt chương VI “Chương trình con và lập trình có cấu trúc” trang 90 SGK tin học 11 Nhà xuất bản Giáo dục năm 2007. Để từ đó các em tư duy tốt học tốt các môn học khác.
- Với đề tài này tôi không có ham muốn gì khác ngoài mục đích góp phần vào những người làm công tác giảng dạy môn tin học tháo gỡ những khó khăn vướng mắc trên, đồng thời cũng góp phần nhỏ trong việc cải cách, nâng cao chất lượng giáo dục nói chung và dạy học bộ môn Tin học nói riêng.
 Tôi luôn trăn trở tiếp thu bài của học sinh mình phải nghiên cứu một phương giảng dạy bài học này để làm sáng tỏ được bản chất của vấn đề nghiên cứu đó chính là nhiệm vụ trọng tâm của tôi trong đề tài này. 
III. Đối tượng nghiên cứu
- Như đã đề cập ở trên đề tài nghiên cứu này tôi không có tham vọng gì hơn ngoài việc tháo gỡ những băn khoăn làm thế nào học sinh để học sinh tốt chương VI “Chương trình con và lập trình có cấu trúc”. Vì thế đối tượng nghiên cứu của tôi ở đây là học sinh khối 11cụ thể là học sinh lớp 11A1 và lớp 11A2 trường THPT Quan Sơn làm sao để các em học tốt chương VI này. 
IV. Phương pháp nghiên cứu
Mọi vấn đề, mọi đề tài nghiên cứu thì khâu chuẩn bị và xác định mục đích nghiên cứu bao giờ cũng đóng một vài trò hết sức quan trọng. Ở trong đề tài này điều quan trọng là khâu chuẩn bị và việc chọn phương pháp để kết quả của đề tài là đi đến đích thì cần xác định được một phương phương pháp hiệu quả không lãng phí thời gian cũng như công sức. Như kinh nghiệm cho thấy đề tài có thành công hay không còn phụ thuộc vào phương pháp tiến hành vì lẽ trên trong đề tài nghiên cứu này tôi đã sử dụng một số phương pháp sau:
Phương pháp tiếp cận đối tượng điều tra.
Phương pháp kiểm tra đánh giá học sinh.
Phương pháp tổng hợp và đánh giá kết quả.
Trên đây là một số phương pháp cơ bản mà tôi đã vận dụng trong nghiên cứu và hoàn thiện đề tài.
Phần II: GIẢI QUYẾT VẤN ĐỀ
I. Cơ sở lý luận
1. Khái niệm chương trình con
Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
2. Lợi ích của việc sử dụng chương trình con 
Tránh được việc phải viết đi viết lặp đi lặp lại cùng một dãy lệnh
Hổ trợ việc thực hiện các chương trình lớn
Phục vụ cho quá trình trừu tượng hoá
Mở rộng khả năng ngôn ngữ
Thuận tiện cho phát triển, nâng cấp chương trình
3. Phân loại chương trình con
- Turbo Pascal cho phép xây dưng hai loại chương trình con đó là thủ tục (Procedure) và hàm (Function) trong đó
- Thủ tục là một chương trình con dùng để thực hiện một số thao tác xử lý nào đó để giải quyết một công việc cụ nào đó đã dược phân mảnh.
- Hàm là một chương trình con dùng để xác định một giá trị của đại lượng ra nào đó có kiểu dữ liệu đơn giản (số, kí tự, xâu kí tự, logic). Giá trị của đại lượng ra này được gọi là giá trị trả về của hàm.
4.Cú pháp của thủ tục
a.Một thủ tục được định nghĩa theo cú pháp sau:
PROCEDURE TênThủTục[];
Các định nghĩa và khai báo địa phương;
Bgin
	Các câu lệnh xử lý; {thân của thủ tục}
End;
Trong đó:
TênThủTục: là một định danh do người sử dụng đặt tên theo nguyên tắc đặt tên của Turbo Pascal.
Danh sách tham số hình thức: Là tên của các đối tượng đóng vai trò nhận thông tin vào cho thủ tục hoạt động, tham số hình thức có hai loại: tham biến và tham trị. các tham số hình thức đều được xác định rõ kiểu dữ liệu của chúng và nếu là kiểu dữ liệu của người dùng thì kiểu này phải được định nghĩa trước đó chứ không thể định nghĩa trực tiếp. Nếu là tham biến thì phải có từ khoá Var đứng trước.
Các định nghĩa và khai báo cục bộ: Là các khai báo hằng, kiểu, biến, chương trình con của nó. Các đối tượng được khai báo ở đây chỉ được dùng cho thủ tục này và các chương trình con chứa trong nó.
Các câu lệnh xử lý là hệ thống câu lệnh được cài đặt nhằm thực hiện giải thuật đã thiết kế cho thủ tục.
b. Lời gọi thủ tục
Sau khi thủ tục đã được định nghĩa, muốn sử dụng thủ tục đó thì phải thực hiện lời gọi thủ tục. lời gọi thủ tục được thực hiện như sau:
Nếu thủ tục có tham số hình thức thì lời gọi thủ tục phải có tên thủ tục và các tham số thực tế kèm theo như sau:
.;
TênThủTục[];
;
Nếu thủ tục không có tham số hình thức thì lời gọi thủ tục chỉ có tên thủ tục;
...;
TênThủTục;
;
Nếu định nghĩa thủ tục có bao nhiêu tham số hình thức thì lưòi gọi thủ tục phải có bấy nhiêu tham số thực tế. Các tham số thực tế theo thứ tự sẽ lần lượt thay thế cho các tham số hình thức, các tham số thực tế được phân cách bởi một dấu phẩy.
Tham số thực tế thay thế cho tham số hình nào thì phải có đúng kiểu dữ liệu của tham số hình thức đã khai báo.
Ngoài ra cần chú ý:
Tham số thực tế thay cho tham trị có thể là hằng, biến, biểu thức hay lời gọi hàm (vì đây là các đại lượng có giá trị xác định đóng vai trò nhận thông tin vào cho thủ tục hoạt động).
Tham số thực tế thay cho tham biến bắt buộc phải là biến đã được khai báo trong phạm vi thủ tục có thể sử dụng được (vì chỉ có biến được khai báo ngoài thủ tục mới có thể lưu trữ thông tin ra).
Khi thực hiện lời gọi thủ tục, nếu có truyền biến cho tham biến hoặc tham trị thì trong quá trình xử lý giá trị của biến có thể bị thay đổi. Tuy nhiên khi thủ tục hoạt động xong thì:
Nếu tham số thực tế là biến truyền theo kiểu tham trị thì biến đó sẽ lấy giá trị của nó trước khi truyền cho thủ tục.
Nếu tham số thực tế là biến truyền theo kiểu tham biến thì biến đó sẽ giữ lại giá trị của lần thay đổi sau cùng.
+ Ngoài ra Turbo Pascal cho phép trong thân chương trình các chương trình con có thể có lời gọi đến các chương trình con đã được định nghĩa trước đó.
Ví dụ:
Program Vidu1;
var m,n:word;
Begin
	writeln;
	repeat until keypressed;
end;
PROCEDURE P1(m:word; Var n:word);
Begin
if (m>n) then m:=m-n
else m:=n-m;
n:=2*m;
writeln(‘m=’,m,’n=’,n);
End;
BEGIN
m:=5; n:=8; 	{1}
writeln(‘m=’,m,’n=’,n); {2}
P1(m,n);	{3}
Wait;	{4}
Writeln(‘,m=’,m,’n=’,n);	{5}
Wait;	{6} 
END;
Khi chạy chương trình trên thì kết quả thực hiện của các dòng lệnh được giải thích như sau:
{1} Gán giá trị cho biến m và n, ta được m=5 và n= 8.
{2} Viết giá trị của biến m = 5 và n= 8 ra màn hình.
{3} Thực hiện lời gọi thủ tục P1. Trong thủ tục này có sự thay đổi giá trị của m và n vì m>n có giá trị False nên thực hiện phép gán m:=n-m, tức là m=3, sau đó thực hiện phép gán n:=2*m, tức n=6. cuối cùng viết giá trị của m=3 và n= 6 tại thời điểm này ra màn hình.
Khi kết thúc thủ tục này vì m truyền theo kiểu tham trị và n truyền theo kiểu tham biến nên m lấy lại giá trị ban đầu của nó tức m=5 và n lưu giữ giá trị của lần thay đổi sau cùng, tức n=6.
{4} thực hiện thủ tục Wait.
{5} Viết giá trị của m và n tại thời điểm này ra màn hình, tức m=5 và n=6.
{6} thực hiện thủ tục Wait.
như vậy khi thực hiện chương trình trên sẽ cho kết quả in ra màn hình như sau:
m=5	n=8
m=3	n=6
ấn phím bất kỳ để tiếp tục
m=5	n=6
ấn phím bất kỳ để tiếp tục
5.Biến toàn cục và biến cục bộ
* Biến toàn cục là các biến được khai báo sau từ khoá VAR của chương trình chính.
* Biến cục bộ: là các biến được khai báo sau từ khóa VAR trong các chương trình con.
USES CRT;
VAR 	Khai báo biến toàn cục;
PROCEDURE AAA (danh sách các tham số hình thức);
	Var Khai báo các biến địa phương;
Begin
...................................;
End;
BEGIN
	....................................;
END.
Phạm vi sử dụng của biến địa phương là trong thân của chương trình con khai báo chúng và trong các chương trình con chứa trong chương trình con này. Thời gian tồn tại của chúng là từ khi chương trình con được gọi thực hiện cho đến khi thực hiện xong. Còn phạm vi sử dụng biến toàn cục là trong toàn bộ chương trình (trong chương trình chính và trong tất cả các chương trình con của nó) và thời gian tồn tại của chúng là khi chương trình đang hoạt động.
6.Chú ý
Tên của các tham số hình thức và tên của các biến địa phương trong cùng một chương trình con không được trùng nhau.
Tên của các biến địa phương có thể trùng tên với biến toàn cục. Tuy nhiên khi chương trình con được gọi, nếu có sử dụng biến trùng tên thì trong quá trình chương trình con hoạt động, Turbo Pascal sẽ hiểu đó là biến địa phương, khi đó biến toàn cục tạm thời bị che dấu cho đến khi chương trình con hoạt động xong.
Biến toàn cục có thể tham gia trong các chương trình con, mọi tác động ảnh hưởng đến nó vẫn giống như khi chúng tham gia trong chương trình chính. Ngược lại biến địa phương chỉ tham gia trong chương trình con khai báo chúng, không thể tham gia trong chương trình chính.
Ví dụ 2:
Uses CRT;
 Var a, b, c: Word;
PROCEDURE 	P1(m, n:word);
 Var a:word;
 Begin
	If m>n then a:=m
	Else a:=n;
	Writeln(‘a=’,a,’b=’,b,’c=’,c);
End;
BEGIN
	a:=5; b:=8; c:=10;	{1}
	P1(b,c);	{2}
Writeln(‘a=’,a,’b=’,b,’c=’,c);	{3}
END.
Các bước thực hiện chương trình được giải thích như sau:
{1} Gán giá trị cho các biến toàn cục a, b, c.
{2} Thực hiện lời gọi thủ tục P1 với m=b=8 và n=c=10. Trong thủ tục này có biến địa phương a trùng tên với biến toàn cục. Vì m>n có giá trị False nên phép gán a:=n được thực hiện, tức là a:=10 được thực hiện (chú ý ở đây a là biến địa phương). Sau đó viết ra màn hình giá trị của a biến địa phương và b, c là biến toàn cục.
Như vậy khi thực hiện chương trình trên sẽ cho kết quả in ra màn hình như sau:
a= 10	 b=8	c=10
a=5	 b=8	c=10
Trong đó dòng đầu được viết bởi câu lệnh Writeln trong thủ tục P1 với a là biến địa phương và dòng sau được viết bởi câu lệnh Writeln trong chương trình chính với a là biến toàn cục.
7. Hàm
a. Một hàm được định nghĩa theo cú pháp sau:
FUNCTION 	TênHàm[]:;
Các khai báo địa phương;
	Begin
	Các câu lệnh xử lý {Thân của hàm}
	End;
Trong đó:
- Tên Hàm: là một định danh do người sử dụng đặt theo nguyên tắc đặt tên của Turbo Pascal.
- Danh sách tham số hình thức: giống như đối với thủ tục.
- Kiểu: là kiểu của giá trị trả về của hàm
- Các khai báo địa phương: Giống như đối với thủ tục.
- Các câu lệnh xử lý: Giống như đối với thủ tục. Tuy nhiên đối với thân của hàm bắt buộc phải có câu lệnh gán tên hàm bằng giá trị trả về của hàm, giá trị này có thể dưới dạng một biểu thức có kiểu là kiểu của giá trị trả về của hàm theo cú pháp:
	TênHàm:= Biểu thức;
Trong đó kiểu của biểu thức phải trùng với kiểu của giá trị trả về của hàm.
b. Lời gọi hàm
Khi sử dụng hàm thì phải thực hiện lời gọi hàm. Thực hiện lời gọi hàm là để lấy giá trị trả về của hàm. Vì vậy lời gọi hàm phải được đặt trong một biểu thức có xử lý giá trị của nó. Khi thực hiện lời gọi hàm thì cũng phải truyền tham số thực tế cho nó giống như đối với thủ tục.
Ví dụ:
Uses CRT;
Var m,n,a:Word;
Function SO_NGAU_NHIEN: Word;
Begin
Randomize;
SO_NGAU_NHIEN: = Random(100)+1;
End;
Function 	USCLN(m,n:Word): Word;
	Var a:Word;
BEGIN
	If m>n then a:=n
	Else a:=m;
While (m mod n0) Or (n mod a0) Do a:=a-1;
USCLN:=a;
End;
BEGIN
	M:=SO_NGAU_NHIEN;
	N:=SO_NGAU_NHIEN;
Writeln(‚USCLN của ’‚m,’ và ‚’n,’ là:’,USCLN(m,n))
END.
Chương trình trên gồm có 2 hàm:
Hàm SO_NGAU_NHIEN; có giá trị trả về của hàm là lấy ngẫu nhiên một số nguyên dương bé hơn hoặc 100.
Hàm USCLN(m,n) có giá trị trả về của hàm là ước số chung lớn nhất của hai số nguyên dương m và n.
II.Thực trạng của vấn đề
1.Thực trạng của vấn đề cần nghiên cứu
Theo quan điểm cũ dạy học là truyền thụ những kiến thức, kinh nghiệm, kỹ năng kỷ xảo cho người học, theo quan điểm dạy học tích cực thì dạy học lấy học sinh làm đối tượng trung tâm dù có quan điểm nào đi nữa người giáo viên nên tìm tòi những cách dạy học phù hợp với đối tượng học sinh từng vùng miền khác nhau. Đặc biệt là miền núi cao mà tôi là người trực tiếp giảng dạy, nhiều đêm trăn trở tìm tòi, suy nghĩ làm thế nào? cách nào đưa các em học và tiếp thu tốt chương VI Chương trình con và lập trình có cấu trúc trang 90 SGK tin học 11 Nhà xuất bản Giáo dục năm 2007.
Trong chương này có 2 bài học gồm bài học 17 chương trình con và phân loại và bài 18 các ví dụ về cách viết và sử dụng chương trình con đều là các bài học khó cho học sinh nên tôi quyết định nghiên cứu, tìm tòi phương pháp dạy học để dạy học sinh tiếp thu một cách tốt nhất. Mục tiêu làm sáng tỏ chương trình con cụ thể: câu hỏi về tham số hình thức khi nào là tham số thực sự, tham biến, biến cục bộ, biến toàn cục, giá trị trả về của hàm, cách truyền tham số đi từ bài toán nhỏ đến bài toán tổng quát, từ dễ đến khó thì kết quả tiếp thu bài giảng của học sinh là tăng khi áp dụng đề tài nghiên cứu này.
2.Tình trạng thực tế khi chưa thực hiện đề tài
Trước thực tế học sinh luôn phản ánh với giáo viên rằng bộ môn này khó hiểu và trừu tượng. Khi kiểm tra với mức độ đề tương đương với các ví dụ trong sách giáo khoa, các em vẫn mơ hồ và đạt kết quả chưa cao.
3.Khảo sát thực tế 
Giáo viên ra một bài toán cho học sinh các lớp 11A1, 11A2 của khối 11 Bài toán: 
Kết quả như sau:
Lớp 11A1
Lớp 11A2
Tổng số học sinh
36 HS
42 HS
Cách dạy cũ
Dạy tổng quát
Dạy bài toán tổng quát
Số HS bài toán 
0
5
25
6
0
2
33
7
Xếp loại
giỏi
khá
tb
yếu
giỏi
khá
tb
yếu
Phần trăm
0%
13.8
69.5
16.7
0
4.7
78.5
16.8
4. Mục tiêu của đề tài
 Giúp cho học sinh có cái nhìn trực quan sinh động hơn đối với môn Tin học.
Hiểu được ý nghĩa của chương trình con trong lập trình Pascal và ứng dụng của CNTT vào giải các bài toán thực tế. Giúp hs củng cố tri thức, kỹ năng kỹ xảo và rèn luyện cho học sinh có tư duy khoa học, logic, tác phong sáng tạo, say mê môn học lập trình pascal. 
Với kinh nghiệm nhỏ bé của mình tôi hi vọng có thể góp phần làm cho việc giảng dạy chương trình con trong dạy học lập trình bằng NNLT Pascal của bộ môn Tin học được dễ dàng hơn, giúp các em học sinh trường THPT Quan Sơn nói riêng và học sinh các trường THPT nói chung tiếp thu bài tốt hơn.
Tôi là một giáo viên đứng lớp đã dạy học sinh tiếp thu phần chương trình con và lập trình có cấu trúc, chương này có 2 bài học nhưng nội dung bài học kiến thức rộng, các khái niệm, cú pháp của chương trình con, danh sách tham số hình thức, tham biến, biến cục bộ, biến toàn cục, phân biệt thủ tục và hàm làm cho học sinh khó hiểu. nhiều học sinh hỏi khi nào sử dụng tham số hình thức khi nào không?, khi nào dùng hàm? khi nào dùng thủ tục?.
III.Giải pháp thực hiện
1.Giải pháp 1: 
Nghiên cứu vấn đề danh sách tham số hình thức và khi nào là tham biến.
Bài 1: Viết thủ tục hoán đổi giá trị của hai biến nguyên x, y ta xây dựng thủ tục với x và y đều là tham số giá trị ta có chương trình như sau:
Program Tin_Hoc;
Var a, b:integer;
Procedure Hoan_doi(x,y:Integer);
Var TG: Integer;
	Begin
	TG:=x;
	x:=y;
	y:=TG;
	end;
Begin
	a:=5;	b:=10;	{1}
Writeln(a:6,b:6);	{2}
Hoan_doi(a,b);	{3}
Writeln(a:6, b:6);	{4}
readln;
End.
Kết quả thực hiện chương trình:
{1} đầu tiên gán giá trị của biến toàn cục a=5 và biến toàn cục b=10 
{2} Viết giá trị của hai biến này ra màn hình 
{3}Lời gọi thủ tục Hoan_doi(a,b) lúc này x nhận giá trị a còn y nhận giá trị b qua phép gán TG ở trên, do x, y đều truyền theo tham số giá trị nên khi thực hiện thủ tục giá trị sẽ không thay đổi tức là chương trình in ra là:
5	10
5	10
Bài 2: Viết thủ tục hoán đổi giá trị của hai biến nguyên x, y với x và y là tham số biến.
Program Tin_Hoc;
Var a, b:integer;
Procedure Hoan_doi(var x,y:Integer);
Var TG: Integer;
	Begin
	TG:=x;
	x:=y;
	y:=TG;
	end;
Begin
	a:=5;	b:=10;	{1}
Writeln(a:6,b:6);	{2}
Hoan_doi(a,b);	{3}
Writeln(a:6, b:6);
readln;	{4}
End.
Chú ý: Do cả hai biến đều chứa dữ liệu ra nên cần sử dụng từ khoá Var để khai báo cho cả hai biến tức là x và y là tham biến kiểu nguyên.
Kết quả thực hiện chương trình:
{1} đầu tiên gán giá trị của biến toàn cục a=5 và biến toàn cục b=10
{2} Viết giá trị của hai biến này ra màn hình 
{3}Lời gọi thủ tục Hoan_doi(a,b) lúc này x nhận giá trị a còn y nhận giá trị b qua phép gán TG ở trên, do x, y đều truyền theo tham biến nên khi thực hiện thủ tục giá trị sẽ thay đổi.
Khi thực hiện thủ tục Hoan_doi, biến a sẽ nhận giá trị của biến b và biến b sẽ nhận giá trị của biến a. nếu giá trị của biến a là 5 còn giá trị của biến b là 10 thì trên màn hình có hai dòng:
10
10	 5
Bài 3: Viết thủ tục hoán đổi 2 số nguyên x và y với x là tham số giá trị còn y là tham biến.
Program Tin_Hoc;
Var a, b:integer;
Procedure Hoan_doi(x:Integer;Var y:Integer);
Var TG: Integer;
	Begin
	TG:=x;
	x:=y;
	y:=TG;
	end;
Begin
	a:=5;	b:=10;	{1}
Writeln(a:6,b:6);	{2}
Hoan_doi(a,b);	{3}
Writeln(a:6, b:6);	{4}
readln;
End.
Kết quả thực hiện chương trình:
{1} đầu tiên gán giá trị của biến toàn cục a=5 và biến toàn cục b=10, 
{2} Viết giá trị của hai biến này ra màn hình 
{3}Lời gọi thủ tục Hoan_doi(a,b) lúc này x nhận giá trị a còn y nhận giá trị b qua phép gán TG ở trên, Khi thực hiện thủ tục Hoan_doi do x truyền theo kiểu tham số giá trị còn y truyền theo kiểu tham biến nên khi thực hiện thủ tục kết quả viết ra màn hình là
 10
5
Bài 4: Viết thủ tục hoán đổi 2 số nguyên x và y với x là tham biến còn y là tham số giá trị.
Program Tin_Hoc;
Var a, b:integer;
Procedure Hoan_doi(Var x:Integer;y:Integer);
Var TG: Integer;
	Begin
	TG:=x;
	x:=y;
	y:=TG;
	end;
Begin
	a:=5;	b:=10;	{1}
Writeln(a:6,b:6);	{2}
Hoan_doi(a,b);	{3}
Writeln(a:6, b:6);	{4}
Readln;
End.
Kết quả thực hiện chương trình:
{1} đầu tiên gán giá trị của biến toàn cục a=5 và biến toàn cục b=10, {2} Viết giá trị của hai biến này ra màn hình {3}Lời gọi thủ tục Hoan_doi(a,b) lúc này x nhận giá trị a còn y nhận giá trị b qua phép gán TG ở trên, Khi thực hiện thủ tục Hoan_doi do x truyền theo kiểu tham biến còn y truyền theo kiểu tham số giá trị nên khi thực hiện thủ tục kết quả viết ra màn hình là
5 10
10 10
2.Giải pháp 2: 
Nghiên cứu về hàm và biến cục bộ, biến toàn cục
Bài 5: Viết chương trình tìm USCLN của M, N nguyên dương nhập từ bàn phím, không sử dụng hàm.
+ Chương trình như sau:
Program Uoc_Chung_Lon_Nhat;
Var M,N:Integer;
Begin
Writeln('nhap gia tri M va N nguyen tu Ban phim');
Readln(M,N);
While (MN) Do
If (M>N) then M:=M-N
Else N:=N-M;
Writeln('USCLN=',M);
Readln;
End.
Bài 6: Viết chương trình tìm USCLN của 2 số nguyên dương x, y sử dụng hàm;
Program USCLN_cua_2_SO_Nguyen;
Var x,y:Integer;
Function UCLN(x,y:integer):integer;
var a:integer;
Begin
If x>y 

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

  • docskkn_huong_dan_hoc_sinh_lop_11a1_11a2_truong_thpt_quan_son_t.doc