Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mỗi một phần tử trong mảng có thể có các kiểu dữ liệu khác nhau. Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mọi phần [r]
(1)(2)KiĨm tra bµi cị
Dữ liệu mảng biến mảng gọi ?
- Dữ liệu kiểu mảng: tập hợp phần tử có thứ tự, phần tử có kiểu liệu
- Biến mảng: khai báo biến có kiểu liệu kiểu mảng, biến gọi biến
(3)2 Ví dụ biến mảng
a.Cách khai báo mảng Pascal:
9
Tuoi …
… 40
10
Var Tuoi :
Chieuca
o 2 … 20 Var chieucao: array[2 20] of Real; Chỉ số
array[1 40] of Integer;
Chỉ số
Var Tên mảng : array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>;
1.7
1.5 1.65 1.75 … 1.8
(4)2 Ví dụ biến mảng
a Khai báo mảng chiều Pascal:
Var Tên mảng : array[<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>;
Trong đó:
- Tên mảng: Do người lập trình đặt
- array, of: Là từ khóa chương trình
- Chỉ số đầu, số cuối: Là số nguyên, thỏa mãn:
chỉ số đầu ≤ số cuối giữa hai số dấu
- Kiểu liệu: Là kiểu phần tử, Integer Real
- Số phần tử = số cuối – số đầu +
(5)2 Ví dụ biến mảng
a) Cách khai báo mảng Pascal:
Ví dụ: Cách khai báo đơn giản biến mảng ngôn ngữ Pascal sau:
var Tuoi: array[21 80] of integer;
Tên biến Số lượng phần tử Kiểu liệu chung
Chỉ số đầu Chỉ số cuối
var Chieucao: array[1 50] of real;
(6)Var Tênmảng: array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>;
Var Tênmảng: array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>; 2 Ví dụ biến mảng
a) Cách khai báo mảng Pascal:
Var diem : array[1 40] of real;
Var diem : array[1 40] of real;
Var A: array[1 10] of integer; B: array[1 10] of integer;
Var A: array[1 10] of integer; B: array[1 10] of integer;
Ví dụ:
Var A ,B: array[1 10] of integer;
Var A ,B: array[1 10] of integer;
2/ Mảng A, B gồm 10 phần tử thuộc kiểu liệu số nguyên? Hãy khai báo mảng sau:
1/ Mảng Diem gồm 40 phần tử thuộc kiểu liệu số thực?
(7)Câu lệnh khai báo biến mảng sau máy tính có thực hiện không?
Var N : integer;
A : array[1 N] of real;
Không xác định
2 Ví dụ biến mảng
KHƠNG
Lưu ý:
- Kích thước mảng phải khai báo số cụ thể
a) Cách khai báo mảng Pascal:
(8)Lưu ý:
Kích thước mảng phải khai báo
số cụ thể
(9)2 Ví dụ biến mảng
a) Cách khai báo mảng Pascal:
b) Truy cập đến giá trị phần tử mảng:
Tên mảng [Chỉ số]
Tên mảng [Chỉ số]
Cú pháp:
Tênmảng: array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>;
Tênmảng: array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu>;
VD: DiemTin[1]
Tham chiếu tới phần tử thứ mảng DiemTin
(10)2 Ví dụ biến mảng
b) Truy cập đến giá trị phần tử mảng: Tên mảng [Chỉ số]
Tên mảng [Chỉ số]
Cú pháp:
2 10
Cho mảng A chứa giá trị sau: Ví dụ1:
- Xác định giá trị của: A[1], A[3], A[5], A[10] ?
A[1], A[10]: không xác định A[3]=2; A[5]=4
(11)2 Ví dụ biến mảng
b) Truy cập đến giá trị phần tử mảng: Tên mảng [Chỉ số]
Tên mảng [Chỉ số]
Cú pháp:
A[3]:=2; A[4]:=5;
A[6]:=A[3]+A[4];
Ví dụ 2: Cho câu lệnh sau:
Giá trị phần A[3], A[4], A[6] bao nhiêu?
A[3]=2 A[4]=5 A[6]=7
- Có thể gán giá trị, đọc giá trị thực tính tốn với phần tử mảng
Có thể thực thao tác với phần tử mảng?
(12)2 Ví dụ biến mảng
For i:=1 to 40 Readln(DiemTin[i]);
Ví dụ: Gán giá trị cho 40 phần tử mảng DiemTin
For i := … to … Readln(Tenmang[i]);
DiemTin[1]:=5; DiemTin[2]:=7;
……… DiemTin[40]:=10;
Hoặc Readln(DiemTin[1]); Readln(DiemTin[2]);
……… Readln(DiemTin([40]);
Viết chương trình dài
Bài 9: Làm việc với dãy số
(13)A
n
1 Nhập số phần tử mảng.
Write(‘ Nhap vao so HS:’); Readln(n);
2 Nhập vào giá trị từng phần tử mảng (A[i]).
For i:=1 to n Begin
write(‘Diem cho HS thu ’ ,i, ’ : ’); readln(A[i]);
end;
Các bước Thể pascal với n = 7
9 10 9 6 8 5 7
Sử dụng cấu trúc lặp để nhập liệu
- Sử dụng lệnh Read (Readln) kết hợp với For do.
2 Ví dụ biến mảng c Nhập giá trị cho mảng
(14)2 Ví dụ biến mảng
d In giá trị phần tử mảng:
For i:= … to … Writeln(Tenmang[i]);
For i:=1 to 40 Writeln(DiemTin[i]);
8 6 7 6 … … … ….
1 2 3 4 …. i …. 40
DiemTin
Chỉ số
DiemTin[1] =
8
Ví dụ: In giá trị 40 phần tử mảng DiemTin
DiemTin[4] =
6
(15)Writeln(‘ Điểm lớp : ’); For i:=1 to n
Write(A[i]:7);
Điểm lớp:
- Thông báo - In giá trị từng phần tử
10 9
Kết hình:
- Sử dụng cấu trúc lặp để in liệu
Sử dụng lệnh Write (Writeln) kết hợp với For do.
2 Ví dụ biến mảng
d In giá trị phần tử mảng:
(16)Bài 9: Làm việc với dãy số
3. Tìm giá trị lớn giá trị nhỏ dãy số:
Bài tốn: Viết chương trình nhập N số ngun
từ bàn phím in hình số nhỏ và số lớn nhất.
Em nêu thuật tốn để tìm
số nhỏ số lớn
dãy số?
THUẬT TỐN
• B1: max:=a; min:=a; i:=1; • B2: i:= i+1;
• B3: Nếu i > n, chuyển đến
bước 5.
• B4: Nếu ai > max max:=ai;
ai <
min :=ai.Quay lai bước 2.
(17)Program vd1;
Uses crt;
Var
i, n, Max, Min: integer ; A: Array[1 100] of Integer ;
BEGIN
Clrscr;
write(‘ Nhap so phan tu cua day so: n= ’) ; readln(n) ;
For i := to n Begin
write(‘ Nhap so thu ‘,i,’ : ‘) ; readln(A[i]) ;
End;
Max:=A[1];
For i := to n
If A[i]>Max Then Max := A[i];
Writeln(‘ So lon nhat la max = ', Max) ; Min:=A[1];
For i := to n
If A[i]<Min Then Min := A[i];
Writeln(‘ So nho nhat la Min = ', Min) ; Readln ;
END.
Khai báo biến mảng
Nhập giá trị cho mảng
(18)Nhap so phan tu cua day so: n= 7
Nhap so thu : 7
Nhap so thu : 9
Nhap so thu : 4
Nhap so thu : 6
Nhap so thu : 9
Nhap so thu : 8
Nhap so thu : 5
So lon nhat la Max = 9 So nho nhat la Min = 4
(19)Củng cố
(20)Bài tập củng cố
Bài 1: Em chọn đáp án đúng:
A Dữ liệu kiểu mảng tập hợp phần tử khơng có thứ tự phần tử có kiểu liệu
B Dữ liệu kiểu mảng tập hợp phần tử có thứ tự phần tử mảng có kiểu liệu khác
C Dữ liệu kiểu mảng tập hợp phần tử có thứ tự phần tử có kiểu
liệu
(21)b) Var X: Array[3 4.8] of Integer; c) Var X: Array[10 1] of Integer; d) Var X: Array[4 10] of Real;
a) Var X: Array[10 , 13] of Real;
Bài 2: Cách khai báo biến mảng sau hay sai? Khoanh trịn vào chỗ sai (nếu có)
a) Sửa dấu , thành dấu b) Sửa 4.8 thành số nguyên
c) Chỉ số cuối phải >= số đầu d) Đúng
Bài 9:
Củng cố
(22)V A R
R E A D
R E A L
M A X
N G U Y Ê N
1 2 3 4 5
Có chữ cái: Là từ khóa để khai báo biến trong chương trình Pascal?
Có chữ cái: Là câu lệnh chương trình Pascal dùng để dừng chương trình chờ ta nhập giá trị cho biến?
Có chữ cái: Là từ khóa chương trình Pascal dùng để thể biến kiểu thực?
Có chữ cái: Là tên hàm tìm giá trị lớn nhất?
Có chữ cái: Chỉ số đầu, số cuối khai báo mảng Thường số……….?
(23)- Học cũ
- Tìm hiểu thuật tốn tìm giá trị lớn nhất, nhỏ dãy số (xem lại ví dụ trang 43 SGK)
- Về nhà làm tập 2, 4, trang 79 SGK
Bài 9:
HƯỚNG DẪN VỀ NHÀ
(24)Tiết học kết thúc