Tải bản đầy đủ (.doc) (10 trang)

Rèn luyện kỹ năng sử dụng cấu frúc lặp để xiết chương frinh cho học sinh lớp 7

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (199.24 KB, 10 trang )

SỞ GD&ĐT QUẢNG NAM
TRƯỜNG THPT LÊ QUÝ
ĐÔN

RÈN LUYỆN KỸ NĂNG sử DỤNG
CẤU TRÚC LẶP ĐẺ VIẾT CHƯƠNG
TRÌNH CHO HỌC SINH KHÓI 11


1

PHẦN L ĐẶT VẤN ĐỀ.
Trong thời đại thông tin bùng nổ ngày nay, việc lập được các chương trình tự
hoạt động cho máy tính, máy gia dụng là cần thiết. Và để làm được việc đó cần có
một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình
có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ điều có điểm khởi
đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập
trình bậc cao, nhờ đó các em hình dung được sự ra đời, cấu tạo, hoạt đông cũng như
ích lợi của các chương trình hoạt động trong máy tính, các máy tự động... Qua đó
giúp các em có thêm một định hướng, một niềm đam mê về tin học, về nghề nghiệp
mà các em chọn sau này.
1. Lí do chọn sáng kiến kỉnh nghiệm.
Từ thực tiễn giảng dạy tại trường THPT LÊ QUÝ ĐÔN tôi thấy rằng, để đạt
hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bài giảng cho phù hợp
với nội dung kiến thức; phương pháp, phương tiện dạy học phải phù hợp với từng
đối tượng học sinh. Để qua mỗi phần học, tiết học học sinh thích thú với kiến thức
mới, qua đó hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy được tầm
quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp ứng những


2



yêu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc thực tiển
trong đời sống xã hội (nếu có). Xuất phát từ cơ sở trên, tôi đã chọn đề tài “Rèn
luyện kỹ năng sử dụng cấu frúc lặp để xiết chương frinh cho học sinh lớp 7”
2. Giới hạn của sáng kiến kỉnh nghiệm.
Sử dụng các ví dụ cụ thể trước hết để học sinh nắm được cú pháp, ý nghĩa của
cấu trúc lặp. Và thông qua các ví dụ đó hướng dẫn học sinh biết cách sử dụng câu
lệnh lặp FOR ... DO để giải các bài toán có tính lặp với số lần biết trước.
3. Nhiệm vụ của sáng kiến kỉnh nghiệm .
Đưa ra các ví dụ để học sinh nắm vững và hình thành ở học sinh kỹ năng phân
tích, sử lý các vấn đề liên quan đến vòng lặp có số lần biết trước trong quá trình viết
các chương trình đơn giản.
4. Đối tượng nghiên cứu.
Học sinh khối 11 tại trường THPT LÊ QUÝ ĐÔN .
Sử dụng máy tính để chạy các chương trình về cấu trúc lặp.
5.

Phương pháp nghiên cứu .

- Kết hợp thực tiễn giáo dục ở trường THPT LÊ QUÝ ĐÔN .
- Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal.
PHẦN II .Cơ SỞ LÍ LUẬN.
Khi học sinh học bài học Bài 10. “CẤU TRÚC LẶP” với các ví dụ sách giáo
khoa học sinh rất khó khăn trong việc xác định khi nào thì dùng vòng lặp có số lần
biết trước và cách sử dụng câu lệnh lặp để giải quyết bài toán.
PHẦN III. Cơ SỞ THựC TIỄN:
Đối với học sinh lớp 11 trường THPT Lê Quý Đôn khi học về bài “CẤU
TRÚC LẶP” thì các ví dụ ở sách giáo khoa rất khó để các em hình dung ra thuật
toán để giải bài toán vì vậy dẫn đến các em sẽ không nhìn thấy được việc lặp trong
bài toán và các em sẽ khó hiểu và khó vận dụng được câu lệnh.

PHẦN IV. NỘI DUNG.
Trong bài học này tôi đã đưa ra các bài toán như sau:
Bài toán mở đầu: (Bài toán đơn giản để học sinh nhìn thấy việc lặp và cách
vận dụng câu lệnh for... do... )
Viết chương trình nhập vào từ bàn phím số nguyên dương n và đưa ra màn
hình các số tự nhiên trong phạm vi từ 1 đến n.


3

Giáo viên đặt câu hỏi:
Câu hỏi 1: Để nhập giá trị n từ bàn phím ta viết câu lệnh nào?
Học sinh trả lời: readln(n);
Câu hỏi 2: Để in ra màn hình một giá trị I nào đó ta dùng Câu hỏi lệnh
nào?
Học sinh trả lời: Writeln( I );
Câu hỏi 3: Vậy để đưa ra màn hình các số tử nhiên từ 1 đến n ta sẽ viết bao
nhiêu câu lệnh Writeln?
Học sinh trả lời: n câu lệnh.
- Giáo viên: trong bài toán này ta thấy để in ra được các số trong phạm vi từ 1
đến n câu lệnh writeln sẽ được viết lặp lại n lần, để làm được điều đó trong Pascal
ta sử dụng câu lệnh for... do....
- Giáo viên giới thiệu về câu lệnh for... do...
- Vận dụng câu lệnh viết chương trình bài toán:
Var I,n: byte;

Begin
Write(‘nhap gia tri n:’);
Readln(n);
For i:=l to n do writeln(i);

Readln;
End.
Bài tập vận dụng:
Bài 1 : Viết chương trình tính an với a và n là hai số nguyên được nhập vào
từ bàn phím.
*Hướng dẫn:
An= a*a*.........*a (n lần)
- Ban đầu ta đặt an là lt và gán lt :=1 ;
- Mỗi lần ta sẽ nhân một a vào cho lt : lt :=lt*a ;
- Vậy để tính an thì câu lệnh lt :=lt*a ; sẽ thực hiện lặp lại n lần.
Ta sẽ dùng câu lệnh for ... do như sau để tính an:


4

Lt:=l;
For i:=l to n do lt:=lt*a;
* Chương trình:
Var I,a,n: integer;
Lt:real;
Begin
Write(‘nhap gia tri a va n:’);
Readln(a,n);
Lt:=l;
For i:=l to n do lt:=lt*a;
Writeln(‘ a luy thua n =

lt:4:2);

Readln

End.
Bài 2: Một người có số tiền ban đầu a, đem gởi tiết kiệm theo tháng với lãi
xuất 0.8%/tháng. Hỏi sau một năm người đó nhận được số tiền bao nhiêu?


5

Biết rằng việc gởi tiết kiệm theo tháng thì lãi tháng trước sẽ được cộng vào vốn cho
tháng sau.
* Hướng dẫn:
- Ban đầu với số tiền : a gởi tiết kiệm thì cuối tháng 1 sẽ có số tiền là bao
nhiêu?
Học sinh trả lời: a+a*0.8/100
- Số tiền đầu tháng thứ hai là bao nhiêu?
Học sinh trả lời: a+a*0.8/100
- Vậy ta gán số tiền có được cuối mỗi tháng cho a thì ta có cách tính như
sau:
Đầu tháng 1: a -ỳ cuối tháng 1 :a^=
a+a*0.8/100; I
Đầu tháng 2: a -ỳ cuối tháng 2:a:= a+a*0.8/100;

Đầu tháng 12: a -ỳ cuối tháng 12:a:= a+a*0.8/100;
Vậy việc tính tiền cuối tháng : a:=a+a*0.8/100; được thực hiện lặp lại 12 lần,
để làm việc đó trong chương trình ta dùng câu lệnh for ... do.
* Chương trình:
Var a:real; i:byte;
Begin
Write(‘nhap so tien ban dau a:’);
Readln(a);
For i:=l to 12 do a:= a*0.8/100;

Writeln(‘so tien co duoc sau 1 nam la:’, a:6:2);
Readln;
End.
Bài 3: Viết chương trình nhập vào từ bàn phím hai số nguyên dương m và n
(m* Hướng dẫn:


6

- số chia hết cho 3 là số có tính chất như thế nào?
Học sinh trả lời: số đó mod 3 = 0
- Để kiểm tra một số có là số chia hết cho 3 hay không ta sử dụng câu lệnh
gì?
Học sinh trả lời: câu lệnh IF
- Trong phạm vi từ m đến n ta chưa biết được số nào chia hết cho 3 vì vậy ta
sẽ kiểm tra tất cả các số từ m đến n và việc kiểm tra này thực hiện lặp lại (n- m)+l
lần. Ta sẽ cho một biến I lần lượt nhận giá trị từ m đến n tương ứng với mỗi giá trị
của I ta sẽ kiểm tra I có chia hết cho 3 hay không, nếu I chia hết cho 3 thì cộng I
vào tổng.
- Câu lệnh sẽ viết như thế nào?
Học sinh trả lời: for i:=m to n do if I mod 3 =0 then tong:=tong+I;
- Khởi tạo giá trị ban đầu của tong bằng bao nhiêu?
Học sinh trả lời: tong:=0;
* Chương trình:
Var I,m,n, tong: integer;
Begin
Write(‘nhap gia tri m va n ‘);
Readln(n,m);
Tong:=0;

For i:= m to n do if I mod 3 =0 then tong:=tong+I;
Writeln(‘tong cac so chia het cho 3= tong);
Readln
End.
Bài 4: Viết chương trình giải bài toán cổ sau: Vừa gà vừa chó bó lại cho tròn
36 con và 100 chân chẵn, hỏi có bao nhiêu gà và bao nhiêu chó?
Hướng dẫn:
- Câu hỏi 1 : Giả sử có 1 con gà vậy sẽ có bao nhiêu chó?
Học sinh trả lời: có 35 con chó.
-Vậy để biết được có bao nhiêu chó và bao nhiêu gà ta chỉ cần thử tất cả các


7

trường hợp và tính số chân tương ứng nếu bằng 100 thì thỏa mãn và đưa ra kết quả.
- Câu hỏi 2: Để thử tất cả các trường hợp ta làm thế nào?
Học sinh trả lời: ta sẽ cho gà lần lượt chạy từ 1 đến 35 và tương ứng tính số
chó và kiểm tra số gà *2+số chó*4=100 đúng thì đưa ra kết quả.
- Câu hỏi 2: Hãy viết câu lệnh thể hiện việc đó?
For i:=l to 35 do if i*2+(36-i)*4=100 then writeln(‘so ga=’, I, ‘so cho=’,
36-i);
Chương trình:
Var i:byte;
Begin
For i:=l to 35 do
if i*2+(36-i)*4=100 then writeln(‘so ga=’, I, ‘so cho=’, 36-i);
readln; end.
Bài 5 : Viết chương trình tính у=Хп=1 ——
*Hướng dẫn:
- Để tính được biểu thức y ta có cần đưa dữ lệu vào từ bàn phím không?

Học sinh: không
- Vậy để tính biểu thức y ta làm thế nào?
Học sinh: ta lần lượt cho n nhận giá trị từ 1 đến 50 tương ứng với mỗi giá trị
của n ta cộng biểu thức vào cho y.
n+l

- n đóng vai trò gì trong câu lệnh lặp?
Học sinh: biến đếm.
- Câu lệnh nào sẽ lặp lại ?
Học sinh: y:=y+ n/(n+l) ;
- Giá trị khởi tạo ban đầu cho y là bao nhiêu?
Học sinh: y:=0;
*Chương trình :
Var n :byte ; y:real;
Begin


8

Y:=0;
For n:=l to 50 do y:=y+n/(n+l);
Writeln(‘Gia tri cua bieu thuc y= y:6:2);
Readln
End.
Bài tập làm thêm:
Bài 1: Viết chương trình tính n! với n là số nguyên dương được nhập vào từ
bàn phím.
Bài 2: viết chương trình tính tổng:




1

1

1

a a +1 a + 2

1

 

s-

—+ ^—+ —-—+ ...+ ■

a+ 100

Với a là một số nguyên được nhập vào từ bàn phím.
Bài 3: Viết chương trình đưa ra màn hình các số chẵn trong phạm vi từ 1 đến
n với n là số nguyên được nhập vào từ bàn phím.
PHẦN V. KẾT QUẢ NGHIÊN cứu
Thông qua các ví dụ cụ thể từ dễ đến khó đã giúp học sinh hình thành được
kỹ năng sử dụng câu lệnh for... do... để viết chương trình cho bài toán cụ thể.
Trong quá trình trao đổi, thảo luận, trình bày học sinh được thể hiện khả năng
vận dụng, hiểu biết của mình nên các em tỏ ra hăng hái trong việc giơ tay phát biểu
tranh luận. Đồng thời tiết học trở nên sinh động hơn và giáo viên không đóng vai
trò là người xây dựng lý luận mà học sinh là người chủ động để giải quyết các vấn
đề.

PHẦN VI. KẾT LUẬN VÀ KIẾN NGHỊ
A. KÉT LUẬN:
Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây dựng
các chương trình ứng dụng để phục vụ cho cuộc sống. Nhờ sự phát triển của tin học
trong đó các nhà lập trình chuyên nghiệp đóng vai trò không nhỏ mà hiện nay hầu
hết các lĩnh vực trong xã hội đã ứng dụng được tin học để giải quyết công viêc
nhanh, hiệu quả và chính xác hơn.
Hiện nay, ngôn ngữ lập trình Pascal đã trở thành ngôn ngữ lập trình phổ biến
nhất trên thế giới sử dụng trong lĩnh vực giảng dạy. Trong quá trình giảng dạy các
thầy cô có thể đưa ra các vấn đề như lập trình các game nhỏ...để các em có thể
chứng tỏ được khả năng của mình làm cho học sinh yêu thích môn học, ham học hỏi
và tìm tòi sáng tạo.


9

Đề tài này mang tính thực tiển rất cao cụ thể là: trong tiết học các em học
sinh đã chủ động để tìm tòi lại kiến thức đã học qua đó giải quyết được vấn đề do
giáo viên đặt ra. Trong quá trình giải quyết vấn đề, giáo viên chỉ ra những sai lầm
mà các em học sinh mắc phải do hiểu không rõ vấn đề giúp cho các em hiểu rõ hơn
về câu lệnh.
Kết quả là có rất nhiều em đã dể dàng vận dụng được câu lệnh lặp để giải các
vấn bài toán lặp do giáo viên đặt ra.
B.
KIẾN NGHỊ:
Ngôn ngữ lập trình Pascal được đưa vào chương trình lớp 11, đây là nội dung
khó đòi hỏi các em phải tư duy nhiều mới đưa ra được thuật toán và vận dụng các
câu lệnh để viết chương trình. Khi học đến cấu trúc lặp các em hình dung và đưa ra
được nội dung nào sẽ lặp và số lần lặp thì mới vận dụng được câu lệnh. Để giúp các
em dễ hiểu và vận dụng được câu lệnh tôi xin đưa ra một số giải pháp sau:

1. Bài toán mở đầu là bài toán đơn giản nhưng thể hiện rõ việc lặp, từ đó chỉ
cho học sinh thấy nội dung nào sẽ lặp và trong câu lệnh thì nội dung đó được viết ở
phần nào.
2. Rèn luyện kĩ năng giải các bài tập cho học sinh thông qua một số bài tập
nâng cao hơn để học sinh hiểu và vận dụng thành thạo câu lệnh lặp.
Trên đây là một số ý kiến nhỏ của tôi qua quá trình giảng dạy bài “cấu trúc
lặp” ở lớp 11 THPT. Rất mong nhận được sự góp ý của các thầy cô giáo và các em
học sinh. Xin chân thành cảm ơn.
PHẦN VII. TÀI LIỆU THAM KHẢO
1. HỒ SĨ ĐÀM, Sách giáo khoa Tin học 11, NXB GD, năm 2009.
2. HỒ SĨ ĐÀM, Sách giáo viên Tin học 11, NXB GD, năm 2009.
3. HỒ XUYÊN, HOÀNG Tư ANH TUẤN, Lý thuyết và bài tập ngôn ngữ
lập trình Pascal, NXB GD, năm 2006.
MỤC LỤC
Trang
„111 1 s - —+ ^—+ —-—+ ...+ ■.....................8
B.KIẾN NGHỊ:....................................9



×