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ạ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 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:
bai_giang_tin_hoc_lop_11_bai_12_mang_mot_chieu_truong_thpt_q.ppt

