Kiến thức : Nắm vững kiến thức toán học về ma trận và định thức.. Cách sử dụng mảng 2 chiều trong thiết kế dữ liệu của chương trình 2.. Kỷ năng: Học sinh có thể sử dụng biến mảng
Trang 1GIÁO ÁN TIN HỌC 11 tempfile_32670.doc
Ngày soạn: Friday, 23-NOV-2007
§ 11 KIỂU MẢNG - ARRAY
Mảng 2 chiều - MATRIX
Tiết thứ 1
I MỤC TIÊU:
1 Kiến thức :
Nắm vững kiến thức toán học về ma trận và định thức
Cách sử dụng mảng 2 chiều trong thiết kế dữ liệu của chương trình
2 Kỷ năng:
Học sinh có thể sử dụng biến mảng trong lập trình
3 Thái độ:
Học sinh nhận thức được các kiểu dữ liệu cơ bản và xây dựng biểu thức
II TRỌNG TÂM KIẾN THỨC
Mảng 2 chiều: Khai báo biến mảng, xử lý các phần tử mảng
III CHUẨN BỊ GIÁO CỤ:
Giáo viên : Tài liệu và biểu tranh minh hoạ, thiết bị
thực để trực quan
Học sinh: Sách, vở , bút, thước
IV TIẾN TRÌNH BÀI DẠY:
1 ỔN ĐỊNH LỚP-KIỂM TRA SĨ SỐ:
2 KIỂM TRA BÀI CŨ:
3 NỘI DUNG BÀI MỚI:
I Khái niệm:
Mảng 2 chiều - ma trận: là tập
hợp các phần tử cùng kiểu
được xếp theo dòng vào cột
Kích thước của mảng= só
dòng và số cột
Các quy tắc và thao tác xử lý
matrận:
II BÀI TOÁN: SGK
1 Dữ liệu vào ra:
Dữ liệu của 20 hộ chia ra 4
tổ
2 Tổ chức dữ liệu:
T: matrận có 4 dòng 5 cột
3 Ý tưởng giải thuật
Dùng mảng T có 20 phần tử
số thực xếp theo 4 dòng 5
cột
Phần tử T[I,j] chứa tiền thuế
của hộ thứ j trong đội thứ I
Duyệt lần lượt từ đội 1 4,
cứ mỗi đội lần lượt từ
người thứ 1 đến thứ 5
Cộng dồn vào Sum
Ma trận là gì?
nm n
n
m m m
n
a a
a
a a
a
a a
a A
2 1
2 22
21
1 12
11
VAR
T : array [1 4,1 5] of integer;
N,Sum,I,J: integer;
BEGIN For I:=1 TO 4 DO For J:=1 TO 5 DO Begin
Write( T[ ,I, ][ ,j, ]= ); ‘T[‘,I,’][‘,j,’]=’); ‘T[‘,I,’][‘,j,’]=’); ’][‘,j,’]=’); ‘T[‘,I,’][‘,j,’]=’); ’][‘,j,’]=’); ’][‘,j,’]=’); Readln(T[I,j]);
End;
Sum :=0;
For I:=1 TO 4 DO For J:=1 TO 5 DO SUM:=SUM+ T[I,J];
WRITELN( Tong =', sum); ‘T[‘,I,’][‘,j,’]=’);
READLN;
END.
TIẾT
24
Trang 2GIÁO ÁN TIN HỌC 11 tempfile_32670.doc II.MẢNG 2 CHIỀU:
1 Khai báo biến mảng:
VAR
Tên mảng: ARRAY[d1 d2,c1 c2]
OF Kptử;
2 Truy nhập và xử lý từng
phần tử mảng
Mỗi phần tử mảng được
truy nhập như một biến độc
lập, thông qua tên gọi gồm tên
mảng và chỉ số của phần tử
đó
TÊN MẢNG[chỉ số dòng, chỉ
số cột]
hoặc TÊN MẢNG[chỉ số
dòng][chỉ số cột]
Ví dụ: A[1,5] hoặc A[1][5]
V CHƯƠNG TRÌNH:
VI VÍ DỤ ỨNG DỤNG
Cho matrận có 6 dòng 6 cột, A[I,j]
= I*j.
Tính tổng hàng số 3
1 Xác định bài toán:
Input: A 6X6
Output: Tổng S của hàng 3
2 Tổ chức dữ liệu:
A: matrận có 6 hàng 6 cột
Biến I,J và Sum: Nguyên
PROGRAM VD;
VAR
A : array [1 10,1 10] of integer;
N,Sum,I,J: integer;
BEGIN
For I:=1 TO 6 DO
For J:=1 TO 6 DO
A[I,j]:=I*J;
Sum :=0;
For I:=1 TO 6 DO
SUM:=SUM+ A[3,I];
WRITELN( Tong dong so 3 =', sum); ‘T[‘,I,’][‘,j,’]=’);
READLN;
END.
Ví dụ:
VAR A,B: ARRAY[1 10,1 10] OF INTEGER;
{a,b có 10 dòng,10 cột các phần tử số nguyên}
C: ARRAY[1 5,1 10] OF REAL; {C có 5 dòng, 10 cột gồm các phần tử số thực}
A[1,1] : phần tử chỉ số dòng 1,
cột 1 của mảng A
C[2,4]: phần tử chỉ số dòng 2,
cột 4 của mảng C;
Hãy xác định dữ liệu vào ra của bài toán?
Tổ chức dữ liệu như thế nào?
Vào: N, số thẻ vàng, đỏ của từng cầu thủ V[i] D[i] với i=1,n
Ra: tổng thẻ đỏ TD, vàng TV, số cầu thủ
bị thẻ đỏ Dem
4 CỦNG CỐ
Cấu trúc của ma trận
Khai báo biến và kiểu của ma trận
Truy xuất đến từng phần tử ma trận
5 DẶN DÒ:
Bài tập về nhà: toàn bộ bài trong SGK