Bai 11 Chuong 4

Download Report

Transcript Bai 11 Chuong 4

1
NHÓM 5 10/30/2011
2
Chương 4:
KIỂU DỮ LIỆU CÓ CẤU TRÚC
Bài 11 - Tiết 1:
KIỂU MẢNG
NHÓM 5 10/30/2011
3
Mục Tiêu
Biết các khái niệm về: lập
trình, thuật toán, cấu trúc dữ
liệu,...
Kỹ
năng:
lập trình một số bài
NHÓM 5
10/30/2011
toán đơn giản thông qua một
ngôn ngữ lập trình cụ thể
(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ấu trúc khai báo mảng 1
chiều theo 2 cách.
• Những yếu tố người lập trình
cần xác định để khai báo 1
kiểu dữ liệu mảng 1 chiều:
• Cách đánh số các phần tử của
mảng 1 chiều (chỉ số của các
phần tử).
• Phân biệt kiểu dữ liệu mảng và
KDL các phần tử của mảng.
• Tham chiếu tới phần tử của
mảng 1 chiều và ý nghĩa ứng
dụng của nó.
• Cách xác định để khai báo
biến mảng trong BT thực tế.
• Khi khai báo cần chú ý đến
kích thước mảng.
▫ Kiểu phần tử: KDL chuẩn
(integer, real, char, boolean ... )
▫ Kiểu chỉ số: đoạn số nguyên
liên tục (thường là [1..100])
• Cách nhập, xuất dữ liệu mảng,
thao tác với 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
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
Tìm hiểu ý
nghĩa của
mảng 1
chiều
NHÓM 5
2
3
4
Tìm hiểu
cách khai
báo mảng 1
chiều
Tìm hiểu các
thao tác với
mảng một
chiều: tham
chiếu, nhập,
xuất
Củng cố Dặn dò
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.
Viết chương trình tính tổng 6 số nguyên dương.
Program TinhTong;
Var x1, x2, x3, x4, x5, x6, S: integer;
Begin
Writeln (‘Nhap vao gia tri cua 6 so nguyen duong: ’);
Readln (x1, x2, x3, x4, x5, x6);
S := x1 + x2 + x3 + x4 + x5 + x6;
Writeln(‘Tong cua 6 so nguyen duong ban vua nhap
la: ’, S);
Readln;
End.
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
chỉ số
A:
9
16
1 2
3 4
1
4
2
25
5 6
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.
A:
1
2
3
4
5
6
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
3. Các bước tiến hành:
3.1. GV show chương
trình tính tổng n số
nguyên dương sử dụng
KDL mảng 1 chiều. HS
quan sát, GV phân tích
giải thích ngữ nghĩa của
các thành phần trong
chương trình để HS quen
dần với cú pháp, cách khai
báo và các thao tác trên
mảng một chiều.
NHÓM 5
Program TinhTong;
Var A:array[1..100] of integer;
i, n, S: integer;
Begin
Writeln(‘Nhap so ptu cua mang:’);
Readln(n);
S := 0;
For i:=1 to n do
Begin
Writeln(‘Nhap ptu thu’, i,‘: ’);
Readln(A[i]);
S := S + A[i];
End;
Writeln(‘Tong cua day vua nhap
la: ’, S);
Readln;
End.
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?
A:
1
2
3
4
5
6
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
Câu lệnh;
{n là số phần tử của mảng}
• 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.
NHÓM 5
10/30/2011