IV) Những vấn đề cần rút kinh nghiệm:.
2) Kiểu mảng haichiề u: Ví dụ 1:
Ví dụ 1: Bảng nhân 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 Ma trận (4 x 5) Ví dụ 2 : 2 4 3 7 Ma trận (2 x 2) Ví dụ 3: 3 6 8 3 9 23 Ma trận (2 x 3)
Nhận xét : trong 3 ví dụ trên thì cả 3 ví dụ đều có dạng bảng ( nhiều dòng và nhiều cột). Gồm các giá trị có cùng kiểu với nhau .
Mảng hai chiều là bảng các phần tử cùng kiểu. Tương tự như mảng một chiều , với kiểu mảng hai chiều để mô tả ta cần 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 mảng + Cách tham chiếu đến phần tử Cách khai báo mảng hai chiều : Có 2 cách :
Khai báo trực tiếp :
Var <tên biến mảng > :array[kiểu chỉ số hàng, kiểu chỉ số cột] of<kiểu phần tử>;
Khai báp gián tiếp :
Type <tên kiểu mảng> = array [kiểu chỉ số hàng, kiểu chỉ số cột ] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
Ví dụ 1: khai báo bảng nhân 4 x 5 Trực tiếp :
Var mang2chieu :array[1..4,1..5] of integer; Gián tiếp :
Type mang2chieu = array [1..4,1..5] of integer; Var A:mang2chieu;
Ví dụ 2:
Viết chương trình nhập một bảng số nguyên (ma trận) có N dòng M cột và in ra màn hình bảng số
biến mảng .
Hoạt động 9:
• Hình thức :theo nhóm
• Nội dung : thực hiện khai báo cho bảng
nhân 4x5.
• Kiến thức :Trực tiếp :
Var mang2chieu :array[1..4,1..5] of integer; Gián tiếp :
Type mang2chieu = array [1..4,1..5] of integer;
• Var A:mang2chieu;
Hoạt động 10:
• Hình thức :tập thể
• Nội dung : tìm hiểu thêm về ví dụ Nhập vào từ bàn phím mảng hai chiều B gồm 5 hàng và 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ó giá trị nhỏ hơn k.
• Kiến thức
Program manghaichieu; Uses crt;
Var B:array[1..5,1..7] of integer; D,I,j,k:integer;
Begin
Clrscr;
Writeln(‘Nhap cac phan tu cua mang theo dong’);
For i:= 1 to 5 do Begin
For j:=1 to 7 do read (B[I,j]); Writeln;
End;
Write(‘Hay nhap vao gia tri k: ’); Readln(k);
D:=0;
Writeln(‘danh sach cac ptu mang nho hon ’, k , ‘:’); For i:= 1 to 5 do For j:=1 to 7 do If B[I,j] < k then Begin Writeln(B[I,j]); nguyên đó. Uses crt;
Type mang2chieu = array [1..N,1..M] of integer; Var A:mang2chieu;
I,j,M,N: integer; Begin
Clrscr;
Write(‘Hay nhap so phan tu cua hang :’); Readln (N);
Write(‘Hay nhap so phan tu cua cot:’); Readln (M);
For i:= 1 to N do For j:= 1 to M do Begin
Write (‘Nhap phan tu thu A [’, I,j,’] = ’); Readln(a[I,j]); End; For i:= 1 to N do Begin For j:= 1 to M do Write (a[I,j] : 6); Writeln; End; Readln End. Ví dụ 3:
Chương trình tính và đưa tra màn hình bảng nhân
Uses crt;
Type mang2chieu = array [1..N,1..M] of integer; Var A:mang2chieu;
I,j,M,N: integer; Begin
Clrscr;
Write(‘Hay nhap so phan tu cua hang :’); Readln (N);
Write(‘Hay nhap so phan tu cua cot:’); Readln (M);
D:=d+1; End;
If d=0 then qriteln(‘khong co phan tu nao nho hon ’, k);
Readln End.
BAØI TẬP THÊM
Đưa ra màn hình số lượng phần tử có giá trị nhỏ hơn k.
4) Tổng kết nội dung, đánh giá cuối bài:
- Kiểu mảng 2 chiều, một số ví dụđiển hình - Cách thức khai báo mảng hai chiều.
5)Dặn dò , kế hoạch học tập tiết sau :
- Cần nắm được thuật tóan của các ví dụ
IV) Những vấn đề cần rút kinh nghiệm:.
- Cần trình bày chi tiết hơn nữa
- Chú ý cách giảng bài sao cho chọ sinh nắm được kiến thức
Ngày soạn : 12 / 12 / 07
Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
BÀI TẬPTiết PPCT : 23