PHƯƠNG PHÁP

Một phần của tài liệu Giáo án Tin học 11 chuẩn KTKN_Bộ 4 (Trang 46)

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 trong NNLT 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án cho 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ính cầ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ến chí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ần chtrì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 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ử

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 (adsbygoogle = window.adsbygoogle || []).push({});

+ 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 lặp For.

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); Writeln(‘Tong can tinh la ’, 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ị:

-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 Elseif 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ệnh vào cho phù hợp để chtrình đếm được vào cho phù hợp để chtrình đếm được số dương, số âm. (adsbygoogle = window.adsbygoogle || []).push({});

3. Y/cầu hs lên hoàn chỉnh lại chtrì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 Elseif 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

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)

1. Nội dung đã học

- Tính tổng các phần tử trong mảng thoả mãn một điều kiện. - Đếm số phần tử trong mảng thoả mãn một điều kiện.

2. Câu hỏi, bài tập về nhà

- Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i])

- Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.

Ngày soạn: 14/11/20012

Tiết 21 KIỂU MẢNG (tiết 3/4)

Một phần của tài liệu Giáo án Tin học 11 chuẩn KTKN_Bộ 4 (Trang 46)