Bài 11. Kiểu mảng
Chia sẻ bởi Đàm Thị Phương Hoài |
Ngày 10/05/2019 |
64
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:
KIỂM TRA BÀI CŨ
Em hãy nêu cấu trúc tổng quát khai báo mảng 1 chiều? Lấy ví dụ?
Đáp án:
Cách 1: Khai báo trực tiếp:
Var: array[kiểu chỉ số] of ;
Cách 2: Khai báo gián tiếp
Type= array[kiểu chỉ số] of ;
Var:;
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân
Với kiến thức về mảng một chiều đã học, em hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng nhân?
Sử dụng 9 mảng một chiều, mỗi mảng lưu một hàng của bảng
Khai báo 9 biến mảng một chiều.
- Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo và in giá trị của mảng.
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân (sgk)
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 như vậy có những
hạn chế nào?
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân
* Khái niệm mảng hai chiều: Là bảng các phần tử cùng kiểu
Em hãy nhắc lại để mô tả
mảng một chiều cần xác
định các yếu tố nào?
*Các yếu tố cần xác định để mô tả kiểu mảng hai chiều:
Tên mảng hai chiều
Số lượng các phần tử của hàng và cột
Kiểu của các phần từ
Cách khai báo biến mảng
Cách tham chiếu đến phần tử của mảng
* Ví dụ: Khai báo biến mảng 2 chiều B để lưu trữ bảng nhân:
Var B: array [1..9] of array [1..10] of integer;
Hoặc khai báo ngắn gọn:
Var B: array [1..9,1..10] of integer;
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
b) Cách khai báo: Tổng quát khai báo biến mảng 2 chiều trong Pascal
C1: Trực tiếp:
Var:array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
C2: Gián tiếp:
Type = array[kiểu chỉ số hàng, kiểu chỉ số cột] of ;
Var:;
*Trong đó:
- Type, var, of, array là các từ khoá.
- tến biến mảng, tên kiểu mảng do người lập trình đặt.
- KCSH, KCSC: [n1..n2,n1’..n2’] là 2 đoạn nguyên liên tiếp với n1≤n2; n1’≤n2’; n1, n1’ có thể giống hoặc có giá trị khác nhau; n1, n2, n1’, n2’ là hằng hoặc biểu thức có giá trị nguyên.
Ví dụ1: Khai báo biến mảng A để lưu trữ mảng gồm 5 dòng 7 cột các phần tử thuộc kiểu nguyên
+C1: Trực tiếp:
Var A: array[1..5,1..7] of Integer;
+ C2: Gián tiếp:
Type Mang1=array[1..5,1..7] of Integer;
Var A: Mang1;
Ví dụ 2: Nhận biết đúng/sai của các khai báo sau:
a, Type
mang1=array[-5..50, 1..10]of Integer;
Var A:mang1;
b. Type
mang2 = array[10..1,1..15] of char;
Var E:Mang;
c, Var C: array[0..3*2n, 0..n] of Integer;
d, Var D:array[1.5 .. 10, 2..10] of real;
Đáp án: Đúng ý a, c
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
b) Cách khai báo
Mang
1
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
c.Tham chiếu đến một phần tử của mảng hai chiều
Em hãy nhắc lại
cách tham chiếu
phần tử của mảng một chiều
Tênbiến[chỉ số hàng,chỉ số cột]
Ví dụ1: B[2, 5]
Có nghĩa là tham chiếu đến phần tử ở hàng thứ 2 cột 5của bảng nhân.
Tiết 23 11 KIỂU MẢNG
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8 9 10
A[5,7]
2. Kiểu mảng hai chiều
c.Tham chiếu đến một phần tử của mảng hai chiều
Tênbiến[chỉ số hàng,chỉ số cột]
Ví dụ2: B[5, 7]
d. ví dụ
Chương trình sau đưa ra màn hình bảng cửu chương .
Program cuuchuong;
Uses crt ;
var A : Array[1..9,1..10] of Integer ;
i, j : Byte ;
Begin
Clrscr ;
Writeln(`Bang cuu chuong 1 -> 9 : `);
Writeln ;
For i := 1 to 9 do {Tính các phần tử của bảng nhân}
For j := 1 to 10 do
A[i,j] := i*j ;
For i := 1 to 9 do {In các phần tử của bảng nhân}
Begin
For j := 1 to 10 do Write(a[i,j]:4);
Writeln ;
Writeln ;
End ;
Readln ;
End .
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
Hãy nhớ!
Mảng hai chiều là bảng các phần tử cùng kiểu
Khai báo: Tên mảng, chỉ số đâù và chỉ số cuối của mỗi chiều, kiểu phần tử
Tham chiếu phần tử mảng hai chiều:
Tên biến mảng[chỉ số dòng, chỉ số cột]
Nhiều thao tác xử lý mảng dùng cấu trúc lặp FOR ..TO.. DO.
Var A:ARRAY[1..10,1..20] OF integer;
A[1,4] = 0
Câu hỏi và bài tập về nhà:
Làm các bài tập số 1, 2, 3, 4 sách giáo khoa trang, 79 SGK
Xem trước nội dung của bài tập và thực hành 3 (sgk - 63)
Em hãy nêu cấu trúc tổng quát khai báo mảng 1 chiều? Lấy ví dụ?
Đáp án:
Cách 1: Khai báo trực tiếp:
Var
Cách 2: Khai báo gián tiếp
Type
Var
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân
Với kiến thức về mảng một chiều đã học, em hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng nhân?
Sử dụng 9 mảng một chiều, mỗi mảng lưu một hàng của bảng
Khai báo 9 biến mảng một chiều.
- Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo và in giá trị của mảng.
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân (sgk)
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 như vậy có những
hạn chế nào?
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
a) Xét bài toán: Bảng nhân
* Khái niệm mảng hai chiều: Là bảng các phần tử cùng kiểu
Em hãy nhắc lại để mô tả
mảng một chiều cần xác
định các yếu tố nào?
*Các yếu tố cần xác định để mô tả kiểu mảng hai chiều:
Tên mảng hai chiều
Số lượng các phần tử của hàng và cột
Kiểu của các phần từ
Cách khai báo biến mảng
Cách tham chiếu đến phần tử của mảng
* Ví dụ: Khai báo biến mảng 2 chiều B để lưu trữ bảng nhân:
Var B: array [1..9] of array [1..10] of integer;
Hoặc khai báo ngắn gọn:
Var B: array [1..9,1..10] of integer;
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
b) Cách khai báo: Tổng quát khai báo biến mảng 2 chiều trong Pascal
C1: Trực tiếp:
Var
C2: Gián tiếp:
Type
Var
*Trong đó:
- Type, var, of, array là các từ khoá.
- tến biến mảng, tên kiểu mảng do người lập trình đặt.
- KCSH, KCSC: [n1..n2,n1’..n2’] là 2 đoạn nguyên liên tiếp với n1≤n2; n1’≤n2’; n1, n1’ có thể giống hoặc có giá trị khác nhau; n1, n2, n1’, n2’ là hằng hoặc biểu thức có giá trị nguyên.
Ví dụ1: Khai báo biến mảng A để lưu trữ mảng gồm 5 dòng 7 cột các phần tử thuộc kiểu nguyên
+C1: Trực tiếp:
Var A: array[1..5,1..7] of Integer;
+ C2: Gián tiếp:
Type Mang1=array[1..5,1..7] of Integer;
Var A: Mang1;
Ví dụ 2: Nhận biết đúng/sai của các khai báo sau:
a, Type
mang1=array[-5..50, 1..10]of Integer;
Var A:mang1;
b. Type
mang2 = array[10..1,1..15] of char;
Var E:Mang;
c, Var C: array[0..3*2n, 0..n] of Integer;
d, Var D:array[1.5 .. 10, 2..10] of real;
Đáp án: Đúng ý a, c
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
b) Cách khai báo
Mang
1
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
c.Tham chiếu đến một phần tử của mảng hai chiều
Em hãy nhắc lại
cách tham chiếu
phần tử của mảng một chiều
Tênbiến[chỉ số hàng,chỉ số cột]
Ví dụ1: B[2, 5]
Có nghĩa là tham chiếu đến phần tử ở hàng thứ 2 cột 5của bảng nhân.
Tiết 23 11 KIỂU MẢNG
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8 9 10
A[5,7]
2. Kiểu mảng hai chiều
c.Tham chiếu đến một phần tử của mảng hai chiều
Tênbiến[chỉ số hàng,chỉ số cột]
Ví dụ2: B[5, 7]
d. ví dụ
Chương trình sau đưa ra màn hình bảng cửu chương .
Program cuuchuong;
Uses crt ;
var A : Array[1..9,1..10] of Integer ;
i, j : Byte ;
Begin
Clrscr ;
Writeln(`Bang cuu chuong 1 -> 9 : `);
Writeln ;
For i := 1 to 9 do {Tính các phần tử của bảng nhân}
For j := 1 to 10 do
A[i,j] := i*j ;
For i := 1 to 9 do {In các phần tử của bảng nhân}
Begin
For j := 1 to 10 do Write(a[i,j]:4);
Writeln ;
Writeln ;
End ;
Readln ;
End .
Tiết 23 11 KIỂU MẢNG
2. Kiểu mảng hai chiều
Hãy nhớ!
Mảng hai chiều là bảng các phần tử cùng kiểu
Khai báo: Tên mảng, chỉ số đâù và chỉ số cuối của mỗi chiều, kiểu phần tử
Tham chiếu phần tử mảng hai chiều:
Tên biến mảng[chỉ số dòng, chỉ số cột]
Nhiều thao tác xử lý mảng dùng cấu trúc lặp FOR ..TO.. DO.
Var A:ARRAY[1..10,1..20] OF integer;
A[1,4] = 0
Câu hỏi và bài tập về nhà:
Làm các bài tập số 1, 2, 3, 4 sách giáo khoa trang, 79 SGK
Xem trước nội dung của bài tập và thực hành 3 (sgk - 63)
* 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ẻ: Đàm Thị Phương Hoài
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)