skkn xây dựng hệ thống bài tập luyện kỹ năng cho học sinh chuyển đổi giưa cấu trúc lặp while- do và for -do - Pdf 18


SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT TRẦN PHÚ


SÁNG KIẾN KINH NGHIỆM
XÂY DỰNG HỆ THỐNG BÀI TẬP LUYỆN KỸ NĂNG
CHO HỌC SINH CHUYỂN ĐỔI GIỮA CẤU TRÚC LẶP
WHILE…DO VÀ FOR DO
Người thực hiện : Vũ Thị Huệ
Chức vụ : Giáo viên
SKKN thuộc môn : Tin học
THANH HOÁ NĂM 2013
2
I. Đặt vấn đề
1. Lý do chọn đề tài
Trong tất cả các ngôn ngữ lập trình đều có cấu trúc vòng lặp hay
còn gọi là chu trình, tuỳ theo điều kiện lặp và yêu cầu sử dụng lệnh mà sử
dụng vòng lặp khác nhau. Tuy nhiên với các em học sinh khi làm bài tập
còn gặp nhiều lúng túng cũng như các vướng mắc khi lựa chọn cấu trúc
lặp, hay chuyển đổi giữa các cấu trúc lặp để mô tả các thuật toán tương
ứng, viết các chương trình thực hiện nhiều lần một hoặc nhiều tác vụ khi
điều kiện còn thoả mãn. Chính vì lý do trên tôi đã mạnh dạn xây dựng hệ
thống bài tập để luyện kỹ năng cho học sinh chuyển đổi giữa cấu trúc lặp
For Do và While…Do.
2. Mục đích nghiên cứu
Để tạo cho học sinh thực hiện hiệu quả giải các bài toán có những
thao tác phải thực hiện lặp đi lặp lại một số lần, luyện cho các em kỹ

luyện kỹ năng cho học sinh biết lựa chọn cấu trúc lặp phù hợp với từng
tình huống cụ thể, viết được câu lệnh lặp mô tả thuật toán tương ứng và có
thể dùng câu lệnh While Do để thay thế cho câu lệnh For…Do và ngược
lại. Với đề tài này tôi hy vọng sẽ giúp cho bản thân thêm vững vàng, hiểu
sâu về ngôn ngữ lập trình Pascal hơn.
2. Thực trạng
- Thực trạng chung: Mặc dù trong những năm gần đây Tin học được đưa
vào giảng dạy ở các trường tiểu học, trung học cơ sở và hầu hết các em
học sinh ở các lớp tôi giảng dạy đều đã được học Tin học ở các cấp dưới
thế nhưng để hiểu về lập trình và áp dụng ngôn ngữ lập trình Pascal để
mô tả thuật toán giải các bài toán đơn giản trên máy tính bây giờ các em
mới thực sự được hiểu, được học kỹ, bài bản đầy đủ hệ thống của một
ngôn ngữ lập trình.
- Thực trạng đối với học sinh: Đa số các em học sinh ở các lớp tôi dạy đều
ở vùng nông thôn, bãi ngang nên điều kiện gia đình chưa có máy vi tính
cho các em thực hành thêm ở nhà, các em tiếp xúc với máy vi tính còn ít.
- Với giáo viên: Một điều thực tế là chất lượng tuyển sinh đầu vào ở các
em học sinh trường tôi đang trực tiếp giảng dạy còn thấp, thua so với các
trường bạn lân cận vì vậy nên việc mô tả thuật toán cho các em hiểu được
các chu trình lặp tôi cần mất nhiều thời gian hơn và việc trình bày đòi hỏi
phải kỹ lưỡng, tỉ mỉ hơn.
- Các em có đầy đủ sách vở cũng như các dụng cụ học tập và một điều
thúc đẩy tôi có thêm nhiều tâm huyết xây dựng đề tài này là ý thức học
tập, xây dựng bài của các em luôn hăng say và sôi nổi.
3. Các biện pháp tiến hành.
Khi tôi hướng dẫn cho học sinh làm bài tập về cấu trúc lặp, câu hỏi
thường đặt ra ở các em là:
- Lựa chọn cấu trúc lặp nào cho phù hợp với bài toán?
- Sử dụng cấu trúc For Do hay While Do sẽ có ưu điểm và
nhược điểm nào?

3.2 Hệ thống bài tập luyện kỹ năng chuyển đổi câu lệnh While Do
thay cho câu lệnh For…Do cà ngược lại.
Bài toán 1: Có thể dùng câu lệnh While…Do thay cho câu lệnh For…Do được
không? Nếu được hãy thực hiện điều đó với chương trình Tong-1a tính và đưa ra
màn hình tổng s =
100
1

2
1
1
11
+
++
+
+
+
+
aaaa
.
( Bài tập 3 trang 51 sgk Tin Học 11)
Đáp án: Khi một bài toán được giải bằng cấu trúc lặp For…Do thì sẽ luôn giải
được bằng cấu trúc lặp While….Do. Tuy nhiên trong một số trường hợp lại
không thể dùng For…Do để thay cho cấu trúc While…Do.
Với bài toán Tong- 1a, phải thực hiện qua 100 bước lặp, mỗi bước lặp
tổng s được cộng thêm một giá trị xác định bởi công thức
na
+
1
. Đây là vòng lặp

Writeln(‘ chuong trinh su dung cau truc lap While Do’);
Writeln(‘ ‘);
Writeln(‘ Hay nhap gia tri cua a =’); readln(a);
S:= 1.0/a;
While (n> 0) and (n <= 100) do
Begin
N:=N+1
S:= s+ 1.0/(a+n);
End;
Writeln(‘ Tong -1a can tinh s= ‘, s:5:2);
Writeln;
Readln
6
End.
Bài toán 2: Viết chương trình tính tổng bình phương của N số nguyên đầu tiên
Để tính tổng của N số nguyên đầu tiên chưa biết trước số lần lặp cụ thể,
số lần lặp phụ thuộc vào giá trị N nhập từ bàn phím.
+ Sử dụng vòng lặp For Do , biến điều khiển i tự động tăng và đi từ 1
đến N, mỗi lần lặp tổng bình phương được cộng thêm một giá trị bằng (i*i)
+ Sử dụng vòng lặp While…Do khi biến điều khiển thoả mãn i<N
-Chương trình thực hiện
Program tongbinhphuong;
Uses crt;
Var
I,n: integer;
S:Real;
Begin
Clrscr;
Writeln(‘ chuong trinh su dung cau truc lap For Do’);
Writeln( ‘ Nhap n = ‘); readln(N);

Bài toán 3: Tính tổng của 5 số nhập vào từ bàn phím
+Tính tổng 5 số được nhập từ bàn phím biết số lần lặp xác định là 5 lần,
sử dụng cấu trúc lặp For Do, biến điều khiển tự động tăng từ 1 đến 5
+ Vòng lặp While Do được thực hiện khi điều kiện được thoả mãn, các
số nhập vào có giá trị khác không và số lần nhập i<=5
+ Chương trình thực hiện
Program tong5so;
Uses crt;
Var
I:integer:
So,tong:real;
Begin
Clrscr;
Write (‘ chuong trinh tinh tong 5 so nhap tu ban phim ‘);
Writeln(‘ chuong trinh su dung cau truc lap For Do ’);
Writeln (‘ ‘);
For i:=1 to 5 do
Begin
Write (‘ Nhap so thu ‘,i:2,’ =) ; Readln(so);
End;
For i:=1 to 5 do
Tong:= tong+ so;
Write (‘ Tong cua 5 so = ‘,tong :3:2);
Writeln;
Readln
End.
Program tong5so;
Uses crt;
Var
I:integer:

n
Tổng y được tính khi thực hiện 50 lần lặp xác định, mỗi lần lặp tổng y
được cộng thêm một giá trị xác đinh bởi công thức
1
+
n
n
+ Sử dụng cấu trúc lặp For…Do, biến điều khiển tự động tăng từ 1 đến 50
+ Sử dụng cấu trúc While Do khi thoả mãn điều kiện N<=50, Nếu N>50
thì thoát khỏi vòng lặp.
+Chương trình thực hiện
Program tinhtong;
Uses crt;
Var
Y:real;
N,i :integer;
Begin
Clrscr;
Writeln( Su dung vong lap For…Do’);
Y:=0;
For N :=1 to 50 do
Y:=y+ N/N+1:
Writeln(‘ Tong can tinh =’, y:5:2);
Writeln;
Readln
End.
Program tinhtong;
Uses crt;
Var
Y:real;

!
1

<
n
Đây là bài toán chưa xác định trước số lần lặp và có điều kiện ràng buộc,
ta sử dụng cầu trúc lặp While Do, tổng e(n) được tính khi thoả mãn điều kiện
6
10.2
!
1

>
n
, mỗi lần lặp e(n) được cộng thêm một giá trị bằng
!
1
n
Tuy nhiên tổng e(n) có thể sử dụng vòng lặp For Do khi không có điều
kiện ràng buộc
6
10.2
!
1

<
n
và giá trị N được nhập vào từ bàn phím để xác định số
lần lặp.
- Chương trình thực hiện:

Begin
Clrscr;
Writeln( ‘ su dung vong lap For…Do ‘);
Writeln( ‘ Nhap N = ); Readln(N);
E(n) :=1;
Gt:=1;
For i:= 1 to N do
Begin
Gt:=gt*i;
E(n) :=E(n) +1/gt;
End;
Writeln( ‘ tong can tinh E(n) = ‘, E(n) :3:2’);
Writeln;
Readln
End.
Bài toán 6: Viết chương trình tìm ước số chung lớn nhất của 2 số
Để tìm ước chung của 2 số bất kỳ nhập vào từ bàn phím, ta thực hiện so
sánh 2 số
+ Khi so1 >so2 thì so1=so1-so2
+ Khi so2 >so1 thì so2=so2-so1
+Thực hiện tiếp tục như vậy cho tới khi nào so1=so2 thì dừng , đó chính
là ước số chung lớn nhất của 2 số.
Như vậy, việc thực hiện chưa xác định trước được số lần lặp, với bài toán
này ta không dùng cấu trúc lặp For Do mà chỉ dùng được cấu trúc While Do
khi 2 số khác nhau. Vòng lặp sẽ kết thúc khi 2 số bằng nhau để đưa ra ước
chung lớn nhất của 2 số.
- Chương trình thực hiện:
Program ucln;
Uses crt;
Var

4. Kiểm nghiệm
Qua việc vận dụng các phương pháp nghiên cứu trên vào công tác giảng
dạy tôi thấy có nhiều kết quả khả quan thông qua các lần kiểm tra và các giờ
thực hành, các em đã biết lựa chọn cấu trúc lặp phù hợp cho mỗi bài toán cụ thể
và có thể chuyển đổi giữa cấu trúc lặp While Do và For Do.Điều đó khiến cho
các em thêm yêu thích môn học hơn, tinh thần học tập luôn tự tin phấn khởi.
Các em đã có thêm nhiều kiến thức bổ ích về ngôn ngữ lập trình Pascal nói riêng
và các ngôn ngữ lập trình nói chung.
12
III. Kết luận và đề xuất.
Để hoạt động dạy cũng như hoạt động học luôn đạt kết quả cao đòi hỏi
người thầy luôn tìm tòi khám phá đổi mới phương pháp của mình, hướng học
sinh tới những phương pháp tích cực nhất để các em giải quyết được những vấn
đề mà chính người thầy đặt ra. Người thầy giúp các em học sinh chỉ ra các sai
lầm các em mắc phải do không hiểu rõ vấn đề, tư duy chưa mạch lạc. Tôi đã xây
dựng hệ thống bài tập luyện kỹ năng cho học sinh chuyển đổi giữa cấu trúc lặp
While Do và For Do xuất phát từ việc giảng dạy trên thực tế. Tuy nhiên vẫn
còn nhiều hạn chế. Tôi mong nhận được sự đóng góp của các quý đồng nghiệp
để đề tài được hoàn thiện hơn.
Qua đây tôi cũng xin có một đề xuất nho nho là giảm tải bớt chương trình
và tăng thêm các giờ bài tập, thực hành. Tôi xin chân thành cảm ơn!
Xác nhận của hiệu trưởng Thanh hoá, ngày 28 tháng 5 năm 2013
Tôi xin cam đoan đây là SKKN của mình viết,
không sao chép nội dung của người khác
Người thực hiện

13

Mục lục
Trang


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