Bồi dưỡng học sinh giỏi lớp 8 thông qua việc học câu lệnh lặp for to do trong turbo pasca - Pdf 44

PHẦN I. MỞ ĐẦU
1.1. Lý do chọn đề tài:
Hiện nay, Bộ giáo dục và đào tạo yêu cầu đẩy mạnh ứng
dụng Công nghệ thông tin trong ở tất cả các cấp học, bậc học,
ngành học. Xem Công nghệ thông tin như là một công cụ hỗ trợ
đắc lực nhất cho việc đổi mới phương pháp dạy học. Với mỗi cấp
học các em không chỉ được làm quen với các cách học thông thường, các cuộc
thi quen thuộc như: Thi học kì, thi vượt cấp, thi chọn học sinh giỏi…mà các em
có thể: Học trực tuyến, tham gia các cuộc thi trên mạng Internet… Từ đó giúp
học sinh tự học tích cực, sáng tạo, có cơ hội tiếp xúc nội dung học tập theo nhiều
cách khác nhau.
Trên tinh thần đó hàng năm BCH tỉnh Đoàn đã phối hợp với Sở GD&ĐT
tổ chức hội thi Tin học trẻ cho học sinh ba khối (THPT, THCS và Tiểu học). Với
THCS thông thường hình thức các em dự thi là dự thi cá nhân (Bảng B). Nội
dung hội thi Bảng B như chúng ta đã biết học sinh phải thi hai vòng: Vòng thứ
nhất: Thi trắc nghiệm (thời gian 30 phút) - Kiến thức chung về máy tính, phần
mềm và lập trình. Với những kiến thức này thì các em đã được tiếp thu trên lớp
qua các bài học. Đồng thời các em cũng có thể thu thập thêm những kiến thức
đó qua sách báo, qua các phương tiện thông tin, qua truy cập Internet,… Vì đó
chỉ là những kiến thức thông qua: Đọc, nghe và quan sát….là các em có thể hiểu
và ghi nhớ được. Do vậy, ở vòng thi này đa số các em làm được và đạt điểm khá
cao. Còn vòng thi thứ hai: Thi lập trình (thời gian 120 phút) – Viết chương trình
bằng ngôn ngữ Pascal (Free Pascal). Với phần thi này các em phải lập trình để
giải các bài toán bằng ngôn ngữ lập trình Turbo Pascal. Trong khi đó, những
kiến thức để các em có thể dự thi phần này lại không được học trên lớp do hầu
hết ở trường THCS trong Tỉnh các em học theo chương trình: Học tự chọn cho
học sinh khối lớp 6-7, học nghề cho học sinh khối lớp 8. Vậy để học sinh có thể
tự tin khi thi phần thi thực hành là một giáo viên Tin học tôi phải suy nghĩ và
trăn trở rất nhiều là làm thế nào cho các em phải nắm chắc cú pháp các câu lệnh,
phát huy được tính tích cực, chủ động, tự lực, sáng tạo của học sinh; rèn được kỹ
năng thực hành thành thạo, biết vận dụng kiến thức, kỹ năng vào giải quyết các

quyển 3; Turbo pascal 7.0 của PGS-PTS Bùi Thế Tâm; Lập trình Turbo pascal
7.0 của Hoàng Hồng; Em tập lập trình của Đỗ Trần Hùng ) để xác định những
nội dung kiến thức cần thiết phục vụ cho đề tài.
- Ngoài ra, đề tài cũng sử dụng phương pháp thực nghiệm sư phạm tổng
kết kinh nghiệm của các khóa học trước áp dụng cho khóa học sau.

2


PHẦN II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lý luận của sáng kiến kinh nghiệm
Để đáp ứng nhu cầu của sự phát triển đất nước, nền giáo dục Việt Nam
phải thực hiện một sự đổi mới sâu sắc và toàn diện về nội dung lẫn phương
pháp dạy học như tinh thần của Nghị quyết TW2 - khóa VIII của Đảng Cộng
Sản Việt Nam đã nêu: “Đổi mới mạnh mẽ phương pháp giáo dục - đào tạo, khắc
phục lối truyền thụ một chiều, rèn luyện thành nếp tư duy sáng tạo của người
học, từng bước áp dụng các phương pháp tiên tiến và phương tiện hiện đại vào
quá trình dạy học, đảm bảo điều kiện thời gian tự học, tự nghiên cứu cho học
sinh”. Vì vậy, tôi chọn đề tài: “Bồi dưỡng học sinh giỏi lớp 8 thông qua việc
học câu lệnh For…to…do trong Turbo Pascal” với mong muốn đóng góp
một phần nhỏ vào việc nâng cao hiệu quả bồi dưỡng đội tuyển dự thi Tin học trẻ
cấp Tỉnh.
Lệnh lặp For…to…do là một dạng lệnh rất khó đối với học sinh ở bậc trung
học cơ sở, khi học các em cảm thấy ngại học, học cảm thấy nhàm chán, khó hình
dung, không biết cách vận dụng vào để giải các bài toán. Trong khi đó, lệnh lặp
for…to…do là lệnh mà hầu hết bài toán nào trong thi học sinh giỏi Tin học trẻ
đều sử dụng đến. Nên khi dạy các em đến lệnh lặp này tôi thiết nghĩ để các em
có thể vận dụng lệnh này một cách thuần thục, linh hoạt thì trước hết các em cần
phải nắm chắc cú pháp, hiểu rõ cách thực hiện của lệnh, được làm quen với
nhiều dạng bài tập liên quan đến lệnh For…to…do thì từ đó các em mới biết vận

Quốc gia tôi phải trăn trở, học hỏi và nghiên cứu rất nhiều. Cụ thể: Đổi mới
phương pháp dạy học khi học sinh học lệnh lặp For là:
Giải pháp 1: Cung cấp cho HS những kiến thức cơ bản của vòng lặp
For...to...do:
- Mô tả lệnh lặp For...to...do.
- Cú pháp và cách thực hiện của vòng lặp For, các ví dụ minh họa khi sử
dụng vòng lặp For...to...do .
Giải pháp 2: Rèn luyện cho học sinh khả năng tư duy, sáng tạo và phân tích
thuật toán (hướng dẫn học sinh cách giải các bài tập như Toán học bằng cách
nói và viết. Từ đó yêu cầu học sinh đưa ra thuật toán ứng với mỗi bài tập), kĩ
năng giải bài tập trên máy tính.
Giải pháp3: Phân dạng bài tập và phương pháp giải
- Với mỗi bài tập sau khi đã đưa ra thuật toán. Yêu cầu học sinh áp dụng
ngôn ngữ lập trình vào giải bài tập và thực hành ngay trên máy. Trong quá trình
thực hành nếu gặp lỗi thì học sinh phải tự sửa các lỗi đó, trường hợp sửa lỗi
không được có thể nhờ bạn hoặc cô giáo giúp. Khi chương trình chạy hoàn
chỉnh tôi yêu cầu các em ghi các bài tập đã chạy được trên máy ra một quyển vở
riêng nhằm giúp các em khắc sâu thêm thuật toán cũng như cách viết chương
trình.
- Với mỗi dạng bài tập tôi ra nhiều bài tập tương tự, bài tập nâng cao để
giao bài về nhà cho học sinh.
- Sau mỗi bài tập thực hành tôi đều nhận xét, củng cố và phát triển bài toán
để có bài toán mới. Như vậy học sinh sẽ có tư duy linh hoạt và sáng tạo.
Giải pháp 4: Cho HS tiếp cận với đề thi học sinh giỏi cấp Tỉnh qua các năm
- Phân dạng bài tập qua các đề thi.
- Cho học sinh làm các bài tập của các đề thi những năm trước để các em tập
làm quen và không còn bỡ ngỡ khi thi. Với mỗi bài tập tôi chấm điểm cho học
sinh sau khi học sinh hoàn thành việc chạy chương trình trên máy và chỉ ra sai
lầm cũng như nguyên nhân dẫn đến sai lầm đó (nếu có) -> biện pháp khắc phục
để học sinh nắm chắc từng phần kiến thức và làm chặt chẽ từng dạng bài tập.

<biến> được tự động tăng một giá trị: biến:=Succ(biến) và trở lại bước 2.
Sơ đồ khối của lệnh:
Biến=Biểu thức 1
Biến
4

S=1+ + ... +

1
n

S:=S+1/i;

(với n là số tự nhiên)

Hướng dẫn:
- Nhập n;
- Khởi tạo S:=1;
- Dùng vòng For i:=1 to n do
Bài 3: Tính:

1
3

1
5

S=1+ + ... +

1
n

S:=S+1/(2*i);



n =100

2

+

105

∑n

2

n = 97

Hướng dẫn:
- Nhập n;
- Khởi tạo các tổng: S:=0; S1:=0; S2:=0; S3:=0;
- Dùng 3 vòng For để tính tổng S:
For n:=1 to 8 do
S1:=S1+n*n;
For n:=100 to 108 do
S2:=S2+n*n;
For n:=97 to 105 do
S3:=S3+n*n;
S:=S1+S2+S3;
6


Dạng 2: Tích trong biểu thức

F=an  F=a.a…a (n số a)
- Nhập a, n;
Khởi tạo F:=1;
- Dùng vòng For i:=1 to n do F:=F*a;
2.
T=a(a+1)…(a+n-1)
- Nhập a, n;
Khởi tạo T:=1;
- Dùng vòng For i:=1 to n do T:=T*(a+i-1);
3.
G=a(a-n)(a-2n)(a-3n)…(a-nn)
- Nhập a, n;
Khởi tạo G:=a;
- Dùng vòng For i:=1 to n do G:=G*(a-i*n);
Bài 2: Cho số tự nhiên n. Tính:
T= (1 +

1
1
1
)(1 + 2 )...(1 + 2 )
2
1
2
n

Bài 3: Cho số thực a, số tự nhiên n. Hãy tính:
a)

1

- Tính giai thừa: Như ta biết:
1!=1
2!=1!*2
3!=2!*3
4!=3!*4
………
n!=(n-1)!*n
Vậy để tính S ta dùng vòng lặp For:
For i:=2 to n do
Begin
gt:=gt*i;
S:=S+gt;
End;
Chương trình
Program
Giai_thua;
Var
i, n, S, gt: Integer;
Begin
Write(‘Moi ban nhap n=’);
Readln(n);
S:=1;
gt:=1;
For i:=2 to n do
Begin
gt:=gt*i;
S:=S+gt;
End;
Writeln(‘Tong tren la:’,S:3);
Readln;

8


Hướng dẫn:
- Nhập n; nhập a;
- Khởi tạo: H:=1; T:=1; M:=1;
{T: là biến tử của phân số, M là biến mẫu của phân số}
- Để tính H ta dùng vòng lặp For:
For i:=1 to n do
Begin
T:=T*a;
M:=M*i;
H:=H+T/M;
End;
Dạng 4: Tính biểu thức có n dấu căn
VD4: Cho số tự nhiên n. Hãy tính:
B= 2 + 2 + .... + 2
(n lần dấu căn)
Thuật toán:
- Nhập n (số lượng dấu căn); Khởi tạo giá trị B:=0;
- Tính B: Ta biết:
Khi n=1:
B:=sqtr(2)
Khi n=2:
B:=sqrt(2+ sqtr(2))
hay B:=sqrt(2+B)
Khi n=3:
B:= sqrt(2+ sqtr(2+ sqrt(2))) hay B:=sqrt(2+B)
………………………….
Chương trình:

VD4: Cho số tự nhiên n và các số thực a1, a2, …,an. Hãy tính:
S=a1+a2+…+an
Thuật toán:
- Nhập n; khởi tạo tổng S:=0;
- Dùng vòng lặp For để nhập các giá trị của a, nhập đến đâu tính tổng đến đó.
Chương trình:
Program
tinh;
Varn, i: Integer;
a, S: Real;
Begin
Write(‘Nhap so lượng các số thực n=’);
Readln(n);
S:=0;
For i:=1 to n do
Begin
Write(‘Nhap gia tri cua a=’); Readln(a);
S:=S+a;
End;
Writeln(‘Tong tren la:’,S:3:2);
Readln;
End.
Bài tập:
Bài 1: Cho số tự nhiên n và các số thực a1, a2, …,an. Hãy tính:
a. T= a1.a2…an
2
2
2
b. F = a1 + a 2 + ... + an
c. H=(a1+a2+…+an)2

biến dấu), khi đó khởi tạo d:=1;
- Dùng vòng lặp For để nhập các giá trị của a, nhập đến đâu tính tổng đến
đó và đổi dấu cho biến d.
- Thông báo kết quả S.
Chương trình:
Program
tinh;
Varn, I,d: Integer;
a, S: Real;
Begin
Write(‘Nhap so lượng các số thực n=’);
Readln(n);
S:=0;
d:=1;
For i:=1 to n do
Begin
Write(‘Nhap gia tri cua a’,i,’=’);
Readln(a);
S:=S+d*a;
d:=-d;
End;
Writeln(‘Tong tren la:’,S:3:1);
Readln;
End.
Bài tập:
Bài 1: Nhập số thực x. Hãy tính:
x3 x5
x 2k +1
k
S =x−

S=−

(−1) n+1 .a n
a1 a 2
+
− .... +
1! 2!
n!

2.3.2.3. Các bài tập nâng cao và các bài tập trong các đề thi Tin hoc trẻ cấp
Tỉnh những năm trước:
Bài 1: Nhập vào 1 số. Xác định xem số đó có phải số nguyên tố hay không?
Thuật toán:
Số nguyên tố là số tự nhiên lớn hơn 1 chỉ có hai ước là 1 và chính nó. Giả sử
số vừa nhập vào là n, ta cho i chạy từ 2 đến n-1, nếu n chia hết cho i trong bất cứ
lần lặp nào thì có nghĩa là n không nguyên tố, nếu không chia hết cho bất cứ lần
lặp nào là nguyên tố. Về nguyên tắc là như vậy, nhưng người ta đã chứng minh
được rằng chỉ cần xét từ 1 đến phần nguyên căn bậc 2 của n. Như thế thuật toán
sẽ tối ưu hơn.
Cụ thể:
- Nếu n không chia hết mọi số i có giá trị từ 2 đến n - 1 thì n là số nguyên tố.
- Sử dụng biến bl có kiểu boolean và có giá trị ban đầu là true.
- Cho biến i chạy từ 2 đến phần nguyên căn bậc 2 của n. Xét n mod i. Nếu
bằng 0 thì gán bl = false. Ngược lại vẫn để nguyên bl.
Chương trình:
Program
kiem_tra_nguyen_to;
Var n,i:integer; bl:boolean;
Begin
bl:=true;

Nguyen_to;
Var n, i, j, d: integer;
bl: boolean;
Begin
Write('Nhap n= '); readln(n);
bt:=true;
d:=0; {biến đếm số lượng số nguyên tố trong nằm trong khoảng từ 1đến n}
if n
Do tổng số chân là 100 nên ta có phương trình: 2g + 4(36-g) = 100
=> Giải phương trình trên : 2g + 4(36-g) = 100 => g = 22.
Chương trình:
Program
Ga_cho;
Var g,c: integer;
Begin
for g:=1 to 50 do
{Do tổng số chân 100 ->Số gà tối đa là 50 con)
begin
c:=36-g;
if 2*g+4*c=100 then write('So ga: ',g,', So cho: ',c);
end;
readln;
End.
B2: Viết chương trình giải bài toán 100 trâu 100 bó cỏ, 1 trâu đứng ăn 5 bó
cỏ, 1 trâu nằm ăn 3 bó cỏ, 3 trâu già ăn 1 bó. Hỏi mỗi loại có mấy con?
Chương trình:
Uses crt;
Var td, tn, d: byte; {td là số trâu đứng, tn là số trâu nằm}
Begin {Do có 100 bó cỏ mà 1 trâu đứng ăn 5 bó ->Số trâu đứng tối đa là 20 con)
{ 1 trâu nằm ăn 3 bó -> Số trâu nằm tối đa là 33 con}
14


Clrscr; d:=0;
Writeln(‘
So trau đung
So trau nam
For td:=0 to 20 do

Var n, i, S: integer;
Begin
write('nhap so n: ');
readln(n);
S:=0;
for i:= 1 to n-1 do
if n mod i = 0 then S:=S+i;
if S=n then write(n, ' la so hoan chinh')
else writeln(n, ' khong phai la so hoan chinh');
readln;
End.
* Với dạng bài tập này có thể ra thêm cho HS bài tập nâng cao hơn như:
(Bài 1-Đề thi tin hoc trẻ tỉnh năm 2004): Viết chương trình tìm các số hoàn
chỉnh nhỏ hơn n (Với n được nhập từ bàn phím).
Thuật toán:
- Tương tự bài 4.
- Cho biến i chạy từ 1 đến n. Xét i. Nếu nó là số hoàn chỉnh thì in ra.
15


Chương trình:
Program Tim_cac_so_hoan_chinh;
uses crt;
Var S, n, i,j: longint;
Begin
clrscr;
Write('Nhap so n ='); readln(n);
Writeln('Cac so hoan chinh nho hon ',n,' la:');
For i:=1 to n-1 do
Begin

end;
Writeln(‘Do day cua số tự nhiên la:’,day);
Writeln(‘Do cao cua số tự nhiên la:’, S); readln;
End.
16


Bài 7: Vẽ hình chữ nhật (Bài 1 - Đề thi tin học trẻ năm 2015)
Viết chương trình vẽ hình chữ nhật rỗng dấu * với các cạnh (0
*
**
***
****
*****
a)

*****
****
***
**
*
b)

*
***
*****
*******
*********
c)

*
**
***
****
*****
d)

Bài 8: Dãy số Fibonaci :
In ra màn hình dãy số Fibonaci với n số nhập từ bàn phím. Biết dãy số

dương n (2
Còn với đồng nghiệp tôi tin rằng khi các bạn áp dụng phương pháp này vào
dạy lệnh For…to…do thì các bạn không phải mất nhiều thời gian dạy cho các
em từ những kiến thức cơ bản nữa. Mà qua kinh nghiệm này các bạn còn khắc
sâu được kiến thức cho các em thông qua các bài tập nâng cao và luyện cho các
em cách làm bài thi thực hành trên máy. Từ đó nâng cao được chất lượng học
sinh giỏi các cấp cho nhà trường.
PHẦN III. KẾT LUẬN VÀ KIẾN NGHỊ
3.1. Kết luận:
Trong những năm được phân công bồi dưỡng đội tuyển học sinh dự thi
Tin học trẻ cấp Tỉnh tôi đã áp dụng kinh nghiệm trên vào giảng dạy cho học sinh
thì thấy rằng phần nào đã nâng cao được chất lượng học sinh giỏi cấp Tỉnh, cấp
Quốc gia. Cụ thể về kết quả thi Tin học trẻ các cấp trong những năm tôi bồi
dưỡng như sau:
Số giải cấp tỉnh
Số HS đạt
Giải
giải/Số HS
Năm học Giải Giải Giải Giải
Ghi chú
Quốc gia
dự thi
nhất nhì
ba KK
2005-2006

01

2007-2008

01


04/05

2010-2011

01

2011-2012

01

(Ôn đội tuyển
cho Huyện)

01 Giải ba
Tin học trẻ

Cả tỉnh chỉ có
01 giải nhì

01/01
01/01
20


2012-2013

01

01

mình không sao chép nội dung của người khác.

Xác nhận của thủ trưởng đơn vị

Thị Trấn, ngày 20 tháng 02 năm 2016
Người làm sáng kiến
Nguyễn Thị Tâm

21


MỤC LỤC
PHẦN I. MỞ ĐẦU
1.1. Lý do chọn đề tài
1.2. Mục đích nghiên cứu
1.3. Đối tượng nghiên cứu
1.4. Phương pháp nghiên cứu
PHẦN II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lý luận của sáng kiến kinh nghiệm
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
2.3. Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để giải quyết
vấn đề
2.3.1. Các giải pháp
2.3.2. Các biện pháp tổ chức thực hiện giải pháp
2.3.2.1. Lệnh For…to…do
2.3.2.2. Các dạng bài tập
2.3.2.3. Các bài tập nâng cao và các bài tập trong các đề thi Tin học cấp
Tỉnh những năm trước
2.3.2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục,
với bạn thân, đồng nghiệp và nhà trường


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status