Soạn tin học 8 - Bài thực hành 5: Sử dụng lệnh lặp FOR...DO

Thứ bảy - 12/10/2019 09:31
Hướng dẫn soạn chi tiết Tin học 8, Bài thực hành 5: Sử dụng lệnh lặp FOR...DO, Hướng dẫn trả lời câu hỏi và bài tập trong bài học
Bài thực hành 5: Sử dụng lệnh lặp FOR...DO
Thời lượng: 3 tiết
1. Mục đích, yêu cầu
- Viết được chương trình có sử dụng lệnh lặp for...do;
- Sử dụng được câu lệnh ghép;
- Rèn luyện kĩ năng đọc hiểu chương trình có sử dụng lệnh lặp for...do.

2. Những điểm cần lưu ý và gợi ý dạy học
a)Với bài 1 của bài thực hành này, GV nên lưu ý HS tìm hiểu câu lệnh:
for i:=1 to 10 do writeln(N,' x ',i:2,' = ',N*i:3);

Đồng thời cần giúp HS nhận thấy được sự thay đổi của biến đếm i và các tham số của câu lệnh write để viết ra bảng nhân. Các tham số :2, :3 chỉ có ý nghĩa trong việc quy định quy cách trình bày bảng nhân trên màn hình, lưu ý HS không cần quan tâm đến quy cách trình bày, chỉ cần quan tâm đến sự thay đổi của biến đếm i, thông tin được lệnh writeln viết ra màn hình.
Có thể cho HS thảo luận theo nhóm để hoàn thành một bảng tiến trình thực hiện của câu lệnh trên như sau:
Giả sử với N = 3:
Bước i i  10? writeln(N, 'x' , i ,' = ', N*i)
1 1 Đúng 3x1 = 3
2 2 Đúng 3x2 = 6
3 3 Đúng 3x3 = 9
4 4 Đúng 3x4 = 12
5 5 Đúng 3x5 = 15
6 6 Đúng 3x6 = 18
7 7 Đúng 3x7 = 21
8 8 Đúng 3x8 = 24
9 9 Đúng 3x9 = 27
10 10 Đúng 3x10 = 30
11 11 Sai Không thực hiện lệnh writeln. Kết thúc vòng lặp

b) Bài 2 cung cấp cho HS một câu lệnh mới là thủ tục đưa con trỏ tới một vị trí mong muốn trên màn hình (màn hình soạn thảo văn bản) GotoXY. Giới thiệu cùng với thủ tục GotoXY là các hàm lấy vị trí cột WhereX, vị trí hàng WhereY hiện thời của con trỏ. Việc giới thiệu thủ tục này nhằm cung cấp cho HS một công cụ để trình bày trên màn hình. Hơn thế nữa, việc giới thiệu hàm, thủ tục ở đây còn nhằm mục đích hướng dẫn HS tìm hiểu về thư viện chương trình, sử dụng, khai thác hàm, thủ tục có sẵn trong Pascal. Tuy nhiên, đây không phải là yêu cầu bắt buộc trong Chuẩn kiến thức, kĩ năng cho nên GV có thể cho thực hành bài này trên lớp hoặc giao cho HS tự tìm hiểu. Không cần đi sâu vào việc sử dụng các thủ tục này để trình bày kết quả trên màn hình.

c) Bài 3 giới thiệu về việc sử dụng hai lệnh lặp for...do lồng nhau. GV có thể sử dụng bài 3 này hoặc lấy một ví dụ khác để giới thiệu về lệnh lặp for...do lồng nhau. Có một ví dụ vui thường được sử dụng để minh hoạ cho việc sử dụng lệnh lặp for...do lồng nhau, đó là bài toán cổ:
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.
Bài toán cổ này có thể sẽ làm HS hứng thú hơn. Lưu ý, HS lớp 8 chưa được học giải hệ phương trình bậc nhất hai ẩn số.
Chương trình giải bài toán này có thể như sau:
Var ga, cho: byte;
Begin
for ga:=1 to 35 do
for cho:=1 to 35 do
if (ga*2 + cho*4 = 100) and (ga + cho = 36) then
writeln('So ga la: ', ga, '; So cho la: ', cho);
Readln
End.
GV có thể giới thiệu chương trình trước rồi yêu cầu HS tìm hiểu, giải thích tại sao chương trình này cho phép giải bài toán đặt ra.
Thuật toán này rất đơn giản, ý tưởng cơ bản là xét tất cả các trường hợp số lượng gà và chó bằng 36 và kiểm tra xem trường hợp nào thoả mãn: ga + cho = 36ga*2 + cho*4 = 100 thì đó là một đáp số của bài toán.
Qua bài toán này cũng có thể nêu cho HS thấy ưu điểm nổi bật của máy tính trong việc tính toán nhờ tốc độ xử lí rất cao. Với cách giải như trên máy tính tìm ra kết quả nhanh chóng, nhưng nếu để con người thực hiện thì sẽ lâu hơn rất nhiều.
Tuy nhiên, nhược điểm của máy tính là chỉ biết làm việc theo sự điều khiển của con người mà không hề có tư duy sáng tạo. Trong quá trình tính toán tìm ra kết quả, con người còn có khả năng phán đoán, dự đoán xu hướng để có thể bỏ qua một số công đoạn tính toán nhằm đi đến kết quả nhanh hơn. Do đó, con người cần lựa chọn, xây dựng thuật toán sao cho có thể nâng cao hiệu quả làm việc của máy tính.
GV có thể yêu cầu HS cải tiến để có chương trình hiệu quả hơn.
var ga, cho:byte;
Begin
For cho:= 1 to 24 do
Begin
ga:= 36 - cho;
if (2*ga + 4*cho = 100) then
writeln('Ga: ', ga, ', Cho: ',cho);
end;
readln
End.

GV có thể phân tích, hướng dẫn để HS nhận thấy số lượng các phép tính ở chương trình sau ít hơn với chương trình ban đầu. Điều đó cũng có nghĩa là thuật toán ở chương trình sau hiệu quả hơn. Việc xây dựng, lựa chọn thuật toán hiệu quả có vai trò quan trọng trong lập trình, nhất là với những bài toán có khối lượng tính toán lớn. Luôn cần có ý thức xây dựng, lựa chọn thuật toán hiệu quả nhất khi giải bài toán trên máy tính.
Việc phân tích về số lượng phép toán có thể gây quá tải đối với HS. Do vậy, GV căn cứ vào mức độ tiếp thu của HS để có thể tiến hành giới thiệu hoặc không giới thiệu nội dung về số lượng phép toán, so sánh tính hiệu quả giữa các thuật toán.

 

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây