3. 3
Mục Tiêu
Kỹ năng: lập trình một số bài
Biết các khái niệm về: lập toán đơn giản thông qua một
trình, thuật toán, cấu trúc dữ ngôn ngữ lập trình cụ thể
liệu,... (Pascal)
CHƯƠNG TRÌNH TIN HỌC LỚP 11
Bài 11: Kiểu Mảng (Tiết 01)
NHÓM 5 10/30/2011
4. 1 Mục tiêu, chuẩn kiến thức, kỹ năng
2 Điểm trọng tâm, điểm khó
3 Kiến thức liên quan đến bài học
4 Khả năng biết của học sinh
Giả định môi trường học tâp:
• Phòng học đầy đủ thiết bị nghe nhìn, hệ thống âm thanh.
• Bàn ghế được thiết kế tiện cho việc thảo luận, làm việc theo nhóm.
NHÓM 5 10/30/2011
5. KIẾN THỨC
Hiểu:
• Kiểu mảng là kiểu dữ liệu có cấu trúc, rất cần thiết và
hữu ích cho nhiều chương trình.
• Mảng một chiều là một dãy hữu hạn các phần tử cùng
kiểu.
• Mô tả mảng một chiều cần khai báo kiểu của các
phần tử và đánh số các phần tử của nó.
• Có thể tham chiếu đến các phần tử của mảng bằng tên
mảng và chỉ số tương ứng của phần tử này nằm trong
dấu [].
NHÓM 5 10/30/2011
6. Nắm:
• Hai cách khai báo KDL mảng 1 chiều. Khi khai báo
mảng cần xác định kích thước của mảng. Tuy nhiên
trên thực tế có nhiều trường hợp số phần tử chứa DL
thực sự có ý nghĩa đối với BT đang giải quyết nhỏ hơn
SL phần tử của mảng.
• Những yếu tố quan trọng khi khai báo mảng 1 chiều
(kiểu phần tử, kiểu chỉ số)
• Không thể nhập hay xuất giá trị của một biến mảng 1
chiều như nhập hay xuất 1 giá trị của biến có KDL
chuẩn mà phải nhập hay xuất cho từng phần tử của
mảng.
• Cách nhập xuất giá trị 1 phần tử của mảng, vai trò của
lệnh for –do trong nhập xuất.
NHÓM 5 10/30/2011
7. KỸ NĂNG
Nhận biết:
• Các thành phần trong khai báo kiểu mảng 1 chiều, 2
chiều.
• Kích thước của mảng khi khai báo.
• Định danh của một phần tử kiểu mảng một chiều xuất
hiện trong một chương trình.
• Cách tham chiếu đến một phần tử của mảng, cách
tham chiếu đến tất cả các phần tử của mảng.
• Phân biệt kiểu dữ liệu mảng và kiểu dữ liệu các phần
tử của mảng.
NHÓM 5 10/30/2011
8. Biết:
• Cách khai báo mảng đơn giản với chỉ số kiểu miền
con của kiểu nguyên.
• Cách sử dụng câu lệnh for-do kết hợp với câu lệnh
write, readln để nhập, xuất dữ liệu mảng.
• Cách duyệt qua tất cả các phần tử của mảng và truy
cập từng phần tử của mảng.
Vận dụng:
• Viết khai báo mảng một chiều đơn giản.
• Nhập xuất giá trị của một biến mảng.
• Các thao tác nhập xuất, xử lí mỗi phần tử của mảng.
NHÓM 5 10/30/2011
9. THÁI ĐỘ
• Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải
quyết các bài toán bằng máy tính.
• Tiếp tục hình thành và xây dựng phẩm chất cần thiết
của người lập trình như: ý thức chọn và xây dựng
KDL khi thể hiện những đối tượng trong thực tế, ý
thức rèn luyện kỹ năng sử dụng các thao tác trên
KDL mảng một/ hai chiều ...
NHÓM 5 10/30/2011
10. ĐIỂM TRỌNG TÂM ĐIỂM KHÓ
• Khái niệm mảng 1 chiều. • Cách đánh số các phần tử của
• Cấu trúc khai báo mảng 1 mảng 1 chiều (chỉ số của các
chiều theo 2 cách.
phần tử).
• Những yếu tố người lập trình
cần xác định để khai báo 1 • Phân biệt kiểu dữ liệu mảng và
kiểu dữ liệu mảng 1 chiều: KDL các phần tử của mảng.
▫ Kiểu phần tử: KDL chuẩn • Tham chiếu tới phần tử của
(integer, real, char, boolean ... )
▫ Kiểu chỉ số: đoạn số nguyên mảng 1 chiều và ý nghĩa ứng
liên tục (thường là [1..100]) dụng của nó.
• Cách nhập, xuất dữ liệu • Cách xác định để khai báo
mảng, thao tác với mảng.
biến mảng trong BT thực tế.
• Phân biệt kiểu dữ liệu mảng và
kiểu dữ liệu các phần tử của • Khi khai báo cần chú ý đến
mảng. kích thước mảng.
NHÓM 5 10/30/2011
11. • Ngôn ngữ lập
trình pascal.
• KDL chuẩn trong
NNLT Pascal.
• Một số thuật toán
đơn giản: thuật
toán tìm kiếm, sắp
xếp.
NHÓM 5 10/30/2011
12. • Khái niệm về mảng là một dãy hữu hạn các phần tử cùng
kiểu.
• Nhu cầu sử dụng mảng.
• Cách khai báo mảng một chiều (có 2 cách)
Cách 1: Khai báo trực tiếp mảng 1 chiều.
var <tên kiểu mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng 1 chiều.
type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>;
var <tên biến mảng>: <tên kiểu mảng>;
• Tham chiếu đến các phần tử bên trong mảng thông qua chỉ
số.
NHÓM 5 10/30/2011
13. 1 2 3 4
Tìm hiểu các
Tìm hiểu ý Tìm hiểu thao tác với
nghĩa của cách khai mảng một Củng cố -
mảng 1 báo mảng 1 chiều: tham Dặn dò
chiều chiều chiếu, nhập,
xuất
NHÓM 5 10/30/2011
14. 1. Mục tiêu:
• Học sinh thấy được sự cần thiết phải có 1 KDL mới
được xây dựng như mảng 1 chiều.
• Biết lợi ích của KDL mảng.
• Nêu được khái niệm mảng 1 chiều.
2. Thời gian: 12 phút.
NHÓM 5 10/30/2011
15. 3. Các bước tiến hành:
3.1. GV chia lớp thành 3 nhóm, mỗi nhóm cử 6
bạn tham gia trò chơi điền khuyết. Đội nào nhanh
hơn sẽ được thưởng.
Bài tập điền khuyết: Viết chương trình tính tổng 6 số
nguyên dương.
NHÓM 5 10/30/2011
16. • Dự kiến trò chơi thành công, GV show đáp án, nhận
xét KQ của 2 đội và phát thưởng.
3.2. GV đặt vấn đề mở rộng bài toán từ phạm vi 6 biến
sang phạm vi n biến (chẳng hạn 100 biến), hỏi HS: khi
số n ngày càng lớn thuật toán có thay đổi hay không?
• Dự kiến HS trả lời: thuật toán không thay đổi nhưng
khá nhiều biến nên đoạn lệnh chương trình dài.
GV nhận xét và kết luận: bản chất thuật toán không
có gì thay đổi nhưng việc viết chương trình gặp khó
khăn do cần dùng rất nhiều biến và đoạn các câu lệnh
tính toán khá dài.
NHÓM 5 10/30/2011
17. 3.3. GV đưa ra khắc phục hạn chế như sau:
• Ghép chung n biến trên thành 1 dãy.
1 2 4 9 16 25
chỉ số 1 2 3 4 5 6
A: 1 2 4 9 16 25
• Đặt 1 tên chung. Giá trị của các phần tử
• Mỗi phần tử gắn 1 chỉ số.
Dãy đó gọi là mảng 1 chiều.
NHÓM 5 10/30/2011
18. 3.4. GV: Em hiểu ntn là mảng 1 chiều?
HS trả lời. GV nhận xét và KL.
1 2 3 4 5 6
A: 1 2 4 9 16 25
Mảng 1 chiều:
• Là 1 dãy hữu hạn các phần tử cùng kiểu.
• Mảng được đặt tên và mỗi phần tử của nó có 1 chỉ số.
Mảng 1 chiều là 1 KDL có cấu trúc, cần thiết và hữu
ích trong nhiều chương trình.
NHÓM 5 10/30/2011
19. Tìm hiểu cách khai báo mảng 1 chiều
1. Mục tiêu:
• Học sinh biết cách khai báo KDL mảng 1 chiều.
• Viết được cú pháp khai báo mảng 1 chiều theo 2
cách.
• Nhận biết được cú pháp Đúng, Sai.
• Phân biệt được các thành phần và ý nghĩa của từng
thành phần trong cú pháp.
• Biết lựa chọn kích thước mảng và kiểu phần tử phù
hợp để khai báo mảng.
2. Thời gian: 15 phút.
NHÓM 5 10/30/2011
20. Program TinhTong;
3. Các bước tiến hành: Var A:array[1..100] of integer;
3.1. GV show chương i, n, S: integer;
trình tính tổng n số Begin
Writeln(‘Nhap so ptu cua mang:’);
nguyên dương sử dụng Readln(n);
KDL mảng 1 chiều. HS S := 0;
quan sát, GV phân tích For i:=1 to n do
giải thích ngữ nghĩa của Begin
Writeln(‘Nhap ptu thu’, i,‘: ’);
các thành phần trong Readln(A[i]);
chương trình để HS quen S := S + A[i];
dần với cú pháp, cách khai End;
Writeln(‘Tong cua day vua nhap
báo và các thao tác trên la: ’, S);
mảng một chiều. Readln;
End.
NHÓM 5 10/30/2011
21. 3. Các bước tiến hành:
3.2. Từ 3 nhóm đã chia như ban đầu, dựa vào chương
trình mẫu và SGK, GV phát phiếu HT cho 3 nhóm và
yêu cầu thảo luận, hoàn thành phiếu HT trong 5 phút.
• Sau khi hết giờ, GV cho các nhóm tráo đổi phiếu HT
giữa các nhóm. HS theo dõi GV sửa bài tập, cho
điểm và tự đánh giá.
Chú ý:
• Kiểu phần tử
• Kiểu chỉ số
• Sự khác nhau giữa kiểu mảng và kiểu phần tử.
NHÓM 5 10/30/2011
22. Tìm hiểu thao tác với mảng 1 chiều:
tham chiếu, nhập, xuất
1. Mục tiêu:
• Học sinh biết cách tham chiếu đến 1 phần tử, duyệt
qua tất cả các phần tử của mảng.
• Biết nhập mảng gồm 2 bước: nhập số phần tử của
mảng, nhập giá trị từng phần tử của mảng.
• Biết xuất giá trị 1 phần tử của mảng, giá trị tất cả các
phần tử của mảng.
2. Thời gian: 12 phút.
NHÓM 5 10/30/2011
23. 3. Các bước tiến hành:
3.1. GV giới thiệu cú pháp tham chiếu đến 1 phần tử
của mảng.
Tên biến mảng [chỉ số];
• GV: muốn biết giá trị của phần tử thứ 5 trong mảng
ta làm như thế nào?
1 2 3 4 5 6
A: 1 2 4 9 16 25
• 1 HS trả lời. GV nhận xét.
NHÓM 5 10/30/2011
24. 3.2. Mở rộng: Đối với KDL mảng, ta thao tác trên từng
phần tử của nó chứ không thể thao tác trên toàn mảng.
Vậy muốn duyệt qua tất cả các phần tử của mảng, ta
dùng lệnh gì?
• HS trả lời. GV nhận xét, KL: sử dụng lệnh for – do.
For i:= 1 to n do {n là số phần tử của mảng}
Câu lệnh;
• GV show chương trình mẫu cho HS xem lại.
(Chương trình tính tổng n số nguyên dương sử dụng
KDL mảng)
NHÓM 5 10/30/2011
25. 3.3. Từ chương trình mẫu đó, GV giải thích lại đoạn code
cho phép nhập từng phần tử của mảng. HS ghi chép.
3.4. GV yêu cầu:
Dựa vào đoạn lệnh cho phép nhập từng phần tử của
mảng, em hãy:
a. In ra màn hình giá trị của phần tử đầu tiên.
b. In ra màn hình giá trị của mảng vừa nhập.
• 1 phút suy nghĩ, GV cho 3 bạn xung phong, bạn nào làm
đúng và nhanh nhất sẽ cộng 1 điểm vào điểm miệng.
• GV kiểm tra, nhận xét và KL.
NHÓM 5 10/30/2011
26. Củng cố - Dặn dò
1. Mục tiêu:
• Củng cố kiến thức.
• Dặn do và cho BTVN.
2. Thời gian: 06 phút.
3. Bài tập trắc nghiệm
NHÓM 5 10/30/2011