Kiểu mảng một chiều: Bài toán đặt vấn đề: Sau mỗi ngày làm việc, Bố mẹ Hiếu đều ghi vào sổ chi tiêu số tiền mà cả gia đình tiêu trong ngày.. Bố Hiếu yêu cầu Hiếu dùng Pascal viết chương
Trang 1Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
Bài toán đặt vấn đề:
Sau mỗi ngày làm việc, Bố mẹ Hiếu đều ghi vào sổ chi tiêu số tiền
mà cả gia đình tiêu trong ngày Bố Hiếu yêu cầu Hiếu dùng Pascal viết chương trình: Nhập số tiền gia đình tiêu hết của các ngày trong tuần Sau đó tính số tiền trung bình mỗi ngày tiêu bao nhiêu và đếm xem có bao nhiêu ngày trong tuần tiêu ít hơn số tiền tiêu bình quân
đó?
Trả lời:
* Dữ liệu nhập vào (INPUT): t2,t3,t4,t5,t6,t7, cn
* Dữ cần tính và in ra (OUTPUT): tb, dem
Câu hỏi: Hãy xác định Input, Output và viết chương trình giải
bài toán trên giúp bạn Hiếu?
1 Kiểu mảng 1 chiều
00:44:34
Trang 2Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
1 Kiểu mảng 1 chiều
Chương trình viết bằng NNLT Pascal:
Nếu viết chương trình tính số tiền tiêu trung bình mỗi ngày tháng và đếm xem có bao nhiêu ngày tiêu ít hơn số tiền tiêu trung bình mỗi ngày thì viết bao nhiêu câu lệnh?
00:44:59
Trang 3Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
a1 Khái niệm:
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu Mảng được đặt tên và mỗi phần tử có 1 chỉ số
Ví dụ:
B
1 2 3 4 5 6 7
121
Trong đó :
Khi tham chiếu đến phần tử thứ i ta viết A[i].
Ví dụ: B[6] = 121
Tên mảng : B.
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.
1 Kiểu mảng 1 chiều
a1 Khái niêm:
00:43:18
Trang 4Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
a2 Khai báo:
Cách 1: Khai báo gián tiếp:
TYPE <tên kiểu mảng> = array [<chỉ số đầu> <chỉ số cuối>] of <kiểuphần tử>;
VAR <ds biến mảng> : <tên kiểu mảng>;
Trong đó : Chỉ số đầu, chỉ số cuối thường là các hằng hoặc
biểu biểu thức nguyên;
Chỉ số đầu ≤ chỉ số cuối;
Giữa 2 chỉ số là dấu ;
Ví dụ: TYPE tien = array[1 365] of real;
Var A: tien;
1 Kiểu mảng 1 chiều
a2 Khai báo:
a1 Khái niêm:
Có 2 cách:
Khai báo gián tiếp
Khai báo trực tiếp
00:44:29
00:44:30
Trang 5Ph¹m Anh Tïng ®
PPCT: 19 - Bµi 11: KiÓu m¶ng (TiÕt 1)
1 KiÓu m¶ng mét chiÒu:
a2 Khai b¸o:
C¸ch 1: Khai b¸o gi¸n tiÕp:
C¸ch 2: Khai b¸o trùc tiÕp:
VAR <Ds biÕn m¶ng> : array [<chØ sè ®Çu> <chØ sè cuèi>] of <kiÓuphÇn tö>;
Var A,B : array[2 100] of real;
VÝ dô: Var nhietdo : array[1 365] of integer;
1 KiÓu m¶ng 1 chiÒu
a2 Khai b¸o:
a1 Kh¸i niªm:
Var s : array[’a’ ’z’] of string;
Const max = 100;
Var s : array[1 max] of word;
Const n = 100;
Var s : array[n n+50] of word;
00:44:30
Trang 6Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
a3 Các thao tác xử lý trong mảng 1 chiều:
1 Nhập mảng một chiều
A
pascal
Write(’ Nhap vao so ngay:’);
Readln(n);
For i:=1 to n do Begin
write(’nhiet do ngay thu’ ,i, ’ : ’); readln(A[i]);
end;
1 Nhập số phần tử của mảng (n)
2 Nhập vào giá trị của các phần
tử trong mảng (A[i]).
1 Kiểu mảng 1 chiều
a2 Khai báo:
a1 Khái niêm:
a3 Các thao tác…:
n
Ví dụ: Nhập nhiệt độ n ngày
với n = 7
19 17
19 21
18 20
17
00:44:30
Trang 7Ph¹m Anh Tïng ®
PPCT: 19 - Bµi 11: KiÓu m¶ng (TiÕt 1)
1 KiÓu m¶ng mét chiÒu:
a3 C¸c thao t¸c xö lý trong m¶ng 1 chiÒu:
2 In m¶ng mét chiÒu:
pascal
VÝ dô: In m¶ng võa nhËp.
Writeln(… Mang vua nhap : …); For i:=1 to n do Write(A[i]:5);
- Th«ng b¸o
- In gi¸ trÞ cña c¸c phÇn tö
KÕt qu¶ in ra mµn h×nh:
Mang vua nhap:
17 20 18 21 19 17 19
1 KiÓu m¶ng 1 chiÒu
a2 Khai b¸o:
a1 Kh¸i niªm:
a3 C¸c thao t¸c…:
00:44:30
Trang 8Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
a3 Các thao tác xử lý trong mảng 1 chiều:
3 Các thao tác xử lý khác:
pascal
* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước
Ví dụ: Đếm số ngày có nhiệt độ cao
hơn nhiệt độ TB của tuần
dem :=0;
For i :=1 to n do
IF A[i]>TB THEN dem:=dem+1;
1 Kiểu mảng 1 chiều
a2 Khai báo:
a1 Khái niêm:
a3 Các thao tác…:
19 17
19 21
18 20
17
Dem=0
+1 +1 +1 +1
4
00:44:30
Trang 9Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng một chiều:
a3 Các thao tác xử lý trong mảng 1 chiều:
* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước
3 Các thao tác xử lý khác:
pascal
Ví dụ: Tính tổng các phần tử trong mảng chia hết cho 3.
S :=0;
For i :=1 to n do
IF A[i] mod 3 = 0 THEN S:=S+A[i];
19 12
18 25
16 20
15
S = 45 Thông thường, các thao tác xử lí trong mảng một chiều đều dùng câu lệnh FOR DO.
1 Kiểu mảng 1 chiều
a2 Khai báo:
a1 Khái niêm:
a3 Các thao tác…:
00:44:30
Trang 10Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
1 Kiểu mảng 1 chiều
Củng cố tiết học
a2 Khai báo:
a1 Khái niêm:
a3 Các thao tác…:
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu mảng được đặt tên và mỗi phần tử có 1 chỉ số
Củng cố…
15 20 19 25 18 12 16
Khai báo: tên mảng, chỉ số đầu, chỉ số cuối, kiểu phần tử
Tham chiếu phần tử mảng: Tên biến mảng[chỉ số phần tử]
Nhiều thao tác xử lí mảng dùng cấu trúc lặp FOR TO DO.
00:44:30
Trang 11Phạm Anh Tùng đ
PPCT: 19 - Bài 11: Kiểu mảng (Tiết 1)
Xin chân thành cảm ơn quý Thầy Cô đã đến dự giờ
với lớp chúng tôi