TIẾT 23 + 24: BÀI THỰC HÀNH SỐ 3
I. MỤC TIÊU
1. Kiến thức
- Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng.
2. Kĩ năng
- Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể:
+ Khai báo kiểu dữ liệu mảng một chiều.
+ Nhập/xuất dữ liệu cho mảng.
+ Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.
- Biết giải một số bài toán cơ bản thường gặp:
+ Tính tổng các phần tử thoả mãn điều kiện nào đó.
+ Đếm số các phần tử thoả mãn điều kiện nào đó.
+ Tìm phần tử lớn nhất, nhỏ nhất.
3. Thái độ
- Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức.
II. ĐỒ DÙNG DẠY HỌC
1. Chuẩn bị của giáo viên
- Phòng máy vi tính, máy chiếu Projector để minh họa.
2. Chuẩn bị của học sinh
- Sách giáo khoa.
III. HOẠT ĐỘNG DẠY-HỌC
1. Ổn định tổ chức
Lớp | Ngày dạy | Sĩ số | Họ tên học sinh vắng | Ghi chú |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
3. Dạy bài mới
- Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn.
HOẠT ĐỘNG CỦA GIÁO VIÊN | HOẠT ĐỘNG CỦA HỌC SINH |
1. Tìm hiểu chương trình ở câu a, sách giáo khoa, trang 63 và chạy thử chương trình. - Chiếu chương trình lên bảng. - Hỏi: Khai báo Uses CRT; có ý nghĩa gì? - Hỏi: Myarray là tên kiểu dữ liệu hay tên biến? - Hỏi: Vai trò của nmax và n có gì khác nhau? - Hỏi: Những dòng lệnh nào dùng để tạo biến mảng a? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Lệnh gán a:=random(300)-random(300) có ý nghĩa gì? - Hỏi: Lệnh For i:=1 to n do Write(A:5); có ý nghĩa gì? - Hỏi: Lệnh For-Do cuối cùng thực hiện nhiệm vụ gì? - Hỏi: Lệnh s:=s+a; được thực hiện bao nhiêu lần? - Thực hiện lại chương trình lần cuối để học sinh thấy kết quả. 2. Sửa chương trình câu a để được chương trình giải quyết bài toán ở câu b. - Chiếu lên màn hình các lệnh cần thêm vào chương trình ở câu a. - Hỏi: Ý nghĩa của biến Posi và neg? - Hỏi: Chức năng của lệnh? If a>0 then posi:=posi+1 else if a<0 then neg:=neg+1; - Yêu cầu học sinh thêm vào vị trí cần thiết để chương trình đếm được số . - Yêu cầu học sinh gõ nội dung và lưu lại với tên caub.pas. Thực hiện chương trình và báo cáo kết quả. |
[TD]1. Quan sát, chú ý và trả lời.
- Khai báo thư viện chương trình con Crt để sử dụng được thủ tục Clrscr;
- Tên kiểu dữ liệu.
- nmax là số phần tử tối đa có thể chứa của biến mảng a. n là số phần tử thực tế của a.
- Lệnh khai báo kiểu và khai báo biến.
- Quan sát chương trình thực hiện và kết quả trên màn hình.
- Lệnh sinh ngẫu nhíên giá trị cho mảng a từ -299 đến 299.
- In ra màn hình giá trị của từng phần tử trong mảng a.
- Cộng các phần tử chia hết cho k.
- Có số lần đúng bằng số phần tử a chia hết k.
- Quan sát giáo viên thực hiện chương trình và kết quả trên màn hình.
2. Quan sát và chú ý theo dõi các câu hỏi của giáo viên:
- Quan sát các lệnh và suy nghĩ vị trí cần sửa trong chương trình câu a.
- Dùng để lưu số lượng đếm được.
- Đếm số dương hoặc đếm số âm.
- Chỉ ra vị trí cần thêm vào trong chương trình.
- Lưu chương trình. Thực hiện chương trình và thông báo kết quả.[/TD]
Hoạt động 2: Rèn luyện kĩ năng lập trình.
HOẠT ĐỘNG CỦA GIÁO VIÊN | HOẠT ĐỘNG CỦA HỌC SINH |
1. Lấy một ví dụ thực tiễn: Người mù tìm viên sỏi có kích thước lớn nhất trong một dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn nhất. - Yêu cầu: nêu thuật toán tìm phần tử có giá trị lớn nhất. 2. Tìm hiểu chương trình tìm chỉ số và giá trị lớn nhất. - Chiếu chương trình ví dụ, sách giáo khoa, trang 64. - Hỏi: Vai trò của biến j trong chương trình? - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần sửa ở chỗ nào? - Hỏi: Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất ta sửa ở chỗ nào? 3. Đặt yêu cầu mới: Viết chương trình đưa ra các chỉ số của các phần tử có giá trị lớn nhất. - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn nhất không? - Hỏi: Cần thêm lệnh nào nữa? - Hỏi: Vị trí thêm các lệnh đó? - Yêu cầu: Viết chương trình hoàn thiện. - Yêu cầu học sinh nhập dữ liệu vào của giáo viên và báo kết quả. - Đánh giá kết quả của học sinh. | 1. Theo dõi ví dụ của giáo viên. - So sánh lần lượt từ trái sang phải, giữ lại chỉ số của phần tử lớn nhất. 2. Quan sát chương trình, suy nghĩ và trả lời. - Giữ lại chỉ số của phần tử có giá trị lớn nhất. - Phép so sánh a<a[j] - Chuyển thứ tự duyệt từ n-1 về 1. 3. Theo dõi yêu cầu, suy nghĩ các câu hỏi định hướng để viết chương trình. - Có. - Lệnh để in ra các chỉ số có giá trị bằng giá trị lớn nhất tìm được. - Sau khi tìm được giá trị lớn nhất. - Soạn chương trình vào máy. Thực hiện chương trình và thông báo kết quả. - Nhập dữ liệu vào và thông báo cho giáo viên dữ liệu ra. |
IV. ĐÁNH GIÁ CUỐI BÀI
1. Những nội dung đã học
Một số thuật toán cơ bản:
+ Tính tổng các phần tử thoả mãn điều kiện nào đó.
+ Đếm số các phần tử thoả mãn điều kiện nào đó.
+ Tìm phần tử lớn nhất, nhỏ nhất.
2. Câu hỏi và bài tập về nhà
- Xem nội dung của bài thực hành số 4, sách giáo khoa, trang 65.