Giáo án môn Tin học khối 11 - Bài 11: Kiểu mảng (tiết 4)

Giáo án môn Tin học khối 11 - Bài 11: Kiểu mảng (tiết 4)

I. Mục tiêu:

1. Kiến thức:

- Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều

- Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng.

2. Kỹ năng:

- Tạo được kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể

 

doc 7 trang Người đăng quocviet Lượt xem 2056Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án môn Tin học khối 11 - Bài 11: Kiểu mảng (tiết 4)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giáo án lý thuyết
Bài 11: Kiểu mảng (Tiết 4)
Mục tiêu:
Kiến thức:
Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều
Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng.
Kỹ năng:
Tạo được kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể
Hoạt động dạy học:
ổn định tổ chức lớp:
 Kiểm tra sĩ số: Tổng số: 	 Vắng: 	
 Có phép: 	 Không phép: 	
Kiểm tra bài cũ:
Câu hỏi: 	- a) Cách khai báo mảng một chiều và cách tham chiếu tới phần tử của mảng? (7đ)
	- b) Vận dụng: Cho dãy số A = (a1, a2, , an), (ai – nguyên, i = 1, , n và 3 < n <= 100). Viết đoạn chương trình khai báo biến cần sử dụng? (2đ)
Trả lời: 	a) Cách khai báo mảng một chiều:
Cách 1: Khai báo trực tiếp biến mảng một chiều:
Var : array [kiểu chỉ số] of ;
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều:
Type = array [kiểu chỉ số] of ;
Var : ;
b) Var n : byte;
A : array[1..n] of integer;
Bài mới:
Đặt vấn đề: Trong bài trước chúng ta đã được biết kiểu dữ liệu có cấu trúc và đã di tìm hiểu về mảng một chiều. Hôm nay chúng ta tiếp tục tìm hiểu về cấu trúc dữ liệu kiểu mảng và tìm hiểu về mảng hai chiều. Ta vào bài hôm nay: Kiểu mảng hai chiều
Nội dung
Hoạt động của thầy và trò
t
1. Bài toán:
Tính và đưa ra màn hình bảng cửu chương
1
2
3
4
5
6
7
8
9
10
2
4
6
4
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
GV: Sử dụng kiến thức về mảng một chiều, hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng cửu chương?
HS: Sử dụng 9 mảng một chiều, mỗi mảng lưu một hàng của bảng
GV: Với cách lưu trữ như vậy ta phải khai báo bao nhiêu biến?
HS: Khai báo 9 biến mảng một chiều
GV: Với cách khai báo như vậy thì chương trình nhập xuất dữ liệu dài và phải khai báo nhiều biến. Để khắc phục khó khăn này, 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 trên thành mảng hai chiều
GV: Vậy có nhận xét gì về mảng hai chiều?
HS: Nếu xem mỗi hàng của mảng hai chiều là 1 phần tử thì ta có thể nói 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.
2. Các yếu tố để xác định mảng hai chiều:
Tương tự như với kiểu mảng một chiều, với kiểu mảng hai chiều, các ngôn ngữ lập trình cũng có quy tắc, cách thức cho phép xác định:
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ử
GV: Để mô tả kiểu mảng hai chiều ta cần xác định các yếu tố chính nào?
HS: Các yếu tố để xây dựng 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ử
3. Tìm hiểu về kiểu mảng hai chiều:
a. Khai báo:
Tổng quát, khai báo biến mảng hai chiều trong Pascal như sau:
Cách 1: Khai báo trực tiếp biến mảng hai chiều:
Var : array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng hai chiều:
Type = array [kiểu chỉ số 
GV: Với bài toán tính và đưa ra màn hình bảng cửu chương ta sử dụng biến mảng hai chiều B để lưu trữ, biến mảng hai chiều B lưu trữ bảng nhân được khai báo trong Pascal như sau:
Var B : array [1..9] of array [1..10] of integer;
Hoặc có thể khai báo ngắn gọn:
Var B : array[1..9, 1..10] of integer;
hàng, kiểu chỉ số cột] of ;
Var : ; 
Chú ý: Các biến mảng thường gồm số lượng lớn các phần tử nên cần lưu ý phạm vi sử dụng chúng để khai báo kích thước và kiểu dữ liệu sao cho tiết kiệm bộ nhớ.
GV: Qua cách khai báo như trên em hãy cho biết cách tạo kiểu dữ liệu mảng hai chiều (cách khai báo mảng hai chiều)?
HS: Trả lời câu hỏi của GV
Ví dụ: Các khai báo sau đây là hợp lệ:
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 Longint;
trong đó n là hằng số
GV: Hãy cho biết đâu là tên biến mảng, kiểu chỉ số hàng, kiểu chỉ số cột, kiểu phần tử của các khai báo trên?
HS: Trả lời câu hỏi của GV
GV: ý nghĩa của câu lệnh “Type arrayReal = array [-100 .. 200, 100 .. 200] of real;”?
HS: Lệnh trên dùng để tạo một kiểu mảng hai chiều có tên là arrayReal gồm 300 dòng và 100 cột, các phần tử có kiểu dữ liệu là real.
b. Cách tham chiếu tới từng phần tử của mảng:
Tham chiếu tới phần tử của 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 [ và ]
[chỉ số hàng, chỉ số cột]
GV: Yêu cầu học sinh quan sát cấu trúc chung và suy nghĩ tìm ví dụ
GV: Ví dụ a[i, j] là phần tử ở dòng i, cột j của mảng a.
HS: Ví dụ: a[2, 9] là phần tử ở dòng số 2, cột số 9 của mảng a
4. Rèn luyện kỹ năng sử dụng mảng hai chiều:
Ví dụ 1: Chương trình tính và đưa ra màn hình bảng nhân
Để nhập dữ liệu ta dùng hai vòng For:
For i:=1 to 9 do
For j:=1 to 10 do
 B[i, j] := i*j;
In ra mảng:
For i:=1 to 9 do
Begin
For j:=1 to 10 do Write(B[i, j]:4);
Writeln;
End;
GV: Yêu cầu học sinh theo dõi chương trình trong SGK – Tr61, 62
GV: Khai báo Uses crt; có ý nghĩa gì?
HS: Khai báo thư viện chương trình con Crt để sử dụng được thủ tục Clrscr;
GV: Giải thích chương trình 
Để thực hiện chương trình tính và đưa ra màn hình bảng nhân ta phải sử dụng 3 biến, đó là: biến kiểu mảng hai chiều có tên là B gồm 9 dòng và 10 cột, các phần tử có kiểu dữ liệu là integer. Và 2 biến chỉ số i và j để lưu trữ chỉ số hàng và chỉ số cột của mảng hai chiều B
Hai vòng for với i, j lồng nhau để gán giá trị của bảng cửu chương cho các phần tử của B
Sau đó in bảng đó ra màn hình
GV: ý nghĩa của lệnh Writeln; trong chương trình này?
HS: Để xuống dòng khi in đủ 10 cột.
Ví dụ 2: 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.
GV: Nêu ví dụ 2 và yêu cầu học sinh về nhà chạy thử chương trình
Củng cố:
Những nội dung đã học:
+ Cách khai báo mảng hai chiều
+ Cách tham chiếu đến từng phần tử của mảng
+ Nhập và in dữ liệu của mảng
Bài tập về nhà:
+ Viết chương trình nhập vào từ bàn phím một mảng hai chiều A[1..10, 1..10] với các phần tử là các số nguyên và một số nguyên x. Đếm số lượng số trong A có giá trị bằng x.
+ Xem nội dung của bài thực hành số 4 (SGK – Tr65).
Nhận xét của giáo viên hướng dẫn

Tài liệu đính kèm:

  • docMang hai chieu11.doc