Đây là bài cuối trong sáng kiến kinh nghiệm của Tôi, vì bài 18 ví dụ
về cách viết và sử dụng chương trình con thì Tôi thực hiện như sách giáo
khoa. Bài 19 thư viện chương trình con chuẩn (giảm tải).
A.Mục đích, yêu cầu
Học sinh cần biết:
- Chương trình con thực chất là một khối lệnh (tập các lệnh) nhằm giải
quyết một bài toán con để góp phần giải quyết một bài toán lớn hơn
bằng một chương trình.
- Khi phải viết những chương trình dài, phức tạp, việc sử dụng chương trình con là hết sức cần thiết.
- Sự khác nhau cơ bản giữa hai loại chương trình con thường gặp. - Sự giống và khác nhau về cấu trúc giữa chương trình và chương trình
con.
- Mối quan hệ giữa tham số hình thức và tham số thực sự với chương
trình con và lời gọi chương trình con.
27
B. Nội dung lên lớp
1.Thực trạng của vấn đề
Bài này thực sự khó đối với học sinh và gần 10 năm giảng dạy kết
quả kiểm tra kiến thức bài này rất thấp.
2.Các biện pháp đã tiến hành để giải quyết vấn đề
Bài này Tôi yêu cầu các em nghiên cứu trước khi học, cho nên khi lên lớp Tôi chú ý đến bài tập nhiều hơn để làm sáng tổ ý nghĩa của “chương trình con”.
Tôi lấy ví dụ trong sách giáo khoa:
Tính tổng bốn lũy thừa
Trước khi giải bài toán này, Tôi đưa ra ví dụ:
Tính tổng bốn lũy thừa Tluythua = 225 + 334 + 443 + 552
Rồi giả sử chia cho 4 tổ trong lớp thi đua xem tổ nào tính chính xác và nhanh nhất. Lấy tinh thần xung phong của học sinh để tìm giải pháp
tối ưu. Đa số các lớp các em tìm ra giải pháp là chia việc cho 4 nhóm
bạn trong tổ tính 4 lũy thừa, sau đó một người tổng hợp lại thì sẽ nhanh
nhất.
Từ đó Tôi dẫn dắt các em trong thực tế sử dụng chương trình con là cần thiết, vì một chương trình tin học lớn, phức tạp thì một người không
thể đảm nhiệm hết được, do đó cần thiết phải chia việc cho người khác
cùng cộng tác. Hình thức chia việc chính là chia ra các chương trình con trong lập trình Tin học.
Để giải quyết bài toán trên Tôi đưa ra 2 cách lập trình để học sinh so sánh: Cách 1: Cách 2: Program Tinhtong; uses crt; var Tlt, lt1, lt2, lt3, lt4 : real; a,b,c,d : real; i,n,m,p,q : integer; Program Tinhtong; uses crt; var Tlt : real; a,b,c,d : real; n,m,p,q : integer; Tluythua = am + bn + cp + dq
28 begin
clrscr;
write('Hay nhap du lieu theo thu tu: ');
readln(a,b,c,d,m,n,p,q); lt1:=1;
for i:=1 to m do lt1:=lt1*a; lt2:=1; for i:=1 to n do lt2:=lt2*b; lt3:=1; for i:=1 to p do lt3:=lt3*c; lt4:=1; for i:=1 to q do lt4:=lt4*d; tlt:=lt1+lt2+lt3+lt4;
writeln('Tong luy thua = ',tlt:8:1); readln
end.
function lt(x: real; y:integer): real; var t: real; i: integer;
begin t:=1; for i:=1 to y do t:=t*x; lt:=t; end; begin clrscr;
write('Hay nhap du lieu theo thu tu: ');
readln(a,b,c,d,m,n,p,q);
Tlt:=lt(a,m)+lt(b,n)+lt(c,p)+lt(d,q); writeln('Tong luy thua = ',tlt:8:1); readln
end.
Nhận xét:
- Cách 1: Câu lệnh for – do phải được viết 4 lần để tính 4 lũy thừa
- Cách 2: Câu lệnh for – do chỉ được viết 1 lần để tính 4 lũy thừa, nhưng được gọi thực hiện 4 lần.
- Giả sử bài toán được nâng lên thành tính tổng của 100 lũy thừa thì: + Cách 1: Câu lệnh for – do phải được viết 100 lần để tính 100 lũy
thừa
+ Cách 2: Câu lệnh for – do cũng chỉ được viết 1 lần để tính 100
lũy thừa, nhưng được gọi thực hiện 100 lần.
- Như vậy Chương trình con sẽ có giá trị hơn nhiều nếu chương trình thật sự lớn và phức tạp.
3.Kết quả đạt được
Sau §17, §18 có bài kiểm tra 1 tiết (tiết 45). Đề kiểm tra (điển hình) như sau:
Viết chương trình tính: Tinhtong = Tong+Hieu+Tich+Thuong. Yêu cầu viết các chương trình con để thực hiện các công việc sau:
- Nhập 2 số nguyên x, y - Tong x + y
29 - Hieu x + y
- Tich x * y
- Thuong x/y (nếu đểý được trường hợp y=0 thì đạt điểm tối đa)
Kết quả những năm gần đây: Số học sinh đạt Trung bình trở lên là trên 65%
KẾT QUẢ KHI THỰC HIỆN SÁNG KIẾN KINH NGHIỆM BỘ MÔN TIN HỌC LỚP 11 Năm học 2009-2010 Năm học 2010-2011 Năm học 2011-2012 Năm học 2012-2013 Năm học 2013-2014 Tỷ lệ đạt 85.5% 98.5% 91.6% 93.7% 94.0%
30
PHẦN III: KẾT LUẬN VÀ KIẾN NGHỊ I. KẾT LUẬN
Sau 10 năm kinh nghiệm giảng dạy lập trình Pascal đối với học sinh
lớp 11, Tôi đã từng bước xây dựng được giáo án riêng cho phương pháp dạy
lập trình Pascal để đáp ứng được nhiệm vụ đổi mới phương pháp giảng dạy,
giúp học sinh tiếp cận với những bài toán thực tế với những minh họa trực
quan mang tính giáo dục. Đối với học sinh mới tiếp cận ngôn ngữ Pascal thì việc khó nhất là nắm bắt được các thuật toán, do đó các ví dụ Tôi giảng dạy thường là đơn giản không yêu cầu kiến thức Toán học nhiều.
Những hướng phát triển của đề tài:
Tiếp tục hoàn thiện đề tài bằng cách đưa ra nhiều ví dụ đa dạng, đáp ứng được việc dạy cho nhiều đối tượng học sinh.
II. KIẾN NGHỊ
-Với sáng kiến kinh nghiệm này Tôi hy vọng sẽ giúp cho các đồng
nghiệp cải thiện được rất nhiều chất lượng giảng dạy bộ môn tin học lớp 11. - Sáng kiến kinh nghiệm này là tài liệu nghiên cứu hữu ích cho học sinh
và cũng có thể cho sinh viên ngành sư phạm.
Với tinh thần làm việc nghiêm túc Tôi đã hoàn thành đề tài này. Tuy nhiên không thể tránh khỏi những hạn chế, thiếu sót. Tôi rất mong nhận được
sự đóng góp ý kiến chân thành, quý báu của quý Thầy Cô và các Bạn.
31
TÀI LIỆU THAM KHẢO
1. Hồ Sĩ Đàm (Chủ biên) (1997), Tin học 11 (thí điểm), Nhà xuất bản Giáo
dục.
2. Hồ Sĩ Đàm (Chủ biên) (2007), Tin học 11, Nhà xuất bản Giáo dục.
3. Phạm Quang Huân (2005), “Giải pháp nhằm nâng cao chất lượng giáo
dục”, đăng trên Tạp chí Phát triển Giáo dục – Viện Chiến lược và Chương
trình giáo dục. Số 76, tháng 4/ 2005.
4. Lê Anh Nhật, Một vài phương pháp giảng dạy tích cực,
http://www.tuyenquangonline.net
5. Đỗ Tiến Sỹ, Đổi mới phương pháp dạy học trong tư duy quản lý trường
học, http://www.daihoctructuyen.edu.vn
6. PGS.TS Vũ Hồng Tiến, Một số phương pháp dạy học tích cực,
http://www.dayhocintel.net