Bài giảng Tin học Lớp 11 - Bài 12: Mảng một chiều

2. Khai báo mảng một chiều trong PASCAL

Cách 1: Khai báo gián tiếp

TYPE = array[.] of ;

Var : ;

Trong đó : ? Chỉ số đầu, chỉ số cuối thờng là các hằng hoặc biểu thức nguyên;

 ? Chỉ số đầu ? chỉ số cuối;

 ? Giữa 2 chỉ số là dấu .

Ví dụ: TYPE nhietdo = array[1.365] of integer;

 Var A: nhietdo;

Cách 2: Khai báo trực tiếp

Var : array[.] of ;

Ví dụ: Var nhietdo : array[1.365] of integer;

Var A,B : array[1.100] of real;

 

ppt 13 trang trandan 300
Bạn đang xem tài liệu "Bài giảng Tin học Lớp 11 - Bài 12: Mảng một chiều", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học Lớp 11 - Bài 12: Mảng một chiều

Bài giảng Tin học Lớp 11 - Bài 12: Mảng một chiều
 	 Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘, dem); 
Readln; 
END. 
Quan sát chương trình, hãy cho biết nếu muốn tính nhiệt độ trung bình của N ngày trong năm (VD: N=365) thì sẽ gặp khó khăn gì ? 
Khai báo quá lớn (t1,t2,t3,...,t365) và chương trình quá dài (với 365 lệnh IF) !!!!! 
 Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiều. 
	 Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu 
17 
20 
18 
25 
19 
12 
19 
A 
 1	 2	 3	4	5	6	7 
 Trong đó : 
Khi tham chiếu đến phần tử thứ i ta viết A[i] . 
	 	 Ví dụ: A[5] = 19. 
 Tên mảng : A . 
 Số phần tử của mảng: 7 . 
Ví dụ: 
 Kiểu dữ liệu của các phần tử: Kiểu nguyên . 
19 
1. Khái niệm 
2. Khai báo mảng một chiều trong PASCAL 
* Cách 1: Khai báo gián tiếp 
TYPE = array [..] of ; 
 Var : ; 
Ví dụ: 	TYPE nhietdo = array [1..365] of integer; 
 Var A: nhietdo; 
Trong đó :  Chỉ số đầu, chỉ số cuối thường là các hằng hoặc biểu thức nguyên; 
	  Chỉ số đầu chỉ số cuối; 
	  Giữa 2 chỉ số là dấu .. 
* Cách 2: Khai báo trực tiếp 
Var : array [..] of ; 
	 Var A,B : array [1..100] of real; 
Ví dụ: 	Var nhietdo : array [1..365] of integer; 
3. Các thao tác xử lí trong mảng một chiều 
A 
n 
1. Nhập số phần tử của mảng (n). 
Write(‘ Nhap vao so ngay:’); 
Readln(n); 
2. Nhập vào giá trị của các phần tử trong mảng ( A [i]). 
For i:=1 to n do 
 Begin 
 write(‘nhiet do ngay thu’ ,i, ’ : ’); 
 readln(A[i]); 
 end; 
....... 
Các bước 
Thể hiện bằng pascal 
a. Nhập mảng một chiều 
 với n = 7 
19 
17 
19 
21 
18 
20 
17 
Ví dụ: Nhập nhiệt độ n ngày. 
 b. In mảng một chiều 
Writeln(‘ Mang vua nhap : ’); 
For i:=1 to n do Write(A[i]:5); 
Mang vua nhap: 
- Thông báo 
 - In giá trị của các phần tử 
17 20 18 21 19 17 19 
Kết quả in ra màn hình: 
Ví dụ: In mảng vừa nhập. 
* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước 
dem :=0; 
For i :=1 to n do 
 IF A[i]>TB then dem:=dem+1; 
 c. Các thao tác xử lí khác 
Ví dụ : Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần . 
TB = 18.7 
Dem=0 
7 
6 
5 
4 
3 
2 
1 
i 
19 
17 
19 
21 
18 
20 
17 
A[i] 
0 
1 
1 
2 
3 
3 
4 
20 
21 
19 
19 
+1 
+1 
+1 
+1 
Program vd1; 
Uses crt; 
Var 
	A: Array[1..366] of integer; 
	i,n,dem: integer; 
	S,TB : real ; 
BEGIN 
	Clrscr; 
	write(‘ Nhap vao so ngay : ’) ; 
	readln(n) ; 
	S := 0 ; 
	 For i := 1 to n do 
	Begin 
	 write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ; 
	 readln(A[i]) ; 
	 S:=S+A[i] ;	 
	 	End; 
	 TB := S/n ;	 dem := 0 ; 
	 For i := 1 to n do 
	If A[i]>TB Then dem := dem+1; 
	 Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ; 
 	 Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ; 
Readln ; 
END. 
Khai b áo mảng 1 chiều 
Nhập mảng 1 chiều 
Tính tổng 
Đếm số phần tử thoả mãn điều kiện 
Nhap vao so ngay : 
7 
Nhap nhiet do ngay thu 1 : 
17 
Nhap nhiet do ngay thu 2 : 
20 
Nhap nhiet do ngay thu 3 : 
18 
Nhap nhiet do ngay thu 4 : 
21 
Nhap nhiet do ngay thu 5 : 
19 
Nhap nhiet do ngay thu 6 : 
17 
Nhap nhiet do ngay thu 7 : 
19 
Nhiet do trung binh 7 ngay = 18.70 
So ngay co nhiet do cao hon nhiet do TB la: 4 
Chương trình chạy và cho kết quả như sau: 
 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. 
* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước 
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 
Hãy nhớ! 
 Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. 
 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. 
15 20 19 25 18 12 16 
Var A :ARRAY[ 1..100 ] OF integer ; 
 A[5] = 18 

File đính kèm:

  • pptbai_giang_tin_hoc_lop_11_bai_12_mang_mot_chieu.ppt