D. TIẾN TRÌNH BAÌI DẠY
b. Đếm số số nguyên tố.
Thuật tóan kiểm tra số N có phải là số nguyên tố hay không:
Kiểm tra các số từ 2 đến [ N ], nếu N chia hết cho 1 trong các số đó thì N không phải là số nguyên tố, ngược lại N là số nguyên tố.
Kiểm tra từ đầu dãy đến cuối dãy, nếu gặp số nguyên tố thì tăng biến đếm lên 1.
Bài 7 (SGK trang 79)
Input: Số nguyên dương N
Output: Số hạng thứ N của dãy số
Var A:array [1..100] of integer;
GV:
- Yêu cầu HS viết chương trình nhập mảng A.
- Chỉnh sửa bài làm của HS.
GV: Số chẵn là số như thế nào?
- Nếu có số lượng số chẵn trong dãy thì tìm số lượng số lẻ được hay không? - Nếu được thì tìm bằng cách nào?
HS: Chia hết cho 2.
- Nếu có số lượng số chẵn trong dãy thì tìm số lượng lẻ bằng cách: n - số lượng số chẵn.
GV: Sử dụng câu lệnh nào để viết?
- Yêu cầu HS hoàn thành chương trình của câu a.
- Nhận xét, chỉnh sửa bài làm của HS.
GV: Nêu thuật toán kiểm tra 1 số có phải là số nguyên tố hay không?
- Yêu cầu HS viết chương trình dựa theo thuật toán.
HS: Trình bày lên bảng.
GV: Sử dụng câu lệnh nào? - Yêu cầu HS hoàn thành đoạn chương trình câu b.
- Nhận xét, đánh giá:
- Gợi ý để HS kết hợp hai đoạn chương trình thành một chương trình hoàn chỉnh cho cả bài.
HS: - Trả lời câu hỏi. - Trình bày lên bảng.
Fibonaci. Dùng vòng lặp For để tính giá trị số Fibonaci: F1:=1; F2:=1; For i:= 3 to N do Begin F:= F1 + F2; F1:= F2; F2:= F; End;
Nếu khai báo F là kiểu word thì chương trình tính được với N = 24 vì với số N = 25 sẽ vượt quá phạm vi của kiểu word.
Bài 8 (SGK trang 79)
Đọc chương trình, tìm hiểu chương trình thực hiện công việc gì.
Trả lời
Chương trình thực hiện việc hóan đổi vị trí dòng thứ i với dòng thứ N- i+1, nghĩa là hoán đổi vị trí dòng đầu tiên với dòng cuối cùng của mảng 2 chiều, dòng thứ 2 từ trên xuống với dòng thứ 2 từ dưới lên... Việc hoán đổi vị trí dòng thứ i với dòng đối xứng của nó được thực hiện khi i nhận giá trị từ 1 đến N làm cho mỗi dòng được hoán đổi vị trí hai lần, vì vậy cuối cùng mảng A không thay đổi so với ban đầu.
GV: Yêu cầu HS đọc đề bài, xác định input và output.
Thế nào là số Fibonaci? - Yêu cầu HS liệt kê 6 số hạng đầu của dãy Fiponaci. Xác định input và output.
HS: Trả lời câu hỏi.
- Liệt kê: 0, 1, 1, 2, 3, 5.
GV: Đoạn chương trình nhập từ bàn phím số nguyên dương như thế nào?
HS:Viết chương trình lên bảng
GV: Số hạng tổng quát thứ n như thế nào?
HS: Fn = Fn-1 + Fn-2
GV: Gợi ý: Để viết chương trình này ta cần bao nhiêu biến phụ?
HS: Dùng 2 biến phụ (F1, F2) - Suy nghĩ, trả lờ.
GV: sử dụng câu lệnh nào trong bài này?
- Yêu cầu HS viết chương trình tìm số hạng thứ n.
- Gọi 1 HS hoàn chỉnh lại chương trình.
- Nhận xét, chỉnh sửa, đánh giá bài làm.
HS: Lên bảng trình bày.
GV: Cho HS nghiên cứu chương trình trong SGK (có thể cho HS thử chạy CT ở nhà) để tìm hiểu nội dung chương trình.
HS: Đọc SGK, tìm hiểu nội dung chương trình. GV: Trong CT sử dụng kiểu dữ liệu gì? HS: Kiểu mảng 2 chiều. GV: Trong CT sử dụng câu lệnh hoán đổi vị trí cho các dòng với i chạy từ 1 đến N, theo em kết quả gì sẽ xảy ra?
HS: Dòng thứ i sẽ được đổi chỗ cho dòng thứ N - i+1 hai lần.
Bài 11 (SGK trang 80)
Sửa chương trình Xep_Loai ở bài 13 để chỉ in ra những học sinh xếp loại A.
Câu lệnh in:
Writeln(‘Danh sach hoc sinh xep loai A: ‘); For i:=1 to N do
If Lop[i].xeploai = ‘A’ then Writeln(Lop[i].HoTen);
GV: Khi đó mảng A sẽ không thay đổi gì so với ban đầu do mỗi dòng được đổi chỗ hai lần nên lại về vị trí cũ.
GV: Yêu cầu HS đọc bài 11, xác định công việc cần thực hiện.
HS: Xác định bài toán.
GV: Mở lại chương trình Xep_Loai ở bài13 nghiên cứu cách thực hiện.
GV: Để in ra HS xếp loại A em cần thực hiện công việc gì?
HS: Kiểm tra xem xếp loại của HS nào là A thì in họ tên HS đó ra màn hình.
4. Củng cố
- Nắm vững kiến thức kiểu dữ liệu có cấu trúc. - Các cách khai báo kiểu dữ liệu có cấu trúc.
- Các phép toán tác động lên từng kiểu dữ liệu có cấu trúc. - Các thuật toán cơ bản.
5. Dặn dò
- Về nhà các em làm các bài tập còn lại. - Hôm sau kiểm tra 1 tiết.