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

ppt 13 trang Mạnh Hào 17/12/2025 240
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 - Trường THPT Quang Trung", để 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 - Trường THPT Quang Trung

Bài giảng Tin học Lớp 11 - Bài 12: Mảng một chiều - Trường THPT Quang Trung
Bài 12 
mảng một chiều 
Giáo án đ iện tử tin học lớp 11 
GV Dinh Nguyen Thanh Tu 
Suu tam va gioi thieu voi CENTEA Data 
TR ƯỜNG THPT QUANG TRUNG 
Nhập vào nhiệt độ ( trung bình ) của mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ TB cao hơn nhiệt trung bình trong tuần ? 
* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7 . 
* Dữ cần tính và in ra (OUTPUT): tb , dem . 
Hãy xác đ ịnh Input, Output và viết chương trình giải bài toán trên ? 
Bài toán đ ặt vấn đề: 
Program vd1; 
Uses crt ; 
Var 
 t1,t2,t3,t4,t5,t6,t7,tb : real; 
 dem : integer; 
BEGIN 
	 Clrscr ; 
	 write(‘ Nhap vao nhiet do 7 ngay : ’); 
	 readln(t1,t2,t3,t4,t5,t6,t7); 
	 tb : = (t1+t2+t3+t4+t5+t6+t7)/7; 
	 dem : = 0 ; 
	 if (t1> tb ) then dem := dem + 1; 
	 if (t2> tb ) then dem := dem + 1; 
	 if (t3> tb ) then dem := dem + 1; 
	 if (t4> tb ) then dem := dem + 1; 
	 if (t5> tb ) then dem := dem + 1; 
	 if (t6> tb ) then dem := dem + 1; 
	 if (t7> tb ) then dem : = dem + 1; 
	 Writeln (‘ Nhiet do trung binh trong tuan = ‘, tb : 6 : 2); 
 	 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_truong_thpt_q.ppt