SKKN Hướng dẫn học sinh sử dụng cấu trúc lặp giải các bài toán trong lập trình

SKKN Hướng dẫn học sinh sử dụng cấu trúc lặp giải các bài toán trong lập trình

Với sự phát triển như vũ bão của công nghệ thông tin, kiến thức không còn là tài sản riêng. Học sinh có thể tiếp nhận thông tin từ nhiều kênh, nhiều nguồn khác nhau. Các nguồn thông tin phong phú, đa chiều mà người học có thể tiếp nhận đã đặt giáo dục trước yêu cầu cấp bách là cần phải đổi mới cách dạy và học.

Công nghệ thông tin không chỉ có chức năng cung cấp thông tin mà nó còn là công cụ hỗ trợ tích cực trong dạy và học; là phương tiện dạy học hiện đại, hữu ích và hiệu quả. Công nghệ thông tin giúp cho người học mở rộng sự hiểu biết với tầm nhìn xa, trông rộng qua hệ thống mạng kết nối trong nước và toàn thế giới.

Vấn đề đặt ra với nhà trường là làm thế nào để học sinh tự lực chiếm lĩnh kiến thức, tích cực, chủ động, sáng tạo, có kĩ năng giải quyết những vấn đề nảy sinh trong cuộc sống. Đó thực sự là những thách thức lớn đối với ngành giáo dục nói chung, nhà trường và giáo viên nói riêng. Giáo viên không chỉ là người mang kiến thức đến cho học sinh mà cần dạy cho học sinh cách tìm kiếm, chiếm lĩnh kiến thức để đảm bảo cho việc tự học suốt đời.

Trước vấn đề đặt ra nêu trên tôi mạnh dạn lựa chọn đề tài “Hướng dẫn học sinh sử dụng cấu trúc lặp giải các bài toán trong lập trình”. Thông qua hướng dẫn này các em học sinh sẽ phát huy tốt khả năng tự học, chủ động, sáng tạo trong quá trình học về ngôn ngữ lập trình nói chung, cấu trúc lặp nói riêng.

 

doc 24 trang thuychi01 4850
Bạn đang xem 20 trang mẫu của tài liệu "SKKN Hướng dẫn học sinh sử dụng cấu trúc lặp giải các bài toán trong lập trình", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT YÊN ĐỊNH I
SÁNG KIẾN KINH NGHIỆM
HƯỚNG DẪN HỌC SINH SỬ DỤNG CẤU TRÚC LẶP 
GIẢI CÁC BÀI TOÁN TRONG LẬP TRÌNH
 Người thực hiện: Lê Chí Cường
 Chức vụ: Giáo viên
 SKKN thuộc môn: Tin Học 
THANH HÓA NĂM 2019
MỤC LỤC
I. MỞ ĐẦU
1.1. Lý do chọn đề tài
Với sự phát triển như vũ bão của công nghệ thông tin, kiến thức không còn là tài sản riêng. Học sinh có thể tiếp nhận thông tin từ nhiều kênh, nhiều nguồn khác nhau. Các nguồn thông tin phong phú, đa chiều mà người học có thể tiếp nhận đã đặt giáo dục trước yêu cầu cấp bách là cần phải đổi mới cách dạy và học.
Công nghệ thông tin không chỉ có chức năng cung cấp thông tin mà nó còn là công cụ hỗ trợ tích cực trong dạy và học; là phương tiện dạy học hiện đại, hữu ích và hiệu quả. Công nghệ thông tin giúp cho người học mở rộng sự hiểu biết với tầm nhìn xa, trông rộng qua hệ thống mạng kết nối trong nước và toàn thế giới.
Vấn đề đặt ra với nhà trường là làm thế nào để học sinh tự lực chiếm lĩnh kiến thức, tích cực, chủ động, sáng tạo, có kĩ năng giải quyết những vấn đề nảy sinh trong cuộc sống. Đó thực sự là những thách thức lớn đối với ngành giáo dục nói chung, nhà trường và giáo viên nói riêng. Giáo viên không chỉ là người mang kiến thức đến cho học sinh mà cần dạy cho học sinh cách tìm kiếm, chiếm lĩnh kiến thức để đảm bảo cho việc tự học suốt đời. 
Trước vấn đề đặt ra nêu trên tôi mạnh dạn lựa chọn đề tài “Hướng dẫn học sinh sử dụng cấu trúc lặp giải các bài toán trong lập trình”. Thông qua hướng dẫn này các em học sinh sẽ phát huy tốt khả năng tự học, chủ động, sáng tạo trong quá trình học về ngôn ngữ lập trình nói chung, cấu trúc lặp nói riêng. 
1.2. Mục đích nghiên cứu
Sáng kiến kinh nghiệm của tôi nhằm mục đích:
Nâng cao hiệu quả học tập của học sinh khi học môn Tin học 11;
Giúp học sinh chủ động, tích cực chiếm lĩnh tri thức về cấu trúc lặp.
Giúp học sinh nhanh chóng xác định được công việc lặp trong bài toán.
Giúp học sinh dễ dàng diễn đạt cấu trúc lặp bằng ngôn ngữ lập trình cụ thể
Giúp học sinh không còn e ngại khi học về cấu trúc lặp nói riêng và ngôn ngữ lập trình nói chung, tạo sự ham muốn, hứng thú khi học Tin học.
Rèn luyện khả năng giao tiếp, diễn đạt của học sinh
Nâng cao năng lực chuyên môn, nghiệp vụ sư phạm của người giáo viên.
1.3. Đối tượng và phạm vi nghiên cứu
Chương trình tin học 11;
Học sinh khối 11 năm học 2018-2019 tại trường THPT Yên Định 1
1.4. Phương pháp nghiên cứu
Qua thực tiễn giảng dạy ở trường THPT Yên Định 1; 
Qua việc tham khảo các tài liệu, sách giáo khoa, sách giáo viên, các bài viết và các tư liệu trên mạng internet, đặc biệt là bài viết và các tài liệu về đổi mới phương pháp dạy học môn Tin học; 
Tham khảo các ý kiến của đồng nghiệp, lấy ý kiến từ phía học sinh; 
Vận dụng sáng kiến vào giảng dạy trên lớp, đánh giá, rút kinh nghiệm sau mỗi giờ dạy có vận dụng sáng kiến để có những điều chỉnh phù hợp.
	Trong các tiết dạy giáo viên tiến hành đặt vấn đề, hướng dẫn gợi mở để học sinh tích cực, chủ động phát hiện và giải quyết được vấn đề đặt ra thông qua các câu hỏi, thảo luận, hình ảnh, video minh họa.
1.5. Những điểm mới của SKKN
Sáng kiến kinh nghiệm này đã phân tích tất cả các bài toán về cấu trúc lặp có trong SGK Tin học 11, từ những bài toán ở phần ví dụ đến những bài toán ở phần bài tập. Sau một số bài toán có nhận xét về tình huống lặp trong bài toán đó.
Sáng kiến kinh nghiệm còn có một bài toán điển hình (không có trong SGK) để làm rõ về hai dạng của cấu trúc lặp đó là lặp với số lần lặp đã biết và lặp với số lần lặp chưa biết trước. 
Ngoài việc sử dụng ngôn ngữ lập trình Pascal để diễn đạt, tôi còn dùng ngôn ngữ lập trình C++ (một ngôn ngữ lập phổ biến hiện nay) để diễn đạt, coi đây là tư liệu cho học sinh khá, giỏi và các giáo viên khác cùng tham khảo.
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
- Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào nhà trường phổ thông như những môn khoa học khác bắt đầu từ năm học 2006-2007. 
- Chỉ thị số 55/2008/CT - BGDĐT ngày 30/9/2008 của Bộ trưởng Bộ GDĐT về tăng cường giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong ngành giáo dục giai đoạn 2008-2011.
- Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập. Điều 24.2 của Luật giáo dục đã nêu rõ : “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh”. Như vậy, chúng ta có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận. Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động. 
- Dạy theo định hướng năng lực cho phép cá nhân hóa việc học: Trên cơ sở mô hình năng lực, người học sẽ bổ sung những thiếu hụt của cá nhân để thực hiện nhiệm vụ cụ thể của mình. 
- Dạy theo định hướng năng lực chú trọng vào kết quả đầu ra.
- Dạy theo định hướng năng lực còn có khả năng cho việc xác định một cách rõ ràng những gì cần đạt và những tiêu chuẩn cho việc đo lường kết quả.
+ Sau khi hoàn thành chuyên đề này học sinh có thể tự học, tự rèn luyện và chủ động làm được các bài tập có liên quan đến cấu trúc lặp.
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Qua thực tế giảng dạy ở trường THPT Yên Định 1 trong các năm qua (từ năm 2006 đến nay), tôi nhận thấy khi học đến chương trình Tin học lớp 11 thì đa số học sinh đều kêu khó, khô khan, cứng nhắc. Học sinh thường ngại khi đến tiết Tin học 11.
 Qua những năm dạy Tin học 11 tôi nhận thấy học sinh gặp rất nhiều khó khăn khi học về cấu trúc lặp. Học sinh khó xác định được công việc lặp đi lặp lại nhiều lần trong một bài toán, học sinh gặp khó khăn trong việc diễn đạt cấu trúc lặp vào NNLT cụ thể. 
Tuy nhiên cũng có một số ít học sinh rất yêu thích môn Tin học, thích tìm hiểu những bài toán khó nằm ngoài phạm vi sách giáo khoa. Đây cũng là cơ sở, là nền tảng để cá nhân tôi lựa chọn và ôn luyện đội tuyển HSG Tin học cho trường trong những năm qua.
Cấu trúc lặp là cấu trúc cơ bản, thường gặp và thường dùng. Hầu hết các bài toán trong thực tiễn hàng ngày đều có sự xuất hiện của cấu trúc lặp. Nếu học sinh tiếp thu tốt, nắm vững, khắc sâu kiến thức về cấu trúc lặp sẽ là cơ sở, là nền tảng vững chắc cho việc học tập, tiếp thu những kiến thức tiếp theo, đặc biệt là khi tiếp thu kiến thức về kiểu mảng, kiểu xâu, ...
2.3. Giải pháp sử dụng giải quyết vấn đề
	Dưới đây là hướng dẫn học sinh sử dụng cấu trúc lặp giải một số bài toán trong lập trình.
Bài toán 1: Các em ngồi đây, em nào cũng đã trãi qua bậc tiểu học, em nào cũng đã một thời học bảng cửu chương. Và có em đã từng bị thầy giáo, cô giáo phạt khi không thuộc bảng cửu chương. Có nhiều hình thức mà các thầy giáo, cô giáo phạt các em, dưới đây là 2 hình thức phạt thông dụng nhất:
Cách 1: Giáo viên phạt học sinh về viết lại bảng cửu chương 100 lần.
Cách 2: Giáo viên yêu cầu học sinh về viết đi viết lại bảng cửu chương cho đến khi ghi nhớ thì thôi.
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 1 lên màn hình rồi đọc để học sinh nghe và theo dõi.
- Hỏi: Hãy xác định công việc học sinh phải thực hiện lặp đi lặp lại?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Viết lại bảng cửu chương.
- Hỏi: Hãy cho biết bảng cửu chương được viết lặp đi lặp lại bao nhiều lần trong cách phạt 1 và cách phạt 2?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Trong cách phạt 1 là 100 lần, trong cách phạt 2 là chưa biết.
- Kết luận: Có 2 dạng lặp:
+ Dạng 1: Lặp với số lần lặp đã biết 
+ Dạng 2: Lặp với số lần lặp chưa biết trước.
Để diễn đạt những tình huống được lặp đi lặp lại nhiều lần với số lần lặp biết trước ta dùng câu lệnh FOR.
Để diễn đạt những tình huống được lặp đi lặp lại nhiều lần với số lần lặp chưa biết ta dùng câu lệnh WHILE.
- Tiếp thu đề bài toán 1
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Chú ý lắng nghe giáo viên giảng bài và khắc sâu về hai dạng lặp thông qua bài toán 1.
Tiếp thu kiến thức, ghi nhớ để biết khi nào dùng câu lệnh FOR, khi nào dùng câu lệnh WHILE trong ngôn ngữ lập trình.
Nhận xét: Sau bao nhiêu năm giảng dạy tôi thấy bài toán 1 là bài toán quen thuộc đối với mỗi học sinh, giúp học sinh thấy rõ về hai dạng của cấu trúc lặp.
Bài toán 2 (trang 42 SGK tin 11): Tính tổng 
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 2 lên màn hình máy chiếu rồi đọc cho học sinh nghe và theo dõi.
- Hỏi: Hãy xác định công việc được lặp đi lặp lại trong bài toán trên?
Gợi ý: Ban đầu khởi tạo tổng S bằng 0. Mỗi lần ta chỉ cộng thêm một phần tử vào tổng S. Vậy ta phải cộng bao nhiêu lần?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: 101 lần
Vậy công việc được lặp đi lặp lại của bài toán 2 là gì?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Cộng thêm một phần tử vào tổng S, tức là S:=S+1/(a+i); với i=0, 1, 2, ..., 100.
- Hỏi: Như vậy số lần lặp của bài toán 2 là đã biết. Vậy ta dùng câu lệnh gì để diễn đạt bài toán này?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Lệnh FOR
- Yêu cầu: Hãy viết đoạn chương trình tính tổng S trên.
+ Gọi học sinh lên bảng viết
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác đoạn chương trình
- Tiếp thu bài toán
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Vận dụng kiến thức về câu lệnh FOR để viết đoạn chương trình.
+ Lên bảng viết
+ Nhận xét, bổ sung ý 
+ Tiếp thu đoạn chương trình
Đoạn chương trình diễn đạt bằng Pascal:
S:=0;
for i:=0 to 100 do
S:=S+1/(a+i);
Đoạn chương trình diễn đạt bằng C++:
S=0;
for (i=0; i<=100; i++)
S=S+1/(a+i);
- Giáo viên mở và thực hiện chương trình đã viết trước cho học sinh xem.
- Xem giáo viên thực hiện, củng cố kiến thức.
Bài toán 3 (trang 42 SGK tin 11) : Tính tổng cho đến khi 
Hoạt động của giáo viên
Hoạt động của học sinh
Cũng như bài toán 2, công việc lặp đi lặp lại trong bài toán 3 là: S=S+1/(a+i);
- Hỏi: Số lần lặp đi lặp lại trong bài toán 3 đã biết chưa?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Chưa biết
- Hỏi: Với những bài toán lặp mà số lần lặp chưa biết ta dùng câu lệnh gì?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: WHILE
- Hỏi: Công việc lặp sẽ dừng lại khi nào?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: 
Điều kiện đặt trong câu lệnh WHILE sẽ là phủ định của của điều kiện dừng, tức là .
- Yêu cầu: Từ phân tích trên em hãy viết đoạn chương trình cho bài toán 3.
+ Gọi học sinh lên bảng viết
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác đoạn chương trình
Chú ý theo dõi, tiếp thu kiến thức
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
Lắng nghe, tiếp thu cách tìm điều kiện của câu lệnh WHILE.
- Tiếp nhận yêu cầu, vận dụng kiến thức về câu lệnh WHILE để viết.
+ Lên bảng viết
+ Nhận xét, bổ sung ý 
+ Tiếp thu đoạn chương trình
Đoạn chương trình diễn đạt bằng Pascal:
S:=0; i:=0;
While 1/(a+i)>=0.0001 do
begin
S:=S+1/(a+i);
i:=i+1;
end;
Đoạn chương trình diễn đạt bằng C++:
S=0; i=0;
While (1/(a+i)>=0.0001)
{
S=S+1/(a+i);
i=i+1;
}
Bài toán 4 (Ví dụ 2 trang 45 SGK tin 11): Tính tổng các số chia hết cho 3 hoặc 5 trên đoạn 
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 4 lên màn hình máy chiếu rồi đọc cho học sinh nghe và theo dõi.
- Hỏi: Hãy xác định công việc được lặp đi lặp lại trong bài toán trên?
Gợi ý: Giả sử M=4; N=10. Ta làm như sau:
+ Khởi tạo tổng S:=0;
+ Kiểm tra số 4, thấy rằng số 4 không chia hết cho 3 và cũng không chia hết cho 5 nên bỏ qua.
+ Kiểm tra số 5, thấy rằng số 5 chia hết cho 5 nên cộng số 5 vào tổng S
+ Kiểm tra số 6, thấy rằng số 6 chia hết cho 3 nên cộng 6 vào tổng S.
+ Kiểm tra số 7, thấy rằng số 7 không chia hết cho 3 và cũng không chia hết cho 5 nên bỏ qua.
+ Kiểm tra số 8, thấy rằng số 8 không chia hết cho 3 và cũng không chia hết cho 5 nên bỏ qua.
+ Kiểm tra số 9, thấy rằng số 9 chia hết cho 3 nên cộng 9 vào tổng S.
+ Kiểm tra số 10, thấy rằng 10 chia hết cho 5 nên cộng 10 vào tổng S.
Vậy công việc lặp đi lặp lại là gì?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Kiểm tra một số trên đoạn [M;N] xem số đó có chia hết cho 3 hoặc cho 5 hay không? Nếu có thì cộng vào tổng S.
- Hỏi: Số lần lặp là bao nhiêu lần?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: N-M+1 lần
- Hỏi: Dùng câu lệnh gì để diễn đạt tình huống lặp trong bài toán này?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Lệnh FOR
- Hỏi: Em nào có thể viết đoạn chương trình diễn đạt đoạn tính tổng các số chia hết cho 3 hoặc cho 5 trên đoạn [M; N]?
+ Gọi học sinh lên bảng viết
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác hóa đoạn chương trình 
- Tiếp thu bài toán 4
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
Chú ý lắng nghe, theo dõi để biết cách làm.
Tiếp nhận câu hỏi, tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ viết đoạn chương trình.
+ Lên bảng viết 
+ Nhận xét, bổ sung ý 
+ Tiếp thu đoạn chương trình
Đoạn chương trình diễn đạt bằng Pascal:
S:=0;
For i:=M to N do
if (i mod 3=0) or (i mod 5=0) then
 S:=S+i;
Đoạn chương trình diễn đạt bằng C++:
S=0;
For (i=M; i<=N; i++)
if (i%3==0 || i%5==0)
 S=S+i;
- Giáo viên mở và thực hiện chương trình đã chuẩn bị cho học sinh xem.
- Quan sát chương trình, xem giáo viên thực hiện, củng cố kiến thức.
Bài toán 5 (Ví dụ 2 trang 47 SGK tin 11: Tìm ước chung lớn nhất của hai số nguyên dương M và N.
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 5 lên màn hình máy chiếu rồi đọc cho học sinh nghe và theo dõi.
- Giới thiệu thuật toán tìm UCLN:
Ta nhận thấy rằng UCLN của hai số bằng nhau thì bằng chính nó. Vì vậy khi tìm UCLN của hai số nguyên dương khác nhau ta tìm cách biến đổi về hai số bằng nhau. Cụ thể, ta giữ lại số bé và thay số lớn bằng số lớn trừ số bé. Ví dụ để tìm UCLN của 36 và 54 ta làm như sau: (36;54)=(36,18)=(18;18)=18
Như vậy, công việc được lặp đi lặp lại trong bài toán này là gì?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Thay số lớn bằng số lớn trừ số bé.
- Hỏi: Số lần thay số lớn bằng số lớn trừ số bé là bao nhiêu lần?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Chưa biết
- Hỏi: Dùng câu lệnh nào để diễn đạt bài toán này?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: WHILE
- Hỏi: Điều kiện dừng của bài toán?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Hai số bằng nhau.
- Hỏi: Điều kiện đặt vào câu lệnh WHILE là gì?
+ Gọi học sinh đứng dậy trả lời
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác câu trả lời: Phủ định của điều kiện dừng, tức là hai số khác nhau.
- Hỏi: Từ những phân tích trên em nào có thể viết đoạn chương trình tìm UCLN của 2 số nguyên dương M và N?
+ Gọi học sinh lên bảng viết
+ Lấy ý kiến nhận xét, bổ sung
+ Chính xác đoạn chương trình 
- Tiếp nhận bài toán 5
- Chú ý lắng nghe, theo dõi giáo viên giảng bài để hiểu về thuật toán tìm UCLN của hai số nguyên dương.
Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, tìm câu trả lời
+ Đứng dậy trả lời
+ Nhận xét, bổ sung ý 
+ Tiếp thu câu trả lời
- Tiếp nhận câu hỏi, suy nghĩ viết đoạn chương trình tìm UCLN của 2 số nguyên dương.
+ Lên bảng viết
+ Nhận xét, bổ sung ý 
+ Tiếp thu đoạn chương trình
Đoạn chương trình diễn đạt bằng Pascal:
While MN do
If M>N then
M:=M-N
Else
N:=N-M;
UCLN=M;
Đoạn chương trình diễn đạt bằng C++:
While (M!=N)
If (M>N)
M=M-N;
Else
N=N-M;
UCLN=M;
- Giáo viên mở và thực hiện chương trình đã viết trước cho học sinh xem.
- Quan sát chương trình, xem giáo viên thực hiện, củng cố kiến thức.
Nhận xét: Ta cũng có UCLN của 0 và a bằng a. Vì vậy khi tìm UCLN của hai số nguyên dương khác nhau ta tìm cách biến đổi để một số về 0. Cụ thể ta giữ lại số bé và thay số lớn bằng số dư của số lớn chia cho số bé. Ví dụ để tìm UCLN của 54 và 12 ta làm như sau: (54;12)=(6;12)=(6;0)=0. Khi dùng phép chia lấy dư thì thuật toán tìm UCLN sẽ nhanh cho kết quả hơn.
Bài toán 6 (Câu 5a trang 51 SGK Tin 11) : Tính 
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 6 lên màn hình máy chiếu rồi đọc cho học sinh nghe và theo dõi.
Tổng S có thể được viết như sau:
- Tương tự như bài toán 2, em hãy cho biết:
+ Công việc lặp đi lặp lại trong bài toán này là gì?
+ Số lần lặp đi lặp lại trong bài toán này là bao nhiêu lần?
+ Dùng câu lệnh gì để diễn đạt?
- Gọi học sinh lên bảng viết đoạn chương trình tính tổng S trên.
- Tiếp nhận bài toán 6
Tiếp thu dạng viết khác của tổng S
- Dựa vào bài toán 2 để trả lời các câu hỏi mà giáo viên đưa ra.
- Vận dụng câu lệnh FOR để viết đoạn chương trình tính tổng S.
Đoạn chương trình diễn đạt bằng Pascal:
S:=0;
for i:=1 to 50 do
S:=S+i/(i+1);
Đoạn chương trình diễn đạt bằng C++:
S=0;
for (i=1; i<=50; i++)
S=S+i/(i+1);
- Giáo viên mở và thực hiện chương trình đã chuẩn bị trước cho học sinh quan sát.
- Quan sát chương trình, xem giáo viên thực hiện, củng cố kiến thức.
Bài toán 7 (Câu 5b trang 51 SGK Tin 11) : Tính cho đến khi 
Hoạt động của giáo viên
Hoạt động của học sinh
- Giáo viên chiếu bài toán 7 lên màn hình máy chiếu rồi đọc cho học sinh nghe và theo dõi.
- Tương tự như một số bài toán trên, em hãy cho biết:
+ Công việc lặp đi lặp lại trong bài toán này là gì?
+ Số lần lặp là bao nhiêu lần?
+ Dùng câu lệnh gì để diễn đạt?
+ Điều kiện dừng là gì?
+ Điều kiện đặt trong câu lệnh WHILE là gì?
- Cái khó của bài toán này là làm thế nào để tính n!
Để tính n! ta dùng thêm biến p. 
+ Ban đầu p gán bằng 1.
+ Biến p này sẽ lần lượt lưu giá trị của 1! rồi đến 2! rồi đến 3! ... và cuối cùng là n! 
Ta thấy nếu biến p đang lưu giá trị của (n-1)! thì để tính giá trị của n! ta chỉ cần gán p bằ

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

  • docskkn_huong_dan_hoc_sinh_su_dung_cau_truc_lap_giai_cac_bai_to.doc