Slide 1 Mộ Đức, 11/2017 Trường THPT Phạm Văn Đồng Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC THÁI ĐỘ KIẾN THỨC KỸ NĂNG MỤC TIÊU ĐỊNH HƯỚNG HÌNH THÀNH NĂNG LỰC Biết được một kiểu dữ liệu mới là kiểu mảng một c[.]
Trường THPT Phạm Văn Đồng Mộ Đức, 11/2017 Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI 11 KIỂU MẢNG (T1) KIẾN THỨC KỸ NĂNG MỤC TIÊU THÁI ĐỘ ĐỊNH HƯỚNG HÌNH THÀNH NĂNG LỰC - Biết kiểu liệu kiểu mảng chiều; - Biết cấu trúc tạo kiểu mảng chiều cách khai báo biến kiểu mảng chiều; - Tạo kiểu mảng chiều; - Tự giác, tích cực chủ động học tập; u thích lập trình - Mơ hình hóa tình thực tiễn xảy theo cấu trúc lặp với kiểu liệu cụ thể - Diễn tả tḥt tốn tốn có lưu trữ liệu sống theo ngôn ngữ lập trình §11 KIỂU MẢNG (TIẾT 1) IỀ U KIỂU MẢNG MỘT CH Định nghĩa mảng chiều 22 Cách khai báo Cách truy xuất phần tử Nhập liệu vào mảng Xuất liệu §11 KIỂU MẢNG (TIẾT 1) Bài tốn: Nhập nhiệt đợ của ngày tuần đưa hình nhiệt độ trung bình của tuần, đồng thời đưa ngày có nhiệt độ cao nhiệt độ trung bình” Nhiệm vụ: 1.Xác định input/output toán Đối với toán ta sử dụng câu lệnh if, biến đối trường hợp N ngày (giả sử N số ngày năm)? Em có nhận xét gì biến chương trình trên? Vậy với trường hợp N lớn vậy chương trình có hạn chế gì? Hướng giải em vấn đề trên? §11 KIỂU MẢNG (TIẾT 1) Bài tốn: Nhập nhiệt độ của ngày tuần đưa hình nhiệt độ trung bình của tuần, đồng thời đưa ngày có nhiệt độ cao nhiệt độ trung bình” * Dữ liệu vào (INPUT): t1,t2,t3,t4,t5,t6,t7 * Dữ liệu cần tính in (OUTPUT): tb, dem §11 KIỂU MẢNG (TIẾT 1) §11 KIỂU MẢNG (TIẾT 1) Khái niệm Mảng chiều dãy hữu hạn phần tử có kiểu liệu Các phần tử mảng có chung tên phân biệt số VÝ dô: A 17 20 18 25 19 12 19 Trong : Tên mảng : A Số phần tử mảng: Kiểu d liệu phần tử: Kiểu nguyên Khi tham chiếu đến phần tử thứ i ta viết A[i] VÝ dơ: A[5] = 19 §11 KIỂU MẢNG (TIẾT 1) Khái niệm Khai báo đúng? Type Array=array[1 200] of real; Var A:array; Type Array=array[byte] of real; Var A:array; Type Array=array[-100 0] of boolean; Var A:array; §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiu a Khai báo gián tiếpTYPE = array[ ] of ; Var : ; Trong : Chỉ số đầu, số cuối thờng h»ng hc biĨu thøc ngun đoạn kí tự; Chỉ số đầu số cuối; Gia chØ sè lµ dÊu VÝ dơ: TYPE nhietdo = array[1 365] of integer; Var A: nhietdo; b 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; §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều c Tham chiếu tới phần tử •Cách truy xuất tới phần tử: Tên mảng[vị trí]; •Ví dụ: Var A : array[ 7] of integer; A Vị trí 10 23 -5 -5 43 33 17 B[3]= B[7]= 59 §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng Viết chương trình thực công việc sau: - Khai báo mảng chiều có phần tử kiểu số nguyên - Nhập giá trị cho phần tử mảng -Khai báo mảng A gồm phần tử có kiểu số nguyên Var A : array[1 7] of integer; A 23 24 29 27 31 26 27 Readln(A[1]) = 23 Readln(A[2]) = 24 Readln(A[3]) = 29 Readln(A[4]) = 27 Readln(A[5]) = 31 Readln(A[6]) = 26 Readln(A[7]) = 27 For i:=4723 to Readln(A[12437i]); §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng Program vidu; Var A : array[1 7] of integer; i : integer; Begin For i:=1 to Readln(A[i]); End Ctrl+F9 §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng - §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng Program vidu; Var A : array[1 7] of integer; i : integer; Begin Writeln(‘Nhap gia tri cho cac phan tu cua mang:’); For i:=1 to Readln(A[i]); End Ctrl+F9 §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng Program vidu; Var A : array[1 7] of integer; i : integer; Begin Writeln(‘Nhap gia tri cho cac phan tu cua mang:’); For i:=1 to Begin Writeln(‘Nhap A[‘,i,’]= ‘); Readln(A[i]); End; End Ctrl+F9 §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều d Nhập liệu vào mảng Nhap gia tri cho cac phan tu cua mang: Nhap A[1]= 23 Nhap A[2]= 24 Nhap A[3]= Nhap A[4]= 27 Nhap A[5]= 31 Nhap A[6] = 26 Nhap A[7] = 27 §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều e Xuất liệu Viết chương trình nhập xuất nhiệt độ ngày -Xuất liệu For i:=1 to Write(A[i]); §11 KIỂU MẢNG (TIẾT 1) Khai báo mảng một chiều e Xuất liệu Program vidu; Var A : array[1 5] of integer; i : integer; Begin Ctrl+F9 Writeln(‘Nhap gia tri cho cac phan tu cua mang:’); For i:=1 to Begin Writeln(‘Nhap A[’, i, ’]= ‘); Readln(A[i]); End; Nhập mảng Writeln(‘Gia tri cac phan tu mang la: ‘); For i:=1 to Write(A[i]:5); End Xuất mảng 20 Nhap gia tri cho cac phan tu cua mang: Nhap A[1]= 23 Nhap A[2]= 24 Nhap A[3]= Nhap A[4]= 27 Nhap A[5]= 31 Nhap A[6] = 26 Nhap A[7] = 27 Gia tri cac phan tu mang la 23 24 27 31 26 27 §11 KIỂU MẢNG (TIẾT 1) Thực hành Program Nhiet_do; Var ND:array[1 366] of real; Giả Chương sử ta có trình nhiệt Nhiet_do độ trungcóbình thể i,n:integer; chia7thành ngày theo thứ thành tự là:phần 22.5nào 28 tb,tong:real; dem:integer; 27.5 (từ dòng 29 30lệnh 21 18 nàoEm đếnhãy dòng cho lệnh Begin biết nào)? kết Nhiệm khivụ/công thực chương việc write('Nhap vao so ngay:'); readln(n); trình trên? phần gì? For i:=1 to n begin write('Nhap nhiet ',i,':'); readln(ND[i]); end; Tong:=0; for i:=1 to n Tong:=Tong+ND[i]; tb:=Tong/n; dem:=0; For i:=1 to n if ND[i]>tb then dem:=dem+1; writeln('Nhiet trung binh ',n,' ngay:',tb:5:2); writeln('So nhiet cao hon nhiet tb:',dem); readln; §11 KIỂU MẢNG (TIẾT 1) Thực hành Xác định khai báo đúng, sửa lại khai báo sai (A) var A:array[1 100] of integer (B)var A=array[1 100] of integer; (C) var A:array[1…100] of integer; (D) var A:array[1 100] of integer; (E) Var A:array[a f] of integer; (F) Var A: array [-4 1] of Boolean; (G) Var A: array[‘a’ ’d’] of char; §11 KIỂU MẢNG (TIẾT 1) IỀ U KIỂU MẢNG MỘT CH Định nghĩa mảng một chiều Cách khai báo Trực tiếp Gián tiếp Cách truy xuất phần tử Nhập liệu vào mảng A[i]; For to Xuất liệu