thúc vòng lặp
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í dò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 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 học sinh tự nghiên cứ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 màn hình.
Bài 3, giới thiệu về việc sử dụng hai vòng 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ề vòng for...do lồng nhau.
Có một ví dụ vui, hay đ-ợc sử dụng để minh hoạ cho việc sử dụng vòng 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 dân gian 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 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 và kiểm tra xem tr-ờng hợp nào thảo mãn: ga + cho= 36 và ga*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ả trong nháy mắt, nh-ng nếu để con ng-ời thực hiện thì sẽ lâu hơn rất nhiều.
Nh-ng nh-ợc điểm của máy tính lại 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
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 học sinh 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 t-ợ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.