-Mỗi phần tử được xác định thông qua 2 chỉ số: chỉ số dòng, chỉ số cột.. Mỗi phần tử được xác định như thế nào?. Mỗi phần tử được xác định như thế nào?. Mỗi phần tử được xác định thông q
Trang 1KIỂM TRA BÀI CŨ
Nhập vào một số nguyên N và dãy N số nguyên (2<N<=100) Hãy khai báo 1 biến để nhận dãy số nguyên đó.
Nhập vào một số nguyên N và dãy N số nguyên (2<N<=100) Hãy khai báo 1 biến để nhận dãy số nguyên đó.
Hoặc:
Var A: ARRAY[1 100] OF INTEGER;
Hoặc:
Var A: ARRAY[1 100] OF INTEGER;
Type Mang1c= ARRAY[1 100] OF INTEGER;
Var A: Mang1c;
Type Mang1c= ARRAY[1 100] OF
INTEGER;
Var A: Mang1c;
Trang 2Tiết 24: §11 KIỂU MẢNG (T4)
I.KIỂU MẢNG MỘT
CHIỀU:
I.KIỂU MẢNG MỘT
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
Ví dụ 1:Xét bài toán tính và đưa
ra màn hình bảng nhân như sau:
Ví dụ 1:Xét bài toán tính và đưa
0
2 4 6 8 1
0 1 2 14 1 6 1 8 2 0
3 6 9 1
2 1 5 1 8 21 2 4 2 7 3 0
4 8 1
2 1 6 2 0 2 4 28 3 2 3 6 4 0
5 10 1
5 2 0 2 5 3 0 35 4 0 4 5 5 0
6 12 1
8 2 4 3 0 3 6 42 4 8 5 4 6 0
7 14 2
1 2 8 3 5 4 2 49 5 6 6 3 7 0
8 16 2
4 3 2 4 0 4 8 56 6 4 7 2 8 0
9 18 2
7 3 6 4 5 5 4 63 7 2 8 1 9 0
Các NNLT cho phép biểu diễn bảng dạng như thế này bằng
KDL mảng 2 chiều
Các NNLT cho phép biểu diễn bảng dạng như thế này bằng
KDL mảng 2 chiều
*nhận xét:
-Các phần tử trong bảng cùng
1 KDL(số nguyên)
-Các phần tử trong bảng cùng
1 KDL(số nguyên)
1 2 3 4 5 6 7 8 9
10
1 2 3 4 5 6 7 8 9
101
2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
B
KDL của các phần tử trong bảng
KDL của các phần tử trong bảng
-Mỗi phần tử được xác định
thông qua 2 chỉ số: chỉ số
dòng, chỉ số cột
-Mỗi phần tử được xác định
thông qua 2 chỉ số: chỉ số
dòng, chỉ số cột
Mỗi phần tử được xác định như thế nào?
Mỗi phần tử được xác định như thế nào?
Thế nào là mảng 2 chiều?
Thế nào là mảng 2 chiều?
Trang 3Tiết 24: §11 KIỂU MẢNG (T4)
I.KIỂU MẢNG MỘT
CHIỀU:
I.KIỂU MẢNG MỘT
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:1.Khái niệm:
*Các yếu tố xác định
mảng 2 chiều:
*Các yếu tố xác định
mảng 2 chiều:
-Tên kiểu mảng
-Mảng 2 chiều là bảng các phần tử có cùng 1 kiểu dữ liệu Mỗi phần tử được xác định thông qua 2 chỉ số: dòng, cột
-Mảng 2 chiều là bảng các phần tử có cùng 1 kiểu dữ liệu Mỗi phần tử được xác định thông qua 2 chỉ số: dòng, cột
-Số phần tử trên một dòng, số phần tử trên
một cột
-Số phần tử trên một dòng, số phần tử trên
một cột
-Kiểu dữ liệu chung của mọi phần tử
Các yếu tố xác định mảng
2 chiều ?
Các yếu tố xác định mảng
2 chiều ?
Trang 4Tiết 24: §11 KIỂU MẢNG (T4)
I.KIỂU MẢNG MỘT
CHIỀU:
I.KIỂU MẢNG MỘT
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
2.Khai báo:
Ví dụ:
Type Mang2c=ARRAY[1 9,1 10] OF INTEGER;
Var B: Mang2c;
Ví dụ:
Type Mang2c=ARRAY[1 9,1 10] OF INTEGER;
Var B: Mang2c;
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ử> ;
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ử> ;
1.Khái niệm:-Mảng 2 chiều là bảng các phần tử có
cùng 1 kiểu dữ liệu
-Mảng 2 chiều là bảng các phần tử có cùng 1 kiểu dữ liệu
Hoặc:
VAR <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ử>;
Hoặc:
VAR <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>;
VAR <tên biến mảng>: <tên kiểu mảng>;
Trang 5Tiết 24: §11 KIỂU MẢNG (T4)
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
3 Tham chiếu tới phần tử
của mảng:
3 Tham chiếu tới phần tử
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
1 2 3 4 5 6 7 8 9
10
1 2 3 4 5 6 7 8 9
10 1
2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
B[7,4]
TÊN BIẾN MẢNG[Chỉ số dòng ,
chỉ số cột]
TÊN BIẾN MẢNG[Chỉ số dòng ,
chỉ số cột]
VD:Để tham chiếu tới phần
tử ở dòng 2, cột 1 trong mảng
B:
VD:Để tham chiếu tới phần
tử ở dòng 2, cột 1 trong mảng
4 Nhập -xuất dữ liệu
cho biến mảng:
4 Nhập -xuất dữ liệu
cho biến mảng: *Nhập giá trị cho biến mảng
A có m dòng, n cột:
*Nhập giá trị cho biến mảng
A có m dòng, n cột:
-Dùng 2 vòng FOR lồng
nhau
-Dùng 2 vòng FOR lồng
nhau
FOR i:=1 TO m DO
FOR j:=1 TO n DO <nhập giá trị cho phần
tử ở dòng i, cột j của mảng A> ;
FOR i:=1 TO m DO
FOR j:=1 TO n DO <nhập giá trị cho phần
tử ở dòng i, cột j của mảng A> ;
B
1 2 3 4 5 6 7 8 9
10
1 2 3 4 5 6 7 8 9
10 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9
10
Trang 6Tiết 24: §11 KIỂU MẢNG (T4)
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
4 Nhập -xuất dữ liệu cho biến
mảng:
4 Nhập -xuất dữ liệu cho biến
mảng: *Nhập: FOR i:=1 TO m DO
FOR j:=1 TO n DO
*Nhập: FOR i:=1 TO m DO
FOR j:=1 TO n DO
hoặc thay lệnh Read(A[i,j]) bởi:A[i,j]:=<biểu thức>;
hoặc thay lệnh Read(A[i,j]) bởi:A[i,j]:=<biểu thức>;
3 Tham chiếu tới phần
tử của mảng:
3 Tham chiếu tới phần
tử của mảng:
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
*Xuất: FOR i:=1 TO m DO
BEGIN
FOR j:=1 TO n DO Write(A[i,j]);
Writeln;
END;
*Xuất: FOR i:=1 TO m DO
BEGIN
FOR j:=1 TO n DO Write(A[i,j]);
Writeln;
END;
Read(A[i,j]);
Trang 7Tiết 24: §11 KIỂU MẢNG (T4)
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
1 2 3 4 5 6 7 8 9 1
0
2 4 6 8 1
0 1 2 14 1 6 1 8 2 0
3 6 9 1
2 1 5 1 8 21 2 4 2 7 3 0
4 8 1
2 1 6 2 0 2 4 28 3 2 3 6 4 0
5 10 1
5 2 0 2 5 3 0 35 4 0 4 5 5 0
6 12 1
8 2 4 3 0 3 6 42 4 8 5 4 6 0
7 14 2
1 2 8 3 5 4 2 49 5 6 6 3 7 0
8 16 2
4 3 2 4 0 4 8 56 6 4 7 2 8 0
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
B[7,9]:=7*9
B
1 2 3 4 5 6 7 8 9
10
1 2 3 4 5 6 7 8 9
10
RUN
*Nhập: FOR i:=1 TO 9 DO
FOR j:=1 TO 10 DO
A[i,j]:=i*j;
*Nhập: FOR i:=1 TO 9 DO
FOR j:=1 TO 10 DO
A[i,j]:=i*j;
*Xuất: FOR i:=1 TO 9 DO BEGIN
FOR j:=1 TO 10
DO Write(A[i,j]);
Writeln;
END;
*Xuất: FOR i:=1 TO 9 DO BEGIN
FOR j:=1 TO 10
DO Write(A[i,j]);
Writeln;
END;
Ví dụ 1:
5.Ví dụ áp dụng:
Trang 8Tiết 24: §11 KIỂU MẢNG (T4)
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
3.Tham chiếu tới phần tử
của mảng:
3.Tham chiếu tới phần tử
của mảng:
4 Nhập -xuất dữ liệu
cho biến mảng:
4 Nhập -xuất dữ liệu
cho biến mảng:
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
5.Ví dụ áp dụng:
Ví dụ 2: Viết chương trình nhập vào bảng số nguyên có m dòng, n cột và 1 số nguyên K bất kỳ Đưa ra màn hình số
lượng phần tử có giá trị nhỏ hơn số K
Ví dụ 2: Viết chương trình nhập vào bảng số nguyên có m dòng, n cột và 1 số nguyên K bất kỳ Đưa ra màn hình số
lượng phần tử có giá trị nhỏ hơn số K
•INPUT: -m,n: số nguyên (số dòng, số cột); 1số nguyên k
-A:Bảng số nguyên có m dòng, n cột;
•INPUT: -m,n: số nguyên (số dòng, số cột); 1số nguyên k
-A:Bảng số nguyên có m dòng, n cột;
*OUTPUT: Số lượng phần tử có giá trị=k
(A[i,j] =k)
*OUTPUT: Số lượng phần tử có giá trị=k
(A[i,j] =k)
PRO
Trang 9Câu 1: Chọn khai báo hợp lệ:
a TYPE ARRAY[1 5,1 6] OF INTEGER;
Câu 1: Chọn khai báo hợp lệ:
a TYPE ARRAY[1 5,1 6] OF INTEGER;
b VAR M2C:ARRAY[1 6, -100 200] OF
CHAR;
b VAR M2C:ARRAY[1 6, -100 200] OF
CHAR;
c TYPE ARRAYB=ARRAY[1 100, -100 200] OF BOOLEAN;
c TYPE ARRAYB=ARRAY[1 100, -100 200] OF BOOLEAN;
d VAR MR: ARRAY[BYTE,1 5] OF REAL;
Trang 10Câu 2: Hãy cho biết chương trình sau đây thực hiện các công việc
gì và kết quả của chương trình đưa ra trên màn hình?
PROGRAM VIDU;
VAR B: ARRAY[1 10,1 20] OF INTEGER;
I, J: INTEGER;
BEGIN
FOR I:=1 TO 3 DO
FOR J:=1 TO 4 DO B[I,J]:=I*J ;
FOR I:=1 TO 3 DO
FOR I:=1 TO 4 DO IF B[I,J] MOD 3 =0 THEN WRITE( B[I,J]:4);
READLN;
END
Câu 2: Hãy cho biết chương trình sau đây thực hiện các công việc
gì và kết quả của chương trình đưa ra trên màn hình?
PROGRAM VIDU;
VAR B: ARRAY[1 10,1 20] OF INTEGER;
I, J: INTEGER;
BEGIN
FOR I:=1 TO 3 DO
FOR J:=1 TO 4 DO B[I,J]:=I*J ;
FOR I:=1 TO 3 DO
FOR I:=1 TO 4 DO IF B[I,J] MOD 3 =0 THEN WRITE( B[I,J]:4);
READLN;
END
Trang 11Tiết 24: §11 KIỂU MẢNG (T4)
I.KIỂU MẢNG MỘT
CHIỀU:
I.KIỂU MẢNG MỘT
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
II.KIỂU MẢNG HAI
CHIỀU:
2.Khai báo:
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>;
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>;
1.Khái niệm:-Mảng 2 chiều là bảng các phần tử có
cùng 1 kiểu dữ liệu
-Mảng 2 chiều là bảng các phần tử có cùng 1 kiểu dữ liệu
3 Tham chiếu tới phần
tử của mảng:
3 Tham chiếu tới phần
tử của mảng:
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
TÊN BIẾN MẢNG [Chỉ số dòng , chỉ số cột]
4 Nhập -xuất dữ liệu cho biến
mảng:
4 Nhập -xuất dữ liệu cho biến
mảng: *Nhập: FOR i:=1 TO m DO
FOR j:=1 TO n DO Read(A[i,j]);
*Nhập: FOR i:=1 TO m DO
FOR j:=1 TO n DO Read(A[i,j]);
*Xuất: FOR i:=1 TO m DO BEGIN
FOR j:=1 TO n DO Write(A[i,j]); Writeln;
END;
BEGIN
FOR j:=1 TO n DO Write(A[i,j]); Writeln;
END;