D, x1, x2: real; Begin clrscr;
1. Kiểu mảng hai chiều
luận: Cần mảng một chiều 10 phần tử.
GV: Muốn biểu diễn cả chín bảng nhân (bảng
cửu chơng) từ 1 đến 9 thì biểu diễn nh thế nào?
HS: Suy nghĩ trả lời (có thể dùng chín mảng một
chiều, hoặc một bảng).
GV: Nhận xét câu trả lời của HS và đa ra kết
luận: Có thể dùng chín mảng một chiều, mỗi mảng mời phần tử để biểu diễn, hay dùng một bảng gồm 9 hàng và 10 cột để biểu diễn (GV treo bảng đã chuẩn bị trên giấy khổ lớn lên bảng). 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 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 cửu chơng
GV: Các giá trị trong bảng có kiểu nh thế nào? HS: Suy nghĩ trả lời câu hỏi.
GV: Các giá trị trong bảng có cùng kiểu số
nguyên, bảng nh vậy gọi là mảng hai chiều. Vậy thế nào là mảng hai chiều?
HS: Suy nghĩ và tham khảo SGK trả lời câu hỏi. GV: Nhận xét và đa ra kết luận.
GV: Để mô tả kiểu mảng hai chiều, cần xác định
những yếu tố chính nào?
HS: Suy nghĩ trả lời câu hỏi.
GV: Nhận xét và kết luận: Tơng tự nh mảng một
chiều.
Hoạt động 2. Tìm hiểu về cách khai báo mảng hai chiều. Mảng hai chiều là một bảng các phần tử cùng kiểu, hay mảng hai chiều là mảng một chiều mà mỗi phần tử là một mảng một chiều.
Tơng tự nh với 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ó cá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ử.
GV: Treo bảng minh hoạ mảng hai chiều đã
chuẩn bị trên giấy khổ lớn lên bảng
GV: Từ khai báo mảng một chiều, theo em mảng
hai chiều đợc khai báo nh thế nào?
HS: Suy nghĩ trả lời.
GV: Nhận xét và đa ra cách khai báo mảng hai
chiều.
GV: Yêu cầu học sinh giải thích các thành phần
trong cú pháp khai báo đồng thời nêu ví dụ về khai báo mảng hai chiều.
HS: Trả lời câu hỏi và lên bảng viết. Các HS
khác nhận xét.
GV: Nhận xét và kết luận bằng cách giải thích ý
nghĩa các thành phần cho HS rõ và đa ra các ví dụ về khai báo mảng hai chiều.
GV: Tơng tự mảng một chiều em hãy cho biết
cách tham chiếu đến các phần tử trong mảng hai chiều.
HS: Suy nghĩ và phát biểu ý kiến.
GV: Nhận xét và đa ra cách tham chiếu đến từng
phần tử của mảng hai chiều.
Hoạt động 3. Rèn luyện kĩ năng sử dụng kiểu mảng hai chiều.
GV: Giới thiệu đề bài (ví dụ 1, SGK trang 61).
Cách 1. Khai báo trực tiếp
biến mảng hai chiều nh sau:
var <tên biến mảng> : array [kiểu chỉ số dò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ố dò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>; Ví dụ: type ArrayReal = array[-100..200,100..200] of real; ArrayBoolean = array[-n+1..n+1,n..2*n] of boolean; var ArrayInt: array[1..10,1..15] of integer; ArrayLong: array[0..3*(n+1),0..n] of longint; trong đó, n là hằng nguyên. c) Một số ví dụ Ví dụ 1 program BangCuuChuong;
Yêu cầu HS xác định cách tổ chức dữ liệu. Sau đó hớng dẫn HS chỉ ra các công việc chính cần giải quyết.
GV: Chia lớp thành ba nhóm, yêu cầu các nhóm
viết chơng trình lên giấy bìa hoặc phiếu học tập.
HS: Thực hiện theo yêu cầu của GV.
GV: Thu phiếu học tập của các nhóm, chiếu lên
bảng. Gọi HS nhóm khác nhận xét đánh giá.
GV: Nhận xét và sau đó chuẩn hoá chơng trình
cho HS bằng cách chiếu chơng trình mẫu đã chuẩn bị lên bảng cho HS quan sát và thực hiện chơng trình để HS thấy kết quả.
GV: Giới thiệu đề bài (ví dụ 2, SGK trang 62).
Hớng dẫn HS phân tích bài toán. Sau đó yêu cầu HS khai báo biến mảng đối với bài toán.
GV: Để nhập từ bàn phím các giá trị cho mảng
hai chiều theo em phải dùng lệnh gì?
HS: Suy nghĩ và trả lời câu hỏi.
GV: Nhận xét và tổng kết cách nhập giá trị các
phần tử cho mảng hai chiều là dùng hai lệnh
for...do lồng nhau.
GV: Tơng tự nh trong ví dụ 1, ta đã biết cách
duyệt để đa ra màn hình tất cả các phần tử của mảng hai chiều. Trờng hợp này bài toán chỉ yêu cầu đa ra những phần tử nhỏ hơn k, vậy phải viết
lại đoạn chơng trình nh thế nào?
HS: Một HS lên bảng viết, cả lớp theo dõi. GV: Nhận xét, góp ý, bổ sung và đa ra đoạn ch-
ơng trình.
GV: Yêu cầu HS viết hoàn chỉnh chơng trình.
Sau đó nhận xét chung và hoàn chỉnh chơng trình.
GV: Chiếu chơng lên bảng để HS quan sát. GV: Thực hiện chơng trình để HS thấy đợc kết
quả (cần giải thích một số chỗ có thể HS cha hiểu và yêu cầu về nhà tìm hiểu thêm).
uses crt; var B: array[1..9,1..10] of integer; i, j: integer; begin clrscr; for i:=1 to 9 do for j:= 1 to 10 do B[i,j]:= i*j; for i:=1 to 9 do begin for j:=1 to 10 do write(B[i,j]:4); writeln; end; readln end. Ví dụ 2 For i := 1 to 5 do For j := 1 to 7 do Begin Write('A[',i,',',j,']='); Readln(A[i,j]); End; d := 0;
writeln('So nho hon',k,' la:'); For i := 1 to 5 do For j := 1 to 7 do If a[i,j] < k then Begin write(a[i,j]); d := d+1;
End;
3. Củng cố, dặn dò
- Kiểu mảng một chiều thờng đợc dùng trong những chơng trình cần tổ chức dữ liệu nh một dãy các phần tử cùng kiểu.
- Khi tổ chức dữ liệu có cấu trúc bảng, ngời ta dùng mảng hai chiều. - Mỗi biến mảng gồm nhiều phần tử, mỗi phần tử có chỉ số.
- Chuẩn bị trớc Bài tập và thực hành 3.
4. Câu hỏi và bài tập về nhà
- Làm các bài tập 6, 7, 8, 9, SGK, trang 79, 80.