Click to add Title2 2 KIỂU MẢNG HAI CHIỀU Xét bài toán tính và đưa ra bảng nhân như sau: 5 10 15 20 25 Em có nhận xét gì về dữ liệu trong các ô của bảng nhân?. Ta thấy bảng nhân chứa các
Trang 1GIÁO ÁN ĐIỆN TỬ MÔN TIN HỌC LỚP 11
Trang 2Bài 11
GIÁO ÁN ĐIỆN TỬ MÔN TIN HỌC LỚP 11
Trang 3Kiểm tra bài cũ:
Câu hỏi: Em hãy trình bày hai cách dùng để khai báo biến mảng một chiều ?
C1: Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
C2: 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>;
Trả lời:
Trang 4Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Xét bài toán tính và đưa ra bảng nhân như sau:
5 10 15 20 25
Em có nhận xét gì về dữ liệu trong các ô của bảng nhân?
Ta thấy bảng nhân chứa các giá trị có cùng kiểu dữ liệu.
Ta có thể biểu diễn bảng nhân bằng kiểu dữ liệu mảng hai chiều.
Trang 5Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Mảng 2 chiều là bảng các phần tử có cùng kiểu
Em có nhận xét gì các hàng của bảng nhân ?
Ta thấy mỗi hàng của bảng nhân là một mảng một chiều.
Như vậy ta có thể dùng 5 mảng một chiều, một mảng lưu một hàng của bảng nhân.
Trang 6Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Với cách lưu trữ như vậy ta phải khai báo bao nhiêu biến mảng một chiều ?
Ta phải khai báo 5 biến mảng một chiều.
Như vậy ta phải khai báo nhiều biến, viết chương trình nhập xuất
dữ liệu dài Làm thế nào để khắc phục khó khăn này ?
Trang 7Nế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.
Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Phần tử 1 Phần tử 2 Phần tử 3 Phần tử 4 Phần tử 5
Vậy để mô tả kiểu mảng hai chiều ta cần xác định các yếu tố chính nào?
pt1 pt2 pt3 pt4 pt5
Trang 8Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Các yếu tố để xây dựng mảng hai chiều:
Tên kiểu mảng hai chiều;
Số phần tử trên một hàng, số phần tử trên một cột;
Kiểu dữ liệu chung cho mọi phần tử của mảng;
Cách khai báo biến mảng hai chiều;
Cách tham chiếu đến phần tử trong mảng (xác định phần tử).
Trang 9Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
a Khai báo mảng hai chiều trong ngôn ngữ lập trình Pascal:
C1.Khai báo trực tiếp:
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ử>;
C2.Khai báo gián tiếp:
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>;
Trang 10Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Một số khai báo ví dụ:
Ví dụ 1: Var a : array[1 5, 1 6] of byte;
Hai ví dụ trên cùng khai báo mảng hai chiều có tên a gồm 5 dòng và 6 cột, các phần tử có kiểu dữ liệu là byte.
Ví dụ 2: Type m2c = array[1 5, 1 6] of byte;
Var a : m2c;
Trang 11Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Tham chiếu (truy cập) đến một phần tử trong mảng hai chiều:
4 8 12 16 20
5 10 15 20 25
Mảng hai chiều a
a[3,4]=12
Tham chiếu tới phần tử của mảng 2 chiều được xác định bởi?
Ví dụ: Tham chiếu đến phần tử ở dòng số 3, cột số 4 của mảng a.
Để tham chiếu đến phần tử ở dòng i, cột j của
Tên_biến_mảng [ chỉ số hàng, chỉ số cột ]
Trang 12Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
Nhập và xuất dữ liệu với mảng hai chiều:
- Nhập dữ liệu: Để nhập dữ liệu cho mảng hai chiều ta sử dụng cấu trúc sau:
for i := 1 to n do begin
for j := 1 to m do readln(a[i,j]);
writeln;
end;
for i := 1 to n do
begin
for j := 1 to m do
readln(a[i,j]);
writeln;
end ;
Trong cấu trúc bên:
i: là số dòng;
j: là số cột;
n: là số phần tử trên
một dòng;
m: là số phần tử
trên một cột;
Trang 13Click to add Title
2 2 KIỂU MẢNG HAI CHIỀU
- Xuất dữ liệu: Để xuất dữ liệu của mảng hai chiều ta sử dụng cấu trúc sau:
for i := 1 to n do begin
for j := 1 to m do write(a[i, j]:4);
writeln;
end;
for i := 1 to n do
begin
for j := 1 to m do
write(a[i, j]:4);
writeln;
end ;
- Nhập dữ liệu:
Trang 14b Ví dụ: chương trình sau đây sẽ tính và đưa ra màn hình bảng nhân trong ví dụ ban đầu:
4 8 12 16 20
5 10 15 20 25
Program Bang_nhan;
Uses crt;
i, j: byte;
Begin Clrscr;
for i := 1 to 5 do for j := 1 to 5 do
a[i,j] := i*j;
for i := 1 to 5 do begin
for j := 1 to 5 do
write(a[i,j]:4);
writeln;
end;
readln;
End.
Program Bang_nhan;
Uses crt;
Var a: array[1 5,1 5] of byte;
i, j: byte;
Begin Clrscr;
for i := 1 to 5 do for j := 1 to 5 do
a[i,j] := i*j;
for i := 1 to 5 do begin
for j := 1 to 5 do
write(a[i,j]:4);
writeln;
end;
readln;
End.
Trang 15 Củng cố kiến thức:
C1: 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ử>;
C2: 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>;
Khai báo mảng hai chiều:
Tham chiếu đến phần tử trong mảng hai chiều:
Tên_biến_mảng [ chỉ số hàng, chỉ số cột ]
Trang 16 Câu hỏi và bài tập về nhà:
Làm các bài tập số 8, 9, sách giáo khoa trang, 79, 80;
Xem trước nội dung của bài thực hành số 4, sách giáo khoa trang 65.