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

kiểu mảng(T1)

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 (86.71 KB, 4 trang )

Ngày soạn: 07/01/2009
Ngày giảng:10/01/2009
Tiết 19
CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
Bài 11: KIỂU MẢNG
I. Mục tiêu:
1. Kiến thức:
- Biết được một kiểu dữ liệu mới là kiểu mảng một chiều. Biết
được một loại biến có chỉ số.
- Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến
kiểu mảng một chiều.
2. Kỹ năng:
- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều
trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ
thể.
II. Đồ dùng dạy học:
1. Chuẩn bị của giáo viên:
- Giáo án, SGK, SGV, máy chiếu Projector.
2. Chuẩn bị của học sinh:
- SGK, vở ghi bài.
III. Hoạt động dạy và học:
1. Ổn định lớp:
2. Kiểm tra bài cũ: không
3. Nội dung bài mới:
Trong 1 bài lập trình nếu chúng ta gặp nhiều phần tử có cùng kiểu dữ
liệu, có vai trò như nhau trong bài toán thì chúng ta có thể nhóm lại thành
1 mảng. Trong bài này chúng ta sẽ đi nghiên cứu 2 loại mảng đó là mảng
1 chiều và mảng 2 chiều.
HOẠT ĐỘNG DẠY - HỌC NỘI DUNG
Chúng ta đi xét ví dụ sau:
VD: Nhập vào nhiệt độ của 7 ngày


trong tuần, tính và đưa ra nhiệt độ
trung bình của tuần đó. Đếm xem
số lượng ngày trong tuần có nhiệt
độ cao hơn nhiệt độ trung bình đó
là bao nhiêu ngày?
GV: Em nào có thể nêu ý tưởng
giải được bài toán này?
→ Ta có thể sử dụng 7 biến để lưu
nhiệt độ của 7 ngày. Khi nhập vào
nhiệt độ, tính trung bình cộng của
I. Kiểu mảng một chiều:
1. Đặt vấn đề:
Program nhietdo;
Uses crt;
Var t1,t2,t3,t4,t5,t6,t7,tbc:real;
S:integer;
Begin
nhiệt độ đó. Để đếm số ngày có
nhiệt độ cao hơn nhiệt độ trung
bình ta có thể sử dụng 1 biến để
đếm được khởi tạo bằng 0. So
sánh nhiệt độ của các ngày với
nhiệt độ trung bình của cả tuần,
nếu cao hơn nhiệt độ trung bình
thì tăng biến đếm lên 1 đơn vị.
GV gọi 1 HS lên bảng viết chương
trình.
Giả sử tôi cần giải bài toán trên
với số lượng ngày là rất lớn thì
chương trình trên có những hạn

chế gì?
Để khắc phục nhược điểm trên
người ta ghép các biến nhiệt độ
trên vào 1 dãy và đặt cho chúng
cùng 1 tên và đánh cho mỗi 1
phần tử 1 chỉ số.
Khi ghép lại và xây dựng như vậy
chúng ta được 1 dãy các phần tử
có cùng kiểu dữ liệu và được gọi
là 1 mảng 1 chiều.
Hãy nghiên cứu SGK và cho biết
Em hiểu thế nào là mảng 1 chiều?
Để xác định mảng 1 chiều ta cần
xác định được các yếu tố nào?
Write(‘nhap nhiet do cua cac ngay
trong tuan’);
Readln(t1,t2,t3,t4,t5,t6,t7);
Tbc:=(t1+t2+t3+t4+t5+t6+t7)/7;
S:=0;
If t1>tbc then s:=s+1;
If t2>tbc then s:=s+1;
If t3>tbc then s:=s+1;
If t4>tbc then s:=s+1;
If t5>tbc then s:=s+1;
If t6>tbc then s:=s+1;
If t7>tbc then s:=s+1;
Writeln(‘nhiet do tb trong tuan
la’,tbc);
Writeln(‘so ngay co nhiet do cao
hon nhiet do tb la’,s);

Readln;
End.
→ Phải khai báo quá nhiều biến,
chương trình phải viết quá dài.
- Mảng một chiều là dãy hữu hạn các
phần tử có cùng kiểu dữ liệu. Các
phần tử trong mảng có cùng chung
một tên và phân biệt nhau bởi chỉ số.
+ Tên kiểu mảng một chiều
+ Số lượng phần tử của mảng
+ Kiểu dữ liệu của các phần tử
+ Cách khai báo
+ Cách tham chiếu đến phần tử
Vậy mảng 1 chiều được khai báo
như thế nào trong ngôn ngữ lập
trình Pascal? Chúng ta đi tìm hiểu
phần 2.
Để khai báo mảng 1 chiều chúng
ta có 2 cách để khai báo đó là khai
báo trực tiếp và khai báo gián tiếp.
Khai báo trực tiếp
Khai báo gián tiếp
Ý nghĩa của các thành phần trong
câu lệnh
Chúng ta xét 1 số ví dụ sau:
- Khai báo trực tiếp:
Trong khai báo trên n phải là hằng
nguyên.
Khi khai báo 1, máy tính sẽ tạo
cho ta 1 danh sách gồm 30 phần tử

có giá trị kiểu số thực và cùng tên
là nhietdo được phân biệt nhau bởi
chỉ số của các phần tử.
Tương tự đối với khai báo thứ 2.
Ta không được nhầm lẫn giữa chỉ
số của các phần tử và giá trị của
phần tử. Chỉ số của phần tử cho ta
biết vị trí của phần tử đó trong
mảng.
2. Khai báo
a. Khai báo trực tiếp
VAR <ds biến mảng>:ARRAY[kiểu
chỉ số] OF <kiểu phần tử>;
b. Khai báo gián tiếp
TYPE <tên kiểu
mảng>=ARRAY[kiểu chỉ số] OF
<kiểu phần tử>;
VAR <ds biến mảng>:<tên kiểu
mảng>;
Trong đó:
- TYPE, VAR, ARRAY, OF là các
từ khoá.
- DS biến mảng là tên các mảng
được phân cách nhau bởi 1 dấu
phẩy(,);
- Kiểu chỉ số thường là 1 đoạn số
nguyên lien tục có dạng n1..n2 với
n1, n2 là các hằng hoặc biểu thức
nguyên, xác định chỉ số đầu và chỉ số
cuối của mảng.

- Kiểu phần tử là kiểu của các phần
tử của mảng.
Var nhietdo:array[1..30] of real;
Dongy:array[1..n] of booolean;
- Sử dụng chỉ số của phần tử trong
mảng để tham chiếu đến phần tử
Vậy chúng ta làm thế nào để tham
chiếu đến phần tử trong dãy?

a[1]: Phần tử đầu tiên của mảng a
a[i]: Phần tử ở vị trí thứ I của
mảng a
theo cấu trúc:
<Tên biến mảng>[[chir số của
pt]
VD: Để truy suất đến phần tử trong
mảng nhietdo ở vị trí 15 ta viết là
nhietdo[15].
IV.Củng cố bài học:
1. Nhắc lại những nội dung đã học:
- Cách tạo kiểu mảng một chiều và cách khai báo biến
- Tham chiếu đến từng phần tử: tên_biến[chỉ số]
2. Bài tập về nhà:
- Viết chương trình nhập vào một mảng gồm n số nguyên, mỗi số có
giá trị tuyệt đối không quá 300. Tính tổng giá trị các phần tử có giá trị
chia hết cho k.

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

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