Bài giảng Tin học Lớp 11 - Chương 4: Kiểu dữ liệu có cấu trúc - Bài: Kiểu mảng - Trần Thị Kim Cương

pptx 18 trang phanha23b 29/03/2022 4280
Bạn đang xem tài liệu "Bài giảng Tin học Lớp 11 - Chương 4: Kiểu dữ liệu có cấu trúc - Bài: Kiểu mảng - Trần Thị Kim Cương", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptxbai_giang_tin_hoc_lop_11_chuong_4_kieu_du_lieu_co_cau_truc_b.pptx

Nội dung text: Bài giảng Tin học Lớp 11 - Chương 4: Kiểu dữ liệu có cấu trúc - Bài: Kiểu mảng - Trần Thị Kim Cương

  1. CHƯƠNG 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC _⸙_ KIỂU MẢNG _⸙_ GV: Trần Thị Kim Cương
  2. 1. Kiểu Mảng 1 chiều - Khái niệm mảng 1 chiều a. Cú pháp khai báo biến kiểu mảng 1 chiều b. Một số ví dụ
  3. - Khái niệm mảng 1 chiều • Mảng 1 chiều là một dãy hữu hạn các phần tử có cùng kiểu dữ liệu, mảng được đặt tên và mỗi phần tử trong mảng có 1 chỉ số để truy cập • Để mô tả mảng 1 chiều ta cần xác định: ➢ Kiểu dữ liệu của các phần tử trong mảng ➢ Cách đánh số các phần tử đó
  4. - Khái niệm mảng 1 chiều So sánh mảng và 15 25 tập hợp chỉ số 1 2 3 4 5 231 Giá trị 125 43 55 1 5 9 4 Mảng A gồm có 5 số nguyên Mảng gồm 2 phần: Tập hợp A gồm có 5 số nguyên + chỉ số: để xác định vị trí của số nguyên A = {15,4,231,25,9} + Giá trị của các phần tử trong mảng
  5. a. Khai báo mảng 1 chiều Cú pháp: Var tên biến mảng : Array[kiểu chỉ số] of kiểu phần tử; Trong đó: - Kiểu chỉ số có dạng: n1 n2 (n1≤n2), giúp xác định chỉ số của phần tử đầu tiên và chỉ số của phần tử cuối của mảng, đồng thời xác định số lượng phần tử có thể chứa được trong mảng - Kiểu phần tử: là kiểu dữ liệu chung của các phần tử trong mảng (các kiểu dữ liệu đã học ở bài 4) - Cách truy xuất giá trị của phần tử trong mảng: tên biến mảng [chỉ số]
  6. Lưu ý: - Sau bước khai báo thì ngôn ngữ lập trình sẽ tạo ra một mảng rỗng (các phần tử có giá trị là 0), giá trị của các phần tử chỉ có khi ta nhập vào ở phần thân chương trình - Giả sử ta có 1 mảng A được nhập các giá trị sau: chỉ số 1 2 3 4 5 Mảng A Giá trị 125 43 55 1 5 Cách truy xuất giá trị của phần tử thứ 3 trong mảng A ta ghi là A[3], và A[3] có giá trị là 55
  7. ƯU ĐIỂM CỦA KIỂU MẢNG ✓ Một biến kiểu mảng có thể được định nghĩa để lưu tùy ý một số lượng lớn các phần tử có chung kiểu dữ liệu ✓ Do các phần tử đều có 1 chỉ số xác định, điều đó giúp chúng ta dễ dàng truy xuất giá trị của phần tử đó thông qua tên biến mảng và chỉ số của nó. ✓ Do các phần tử trong mảng có chỉ số liên tục nhau nên chúng ta có thể sử dụng dễ dàng câu lệnh For – do để thực hiện việc nhập, xuất và tính toán mà không cần viết nhiều câu lệnh.
  8. a. Khai báo mảng 1 chiều Cú pháp: Var tên biến mảng : Array[kiểu chỉ số] of kiểu phần tử; Ví dụ 1: Hãy khai báo một mảng A có thể chứa tối đa 100 số nguyên dương, giá trị mỗi số không vượt quá 255 - Tên biến mảng: A - kiểu chỉ số (n1 n2): 1 100 - Kiểu phần tử: số nguyên dương, giá trị <=255(ta chọn byte) Var A : Array[1 100] of byte ;
  9. Ví dụ 2: Hãy khai báo 1 mảng số thực R, mảng có thể chứa tối đa 250 số thực Var tên biến mảng : Array[kiểu chỉ số] of kiểu phần tử; - Tên biến mảng: R - kiểu chỉ số (n1 n2): 1 250 - Kiểu phần tử: số thực(ta chọn real) Var R : Array[1 250] of real ;
  10. Ví dụ 3: Hãy khai báo 1 mảng nhiệt độ T, mảng này có thể lưu nhiệt độ trung bình của 366 ngày - Tên biến mảng: T - kiểu chỉ số (n1 n2): 1 366 - Kiểu phần tử: số thực (ta chọn real) - Var T : Array[1 366] of real ;
  11. Ví dụ 4: Viết chương trình Nhập vào nhiệt độ của N ngày(N≤366), Tính và in ra màn hình cho biết nhiệt độ trung bình của N ngày đó, và cho biết có bao nhiêu ngày nhiệt độ cao hơn nhiệt độ trung bình Bước 1: Xác định bài toán - Input: số ngày N và nhiệt độ của N ngày - Output: nhiệt độ trung bình và số ngày có nhiệt độ cao hơn nhiệt độ trung bình Bước 2: Xác định biến Var N : word; T : array[1 366] of real; TB : real; Songay : word;
  12. Program nhietdo; Var N : word; TB : real; Songay : word; T : array[1 366] of real; i : word; Tong : real; Begin Write(‘ban muon nhap nhiet do cua bao nhieu ngay? ’); readln(N); For i:=1 to N do Begin write(‘Nhap nhiet do ngay thu ’ , i , ‘: ’); readln(T[i]); End; For i:=1 to N do Tong := Tong + T[i]; {tính tổng nhiệt độ của N ngày} TB := Tong/N; Songay := 0; For i:=1 to N do if T[i] > TB then songay := songay + 1; Writeln(‘Nhiet do trung binh la: ’ , TB); Writeln(‘so ngay co nhiet do cao hon nhiet do trung binh la: ’, songay); Readln End.
  13. Demo chương trình
  14. b. Một số ví dụ Ví dụ 1: Viết chương trình Nhập vào một dãy A gồm N (N≤250) số nguyên dương (giá trị mỗi số không vượt quá 500). In ra màn hình vị trí của số nguyên có giá trị lớn nhất và giá trị của số nguyên lớn nhất Ý tưởng: - Giả sử số nguyên lớn nhất là số nguyên đầu tiên Max = A[1], vị trí = 1 - Lần lượt so sánh từ số nguyên thứ 2 cho đến cuối dãy số, nếu số nguyên nào có giá trị lớn hơn Max thì Max nhận giá trị mới là số nguyên đó, vị trí là vị trí của số nguyên có giá trị lớn hơn
  15. chỉ số 1 2 3 4 5 6 7 8 9 10 Giá trị 125 43 55 1 5 305 307 34 98 100 Max := A[1] = 125, vị trí := 1; So sánh A[2] với max (43 max) nên Max nhận giá trị mới là 305, vị trí =6 So sánh A[7] với max (307 > max(305)) nên Max nhận giá trị mới là 307, vị trí = 7 So sánh A[8] với max (34 < max) nên Max vẫn là 307, vị trí số nguyên lớn nhất là 7 So sánh A[9] với max (34 < max) nên Max vẫn là 307, vị trí số nguyên lớn nhất là 7 So sánh A[10] với max (100 < max) nên Max vẫn là 307, vị trí số nguyên lớn nhất là 7
  16. Bước 1: Xác định bài toán - Input: N và dãy gồm N số nguyên dương - Output: vị trí và giá trị của số nguyên lớn nhất Bước 2: Xác định biến Var N : byte; A : array[1 250] of word; vitri : byte; Max : word;
  17. Program tim_songuyen_lonnhat; Var N, i , vitri : byte; Max: word; A : array[1 366] of word; Begin Write(‘ban muon nhap bao nhieu so nguyen ’); readln(N); For i:=1 to N do Begin write(‘Nhap so nguyen thu ’ , i , ‘: ’); readln(A[i]); End; Max := A[1] ; vitri :=1; For i:=2 to N do if A[i] > Max then begin Max :=A[i]; vitri := i ; end; Writeln(‘ - vi tri so nguyen lon nhat la ’ , vitri); Writeln(‘ - gia tri so nguyen lon nhat la ’, Max); Readln End.