Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
Ví dụ 1: Viết chương trình nhập điểm kiểm tra của các học
sinh trong một lớp và sau đó in ra màn hình điểm số cao nhất?
Giả sử lớp 81 có 40 học sinh.
Khi viết chương trình nhập điểm cho một lớp có 40 học
sinh, ta cần khai báo bao nhiêu biến, sử dụng bao nhiêu
lệnh Readln()?
Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
Khi viết chương trình nhập điểm cho một lớp có 40 học
sinh, ta cần khai báo bao nhiêu biến, sử dụng bao nhiêu
lệnh Readln()?
Var Diem1, Diem2, Diem3, …, Diem40: Real;
Begin
Readln(Diem1);
Readln(Diem2);
….;
Readln(Diem40);
End.
Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
Var
Diem1 , Diem2, Diem 3,
,
...
Diem 40 : Real;
Khi viết chương trình với bài toán
Cách khắc phục những
cần nhập với lượng dữ liệu lớn thì
hạn chế trên?
có những hạn chế gì?
DỮ LIỆU
KIỂU MẢNG
Ghép
chung
40báo
biếnquá
trênnhiều
thành
một dãy.
Phải
khai
biến.
Đặt
1 tên
và tính
đặt cho
một
chung
Chương
trình
toánmỗi
phảiphần
viết tử
khá
dàichỉ số.
diem
Chỉ số
8
1
9
2
7
3
…
…
10
40
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
- Để giúp cho việc sắp xếp dữ liệu được thuận tiện và đơn giản, mọi
ngôn ngữ lập trình đều có một kiểu dữ liệu được gọi là kiểu mảng.
- Dữ liệu kiểu mảng: Là một tập hợp hữu hạn các phần tử có thứ tự,
mọi phần tử đều có cùng một kiểu dữ liệu gọi là kiểu của phần tử.
Var
Diem1 , Diem2, Diem 3,
diem
8
Chỉ số
1
9
2
,
...
7
3
Diem 40 : Real;
…
…
10
40
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
- Để giúp cho việc sắp xếp dữ liệu được thuận tiện và đơn giản, mọi
ngôn ngữ lập trình đều có một kiểu dữ liệu được gọi là kiểu mảng.
- Dữ liệu kiểu mảng: Là một tập hợp hữu hạn các phần tử có thứ tự,
mọi phần tử đều có cùng một kiểu dữ liệu gọi là kiểu của phần tử.
- Biến mảng: Là khi khai báo một biến có kiểu dữ liệu là kiểu mảng,
biến đó được gọi là biến mảng
- Giá trị của biến mảng là một mảng, tức một dãy số có thứ tự,
mỗi số là giá trị của biến thành phần tương ứng.
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
2. Ví dụ về biến mảng
THẢO LUẬN NHÓM
Câu hỏi 1: Tương tự như khai báo biến đơn, câu lệnh khai
báo mảng phải được thực hiện ở đâu?
Câu hỏi 2: Khi khai báo biến mảng trong mọi ngôn ngữ lập
trình cần chỉ rõ ít nhất yếu tố nào?
Thảo luận trong bàn. Thời gian 2 phút
THẢO LUẬN NHÓM
Câu hỏi 1: Tương tự như khai báo biến đơn, câu lệnh khai
báo mảng phải được thực hiện ở đâu?
- Khai báo biến mảng trong phần khai báo của chương trình
Câu hỏi 2: Khi khai báo biến mảng trong mọi ngôn ngữ
lập trình cần chỉ rõ ít nhất yếu tố nào?
- Khi khai báo biến mảng trong mọi ngôn ngữ lập trình
cần chỉ rõ:
+ Tên biến mảng
+ số lượng phần tử
+ kiểu dữ liệu chung của các phần tử
Ví dụ :
diem
ii
6
9
7
10
8
10
10
5
1
2
3
4
5
6
7
Các thành phần:
Tên mảng :
Số lượng phần tử của mảng: 7 phần tử
Kiểu dữ liệu chung của các phần tử: Kiểu số thực
Khi tham chiếu đến phần tử thứ i - ta viết: diem[ ]
diem[6] =10
Ví dụ 1:
Var chieucao : array[1..50] of real;
Ví dụ 2:
Var tuoi : array[21..80] of Integer;
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
2. Ví dụ về biến mảng
a) Cách khai báo
Var
Tênmảng: array[
số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;
array
Trong đó:
+ array, of là từ khoá của chương trình
+ Tên mảng: Do người lập trình đặt tên
+ Chỉ số đầu, chỉ số cuối: là các hằng hoặc biểu thức
nguyên.
+ Chỉ số đầu ≤ chỉ số cuối
+ Giữa hai chỉ số là dấu ..
+ Kiểu dữ liệu: kiểu của các phần tử mảng, integer hoặc
real.
Ví dụ :
diem
i
Var diem:array[1..7] of real;
6
9
7
10
8
10
10
5
1
2
3
4
5
6
7
Các thành phần:
Tên mảng :
Số lượng phần tử của mảng: 7 phần tử
Kiểu dữ liệu chung của các phần tử: Kiểu số thực
Ví dụ:
A
chỉ số(i)
Trong đó:
23
19
57
49
85
22
99
|1|
|2|
|3|
|5|
|4|
|6|
|7|
A[1] A[2] A[3] A[4] A[5] A[6] A[7]
Tên mảng : A
Số phần tử của mảng: 7
Kiểu dữ liệu của các phần tử: Kiểu nguyên
Khi tham chiếu đến phần tử thứ i - ta viết A[i].
Ví dụ: A[6] = 22.
Ví dụ 1: Viết chương trình nhập điểm kiểm tra của các học
sinh trong 1 lớp sau đó in ra màn hình điểm số cao nhất?
a. Từ ví dụ 1, thực hiện việc khai báo các biến diem1, diem2,
…,diem40 bằng biến mảng?
Var diem : array[1..40]
of real;
array
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
2. Ví dụ về biến mảng
a) Cách khai báo
Var Tênmảng: array[
số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;
array
Bài tập
1. Giả sử lớp em có 50 bạn, em thử:
khai báo một biến mảng có tên là diemtoan
Var diemtoan:array[1..50] of real;
2. khai báo một biến mảng có tên là diemvan
Var diemvan:array[1..50] of real;
3. khai báo một biến mảng có tên là diemli
Var diemli:array[1..50] of real;
Hoặc: Var diemtoan, diemvan ,diemli:array[1..50] of real;
diemtoan 8
6
7
6
…
….
….
….
7
8
6
9
…
….
….
….
diemvan 9
7
8
7
…
….
….
….
2
3
4
…
….
….
50
diemli
Chỉ số
1
Sau khi khai báo một mảng có thể làm việc với các phần
tử của nó như một biến thông thường như gán giá trị, đọc giá
trị và thực hiện tính toán với giá trị đó thông qua chỉ số tương
ứng của phần tử đó.
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
2. Ví dụ về biến mảng
a) Cách khai báo
b) Cách truy cập mảng:
Tên mảng[chỉ số phần tử]
Cách khai báo và sử dụng biến
mảng như trên có lợi ích gì?
Thảo luận nhóm. Thời gian 4
phút
Ví dụ: A[1]; A[10]; diem[1]-Có thể thay rất nhiều câu lệnh nhập và in
dữ liệu ra màn hình bằng câu lệnh lặp.
-Có thể sử dụng biến mảng một cách hiệu
quả trong xử lí dữ liệu như:
+ So sánh điểm của một học sinh với một
giá trị nào đó
+ Xử lí đồng thời nhiều loại điểm ta khai
báo nhiều mảng. Từ đây có thể tính điểm
trung bình của học sinh, tìm điểm cao
nhất,…
Sử dụng biến mảng một cách hiệu quả trong xử lý dữ liệu
Chương trình nhập điểm cho 40 học sinh:
Chỉ sử dụng 1 câu lệnh lặp:
Var diem1, diem2, diem3, .. , diem40: real;
……
Begin
Readln(Diem1);
Readln(Diem2);
Readln(Diem3);
…;
Readln(Diem40);
End.
Var diem: array[1..40] of real;
For i:=1 to 40 do
Begin
write(‘diem hs’,i,’:’);
readln(diem[i]);
End;
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
1. Dãy số và biến mảng
2. Ví dụ về biến mảng
a) Cách khai báo
b) Cách truy cập mảng:
c) Ích lợi của biến mảng
- Có thể thay thế nhiều câu lệnh
đọc và ghi dữ liệu ra màn hình
bằng một câu lệnh lặp:
Ví dụ:Nhập điểm cho các học
sinh trong lớp
For i:=1 to 40 do
Begin
write(‘diem hs’,i,’:’);
readln(diem[i]);
End;
Ví dụ: in điểm cho các học sinh
trong lớp
For i:=1 to 40 do
write( diem[i]);
- Sử dụng biến mảng một cách
hiệu quả trong xử lí dữ liệu: so
sánh điểm của học sinh với một
giá trị nào đó, tính điểm trung bình
của cả lớp, tìm điểm cao nhất,…
Ví dụ:
For i:=1 to 40 do
if diem[i]>=8.0 then Writeln(‘gioi’);
⇒ Tóm lại, sử dụng biến mảng
tiết kiệm được thời gian và công
sức.
Dữ liệu kiểu mảng là một tập
hợp hữu hạn các phần tử có thứ
tự, có cùng kiểu dữ liệu
BÀI 9
LÀM
VIỆC
VỚI
DÃY
SỐ
Khi khai báo 1 biến có kiểu dữ
liệu là kiểu mảng, biến đó được
gọi là biến mảng
Sử dụng biến mảng tiết kiệm
rất nhiều thời gian và công sức
viết chương trình
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
Câu 1: Các khai báo biến mảng sau trong Pascal đúng hay sai?
Vì sao?
A. Var X : Array[10,13] of Integer;
sai
B. Var X : Array[5..10.5] of Real;
sai
C. Var X : Array[3.4..4.8] of Integer;
sai
D. Var X : Array[10..1] of Integer;
sai
E. Var X : Array[4..10] of real;
Đúng
Tiết 55. Bài 9: LÀM VIỆC VỚI DÃY SỐ
Câu 2: Câu lệnh khai báo biến mảng sau đây máy tính có
thực hiện được không?
Var N : integer;
Không xác định
A : array[1..N] of real;
KHÔNG