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 kiểu dữ liệu (số nguyên hoặc số thực).. Việc sắp thứ tự thực.[r]
Trang 1LOGO
LÀM VIỆC VỚI DÃY SỐ
CHỦ ĐỀ 2
Trang 2Làm việc với dãy số
Ví dụ về biến mảng
2
Dãy số và biến mảng
3
Ví dụ về biến mảng
2
Tìm giá trị lớn nhất và nhỏ nhất
3
Trang 3Làm việc với dãy số
Ví dụ 1:
Viết chương trình nhập
điểm kiểm tra của 50 học
sinh trong lớp
- Nhập và lưu điểm
Khai báo 1 biến như sau:
Var diem_1: real;
Dãy số và biến mảng
3
- Nhập và lưu điểm
cho một học sinh
Write (‘Nhap diem= ‘); Readln(diem_1);
Var diem_1: real;
- Nhập và lưu điểm cho 2
học sinh
Khai báo 2 biến như sau:
Var diem_1, diem_2: real;
Write (‘Diem hs 1= ‘); Readln(diem_1); Write (‘Diem hs 2= ‘); Readln(diem_2);
Trang 4Ví dụ 2:
Viết chương trình nhập
điểm kiểm tra của các học
sinh trong lớp
- Nhập và lưu điểm
Khai báo n biến như sau:
Var diem_1, diem_2, diem_3, diem_4, , diem_50: real;
Write (‘Diem hs 1= ‘); Readln(diem_1);
Write (‘Diem hs 2= ‘); Readln(diem_2);
Write (‘Diem hs 3= ‘); Readln(diem_3);
Làm việc với dãy số Dãy số và biến mảng
3
cho một học sinh
- Nhập và lưu điểm cho 2
học sinh
Nhập và lưu điểm cho
50 học sinh thì sao?
?
Write (‘Diem hs 3= ‘); Readln(diem_3);
Write (‘Diem hs 4= ‘); Readln(diem_4);
……
……
Write (‘Diem hs n= ‘); Readln(diem_50);
Những hạn chế:
Phải khai báo quá nhiều biến
Chương trình phải viết khá dài
Trang 5Làm việc với dãy số
?
Khắc phục những hạn chế:
Lưu các dữ liệu liên quan bằng một biến duy nhất Đặt chung 1 tên và đặt cho mỗi phần tử một chỉ số
Dãy số và biến mảng
3
Em hiểu thế nào là dữ
liệu 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 kiểu dữ liệu (số nguyên hoặc số thực) Việc sắp thứ tự thực
hiện bằng cách gán cho mỗi phần tử một chỉ số (số nguyên)
Vậy em hiểu biến
mảng là gì?
?
Biến mảng: 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ố (số nguyên, hoặc số thực)
Vậy:
Trang 6Làm việc với dãy số Dãy số và biến mảng
3
Mảng thứ nhất tên là A,
gồm 11 phần tử cùng kiểu
Real, ứng với các chỉ số 0,
1, 2, , 10, đó là:
A[0], A[1], A[2], , A[10]
Hten[1], Hten[2], Hten[3], Hten[4], Hten[5]
B[‘a’], B[‘b’], B[‘c’], B[‘d’]
Ví dụ 3:
Ðể có một hình ảnh về mảng, đối với mảng A, ta hình dung có một dãy nhà một tầng, tên gọi là dãy A, gồm 11 phòng liên tiếp giống hệt nhau được đánh số
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
Tương tự, mảng B cũng giống như dãy nhà B một tầng có 4 phòng được đánh số thứ tự là các chữ a, b, c,
d :
Mảng thứ hai tên là
HTen gồm 5 phần tử cùng
kiểu dữ liệu là String[18]
ứng với các chỉ số từ 1 đến
5:
Mảng thứ ba tên là B,
gồm 4 phần tử cùng kiểu
Integer ứng với các chỉ
số ‘a’, ‘b’, ‘c’, ‘d’:
gồm 11 phòng liên tiếp giống hệt nhau được đánh số thứ tự từ 0,1, 2, , đến 10 :
Trang 7Làm việc với dãy số
Ví dụ về biến mảng
2
A
1 2 3 4 5 6 7
? Khi khai báo biếnmảng cần chỉ rõ
điều gì?
Khai báo mảng 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ử
22
+ Kiểu dữ liệu chung của các phần tử
Trong đó:
+ Khi tham chiếu đến phần tử thứ i Ta viết A[i]
+ Tên mảng :
+ Số phần tử của mảng:
+ Kiểu dữ liệu của các phần tử:
A
7
Kiểu nguyên
A[6] = 22
Trang 8Làm việc với dãy số
Ví dụ về biến mảng
2
Var <tên biến mảng>: array [<chỉ số đầu> <chỉ số cuối>]
of <kiểu dữ liệu>;
Cấu trúc, cú pháp khai
báo mảng:
Trong đó:
Array, of là từ khóa của chương trình
Tên biến mảng do người dùng đặt
Chỉ số đầu phải <= chỉ số cuối (Số nguyên)
Kiểu dữ liệu có thể là số nguyên hoặc số thực
Trang 9Làm việc với dãy số
Ví dụ về biến mảng
2
Chiều cao và tuổi thuộc
những kiểu dữ liệu nào?
Var Chieucao: array [1 50] of real;
Var Tuoi: array [1 50] of integer;
Var diem: array [1 50] of real;
Chương trình nhập điểm Var diem: array [1 50] of real;
……
For i:=1 to 50 do Begin
write(‘diem hs’,i,’:’);
readln(diem[i]);
End;
Chương trình nhập điểm
kiểm tra của các học sinh
trong lớp
Trang 10Làm việc với dãy số
Ví dụ về biến mảng
2
Program vidu;
Var diemtin: array [1 10] of real;
i:integer;
Begin Diemtin[1]:=5;
Diemtin[10]:=5;
Ví dụ 4:
Em hãy khai báo mảng diemtin gồm
10 phần tử Nhập dữ liệu cho diemtin
biết phần tử đầu tiên và cuối cùng
luôn mang giá trị bằng 5 Các phần
tử còn lại có giá trị bất kì được nhập Diemtin[10]:=5;
for i:=2 to 9 do begin
write('diemtin ='); readln(diemtin[i]); end;
For i:=1 to 10 do writeln(diemtin[i]:6:2); Readln
End
tử còn lại có giá trị bất kì được nhập
từ bàn phím.
Sử dụng lệnh gán để gán giá trị 5 cho phần tử đầu và cuối.
Sử dụng lệnh lặp for to do để nhập dữ liệu cho các phần tử còn
lại (2=>9).
Xuất nội dung của mảng ra màn hình sau khi nhập dữ liệu.
Trang 11Làm việc với dãy số
Tìm giá trị lớn nhất
và nhỏ nhất của
dãy số
3
Em hãy nêu thuật toán
để tìm số nhỏ nhất và
số lớn nhất trong dãy
số?
Bước 1: Nhập N và dãy a1, a2, …, an.
Bước 2: Max ← a1, i ← 2.
Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc.
Bước 4: Nếu ai > Max thì Max ← ai.
Bước 5: i ← i + 1 Quay lại bước 3.
Dãy số 5 3 4 7 6 3 15 9
i>n S S S S S S S Đ Ai>Max S S Đ S S Đ S Kết
thúc
?
?
Trang 12Làm việc với dãy số
Var i,n,max,min:Integer;
A : Array [1 100] of Integer;
BEGIN
Write(‘ Hay nhap do dai cua day so, N= ‘);Readln(n); Writeln(‘Hay nhap cac phan tu cua day so ‘);
For i:=1 to n do Begin Write(‘a[ ‘,i,’] =‘);readln(a[i]); End;
Phần khai báo
{Phần thân chương trình}
Begin Write(‘a[ ‘,i,’] =‘);readln(a[i]); End;
Max := a[1] ; Min := a[1];
For i:=2 to n do Begin
If max < a[i] then Max:=a[i];
If Min >a[i] then Min:=a[i];
End;
Writeln (‘So lon nhat la Max =‘,max);
Writeln(‘So nho nhat la Min =‘,min);
Readln;
END.
Trang 13Var X: Array[4 10] of Real;
Var X: Array[10 , 13] of Real;
A
B
BT1: Em hãy chọn khai báo biến mảng đúng
trong các khai báo sau:
Bài tập 1
Var X: Array[3.4 4.8] of Integer;
Var X: Array[10 1] of Integer;
Var X: Array[4 10] of Real;
B
C
D
Trang 141 Xem lại cách khai báo mảng, sử dụng khai báo trong những trường hợp nào.
2 Làm các bài tập: 1; 2; 3; 4; 5 trang 76 SGK
3 Xem nội dung bài thực hành 7.
2 Học sinh tham khảo Video bài giảng Bài 9 Làm việc với dãy số trên trang website http://tranhungdao-tuyhoa.phuyen.edu.vn/ hoặc trên facebook
chidoan.thdtuyhoa@gmail.com hoặc Zalo 0973454303.