IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
1. Trình bày các cách khai báo kiểu mảng trongNNLT Pascal? NNLT Pascal?
2. Khai báo mảng gồm N số nguyên (N≤500).(theo 2 cách: trực tiếp và gián tiếp). (theo 2 cách: trực tiếp và gián tiếp).
Gọi lần lượt hs trả lời.
Gọi hs khác nhận xét nội dung trên bảng Đánh giá, cho điểm.
Hs1: Đứng tại chổ trả lời
Hs2: (lên bảng) Const N = 500;
C1: Var M : array[1..N] of integer;
C2: Type Mnguyen = array[1..N] of integer;
Var M : Mnguyen;
2. Hoạt động 2: (20 phút)Vận dụng kiểu mảng một chiều
a. Nội dung:
- Bài toán: Tạo mảng A gồm N (N≤100) số nguyên. Tính tổng các phần tử của mảng là bội của một số nguyên dương k cho trước.
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu đề bài toán (ghi bảng)Y/cầu hs xác định In/Output của Y/cầu hs xác định In/Output của bài toán.
2. Ở lớp 10 ta đã xây dựng t/toáncho bài toán này rồi. Y/cầu hs cho bài toán này rồi. Y/cầu hs nhắc lại t/toán.
3. Y/cầu hs cho biết các việc chínhcần thực hiện trong chtrình là gì? cần thực hiện trong chtrình là gì?
4. Y/cầu hs cho biết các biếnchính cần sử dụng là gì? chính cần sử dụng là gì?
- Y/cầu hs khác lên viết phần khai báo các biến đó?
5. Tiếp tục y/cầu hs lên viết phầnchtrình tạo giá trị cho các ptử của chtrình tạo giá trị cho các ptử của mảng A. (lưu ý nhập số lượng ptử của mảng trước)
Gọi hs khác nhận xét
* Chỉnh sửa đoạn chtrình hs vừa hoàn thành.
6. Để viết tiếp đoạn chtrình còn lại(tính tổng) theo thuật toán ta phải (tính tổng) theo thuật toán ta phải
1. Đọc đề bài toán và trảlời: lời:
In: mảng A, số k
Out: Tổng (S) các p/tử trong mảng A là bội của k.
2. 1-2 hs nhắc lại t/toán
3. Trả lời
+ Cho biết số ptử của mảng A. + Nhập giá trị cho các ptử của mảng A + Tính tổng. 4. suy nghĩ và trả lời - mảng A biến đơn: N, k, S. - Lên bảng trình bày Var S, N, k: integer; A: array[1..100] of integer; 5. Thực hiện tương tự các CT trước (Lên bảng trình bày) Đứng tại chổ n/xét, (bổ sung nếu sai sót)
6. Chú ý sự dẫn dắt vấnđề của gv, suy nghĩ và đề của gv, suy nghĩ và trả lời: Sử dụng cấu trúc
Bài 1: Viết CT tạo mảng A gồm N (N≤100) số nguyên. Tính tổng các phần tử của mảng là bội của một số nguyên dương k cho trước.
Var S, n, k, i : integer; A: array[1..100] of integer; Begin Write(‘Nhap n = ’); readln(n); {tao mang} For i:=1 To n Do begin
write(‘phan tu thu ’,i,’ =’); readln(A[i]);
end;
write(‘Nhap k = ’); readln(k); S := 0; {khoi tao S ban dau} {tinh tong}
For i:=1 To n Do
If A[i] mod k = 0 Then S := S + A[i]; Writeln(‘Tong can tinh la ’, S);
kiểm tra lần lượt tất cả các ptử của mảng từ A[1] đến A[n]. vậy ta sử dụng câu lệnh gì ở đây?
- Hỏi: trước khi tính tổng, ngoài mảng A trong CT cần có thêm gì không? (GV bổ sung)
- Y/cầu hs khác lên viết đoạn chtrình còn lại?
** Chuẩn hoá lại chtrình.
* Chạy thử chtrình với 1 bộ giá trị:
lặp For. -Giá trị k và Biến S := 0 - Lên bảng trình bày Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3 A 5 6 - 8 13 24 7 - 4 - 12 i 1 2 3 4 5 6 7 8 A[i] mod 3 2 0 - 2 1 0 1 -1 0 S 0 0 6 6 6 30 30 30 18
3. Hoạt động 3: (15 phút) Mở rộng bài toán có vận dụng mảng một chiều
a. Nội dung:
Cho một số câu lệnh:
(1) ... am, duong : integer; (2) ... am := 0; duong := 0;
(3) ... If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then am := am + 1; (4) ... Writeln(duong: 4, am:4);
Hãy đưa các câu lệnh đó vào những vị trí thích hợp trong chtrình bài 1, để có được chtrình đưa ra số các số dương và số các số âm trong mảng.
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
(Treo bảng) chứa nội dung câu lệnh cần thêm vào chtrình ở bài 1.
1. Y/cầu hs n/cứu nội dung các câu lệnh và hỏi:
- Ý nghĩa của biến am, duong? - Chức năng của lệnh (3)? - Lệnh (4) đưa ra thông tin gì?
2. Y/cầu hs tìm vị trí bổ sung các lệnhvào cho phù hợp để chtrình đếm được vào cho phù hợp để chtrình đếm được số dương, số âm.
3. Y/cầu hs lên hoàn chỉnh lạichtrình? chtrình?
** Chuẩn hoá lại chtrình.
* Chạy thử chtrình với 1 bộ giá trị:
Quan sát các câu lệnh 1. N/cứu ý nghĩa các câu lệnh và trả lời: - Dùng để lưu số lượng đếm được. - Đếm số dương hoặc đếm số âm. - Số các số dương, số các số âm. 2. Chỉ ra vị trí cần bổ sung và các câu lệnh cần loại bỏ bớt. 3. Lên bảng , chỉnh sửa lại chtrình. Var n, i : integer;
am, duong : integer; A : array[1..100] of integer; Begin Write(‘Nhap n = ’); readln(n); {tao mang} For i:=1 To n Do begin
write(‘phan tu thu ’,i,’ =’); readln(A[i]); end; am := 0; duong := 0; {dem} For i:=1 To n Do If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then
am := am + 1; Writeln(duong: 4, am:4); End. Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 A 5 6 - 8 13 24 7 - 4 - 12 Duong 1 2 2 3 4 5 5 5 am 0 0 1 1 1 1 2 3