Việc dạy học lập trình cho học sinh không chỉ dừng lại ở việc học sinh nắm đợc các kiến thức về lập trình và có thể lập đợc chơng trình để giải quyết các bài toán đặt ra mà còn phải hớng cho học sinh đến các thao tác nh:
* Từ một bài toán cụ thể cần xác định thuật giải, học sinh phải xác định đợc những bài toán cùng loại, khái quát hoá thành bài toán tổng quát và xây dựng thuật giải cho bài toán đó.
* Khi đã có thuật giải để giải quyết bài toán tổng quát nào đó, học sinh cần phải chuyển đờng lối chung đó vào các bài toán cụ thể. Công việc này tuy đơn giản nhng nếu không luyện tập thì học sinh cũng không thể tránh khỏi sự lúng túng trớc một bài toán cần giải quyết vì: Khi gặp một bài toán học sinh sẽ không xác định đợc bài toán này thuộc loại bài toán tổng quát nào và đờng lối, phơng pháp giải quyết bài toán tổng quát đó ra sao?
Đối với thao tác thứ nhất, để làm đợc điều này trớc hết đòi hỏi trình độ hiểu biết các dạng bài toán để đủ khả năng hình thành đợc các bài toán tổng
quát và phơng pháp giải chúng. Để luyện tập khả năng khái quát hoá hoạt động, học sinh cần phải phân tích trong các bài toán đã cho các đặc điểm cơ bản, chung cho mọi bài toán và các đặc điểm phụ, riêng cho từng bài toán.
Ví dụ 1: Từ bài toán sắp xếp ba số nguyên a, b, c theo thứ tự tăng dần. Giáo viên nên định hớng cho học sinh khái quát hóa lên thành bài toán sắp xếp mảng một chiều gồm N số nguyên A1, A2,…, AN.
Với bài toán sắp xếp ba số nguyên a, b, c theo thứ tự tăng dần học sinh có thể đa ra thuật giải nh sau:
THUATGIAI Sap_xep;
BIEN a, b, c : Nguyên;
BATDAU
Vào a, b, c;
Nếu b < a thì tráo đổi giá trị giữa hai biến a và b; Nếu c < b thì tráo đổi giá trị giữa hai biến c và b; Nếu b < a thì tráo đổi giá trị giữa hai biến a và b; In 3 số a, b, c;
KETTHUC.
Từ đó học sinh có thể khái quát, phát triển xây dựng thuật giải bài tóan sắp xếp mảng một chiều tăng dần nh sau:
Bớc 1: Nhập N, các số hạng A1, A2,…, AN;
Bớc 2: M N;
Bớc 3: Nếu M < 2 thì đa ra dãy A đã đợc sắp xếp rồi kết thúc;
Bớc 4: M M – 1, i 0;
Bớc 5: i i + 1;
Bớc 6: Nếu i > M thì quay lại bớc 3;
Bớc 7: Nếu Ai > Ai + 1 thì tráo đổi Ai với Ai + 1 cho nhau;
Bớc 8: Quay lại bớc 5.
Bài toán sắp xếp là bài toán điển hình trong các bài toán liên quan đến mảng một chiều, có nhiều thuật giải để giải quyết bài toán này. Do đó, khi dạy
học cho học sinh kiến thức về mảng một chiều, giáo viên nên có những định h- ớng để học sinh có thể xây dựng đợc các thuật giải khác nhau cùng giải quyết một bài toán.