1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Mảng 2 chiều

11 1,7K 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 236 KB

Nội dung

-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 1

KIỂ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 2

Tiế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 3

Tiế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 4

Tiế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 5

Tiế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 6

Tiế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 7

Tiế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 8

Tiế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 9

Câ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 10

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

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 11

Tiế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;

Ngày đăng: 23/07/2013, 01:26

TỪ KHÓA LIÊN QUAN

w