SKKN Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp

SKKN Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp

Hiện nay công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh mẽ. Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công nghệ thông tin đòi hỏi người dạy không những có kiến thức vững vàng mà còn phải có cách dạy sáng tạo, phù hợp để tạo hứng thú học tập cho học sinh, giúp các em tiếp thu bài một cách tốt nhất, vận dụng kiến thức để giải quyết các vấn đề trong thực tiễn.

Tin học là một môn học có nội dung rất bổ ích và thiết thực đối với học sinh , không những giúp học sinh rèn luyện tư duy logic mà còn mang tính sáng tạo cao. Tuy nhiên, đây là môn học có tính trừu tượng cao, đặc biệt chương trình Tin học lớp 11 với việc học những kiến thức và kĩ năng về lập trình. Đây là một nội dung tương đối khó đối với học sinh, đòi hỏi các em phải tư duy, suy luận nhiều hơn so với chương trình Tin học 10, 12.

Trong quá trình giảng dạy, đặc biệt là chương trình Tin học lớp 11, tôi nhận thấy học sinh thường gặp khó khăn trong quá trình chuyển từ kiến thức lý thuyết sang việc lập trình một bài toán hoàn chỉnh. Đa số các em đều lúng túng khi xác định thuật toán cho mỗi bài toán trước khi bước vào phần lập trình.

Nhận biết được khó khăn đó của học sinh, tôi đã cố gắng tìm kiếm các phương pháp dạy học nhằm giúp học sinh giải quyết khó khăn trong việc giải các bài tập về dạng lặp. Đó cũng chính là lý do tôi chọn đề tài: “ Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp”

 

doc 18 trang thuychi01 6360
Bạn đang xem tài liệu "SKKN Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC	 	Trang
1. MỞ ĐẦU	1 
1.1. Lí do chọn đề tài	1
1.2. Mục đích nghiên cứu	1
1.3. Đối tượng nghiên cứu	1
1.4. Phương pháp nghiên cứu	1
2. NỘI DUNG	2
2.1. Cơ sở lý luận của vấn đề nghiên cứu	2
2.11.Khái niệm lặp	2
2.12. Các dạng lặp	2
2.13.Cấu trúc một chương trình của bài lập trình	2
2.2. Thực trạng của vấn đề nghiên cứu	3
2.3. Giải pháp thực hiện	3
2.3.1. Bài tập áp dụng	4
2.3.1.1.Dạng 1 câu lệnh For .. Do	4
Bài 1: Tính tổng dãy số	4
Bài 2:	5
Bài 3:	6
Bài 4:	8
Bài tập tự làm	9
2.3.1.2.Dạng 2: Câu lệnh While . Do	9
Bài 7:	9
Bài 8:	 11
Bài 9:	 12
Bài tập tự làm	 13
2.4. Hiệu quả	 13
3. KẾT LUẬN, KIẾN NGHỊ 	 14
TÀI LIỆU THAM KHẢO 	 16
CÁC SÁNG KIẾN KINH NGHIỆM ĐÃ ĐẠT GIẢI	 17	 1. MỞ ĐẦU
1.1. Lý do chọn đề tài.
Hiện nay công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh mẽ. Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công nghệ thông tin đòi hỏi người dạy không những có kiến thức vững vàng mà còn phải có cách dạy sáng tạo, phù hợp để tạo hứng thú học tập cho học sinh, giúp các em tiếp thu bài một cách tốt nhất, vận dụng kiến thức để giải quyết các vấn đề trong thực tiễn.
Tin học là một môn học có nội dung rất bổ ích và thiết thực đối với học sinh , không những giúp học sinh rèn luyện tư duy logic mà còn mang tính sáng tạo cao. Tuy nhiên, đây là môn học có tính trừu tượng cao, đặc biệt chương trình Tin học lớp 11 với việc học những kiến thức và kĩ năng về lập trình. Đây là một nội dung tương đối khó đối với học sinh, đòi hỏi các em phải tư duy, suy luận nhiều hơn so với chương trình Tin học 10, 12. 
Trong quá trình giảng dạy, đặc biệt là chương trình Tin học lớp 11, tôi nhận thấy học sinh thường gặp khó khăn trong quá trình chuyển từ kiến thức lý thuyết sang việc lập trình một bài toán hoàn chỉnh. Đa số các em đều lúng túng khi xác định thuật toán cho mỗi bài toán trước khi bước vào phần lập trình. 
Nhận biết được khó khăn đó của học sinh, tôi đã cố gắng tìm kiếm các phương pháp dạy học nhằm giúp học sinh giải quyết khó khăn trong việc giải các bài tập về dạng lặp. Đó cũng chính là lý do tôi chọn đề tài: “ Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp”
1.2. Mục đích nghiên cứu:
Khi quyết định lựa chọn đề tài này, mục đích nghiên cứu của tôi là giúp học sinh:
- Hiểu bài hơn, nắm vững kiến thức lý thuyết để vận dụng thực hành tốt hơn.
- Hình thành cho học sinh khả năng tự lập trình. 
- Lập trình bài toán theo khối đồng thời trình bày một bài toán khoa học.
1.3. Đối tượng nghiên cứu:
“ Hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng cách tìm công thức lặp”
1.4. Phương pháp nghiên cứu:
Để làm sáng rõ đề tài này, tôi đã sử dụng các phương pháp sau:
- Phương pháp phân tích
- Phương pháp so sánh, đối chiếu
- Phương pháp phân loại
- Phương pháp thống kê
- Phương pháp thực nghiệm, đối chứng
- Phương pháp tổng hợp
2. NỘI DUNG
2.1 Cơ sở lý luận
2.1.1. Khái niệm lặp
Lặp là một cấu trúc hoạt động cho phép lặp lại các dòng lệnh nhiều lần và các dòng lệnh sẽ chạy lần lượt theo thứ tự từ trên xuống dưới.
Nói chung trong một thuật toán có những thao tác lặp phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là có khả năng thực hiện hiệu quả các thao tác lặp.
2.1.2. Các dạng lặp
Cấu trúc lặp mô tả thao tác lặp có hai dạng : lặp với số lần biết trước và lặp với số lần chưa biết trước.	
Cấu trúc lặp với số lần biết trước sử dụng câu lệnh For.do
Cấu trúc lặp với số lần chưa biết trước sử dụng câu lệnh While..do
2.1.3.Cấu trúc một chương trình của một bài lập trình
Trong quá trình giảng dạy của bản thân nhiều năm qua, tôi đã tìm ra cấu trúc này và vận dụng vào các bài dạy. Khi vận dụng cấu trúc này, tôi nhận thấy, học sinh tự hoàn thành một chương trình lập trình hoàn chỉnh. Vì thế, tôi sử dụng cấu trúc này vào việc hướng dẫn học sinh lập trình các bài tập lớp 11.
Phần khai báo
Phần thân
Nhập dữ liệu
Xử lý
Viết kết quả
2.2. Thực trạng của vấn đề nghiên cứu
Từ thực tế giảng dạy tôi nhận thấy, học sinh rất hứng thú khi được học trên máy tính. Hơn nữa, các bài lập trình là những bài toán quen thuộc mà học sinh đã được học trong môn Toán. Vì vậy, học sinh đều muốn tự mình viết một chương trình trên máy tính để giải các bài toán đó.
Tuy nhiên, kỹ năng lập trình của một bộ phận không nhỏ học sinh ở trường phổ thông còn khá yếu .Trong khi đó, thời lượng dành cho một tiết học chỉ có 45 phút ,trong một tiết, giáo viên vừa phải giúp học sinh định hướng ý tưởng lập trình và chuyển đổi ý tưởng đó thành thuật toán rồi mới viết thành một chương trình hoàn chỉnh trên máy. Vì vậy, để có thể giúp các hoàn thành một chương trình là rất khó.
Cấu trúc lặp sẽ được vận dụng rất nhiều trong các bài dạy tiếp theo. Vì thế, nếu học sinh không nắm vững việc sử dụng các câu lệnh thì sẽ khó tiếp thu kiến thức mới. Bên cạnh đó, Tin học không thuộc các môn thi tốt nghiệp, đại học nên phần lớn học sinh ít quan tâm, ít đầu tư về thời gian cũng như công sức. Đây cũng là trở ngai khiến cho kết quả dạy học chưa cao.
2.3. Giải pháp thực hiện
Khi học sinh nắm được cấu trúc câu lệnh, giáo viên đưa ra bài tập cụ thể để áp dụng câu lệnh đó vào lập trình. Tuy nhiên nếu như giáo viên đi sâu vào hướng dẫn thuật toán rồi mới bắt tay vào lập trình thì học sinh sẽ cảm thấy rất khó và như vậy không còn hứng thú nữa. Trong nhiều năm giảng dạy Tôi luôn hướng dẫn học sinh xác định 2 việc:
Công việc 1: Xác định công thức lặp.
Công việc 2: Xác định công thức đó lặp như thế nào.
Khi tìm được 2 việc trên coi như việc lập trình bài toán đạt được 70%. Việc còn lại chỉ là chuyển công thức đó sang câu lệnh và hoàn thành chương trình.
Trường hợp 1: Xác định được số lần lặp của công thức thì quy về dạng lặp biết trước số lần, khi đó ta có thuật toán chính cho mọi bài lập trình sau:
For i:= to Số lần lặp do
Công thức lặp;
Trường hợp 2: Nếu không xác định được số lần lặp cho công thức lặp thì sẽ xác định được điều kiện của bài toán đó và điều kiện đó chính là điều kiện lặp của bài toán, khi đó ta có chương trình tống quát sau:
While do
Công thức lặp;
Chú ý: Về mặt thực tế công thức lặp có thể là một lệnh hoặc nhiều lệnh
2.3.1. Bài tập áp dụng
2.3.1.1. Dạng 1: Câu lệnh For . Do
Bài 1: Tính và đưa kết quả ra màn hình tổng:
Hướng dẫn:
Công viêc 1: Tìm công thức lặp
Khởi tạo:	 
Lần 1:	(Thay giá trị S khởi tạo vào biểu thức).
Lần 2:	(Thay giá trị S ở lần 1 vào biểu thức).
Lần 3:	(Thay giá trị S ở lần 2 vào biểu thức).
..
..
Lần i:	 Ta sẽ có kết quả như sau: 
 Đây chính là công thức lặp của bài toán.	
Công việc 2: Xác định xem công thức trên lặp như thế nào.
GV?. Nhìn vào quá trình phân tích trên ta thấy i có giá trị như thế nào?
HS: Giá trị của như vậy i nhỏ nhất =1 và lớn nhất bằng 100.
GV: Điều đó cho thấy công thức tổng quát trên sẽ được lặp 100 lần.
GV: Như vậy ta quy bài toán này về dạng lặp nào?
Hs: Lặp biết trước số lần
GV: Giá trị bắt đầu và kết thúc là bao nhiêu?
Hs: giá trị bắt đầu là 1 và kết thúc là 100.
GV: Như vậy ta sẽ có đoạn chương trình chính của bài lập trình như sau
	For i:=1 to 100 do
	S:=S+1/(a+i);
Giáo viên hướng dẫn học sinh hoàn thành chương trình dựa vào cấu trúc một chương trình như đã học. Đặc biệt chi ra được đoạn chương trình chính của bài này là vòng lặp For.Do và câu lệnh nằm trong phần xử lý.
Phần khai báo
Program Tinh_tong;
Uses crt;
Var i:byte;
 S,a: real; 
Phần thân
Nhập dữ liệu
Begin
	Write(‘nhap du lieu cho a’);
	Readln(a);
Xử lý
	S:=1/a;
	For i:=1 to 100 do
	S:=S+1/(a+i);
Viết kết quả
	Write(‘Tông = ‘,a:8:2);
Readln
End.
Bài 2: Tính giá trị biểu thức: 
Gv: Ta có thể viết công thức trên như sau:
Công việc 1: Xác định công thức lặp 
Giáo viên gọi 1 học sinh lên xác định, yêu cầu học sinh trình bày từng bước một dưới sự hướng dẫn của giáo viên
Khởi tạo: Y=0;
Lần 1 	
Lần 2 	
Lần 3 	
Lần i 	
Đây chính là công thức lặp
Công việc 2: Xác định xem công thức trên lặp như thế nào?
Dễ dàng nhận ra được công thức trên lặp 50 lần và i có giá trị bắt đầu =1 lớn nhất =50
Giáo viên gọi 1 học sinh lên viết đoạn chương trình cho bài toán này.
For i:=1 to 50 do
	Y:=Y+i/(i+1);
- Giáo viên cho học sinh hoàn thành bài lập trình và kiểm tra kết quả
Phần khai báo
Program Tinh_tong;
Uses crt;
Var i:integer;
 Y: real; 
Phần thân
Nhập dữ liệu
Begin	
Xử lý
	Y:=0;
	For i:=1 to 50 do
	Y:=Y+i/(i+1);
Viết kết quả
	Write(‘Ket qua la:’, Y:8:2);
	End;
Readln
End.
GV: Từ 2 chương trình vừa thực hiện em có nhận xét gì?
HS: Việc quan trọng nhất là tìm ra được đoạn chương trình trong phần xử lý.
Như vậy để có đoạn chương trình trong phần xử lý hoàn toàn có thể làm được thông qua việc đi tìm công thức lặp và số lần lặp cho công thức đó. 
Tôi tiếp tục đưa bài toán với việc tìm công thức lặp phức tạp hơn để học sinh cảm thấy rằng việc làm này áp dụng cho mọi bài lập trình về dạng lặp.
Bài 3: Tính tổng sau:
	(n nhập vào từ bàn phím)
Gv: Với bài toán này việc tính toán đã trở nên phức tạp hơn, tuy nhiên các công việc mà ta xác định ở trên vẫn thực hiện tuần tự như sau:
Công việc 1: Xác định công thức lặp.
GV: Việc khó hơn ở bài này đó là ở mẫu số là phép tính giai thừa nghĩa là ta phải tính mẫu số sau đó sẽ tính tổng.
Khởi tạo S=0; m=1;
Lần 1: 	m = 1! = 1*1= m*1;
Lần 2:	m=2! = 1! *2=m*2
Lần 3:	m=3! =2!*3=m*3;
.
.
Lần i 	
m=m*i
Đây có phải là công thức lặp mà ta đang tìm.
GV: Em có nhận xét gì về công thức lặp trên?
Hs: Có 2 công thức cần phải tính.
Gv: Như vậy khi viết chương trình ta sẽ có 2 câu lệnh tương ứng
Công việc 2: Tìm số lần lặp
GV: Gọi học sinh xác định số lần lặp.
HS: Số lần lặp là: n lần với n nhập vào từ bàn phím.
Giá trị bắt đầu bằng 1 và giá trị cuối là n
GV: Gọi học sinh viết đoạn chương trình chính
For i:=1 to n do
	Begin
	m:=m*i
	S:=S+i/m;
	End;
Gv: Yêu cầu học sinh viết chương trình hoàn chỉnh và chạy chương trình trên máy tính để kiểm tra kết quả.
Phần khai báo
Program Tính;
Uses crt;
Var m,n,i:integer;
 S:real;
Phần thân
Nhập dữ liệu
Begin
	Write(‘Nhap so nguyen n);
	Readln(n);
Xử lý
m:=1;S:=0
for i:=1 to n do
	begin
	m:=m*i;
	S:=S+i/m
	end;
Viết kết quả
Write(‘Tong = ‘,S:8:2);
Readln
End.
Bài 4: Viết chương trình tính tổng của N số tự nhiên với N nhập vào từ bàn phím.
GV: Trước tiên phải cho học sinh hiểu đầu bài:
	Nếu N=8 ta sẽ nhập 8 số tự nhiên bất kỳ và tính tổng các số đó.
Công việc 1: Xác định công thức lặp.
Gv: Với bài tập này các em hình dung giống như mình nhặt bóng vào trong rổ, ban đầu trong rổ chưa có quả bóng nào, nghĩa là số bóng trong rổ bằng 0. Ta cần phải thực hiện n lần nhặt, cứ một lần nhặt được một số quả bóng ta cho vào trong rổ và tính luôn được số bóng trong rổ đó bằng cách lấy số bóng ban đầu cộng với số quả bóng vưa ném vào. Sau n lần nhặt ta đã đếm được số bóng có trong rổ mà không cần phải đếm lại.
Gv: Như vậy việc mỗi lần ta nhặt một số quả bóng cho vào rổ cũng chính là thao tác ta nhập một số vào máy tính. Gọi số đó là “so”
	Sau đó ta tính cộng số bóng trong rổ với số bóng vừa ném vào cũng chính là việc ta cộng luôn số vừa nhập vào với tổng có trước đó. Với giá trị tổng ban đầu =0.
Gv: Quá trình thực hiện 2 việc trên có lặp lại không?
Hs: Được lặp lại nhiều lần.
Gv: Như vậy ta có công thức lặp sau: 
 Nhập một số tự nhiên
Tong ß Tong +So
Công việc 2:Xác định số lần lặp
Gv: Việc tính tổng sẽ được dừng lại khi nào?
Hs: Khi công thức lặp trên được lặp N lần
Học sinh sẽ viết được ngay đoạn chương trình chính.
For i:=1 to n do 
	Begin
	Write(‘nhap so’); readln(so);
	Tong:= Tong+so;
	End;
Học sinh viết chương trình hoàn chỉnh vào máy tính.
Phần khai báo
Program Tong_so;
Uses crt;
Var so,tong:integer; i, n:word;
Phần thân
Nhập dữ liệu
Begin
	Write(‘nhap bao nhieu so: ‘);
	Readln(n);
Xử lý
Tong:=0;
For i:=1 to n do
	Begin
	Write(‘nhap so:’); readln(so);
	Tong:= Tong +so;
	End;
Viết kết quả
Write(‘Tong cua : ‘,n, ‘ So tu nhien la :’,tong:4);
Readln
End.
Bài tập tự làm
Bài 5: Tính tổng (a được nhập vào từ bàn phím)
Bài 6:Viết chương trình tính tổng S=12+22+32+.n2 (n nhập từ bàn phím)
2.3.1.2. Dạng 2: Câu lệnh While ..Do
	Giáo viên khẳng định cho học sinh rằng lệnh While  Do được sử dụng khi ta biết trước điều kiện dừng vòng lặp mà chưa biết rõ số lần lặp của công thức. Như vậy việc quan trọng nhất vẫn là đi tìm công thức lặp.
Bài 7: Tính tổng dãy số 
S= 
 Khi 1.0/(a+n)<0.0001.
Công việc 1: Tìm công thức lặp.
Gv: Em có nhận xét gì giữa bài này với bài 1 mà ta vừa mới làm?
Hs: Dãy số tính tổng ở 2 bài giống nhau.
Gv: Như vậy công thức tính tổng S có giống nhau không?
Hs: Giống nhau 
Gv: Như vậy công thức tính tổng đó cũng chính là công thức lặp.
Gv: Bài toán này khác bài 1 mà ta vừa làm ở trên ở điểm nào?
Hs: Không biết được n tăng bao nhiêu lần?
Gv: Vậy n bắt đầu bằng bao nhiêu?
Hs: n bắt đầu bằng 1
Gv: Mỗi lần công thức được tính thì n tăng như thế nào?
Hs: Tăng 1 đơn vị => n ß n+1;
Gv: Như vậy tại giá trị i bất kỳ nào đó ta phải tính 2 giá trị đó là giá trị của i và giá trị cúa S tại thời điểm n=i
	Như vậy ta sẽ có 2 công thức lặp như sau:
 i ßi+1
Công việc 2: Xác định điều kiện lặp.
Gv: Theo yêu cầu đầu bài tổng của dãy số sẽ không được tính tiếp khi nào?
Hs: Khi 1.0/(a+n)<0.0001;
Vậy trong khi mà 1.0/(a+n)>=0.0001 thì chúng ta sẽ tính tổng dựa vào công thức lặp và tăng giá trị của n cho đến khi 1.0/(a+n)<0.001 đề việc lặp dừng lại.
Ta có đoạn chương trình chính sau:
While 1.0/(a+n)>=0.0001 do
	Begin
	S:=S+1.0/(a+n);
	n:=n+1;
	End;
Gọi học sinh lên viết chương trình với sự hướng dẫn của GV để được chương trình hoàn chỉnh.
Phần khai báo
Program ;
Uses crt;
Var a, S: real; n:word;
Phần thân
Nhập dữ liệu
Begin
	Write(‘nhap gia tri cho a: ‘);
	Readln(a);
Xử lý
S:=1.0/a; n:=1;
While 1.0/(a+n)>=0.0001 do
	Begin
	S:= S+1/(a+n);
	N:=n+1;
	End;
Viết kết quả
	Write(‘Ket qua la:’, S:9:2);
Readln
End.
Bài 8: Viết chương trình nhập vào số thực A và tìm ra số tự nhiên nhỏ nhất N sao cho 
Công việc 1: Xác định công thức lặp.
	Đặt tổng dãy số là S.
Khởi tạo S=0; N=0;
Lần 1: N=1; N=0+1=N+1;
S=1; S=0+1=S+1/N; 
Lần 2: N=2=1+1=N+1; 
Lần 3: N=3 = 2+1=N+1; 
Lần i: N:=N+1; 
Như vậy công thức lặp sẽ là 
 N:=N+1
S:=S+1/N
Công việc 2: Xác định điều kiện lặp.
Gv: N sẽ tiếp tục tăng và tổng S sẽ được tính tiếp khi nào?
Hs: Khi tổng của dãy số trên chưa lớn hơn A cho trước.
Gv: Vậy điệu kiện lặp sẽ là gì?
Hs: Khi S<=A thì còn thực hiện.
GV: Gọi học sinh viết đoạn chương trình chính thông qua việc vừa tìm được công thức lặp và điều kiện lặp.
	While i:=1 to n do
	Begin
	N:=N+1;
	S:=S+1/N;
	End;
Sau đó yêu cầu học sinh trình bày chương trình hoàn chỉnh trên máy tính và yêu cầu chạy chương trình để kiểm tra kết quả
Phần khai báo
Program ;
Uses crt;
Var A, S: real; N:word;
Phần thân
Nhập dữ liệu
Begin
	Write(‘nhap gia tri cho A: ‘);
	Readln(A);
Xử lý
S:=0; n:=0;
While S<=A do
	Begin
	N:=N+1
	S:= S+1/N;
	End;
Viết kết quả
	Write(‘Gia tri N thoa man dieu kien bai toan la:’, N);
Readln
End.
Bài 9: Lập trình bài toán giải bài toán cổ sau:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con
Một trăm chân chẵn
Hỏi có bao nhiêu con mỗi loại
Công việc 1: Xác định công thức lặp
GV: Các em là làm bài toán này trong toán học rồi tuy nhiên các em vẫn chưa biết rằng máy tính có thể làm được.
	Gv: Nếu gọi số gà là a thì số chó bằng bao nhiêu?
	Hs: 36-a	
Gv: Giữa số gà và số chó có sự ràng buộc gì?
Hs: 2*a+4*(36-a)=100.
Gv: Nếu ở mức độ toán học ta chỉ cần giải phương trình bậc nhất, tuy nhiên với việc lập trình cho máy tính thực hiện thì ta nên chọn phương án khác. Mấu chốt ở đây là tốc độ xử lý trong máy tính rất nhanh, do vậy ta chỉ cần thử các trường hợp với a bất kỳ nếu thỏa mãn biểu thức trên thì đưa ra được kết quả. Giá trị bắt đầu của a=1 sau mỗi lần thực hiện thì giá trị của a sẽ tăng thêm 1 cho đến khi thỏa mãn điều kiện. 
Nghĩa là biểu thức 2*a+4*(36-a)=100 thỏa mãn. 
Như vậy việc a tăng thêm 1 là việc được lặp lại nhiều lần.
GV: Vậy công thức lặp của bài này là gì?
Học sinh trả lời: 
 a:=a+1
Công việc 2: Xác định điều kiện lặp
Gv: Khi nào ta không cần tăng a nữa?
Hs: Khi biểu thức 2a+4(36-a) = 100 được thỏa mãn.
Gv: Vậy điều kiện lặp của câu lệnh là gì?
Hs: Trong khi 2a+4(36-a) 100
=> Như vậy ta sẽ có chương trình sau:
Phần khai báo
Program ;
Uses crt;
Var a:byte;
Phần thân
Nhập dữ liệu
Begin
Xử lý
a:=1
While (2*a+4*(36-a) 100) do
	a:=a+1;
Viết kết quả
Write(‘So ga =: ’, a,’ So cho la:’,36-a);
Readln
End.
Bài tập tự làm:
Bài 10: Một người gửi tiết kiệm không kỳ hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hết tiền thì sẽ được số tiền ít nhất là B đồng? Biết rằng việc gửi tiết kiệm không kỳ hạn thì lãi không được cộng vào gốc.
Bài 11: Xây dựng bài toán tính giai thừa của n. Khi n! < 500000.
2.4. Hiệu quả
2.4.1. Đối với bản thân
 Trong năm học vừa qua Tôi đã áp dụng phương pháp này vào việc giảng dạy, Tôi thấy rằng học sinh hứng thú hơn trong việc lập trình. Một số học sinh có thể tự lập trình được các bài toán đơn giản. Các giờ học thực hành học sinh hoàn thành tốt hơn. Khắc phục được các lỗi nhanh hơn. Bài kiểm tra các bài thực hành của học sinh đạt chất lượng cao hơn. Đặc biệt các em nắm bắt các kiến thức trong bài học sau như bài kiểu mảng, bài kiểu xâu tốt hơn. Các em yêu thích môn học hơn. Kết quả được thể hiện ở bảng thống kê sau.
Trước khi vận dụng (Bài kiểm tra cuối học I – năm học 2016 - 2017):
Lớp
Số lượng
Điểm 8 – 10
Điểm 6 – 7
Điểm 5
Điểm dưới 5
SL
%
SL
%
SL
%
SL
%
11A3
43
3
6.9%
22
51.2%
13
30.2%
5
11.7%
11A2
46
3
6.5%
37
80.5%
6
13%
0
0%
Sau khi vận dụng (Bài kiểm tra cuối học kì I - năm học 2017-2018)
Lớp
Số lượng
Điểm 8 – 10
Điểm 6 – 7
Điểm 5
Điểm dưới 5
SL
%
SL
%
SL
%
SL
%
11D3
40
5
12.5%
27
67.5%
8
20%
0
0%
11A1
47
8
17%
36
76.7%
3
6.3%
0
0%
2.4.2. Đối với tổ bộ môn
	Từ kết quả giảng dạy của bản thân, tôi đã mạnh dạn đưa ra trước tổ bộ môn cách dạy của mình và được các đồng nghiệp trong tổ áp dụng trong các giờ dạy của mình và kết quả bài làm của học sinh tăng lên đáng kể.
3. KẾT LUẬN, KIẾN NGHỊ
3.1 Kết luận
Thành tựu của khoa học công nghệ hiên nay đang được ứng dụng rộng rãi trong tất cả các lĩnh vực của đời sống, xã hội. Trong đó, nhà trường là trang bị kiến thức để học sinh sẵn sàng hội nhập với xã hội hiện đạinơi chuẩn bị tâm thế vững vàng cho học sinh bước vào một xã hội tin học hóa. Những kiến thức này sẽ góp một phần không nhỏ vào thành công của trong cuộc sống. Muốn vậy, người dạy phải tạo được hứng thú cho học sinh trong từng tiết học, làm thế nào để giúp học sinh nắm vững kiến thức và vận dụng vào thực tiễn một cách hiệu quả nhất. 
 Trong chương trình dạy Tin học ở bậc THPT, chương trình Tin học lớp 11 là phần kiến thức khó đối với cả người dạy lẫn người học. Từ thực tế giảng dạy của bản thân, tôi đã tìm ra cách hướng dẫn học sinh lập trình các bài tập về cấu trúc lặp bằng việc tìm công thức lặp. Mong muốn của tôi là có thể góp thêm một vài kinh nghiệm nhỏ vào quá trình đổi mới môn học, giúp nâng cao hiệu quả giờ dạy học bài “cấu trúc lặp” nói riêng và chất lượng bộ môn Tin học ở trường THPT nói chung. 
3.2 Kiến nghị
Tuy nhiên, đây chỉ là những kinh nghiệm của riêng bản thân tôi. Vì thế, tôi rất mong nhận được những góp ý chân thành của quý cấp và các bạn đồng nghiệp để tôi có thể hoàn thiện hơn đề tài này.
Tôi xin chân thành cảm ơn!.
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ
Thanh Hóa, ngày 10 tháng 5 năm 2018
CAM KẾT KHÔNG COPY.
Người viết
Nguyễn Thị Huyền
TÀI LIỆU THAM KHẢO
Sách giáo khoa tin học lớp 10 – NXB giáo dục
Sách bài tập tin học lớp 10 – NXB giáo dục
Sách giáo khoa tin học lớp 11 – NXB giáo dục
Sách bài tập tin học 11 – NXB giáo dục
Lập trình và giải thuật - Lê Minh Hoàng – Đại học Sư phạm Hà Nội 1999 - 2002 
DANH MỤC
SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG SÁNG KIẾN KINH NGHIỆM NGÀNH GIÁO DỤC VÀ ĐÀO TẠO HUYỆN, TỈNH VÀ CÁC CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN
Họ và tên: Nguyễn Thị Huyền
Chức vụ: Giáo viê

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

  • docskkn_huong_dan_hoc_sinh_lap_trinh_cac_bai_tap_ve_cau_truc_la.doc