Bài giảng Tin học 11 - Bài 11: Kiểu mảng
1) Mảng một chiều
Xét bài toán đặt vấn đề:
Nhập vào nhiệt độ của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ TB của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ TB trong tuần?
Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7.
Dữ liệu cần tính và in ra (OUTPUT): tb, dem.
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học 11 - Bài 11: Kiểu mảng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
KIỂU MẢNG Bài 11: 1) Mảng một chiều Xét bài toán đặt vấn đề:Nhập vào nhiệt độ của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ TB của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ TB trong tuần?Hãy xác định Input, Output cho bài toán trên ?* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7. * Dữ liệu cần tính và in ra (OUTPUT): tb, dem.Kiểu thực: RealKiểu nguyên: integerKiểu thực: RealProgram 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.Phần khai báo biếnNhập nhiệt độ các ngày và tính TBKiểm tra nhiệt độ các ngày và đếm số ngày có nhiệt độ >TBNếu muốn tính và kiểm tra nhiệt độ trung bình của một năm thì cần sử dụng bao nhiêu biến?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.1) Mảng một chiềuKhái niệm mảng một chiều- Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu dữ liệu. - Mảng được đặt tên và mỗi phần tử của mảng có một chỉ số. Ví dụ : Cho dãy các số sau:2025201723Aphần tửchỉ số12345Em hiểu thế nào là mảng một chiều?Số lượng phần tử hữu hạn là 5Các phần tử đều là số nguyên Dãy A là một mảng một chiều.Xác định mảng một chiều trong các trường hợp sau Dãy A: B C C D A Cấp số cộng: 1 3 5 7 9 .. Dãy B: 0.1 3.0 2.5 6.0 4.6 7.0 Dãy C: 4 7 2 -9 12 9 11 Dãy các số tự nhiên: 1 2 3 4 5 .. Dãy D: 1 2 A C True False1) Mảng một chiềuKhái niệm mảng một chiều Ví dụ : Cho dãy các số sau:2025201723Aphần tửchỉ số12345Tên mảng: ASố lượng phần tử: 5Kiểu dữ liệu của các phần tử: Số nguyênCách khai báo biến mảngCách tham chiếu đến phần tử mảnga. Khai báo mảng một chiều - Cách 1: Khai báo trực tiếp biến mảng một chiều:var : array[kiểu chỉ số] of ;Trong đó: • Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1 n2); • Var, array, of là các từ khóa. • Tên biến mảng tuân theo quy tắc đặt tên của NNLT. Ví dụ : Có mảng số nguyên 5 phần tử sau:202520172312345A[n1. . n2][1. . 5]2025201723A-10123kiểu chỉ sốa. Khai báo mảng một chiều - Cách 1: Khai báo trực tiếp biến mảng một chiều:var : array[kiểu chỉ số] of ;Trong đó: • Var, array, of là các từ khóa. • Kiểu phần tử là kiểu dữ liệu của các phần tử của mảng. • Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1 n2); • Tên biến mảng tuân theo quy tắc đặt tên của NNLT. Ví dụ : Có mảng 5 phần tử sau:20252017231234 5AKiểu dữ liệu của các phần tử là kiểu số nguyêna. Khai báo mảng một chiều - Cách 1: Khai báo trực tiếp biến mảng một chiều:var : array[kiểu chỉ số] of ;Trong đó: • Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 dùng để xác định chỉ số đầu và chỉ số cuối (n1 n2); • Var, array, of là các từ khóa. • Kiểu phần tử là kiểu dữ liệu của các phần tử của mảng. Ví dụ 1: Có mảng 5 phần tử sau:20252017231234 5A Ví dụ 2: Khai báo một biến mảng chứa tối đa 10 phần tử, có các phần tử là số thực: Var B: array [1..10] of real; • Tên biến mảng tuân theo quy tắc đặt tên của NNLT. Var A: array [1..5] of integer; a. Khai báo mảng một chiều - Cách 2: Khai báo gián tiếp biến mảng một chiều:type = array[kiểu chỉ số] of ;var : ; Ví dụ 1: Có mảng 5 phần tử sau:20252017231234 5A Khai báo trực tiếp: Var A: array [1..5] of integer;Khai báo gián tiếp: Type ksn = array [1..5] of integer; var B: ksn;a. Khai báo mảng một chiều - Cách 2: Khai báo gián tiếp biến mảng một chiều:type = array[kiểu chỉ số] of ;var : ;Trực tiếp: Var B: array [1..10] of real; Ví dụ 2: Khai báo một biến mảng chứa tối đa 10 phần tử, có các phần tử là số thực:Gián tiếp: Type kst = array [1..10] of real; var B: kst; Ví dụ 3: Khai báo biến mảng nhận giá trị nhiệt độ của các ngày trong tuần bằng 2 cách. Trực tiếp: var T: array[1..7] of real; Ví dụ 4: Khai báo biến mảng nhận giá trị nhiệt độ của các ngày trong một năm. Gián tiếp: Type kst= array[1..7] of real; var T: kst; Trực tiếp: var T: array[1..365] of real; Gián tiếp: Type kst= array[1..365] of real; var T: kst; Ví dụ 3: Khai báo biến mảng nhận giá trị nhiệt độ các ngày trong tuần. Trực tiếp: var T: array[-2..4] of real; Gián tiếp: type Kst= array[-2..4] of real; var T: Kst; -2-101234T19.518202117.51921 Trực tiếp: var T: array[‘a’..’g’] of real; Gián tiếp: type Kst= array[’a’..’g’] of real; var T: Kst; abcdefgT19.518202117.51921A[7]Tham chiếu các phần tử của mảng Để tham chiếu tới phần tử của mảng ta viết: tên biến mảng [Chỉ số phần tử] Ví dụ : Có mảng sau: var A: array[1..10] of integer;123456789105645129-88251025A Để tham chiếu tới phần tử thứ 7 của mảng trong khai báo trên, ta phải viết là: Để tham chiếu tới phần tử thứ 3 của mảng trong khai báo trên, ta phải viết là73A[3]= 45=8Tham chiếu các phần tử của mảng Để tham chiếu tới phần tử của mảng ta viết: tên biến mảng [Chỉ số phần tử] Ví dụ : Có mảng sau: var A: array[1..10] of integer; Để hiển thị mảng A trên ta sử dụng lệnh sau: For i:=1 to 10 do write(a[i], ‘ ‘); Để nhập cho mảng A trên ta sử dụng lệnh sau: For i:=1 to 10 do begin write(‘Nhap so thu ‘,i, ‘: ‘); readln(a[i]); end;Program Tinh_nhiet_do_TB_cac_ngay_trong_năm;Uses crt;Var tb,tong : real; T : array [1..365] of real; dem : integer;BEGIN Clrscr; write( ‘ Nhap so ngay’); readln(N); For i:= 1 to N do begin write(‘Nhap phan tu thu ‘,i); readln(T[i]); end; tong:=0; For i:= 1 to 365 do tb:= (tong+T[i])/365; dem : = 0 ; For i:= 1 to 365 do if T[i] > 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. Bài toán: Nhập vào 100 số nguyên dương từ bàn phím. In ra màn hình các số vừa nhập và đếm số lượng các số chẵn.LUYỆN TẬP Khai báo: var A: array[1..100] of integer;123.....99100.....A Bài toán: Nhập vào 100 số nguyên dương từ bàn phím. In ra màn hình các số vừa nhập và đếm số lượng các số chẵn.123.....99100.....A for i:=1 to 100 do begin write(‘Nhap so nguyen duong thu:’, i); readln(A[i]); end; var A: array[1..100] of integer; Nhập các phần tử mảng var A: array[1..100] of integer;123.....991005645.....1025A for i:=1 to 100 do write(A[i]); In các phần tử mảng lên màn hìnhVí dụ áp dụng var A: array[1..100] of integer;123.....991005645.....1025A dem:= 0; for i:=1 to 100 do if (A[i] mod 2 = 0) then dem:= dem + 1; Đếm số lượng số chẵn trong dãyChương trình hoàn thiệnBegin for i:=1 to 100 do begin write(‘Nhap so nguyen duong thu:’, i); readln(A[i]); end; for i:=1 to 100 do write(A[i]); dem:= 0; for i:=1 to 100 do if (A[i] mod 2 = 0) then dem:= dem + 1; writeln(‘so luong so chan trong day’, dem);End.Program Vi_du_ap_dung;var A: array[1..100] of integer; i,dem: byte;
Tài liệu đính kèm:
- bai_giang_tin_hoc_11_bai_11_kieu_mang.ppt