III. Bài mới: Viết chương trình nhâp vào một dãy 5 số nguyên và in ra tổng các số trong dãy 1.1 Đặt vấn đề: Trong những bài toán xữ lí những dữ liệu ở dạng bảng mà mỗi phần tử trong bả[r]
(1)Tuần : 22 Ngày soạn 07/02/09
Chương IV KIỂU DỮ LIỆU CĨ CẤU TRÚC §11 KIỂU MẢNG (t4)
A MỤC TIÊU 1 Kiến thức:
- Biết khái niệm mảng hai chiều
- Biết cách khai báo truy cập đến phần tử mảng hai chiều
2. Kĩ năng:
- Tạo kiểu mảng hai chiều sử dụng biến mảng hai chiều ngơn ngữ lập trình Pascal để giải số toán cụ thể
B PHƯƠNG PHÁP
GV gợi mở để HS tham gia vào học C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
Giáo viên: Giáo án, giáo cụ Học sinh: Sách giáo khoa D TIẾN TRÌNH LÊN LỚP
I Ổn định lớp:
- Chào, lớp trưởng báo cáo sỉ số lớp II Kiểm tra cũ:
III Bài mới: Viết chương trình nhâp vào dãy số nguyên in tổng số dãy 1.1 Đặt vấn đề: Trong tốn xữ lí liệu dạng bảng mà phần tử bảng có liệu như: đưa bảng tính nhân, Tính tổng giá trị đường chéo bảng MxN… Mỗi NNLT cung cấp cho kiểu liệu có cấu trúc dgl kiểu mảng hai chiều.
1.2 Triển khai mới:
Hoạt động giáo viên học sinh Nội dung
Hđ1 Giúp HS hiểu mảng hai chiều biết ứng dụng kiểu liệu mảng hai chiều vào một số toán cụ thể
Xét toán tính đưa hình bảng nhân sau:
1 10
2 10 12 14 16 18 20
18 27 36 45 54 63 72 81 90 GV: Hãy nhân xét kết toán?
Hs: KQBT bảng gồm cột 10 hàng giá trị ô bảng KDL
Gv: Làm mô tả KDL vậy? Trong Các NNLT cung cấp cho ta sẵn cấu trúc “Mảng hai chiều”
HĐ 2:
Gv: Có cách khai báo mảng 1chiều? Hs: có hai cách: Trực tiếp dán tiếp
Gv: Tương tự mảng hai chiều có hai cách khai báo
Gv: Cung cấp hai cách khai báo sau dựa vào cấu trúc cho học sinh khai báo số biến mảng hai chiều
Gv: Khai báo hai cách mảng hai chiều gồm 8x8 phần tử kiểu kí tự
Hs: Trực tiếp:
Var B: array[1 8,1 8] of char; Gián tiếp:
2 Kiểu mảng hai chiều: a) Khái niệm:
Mảng hai chiều kiểu liệu dạng bảng gồm nhiều hành nhiều cột , phần tử mảng phải kiểu
Cách thức xác định mảng hai chiều: Tên kiểu mảng hai chiều
Số lượng chiều Kiểu liệu phần tử Cách khai báo biến
Cách tham chiếu đến phần tử b) Khai báo:
Trực tiếp:
Var <tên biến mảng>: array[kiểu số hàng, kiểu số cột] of <kiểu phần tử>;
Vd:
Var A:array[1 10,1 6] of Integer; Gián tiếp:
Type <tên kiểu mảng>= array[kiểu số hàng, kiểu số cột] of <kiểu phần tử>;
Var <tên biến mảng>:<tên kiểu mảng>; Vd:
Type songuyen= array[[1 10,1 6] of Integer; Var A: Songuyen;
c)Tham chiếu tới phần tử mảng hai chiều: <Tên biến mảng>[chỉ số hàng, số cột]; vd: tham chiếu phần tử hàng cột mảng A
TIẾT
(2)Type bangkitu= array[1 8,1 8] of char; Var B: bangkitu;
Gv: Cho nhiều ví dụ để học sinh nắm cách khai báo mảng hai chiều
Gv: Làm để xác định phần tử mảng hai chiều?
Hs: ta xác định phần tử mảng hai chiều thông qua số hàng số cột
Gv: Như muốn tham chiếu tới phần tử mảng ta xác định tên hai số mảng
như sau: A[5,9]
Hđ3 Rèn luyện kĩ sử dụng kiểu mảng hai chiều thơng qua số ví dụ. Vd1 Gv: Để tính bảng nhân ta thực
nào?
Hs: Giá trị ô số hàng (i) nhân số cột(j)
Gv: B[i,j]:= i*j (Giá trị ô hàng i cột j) Gv: Ta tính nào?
Hs: B1:Với nhận giá trị từ đến ta thực
B2: Cho j nhận giá trị từ 10 lần ta gán B[i,j]:= i*j
Gv: Lên bảng thể bước Hs:
For i:= to
For j:= to 10 B[i,j]:=i*j;
d) Một số ví dụ
1 Tính đưa hình bảng nhân: Var
B: array[1 9,1 10] of integer; I,j: ineteger;
Begin
For i:= to
For j:= to 10 B[i,j]:=i*j; For i:= to
Begin
For j:= to 10 Write(B[i,j]); Writeln;
End; End
Ví dụ Nhâp vào mảng hai chiều 5x7 phần tử số nguyên số nguyên k đưa màn hình phần tử nhỏ k
Gv: khai báo liệu cho chương trình? Hs:
Var b: array[1 5,1 7] of integer; D,i,j,k: integer;
Gv: Nhập liêu cho mảng hai chiều 1, nhập k ta biết Gv: làm để tìm phần tử nhỏ k?
Hs: : B1:Với nhận giá trị từ đến ta thực (xét hàng)
B2: Cho j nhận giá trị từ lần ta so sánh B[i,j]<k viết hình B[i,j] (với hàng ta xét cột)
Gv: sau ta phải dùng biến đếm d
Hs: khơng có phần tử = k tức d=0 cần thơng báo hình Chương trình (sgk)
IV Củng cố
Vận dụng kiểu liệu mảng hai chiều giải số tốn cụ thể V Dặn dị
Làm tập sách tập
Bài tập làm thêm: Cho mảng hai chiều A:12x12 viết chương trình nhập liệu vào cho mảng a) Tính tổng giá trị phần tử đường chéo
b) Tổng giá trị hàng VI E RÚT KINH NGHIỆM: