Tải bản đầy đủ (.doc) (4 trang)

GA Tin9. Tiet 12(moi)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (103 KB, 4 trang )

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:


9C Số HS vắng: Tên:
9D Số HS vắng: Tên:
2- Kiểm tra bài cũ:
Câu 1: Kiểu số thực là gì?
Câu 2: Xâu ký tự là gì ?
Câu 3: Cách khai báo kiểu xâu?
Gv: Nhận xét và cho điểm
Gv; Chữa bài tập
Trớc khi vào bài, Gv đa ra một số vấn đề
cần giải quyết nh sau:

- Lớp trởng báo cáo sĩ số
HS lên bảng trả lời
Gọi HS nhận xét bổ sung
* HS nghe và ghi chép bài đầy đủ
Gv: Kiểu mảng là gì.
I. Khái niệm kiểu mảng:
+ Mảng là 1 kiểu dữ liệu có cấu trúc bao
gồm một số cố định các phần tử có cùng
kiểu, có cùng một tên chung. Mỗi phần tử
của mảng chứa đợc một giá trị và đợc truy
xuất thông qua các chỉ số.
+ Mảng cũng có các kiểu nh: Biến,
Byte, Integer, Real, Char, String
Gv: Khái niệm mảng một chiều và một số
yếu tố liên quan trong lập trình nói chung.

Gv: Đa ra cách khai báo mảng một chiều
trong ngôn ngữ Pascal, giải thích ý nghĩa
của các từ khoá mới.

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ụ

Var A: Array[1..100] Of Integer;
B: Array[1..50] Of Real;
C: Array[1..100] of string;
- Biến a là 1 mản số nguyên có tối đa 100
phần tử
- Biến b là 1 mản số thực có tối đa 50
phần tử
Cách 2: Khai báo qua định nghĩa
kiểu của mang.
Type <Tên kiểu mảng> =Array[<kiểu chỉ
số>] of <kiểu phàn tử>;
Var<Tên mảng> : <tên kiẻu mảng>;
Ví dụ:
+ Trong đó
- Type là định nghĩa kiểu của mảng,
- Array là từ khoá để khai baó mảng.
- Kiểu chỉ số thờng là đoạn số nguyên liên
tục có n1..n2, với n1 là chỉ sô đầu và n2 là
chỉ số cuối.
Ví dụ 1:
Type
mang1=array[1..n] of real;
Mang2=array[1..99 ] of interger;
Var a:mang1; b:mang2;
Ví dụ 2: Chơng trình sau sẽ xuất ra màn
hình cái gì?
Var A:Array[1..4] of Integer;
I, n, max, csmax : integer;
Begin
Write(Nhap n=); Readln(n);

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;

A[2]:=200;
A[3]:=A[2]/A[1];
A[4]:=A[1] * A[2];
Writeln(A[3]);
Writeln(A[4]);
End.
Kết quả: 2 và 20000
Ví dụ 3: mảng 1 chiều
Hai cách khai báo sau có tơng đơng với nhau
không ?
a. Type Mang=array[1..100] Of integer;
var A,B : Mang;
b. Var A,B:array[1..100] of integer;
+ Có tơng đơng, vì a khai báo theo cách 2, b
theo cách 1.
Ví dụ 4: mảng 2 chiều
Hai cách khai báo sau có tơng đơng với nhau
không ?
a. Type Mang=array[1..100] Of integer;
var A,B : array[1..100] of mang;
b. Var A,B:array[1..100,1..100] of integer;
+ Có tơng đơng, vì a khai báo theo cách 2, b
theo cách 1.
Ví dụ 5: Các khai báo sau đúng hay sai:
a. Array[5..&] of real;
b. Array[3.4..4.8] of integer;
c. Array of array[1..3] of integer;
d. Array[10,13] of integer;
Trả lời.
a. sai vì 5 và & không cùng kiểu

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µ

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×