Biết được cách khai báo biến, tham chiếu đến từng phần tử của mảng.. Em hãy nêu khái niệm, cách khai báo kiểu mảng một chiều, cách tham chiếu đến các phần tử của mảng... Nội dung bài m
Trang 1TRƯỜNG THPT HƯƠNG THỦY
GIÁO ÁN CHI TIẾT
Giáo viên hướng dẫn: Nguyễn Văn Cường
Người soạn: Nguyễn Quốc Lý
Ngày soạn: 19/02/2011
Ngày giảng: 24/02/2011
Trường THPT Hương Thủy
Tên bài giảng: Bài 11: KIỂU MẢNG (Tiết 24)
I MỤC ĐÍCH, YÊU CẦU
1 Mục đích
Giúp học sinh biết được một kiểu dữ liệu mới là kiểu mảng hai chiều
Biết được cách khai báo biến, tham chiếu đến từng phần tử của mảng
2 Yêu cầu
Tạo được kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal Vận dụng để giải quyết một số bài toán cụ thể
3 Tư duy và thái độ: Tự giác, tích cực, chủ động và sáng tạo trong học tập.
II CHUẨN BỊ
1 Giáo viên: Giáo án, sách giáo khoa, sách giáo viên, bảng.
2 Học sinh: vở ghi bài, sách giáo khoa.
III PHƯƠNG PHÁP
Thuyết trình, vấn đáp, gợi mở
IV HOẠT ĐỘNG DẠY HỌC
1 Ổn định lớp (3 phút) :
Cán bộ lớp báo cáo sĩ số
2 Kiểm tra bài cũ (7 phút):
GV: Tiết trước chúng ta đã tìm hiểu kiểu
mảng một chiều bây giờ thầy kiểm tra bài
cũ
HS: trả lời
GV: nhận xét cho điểm học sinh.
Câu hỏi:
1 Em hãy nêu khái niệm, cách khai báo kiểu mảng một chiều, cách tham chiếu đến các phần tử của mảng
Trang 23 Nội dung bài mới (30 phút):
Hoạt động 1(10 phút): Khái niệm mảng hai chiều
GV: Ta thấy bảng nhân có dạng bảng
gồm các giá trị cùng kiểu.Nhìn bảng
trên thì em có nhận xét gì về mỗi hàng
(côt) của bảng
HS: Trả lời câu hỏi:….
GV: nhận xét và kết luận về ví dụ.
Em nào có thể đưa ra khái niệm về
mảng hai chiều theo cách hiểu của
mình?
HS: trả lời và đưa ra khái niệm mảng
hai chiều …
GV: nhắc lại khái niệm một lần nữa.
Tương tự với mảng một chiều thì
mảng hai chiều cũng có quy tắc sau:
+ Tên kiểu mảng hai chiều;
+ Số lượng phần tử cuả mỗi chiều;
+ Kiểu dữ liệu của phần tử;
+ Cách khai báo biến;
+ Cách tham chiếu đến phần tử
của mảng hai chiều
HS: nghe và ghi bài
GV: Như vậy từ ví dụ trên thì em nào
có thể khai báo mảng hai chiều từ
mảng một chiều được
HS: nghe và trả lời câu hỏi.
Tiết 24 §11 KIỂU MẢNG
(Tiết 4/4)
2 Kiểu mảng hai chiều
Bài toán tính và đưa ra màn hình bảng nhân
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 28 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
Bảng nhân Như vậy, ta có thể mô tả dữ liệu bảng nhân là mảng một chiều gồm 10 phần tử, mỗi phần tử
là mảng một chiều có 9 phần tử, mỗi phần tử là một số nguyên
- NÕu xem mçi hµng cña m¶ng hai chiÒu lµ mét phÇn tö th× ta cã thÓ nãi m¶ng hai chiÒu lµ m¶ng mét chiÒu mµ mçi phÇn tö lµ m¶ng mét chiÒu
- Tương tự như kiểu mảng một chiều, với kiểu mảng hai chiều, các ngôn ngữ lập trình cũng có quy tắc, cách thức cho phép xác định:
+ Tên kiểu mảng hai chiều;
+ Số lượng phần tử của mỗi chiều;
+ Kiểu dữ liệu của phần tử;
+ Cách khai báo biến;
+ Cách tham chiếu đến phần tử của mảng hai chiều
VD: Biến mảng hai chiều B lưu trữ bảng nhân
có thể được khai báo trong Pascal:
Type A=array[1 9] of integer;
B=array[1 10] of A Hoặc:
Var B: array[1 9, 1 10] of integer;
Trang 3Hoạt động 2 (10 phút): Khai báo mảng 2 chiều
GV: Từ khái niệm nói trên ta có cách
khai báo mảng 2 chiều như sau:
viết cách khái báo lên bảng, phân tích
cho HS thấy sự khác nhau của mảng 2
chiều
HS: nghe và ghi bài.
GV: lấy ví dụ về cách khai báo mảng 2
chiều, phân tích cho học sinh thấy rõ
gọi một hai HS lên bảng lấy VD khác
HS: nghe, quan sát, ghi bài, suy nghĩ và
lên bảng viết ví dụ
GV: gọi HS khác nhận xét về VD của
bạn vừa làm và kết luận lại
HS: quan sát bạn làm và nhận xét
a Khai báo mảng hai chiều
Tổng quát:
Cách 1: khai báo trực tiếp biến mảng hai
chiều:
Var <tên biến mảng> : array[kiểu chỉ số hàng, kiểu chi số cột] 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 hai chiều:
Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; Var <tên biến mảng> : <tên kiểu mảng>;
Cách truy xuất đến phần tử của mảng hai chiều:
<Tên Mảng>[chỉ số dòng, chỉ số cột]
VD: các khai báo mảng sau đây là hợp lệ:
(sgk)
Hoạt động 3 (12 phút): tìm ví dụ
GV: chuyển mục và lấy ví dụ cụ thể, thể
hiện thông qua chương trình có sẵn
HS: quan sát, suy nghĩ và chuẩn bị trả
lời các câu hỏi do GV đặt ra
GV: Em nào chỉ cho thầy và các bạn
trong VD này những câu lệnh nào dùng
để khai báo mảng hai chiều?
mời một, hai HS trả lời
HS: Lên bảng chỉ các câu lệnh dùng để
khai báo mảng hai chiều
GV: Những câu lệnh nào dùng để tính
và đưa ra bảng nhân?
HS: lên bảng chỉ rõ và giải thích các câu
lệnh đó
b Một số ví dụ
Ví dụ 1: Chương trình đưa bảng nhân ra màn
hình
Program Bang_nhan;
uses crt;
Var B: array[1 10,1 9] of integer;
i, j: integer;
Begin clrscr;
for i := 1 to 10 do for j := 1 to 9 do B[i,j] := i*j;
for i := 1 to 10 do begin
for j := 1 to 9 do write(B[i,j]:4);
writeln;
end;
Trang 4GV: Đưa ra VD 2 và hướng dẫn cho học
HS tìm hiểu và đưa ra khai báo mảng
HS: Nghe, và suy nghĩ để thực hiện khai
báo mảng hai chiều
GV: Gọi một HS lên bảng viết khai báo
về mảng
HS: Lên bảng viết khai báo.
GV: Gọi một học khác lên viết câu lệnh
nhập các phần tử của mảng 2 chiều
HS: Lên bảng viết đoạn lệnh dùng để
nhập các phần tử của mảng 2 chiều
reeadln End
Ví dụ 2: chương trình sau nhập vào từ phím
các phần tử của mảng hai chiều B gồm 5 hàng, 7 cột với các phần tử là các số nguyên
và một số nguyên k Đưa ra màn hình các phần tử của mảng có giá trị nhỏ hơn k
Program Mang_hai_chieu;
uses crt;
Var B: array[1 5,1 7] of integer;
d, i, j, k: integer;
Begin clrscr;
writeln(‘Nhap cac phan tu cua mang theo dong: ’);
for i := 1 to 5 do begin
for j := 1 to 7 do readln(B[i,j]);
writeln;
end;
write(‘Nhap vao gia tri k = ’);
readln(k);
d := 0;
writeln(‘DS cac phan tu mang nho hon’,k,’:’);
for i := 1 to 5 do for j := 1 to 7 do
if B[i,j] < k then begin
write(B[i,j]);
writeln;
d := d + 1;
end;
if d = 0 then writeln(‘Khong co phan tu nao nho
hon’, k);
readln End
Trang 54 Củng cố và nhắc nhở: (3 phút)
Nhắc lại các kiến thức cơ bản
- Mảng hai chiều là bảng các phần tử cùng kiểu.
- Khai báo mảng hai chiều
Cách 1: khai báo trực tiếp biến mảng hai chiều:
Var <tên biến mảng> : array[ kiểu chỉ số hàng, kiểu chỉ số cột] 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 hai chiều:
Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of
<kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
5 Nhắc nhở về nhà chuẩn bị giờ sau
Các em về hoàn thiện các bài tập trong sách bài tập Xem tiếp bài thực hành
Hương Thủy, Ngày 19/02/2011