Xây dựng hệ thống các bài tập theo hớng phát triể nt duy thuật giải cho học sinh

Một phần của tài liệu NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT (Trang 55 - 58)

5. Chọn thuật giải tối u

2.4Xây dựng hệ thống các bài tập theo hớng phát triể nt duy thuật giải cho học sinh

sánh giữa hai thuật giải trên học sinh sẽ chọn ra đợc thuật giải nào tối u hơn. Do đó, để chọn thuật giải tối u, trong bài giảng giáo viên nên có những tình huống tạo cho học sinh các mối liên hệ xuôi, ngợc và các biện pháp nhằm phát huy tính năng động, sự sáng tạo, sự say mê tìm tòi và hứng thú học tập lập trình của học sinh. Trong quá trình giảng dạy giáo viên không chỉ đơn thuần là đa ra các bài toán khó, mà giáo viên phải chú trọng đến việc giúp học sinh tìm tòi, so sánh để đa ra thuật giải tối u, phù hợp với nội dung của bài toán.

2.4 Xây dựng hệ thống các bài tập theo hớng phát triển t duy thuật giải chohọc sinh học sinh

* Dạng 1: Bài tập lý thuyết về các khái niệm, câu lệnh, cấu trúc, cách khai báo đã đợc học. Là những bài tập chỉ dựa vào kiến thức lý thuyết, loại bài tập này có thể phân hóa thành ba mức nh sau:

- Tái hiện kiến thức lý thuyết. - Tái hiện kiến thức và giải thích.

- Vận dụng sáng tạo và suy luận linh họat kiến thức ở điều kiện mới. Ví dụ: Xét các cấu trúc điều khiển, thiết kế bài tập theo kiểu phân hóa:

+ Mức độ 1: Nêu hoạt động của các câu lệnh điều khiển đã học.

+ Mức độ 3: Dựa vào sơ đồ khối hãy tìm ra câu lệnh điều khiển tơng ứng. * Dạng 2: Xây dựng thuật giải, mã hóa chơng trình

Là những bài tập lập trình yêu cầu học sinh phải nắm vững kiến thức trong từng phần, kiến thức của cả chơng đã học. Loại bài tập này cũng có thể phân thành 3 mức:

Mức độ 1: Dự đoán kết quả của các chơng trình đã có sẵn Bài tập 2: Xét chơng trình:

Program VD;

Var a: array [1..100] of Integer; i, n, t : Integer; Begin Write(‘ N = ’); Readln(N); For i : = 1 to n do readln(a[i]); For i : = 1 to n div 2 do Begin t : = a[i]; a[i] := a[n – i + 1]; a[n – i + 1] : = t; end;

for i : = 1 to n do write( a[i] : 5); Readln;

End.

Điều khẳng định nào sau đây là đúng?

a) Chơng trình trên đảo ngợc vị trí của các phần tử trong mảng a (theo kích th- ớc thực tế đợc nhập);

b) Chơng trình trên ghi một nửa số phần tử ở cuối lên các vị trí đầu tiên; c) Chơng trình trên sắp xếp các phần tử của a theo thứ tự giảm dần; d) Cả a, b và c đều sai.

Bài tập 3: Chơng trình dới đây thực hiện công việc gì? Program CT;

Var x1, y1, x2, y2, x3, y3, u, v : Integer; Begin

Write( ‘ Nhap toa do diem A :’); readln (x1, y1); Write( ‘ Nhap toa do diem B :’); readln (x2, y2); Write( ‘ Nhap toa do diem C :’); readln (x3, y3);

If (x1 – x3)*(x1 – x3) + (y1 – y3)*(y1 – y3) > (x2 – x3)*(x2 – x3) + (y2 – y3) * (y2 – y3) then

Begin u : = x2; v : = y2; end else begin u : = x1; v : = y1; end; writeln( ‘ X = ’, u, ‘ Y = ’, v); End.

Mức độ 2: Mã hóa bài toán với các thuật giải đã có.

Bài tập 4: Cho thuật giải bài toán kiểm tra tính nguyên tố của một số nguyên d- ơng N nh sau:

Bớc 1: Nhập số nguyên dơng N;

Bớc 2: Nếu N = 1 thì thông báo N không nguyên tố rồi kết thúc;

Bớc 3: Nếu N < 4 thì thông báo N là nguyên tố rồi kết thúc;

Bớc 4: i  2;

Bớc 5: Nếu i > [ N ](*) thì thông báo N là nguyên tố rồi kết thúc;

Bớc 6: Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc;

Bớc 7: i  i +1 rồi quay lại bớc 5;

(*) Biến i nhận giá trị nguyên thay đổi trong phạm vi từ 2 đến [ N ] + 1 và dùng để kiểm tra N có chia hết cho i hay không. (adsbygoogle = window.adsbygoogle || []).push({});

Từ thuật giải đã cho ở trên, hãy viết chơng trình Pascal hoàn chỉnh để giải bài toán.

ở mức độ này, giáo viên sẽ đa ra các bài toán và một số gợi ý rồi từ đó học sinh sẽ tự xây dựng chơng trình.

* Dạng 3: Bài tập tổng hợp và một số bài toán có ứng dụng thực tế.

Một phần của tài liệu NGHIÊN CỨU CÁC KỸ THUẬT DÒ BIÊN ÁP DỤNG TRONG TRÍCH CHỌN CÁC BỘ PHẬN KHUÔN MẶT (Trang 55 - 58)