Bài 11. Kiểu mảng
Chia sẻ bởi Châu Quốc Phong |
Ngày 10/05/2019 |
126
Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11
Nội dung tài liệu:
Bài 11 : KIỂU MẢNG
Kiểu mảng một chiều
Kiểu mảng hai chiều
Kiểu mảng một chiều :
Khai báo :
- Khai báo trực tiếp
- Khai báo gián tiếp
var : array[kiểu chỉ số] of ;
type = array[kiểu chỉ số] of ;
var : ;
Tham chiếu tới phần tử mảng một chiều :
Tên_biến [chỉ số]
Xét bài toán và đưa ra màn hình bảng nhân
Ta có thể xem mỗi dòng của bảng nhân là 1 mảng một chiều cùng kích thước
Mảnng 1
Mảnng 2
Mảnng 3
Mảnng 4
Mảnng 5
Mảnng 6
Mảnng 7
Mảnng 8
Mảnng 9
Như vậy ta sẽ sử dụng 9 mảng một chiều,
một mảng lưu một hàng của bảng nhân
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
2
2
4
3
2
6
4
2
8
5
2
10
6
2
12
2
2
14
8
7
16
9
2
18
10
2
20
2
1
2
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
12
6
18
24
30
36
42
48
54
60
7
14
28
21
35
49
42
56
63
70
8
16
24
32
40
48
56
64
72
80
9
18
27
36
45
54
63
72
81
90
Với cách lưu trữ như vậy ta phải khai báo bao nhiêu biến mảng
Khai báo 9 biến
mảng một chiều
Var B1 : array[1..10] of integer ;
B2 : array[1..10] of integer ;
B3 : array[1..10] of integer ;
B4 : array[1..10] of integer ;
B5 : array[1..10] of integer ;
B6 : array[1..10] of integer ;
B7 : array[1..10] of integer ;
B8 : array[1..10] of integer ;
B9 : array[1..10] of integer ;
Hoặc
Var B1, B2, B3, B4, B5, B6, B7, B8, B9 : array[1..10] of integer ;
Với cách khai báo như vậy ta gặp phải những khó khăn gì ?
Khai báo nhiều biến, viết chương trình nhập/xuất dữ liệu dài.
Để khắc phục những khó khăn đó, ta xem một mảng một chiều là một phần tử, ta ghép 9 mảng một chiều lại thành một mảng hai chiều.
? Hay nói cách khác, Mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là một mảng một chiều.
Kiểu mảng hai chiều
* Mảng hai chiều là bảng các phần tử cùng kiểu
* Các yếu tố xác định mảng hai chiều:
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ử ;
a). Khai báo
Khai báo trực tiếp:
Khai báo gián tiếp:
var : array[kiểu chỉ số hàng, kiểu chỉ số cột] of ;
type = array[kiểu chỉ số hàng, kiểu chỉ số cột] of ;
var : ;
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 integer;
Áp dụng 1:
Vieát khai baùo bieán maûng hai chieàu B löu tröõ baûng nhaân (baûng cöûu chöông).
Khai báo:
var B : array[1..9,1..10] of integer ;
Áp dụng 2:
Viết khai báo biến A là một bảng (ma trận vuông) nhận các giá trị nguyên gồm N cột và N dòng (N?100), với các cột được đánh số từ 1 đến N và các dòng đánh số từ 1 đến N.
Khai báo:
const N = 100;
type ArrayInt = array[1..N, 1..N] of integer ;
var A : ArrayInt ;
* Tham chiếu tới phần tử mảng hai chiều
Tham chiếu tới phần tử mảng hai chiều được xác định bởi tên mảng cùng với hai chỉ số được phân cách bởi dấu phẩy và viết trong cặp ngoặc vuông "[" và "]"
tên_biến[chỉ số hàng , chỉ số cột]
Ví dụ: Tham chiếu tới phần tử ở hàng thứ 5 cột thứ 7 của biến mảng B
35
5
7
B[5,7]
b). Một số ví dụ
Ví dụ 1: Chương trình sau tính và đưa ra màn hình bảng nhân.
Ví dụ 2: Chương trình sau nhập vào từ bàn 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. Sau đó đưa ra màn hình các phần tử của mảng có giá trị nhỏ hơn k.
Khóa k = ?
Ý tưởng
AI VẬY NHỈ ?
1
2
3
4
01
02
03
04
Câu 1
Chọn các phát biểu sai trong các phát biểu sau:
1. Mảng một chiều là mảng hai chiều, mà mỗi phần tử của nó lại là một mảng một chiều;
2. Mảng hai chiều là bảng các phần tử cùng kiểu;
3. Kiểu các phần tử có thể là kiểu kí tự;
4. Kiểu chỉ số thường là một đoạn số thực liên tục ;
4
AI VẬY NHỈ ?
1
2
3
4
01
02
03
04
Khai báo nào đúng trong các khai báo sau:
Câu 2
1. var A: array[3.4..4.8, 5.5..8.5] of integer;
2. var A: array[10000..11000, 10000..12000] of real;
3. var A: array[1..10; 1..10] of integer;
4. var A=array[1..5, 1..10] of real ;
2
AI VẬY NHỈ ?
2
3
4
01
02
03
04
Câu 3
Giả thiết M là mảng hai chiều được khai báo như sau:
var M: array[1..10, 1..10] of integer ;
Tham chiếu đến phần tử ở cột thứ 5 hàng thứ 10, được viết:
1. M[5,10]
2. M:array[10,5]
3. M [10;5]
4. M [10,5]
4
AI VẬY NHỈ ?
3
4
01
02
03
04
Câu 4
Xeùt ñoaïn leänh sau:
for i:= 1 to 5 do
for j:= 1 to 5 do
begin
write(‘M[ ’, i , ‘ , ’, j , ‘ = ’);
readln(M[i,j]);
end;
Ñieàu khaúng ñònh naøo sau ñaây laø ñuùng?
1. Nhập giá trị các phần tử cho mảng M gồm 5 hàng và 5 cột;
2. Nhập giá trị các phần tử cho mảng M gồm 10 hàng và 10 cột;
3. Xuất giá trị các phần tử mảng M gồm 5 hàng và 5 cột
4. Xuất giá trị các phần tử mảng M gồm 10 hàng và 10 cột;
1
Xin giới thiệu
4
01
02
03
04
Nhà toán học và triết học người Pháp Blaise Pascal
Những điểm cần lưu ý
Dặn dò:
Các em về học bài và làm các bài tập ở nhà bài 8, 9 trang 79, 80 SGK.
Xem và chuẩn bị Bài tập và thực hành 3, 4
Tiết học đến đây là hết
Xin chúc quý Thầy Cô cùng các em học sinh Vui Khoẻ và Thành công.
Xin cám ơn!
Kiểu mảng một chiều
Kiểu mảng hai chiều
Kiểu mảng một chiều :
Khai báo :
- Khai báo trực tiếp
- Khai báo gián tiếp
var
type
var
Tham chiếu tới phần tử mảng một chiều :
Tên_biến [chỉ số]
Xét bài toán và đưa ra màn hình bảng nhân
Ta có thể xem mỗi dòng của bảng nhân là 1 mảng một chiều cùng kích thước
Mảnng 1
Mảnng 2
Mảnng 3
Mảnng 4
Mảnng 5
Mảnng 6
Mảnng 7
Mảnng 8
Mảnng 9
Như vậy ta sẽ sử dụng 9 mảng một chiều,
một mảng lưu một hàng của bảng nhân
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
2
2
4
3
2
6
4
2
8
5
2
10
6
2
12
2
2
14
8
7
16
9
2
18
10
2
20
2
1
2
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
12
6
18
24
30
36
42
48
54
60
7
14
28
21
35
49
42
56
63
70
8
16
24
32
40
48
56
64
72
80
9
18
27
36
45
54
63
72
81
90
Với cách lưu trữ như vậy ta phải khai báo bao nhiêu biến mảng
Khai báo 9 biến
mảng một chiều
Var B1 : array[1..10] of integer ;
B2 : array[1..10] of integer ;
B3 : array[1..10] of integer ;
B4 : array[1..10] of integer ;
B5 : array[1..10] of integer ;
B6 : array[1..10] of integer ;
B7 : array[1..10] of integer ;
B8 : array[1..10] of integer ;
B9 : array[1..10] of integer ;
Hoặc
Var B1, B2, B3, B4, B5, B6, B7, B8, B9 : array[1..10] of integer ;
Với cách khai báo như vậy ta gặp phải những khó khăn gì ?
Khai báo nhiều biến, viết chương trình nhập/xuất dữ liệu dài.
Để khắc phục những khó khăn đó, ta xem một mảng một chiều là một phần tử, ta ghép 9 mảng một chiều lại thành một mảng hai chiều.
? Hay nói cách khác, Mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là một mảng một chiều.
Kiểu mảng hai chiều
* Mảng hai chiều là bảng các phần tử cùng kiểu
* Các yếu tố xác định mảng hai chiều:
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ử ;
a). Khai báo
Khai báo trực tiếp:
Khai báo gián tiếp:
var
type
var
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 integer;
Áp dụng 1:
Vieát khai baùo bieán maûng hai chieàu B löu tröõ baûng nhaân (baûng cöûu chöông).
Khai báo:
var B : array[1..9,1..10] of integer ;
Áp dụng 2:
Viết khai báo biến A là một bảng (ma trận vuông) nhận các giá trị nguyên gồm N cột và N dòng (N?100), với các cột được đánh số từ 1 đến N và các dòng đánh số từ 1 đến N.
Khai báo:
const N = 100;
type ArrayInt = array[1..N, 1..N] of integer ;
var A : ArrayInt ;
* Tham chiếu tới phần tử mảng hai chiều
Tham chiếu tới phần tử mảng hai chiều được xác định bởi tên mảng cùng với hai chỉ số được phân cách bởi dấu phẩy và viết trong cặp ngoặc vuông "[" và "]"
tên_biến[chỉ số hàng , chỉ số cột]
Ví dụ: Tham chiếu tới phần tử ở hàng thứ 5 cột thứ 7 của biến mảng B
35
5
7
B[5,7]
b). Một số ví dụ
Ví dụ 1: Chương trình sau tính và đưa ra màn hình bảng nhân.
Ví dụ 2: Chương trình sau nhập vào từ bàn 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. Sau đó đưa ra màn hình các phần tử của mảng có giá trị nhỏ hơn k.
Khóa k = ?
Ý tưởng
AI VẬY NHỈ ?
1
2
3
4
01
02
03
04
Câu 1
Chọn các phát biểu sai trong các phát biểu sau:
1. Mảng một chiều là mảng hai chiều, mà mỗi phần tử của nó lại là một mảng một chiều;
2. Mảng hai chiều là bảng các phần tử cùng kiểu;
3. Kiểu các phần tử có thể là kiểu kí tự;
4. Kiểu chỉ số thường là một đoạn số thực liên tục ;
4
AI VẬY NHỈ ?
1
2
3
4
01
02
03
04
Khai báo nào đúng trong các khai báo sau:
Câu 2
1. var A: array[3.4..4.8, 5.5..8.5] of integer;
2. var A: array[10000..11000, 10000..12000] of real;
3. var A: array[1..10; 1..10] of integer;
4. var A=array[1..5, 1..10] of real ;
2
AI VẬY NHỈ ?
2
3
4
01
02
03
04
Câu 3
Giả thiết M là mảng hai chiều được khai báo như sau:
var M: array[1..10, 1..10] of integer ;
Tham chiếu đến phần tử ở cột thứ 5 hàng thứ 10, được viết:
1. M[5,10]
2. M:array[10,5]
3. M [10;5]
4. M [10,5]
4
AI VẬY NHỈ ?
3
4
01
02
03
04
Câu 4
Xeùt ñoaïn leänh sau:
for i:= 1 to 5 do
for j:= 1 to 5 do
begin
write(‘M[ ’, i , ‘ , ’, j , ‘ = ’);
readln(M[i,j]);
end;
Ñieàu khaúng ñònh naøo sau ñaây laø ñuùng?
1. Nhập giá trị các phần tử cho mảng M gồm 5 hàng và 5 cột;
2. Nhập giá trị các phần tử cho mảng M gồm 10 hàng và 10 cột;
3. Xuất giá trị các phần tử mảng M gồm 5 hàng và 5 cột
4. Xuất giá trị các phần tử mảng M gồm 10 hàng và 10 cột;
1
Xin giới thiệu
4
01
02
03
04
Nhà toán học và triết học người Pháp Blaise Pascal
Những điểm cần lưu ý
Dặn dò:
Các em về học bài và làm các bài tập ở nhà bài 8, 9 trang 79, 80 SGK.
Xem và chuẩn bị Bài tập và thực hành 3, 4
Tiết học đến đây là hết
Xin chúc quý Thầy Cô cùng các em học sinh Vui Khoẻ và Thành công.
Xin cám ơn!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Châu Quốc Phong
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)