Bài 11. Kiểu mảng

Chia sẻ bởi Nguyễn Thượng Hảo | Ngày 10/05/2019 | 104

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:

TRƯỜNG THPT CẦU KÈ
SỞ GIÁO DỤC & ĐÀO TẠO TRÀ VINH

THAO GIẢNG CHÀO MỪNG NGÀY NHÀ GIÁO VIỆT NAM – 20/11
Đặng Hữu Hoàng
Bài 11:
KIỂU MẢNG (tt)
KIỂM TRA BÀI CŨ
Viết cách khai báo mảng một chiều theo 2 cách (trực tiếp và gián tiếp)
Cho 1 ví dụ về cách khai báo trực tiếp mảng B gồm 5 phần tử, các phần tử có kiểu số thực.
Để tham chiếu đến phần tử thứ 3 của mảng B ta viết như thế nào?
2. KIỂU MẢNG HAI CHIỀU
Nghiên cứu sách giáo khoa, em hiểu như thế nào là mảng hai chiều?
 Mảng hai chiều là bảng các phần tử cùng kiểu.
 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.
Những yếu tố nào để xác định mảng hai chiều?
Tên kiểu mảng.
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 của mỗi phần tử.
Cách khai báo biến
Cách tham chiếu đến từng phần tử.
A
Ví dụ
1 2 3 4
1

2

3
Trong đó
* Khi tham chiếu đến phần tử ở dòng i cột j ta viết: A[i,j].
Ví dụ: A[2,3]= 8.
* Tên mảng: A;
* Mảng gồm: 3 dòng 4 cột;
* Kiểu dữ liệu của các phần tử: kiểu nguyên;

1

7

3

9

6

7

4

2

8

9

3

5
a. Khai báo mảng hai chiều trong Pascal
Cấu trúc khai báo gián tiếp kiểu mảng hai chiều trong Pascal?
TYPE = array[] of ;
Ví dụ: Type bang = array[1..9,1..9] of integer;
Var A:bang;
VAR : ;
2. KIỂU MẢNG HAI CHIỀU
Cấu trúc khai báo trực tiếp kiểu mảng hai chiều trong Pascal?
VAR : array[] of ;
Ví dụ: Var bang : array[1..9,1..9] of integer;
Var B : array[1..10,1..20] of real;
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
Quan sát một số khai báo kiểu mảng hai chiều hợp lệ như sau:

Type
MangST=array[-100..200,100..200] of real;
MangSN=array[1..5,1..6] of Integer;
Var
ST:MangST;
A:array[1..10,1..15] of integer;

Cách tham chiếu tới phần tử của mảng hai chiều như thế nào?
[chỉ số dòng,chỉ số cột]
b. Tham chiếu đến từng phần tử của mảng
A
1 2 3 4
* Khi tham chiếu đến phần tử ở dòng i cột j ta viết: A[i,j].
Ví dụ: A[2,3]= 8.

1

7

3

9

6

7

4

2

8

9

3

5
1

2

3
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
1. Nhập số dòng (n), số cột (m)
Write(‘ Nhap vao so dong, cot:’);
Readln(n,m);
2. Nhập vào giá trị của các phần tử trong mảng A[i,j]
For i:= 1 to n do
For j:=1 to m do
Begin
write(‘A[’,i,j,’ ] = ’ );
readln(A[i,j]);
end;
Writeln(‘ Mang vua nhap : ’);
For i:=1 to n do
Begin
For j:=1 to m do Write(A[i,j],’ ’);
Writeln;
end;
3. Thông báo ra màn hình
4. In giá trị các phần tử
Chú ý: Các thao tác xử lí mảng hai chiều thường dùng hai câu lệnh For...do lồng nhau.
b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
Quan sát sách giáo khoa trang 61, chương trình tính và đưa ra màn hình bảng cửu chương từ 1 đến 9 trong Pascal
b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
c. Một số ví dụ: Chương trình tính và đưa ra màn hình bảng cửu chương từ 1 đến 9 trong Pascal
For i :=1 to 9 do
For j:=1 to 9 do
A[i,j] := i*j;
* Tính
Quan sát bảng cửu chương ta thấy
A[2,5]=2 x 5 = 10
A[5,8]=5 x 8 = 40
A[8,4]=8 x 4 = 32
A[i,j]= ?
A[i,j]=i*j
b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
c. Một số ví dụ:Chương trình tính và đưa ra màn hình bảng cửu chương từ 1 đến 9 trong Pascal

b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
c. Một số ví dụ: Chương trình tính và đưa ra màn hình bảng cửu chương từ 1 đến 9 trong Pascal

Quan sát chương trình chạy và các kết quả như sau
b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
c. Một số ví dụ:
Quan sát sách giáo khoa trang 62, chương trình 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.
b. Tham chiếu đến từng phần tử của mảng
a. Khai báo mảng hai chiều trong Pascal
2. KIỂU MẢNG HAI CHIỀU
c. Một số ví dụ:
Câu 1
Chọn các phát biểu sai trong các phát biểu sau:
1. 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;
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
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
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
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
Ghi nhớ
? 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ảng một chiều.
? Khai báo: tên mảng, kiểu chỉ số dòng, kiểu chỉ số cột, kiểu phần tử.
? Tham chiếu phần tử mảng:
Tên biến mảng[cs dòng,cs cột]
? Thao tác xử lí thường dùng cấu trúc hai câu lệnh FOR . DO lồng nhau.
20 19
25 18
12 16
Var
A:ARRAY[1..3,1..3] OF integer;
A[1,3] = 19
DẶN DÒ
1. Xem trước “Bài tập và thực hành 3” -Sách Giáo Trang 63 - Sách giáo khoa.
2. Làm bài tập 9 - Sách Giáo khoa trang 80
* 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ẻ: Nguyễn Thượng Hảo
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)