Tuần 6.
Ngày soạn: / / 2007
Ng y giảng: / / 2007
Tiết 12 : Đ 4 cáu trúc dữ liệu kiểu mảng
I- Mục tiêu bài giảng:
Học xong bài này HS cần nắm đợc:
+ Kiến thức:
- Kiểu mảng là gì
- Hiểu khái niệm mảng một chiều và hai chiều
- Hiểu cách khai báo và truy cập đến các phần tử của mảng
- Cài đặt đợc thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng 1 chiều.
- Thực hiện đợc khai báo mảng, truy cập, tính toán đơn giản với kiểu dữ liệu.
+ Kĩ năng:
- Rèn t duy, sáng tạo, nghiên cứu cho HS
+ Thái độ:
- Cần cho học sinh thấy cần phải có một kiểu dữ liệu mới, ích lợi của kiểu dữ liệu đó, có
thể minh hoạ.
- Khi làm việc với mảng, học sinh khó hiểu nhất vẫn là cách truy xuất tới các phần tử của
mảng. Cần làm rõ các khái niệm nh chỉ số, kiểu chỉ số..
II- Phơng tiện thực hiện
GV: - Giáo án, tài liệu tham khảo, máy tính, thuyết trình, vấn đáp, máy chiếu
III- Cách thức tiến hành
- Lấy HS làm trung tâm
IV- Tiến trình giờ dạy
Hoạt động
của Giáo viên & học sinh
Hoạt động của học sinh
1- Tổ chức:
Sĩ số:
9A Số HS vắng: Tên:
9B Số HS vắng: Tên:
Một số ví dụ minh hoạ:
Tìm phần tử lớn nhất của một dãy số nguyên.
+ Thuật toán:
Input: Số nguyên dơng N và dãy số A1,A2,
,AN
+ Output: Chỉ số và giá trị của số lớn nhất
trong dãy.
+ ý tởng:
+ Đặt số A1 là số lớn nhất Max
+ Cho i lặp từ 2 đến N, nếu A[i]>Max thì đổi
Max=A[i] và lu lại vị trí i.
Ch ơng trình nh sau.
Program timmax;
Var a : array[1..250] of integer;
+ Công dụng của mảng là: dùng để lu
trữ một dãy số liệu có cùng 1 tính chất nào
đó, ví dụ họ tên các nhân viên trong xí
nghiệp.
Trong lập trình thờng có 2 loại mảng:
Mảng một chiều.
Mảng hai chiều.
1. Kiểu mảng một chiều.
Mảng một chiều là mảng dùng một chỉ
số để xác định các phần tử của mảng, trớc
khi dùng mảng phải khai báo kiểu của nó.
Có 2 cách khai báo mảng 1 chiều.
Cách 1: Khai báo trực tiếp
Var <Tên mảng>: Array[ kiểu chỉ số]
Of <kiểu phần tử>;
Ví dụ
For i: =1 to n do
Begin
Write(A[,i,]=);Readln(a[i]);
End;
Max:=A[1];
Csmax:=1;
For i:= 2 to n do
If a[i]>max then
Begin
Max:=a[i]; csmax:=i;
End;
Writeln(gia tri lon nhat:, max);
Writeln( chi so phan tu lon nhat:,csmax);
Readln; END.
HS trả lời ví dụ 5
Gv. Kiểu mảng hai chiểu
Ví dụ: in ra màn hình bảng cửu chơng
Var a: array[1..9,1..9] of integer;
I,j: byte;
Begin
For i:= 1 to 9 do
For j:= 1 to 9 do
A[i,j]:=i*j;
For i:= 1 to 9 do
Begin
For j:= 1 to 9 do write(a[i,j]:4);
End;
End.
Begin
A[1]:=100;
b. sai vì 3.4 và 4.8 không phải là kiểu
đếm dợc
c. sai vì thiếu kiểu chỉ dẫn
d. sai vì đoạn con phải viết là 10..13
+ Mảng hai chiều.
Là mảng có thể có nhiều hơn một chiều.
+ Cách khai báo mảng hai chiều.
Cách 1: Khai báo trực tiếp
Var < Tên mảng>:Array[kiểu chỉ số dòng,
kiểu chỉ số cột] of<kiểu phần tử>;
Ví dụ: Var: A: Array[1..5,1.. 4] of real;
A chính là ma trận 5 hàng 4 cột
Cách 2: khai báo gián tiếp
Type
Mang1=array[1..n,1..m] of real;
Mang2=array[1..20,1..30] of integer;
Var a: mang1; b:Mang2;
IV- Cñng cè:
- Nh¸c l¹i cÊu tróc c©u lÖnh c¸ch khai b¸o, truy xuÊt..
- Ra bµi tËp vÒ nhµ