I.Mục đích:
+ Hs cần hiểu rõ: Kiểu mảng là 1 kiểu dl có cấu trúc, rất cần thiết và hữu ích trong nhiều ctrình. Mảng 1 chiều là 1 dãy hữu hạn các ptửt cùng kiểu.
- Các ng2 Lt thông dụng cho phép người LT xd kiểu dl mảng 1 chiều.
- Để mô tả mảng 1 chiều cần khai báo kiểu của các ptử và cách đánh số các ptử của nó.
II.Biện pháp: Dạy và học phát hiện và giải quyết vấn đề
III. Phương tiện:
- GV: SGK, tài liệu tham khảo
- HS: SGK, bót vë
IV. Nội dung tiết dạy:
1. Ổn định tổ chức:
2. Kiểm tra bài cũ:
3. Tiến trình bài học:
Ngày soạn: 25/12 Ngày dạy: 28/12 Tiết: 21, 22, 23. KIỂU MẢNG I.Mục đích: + Hs cần hiểu rõ: Kiểu mảng là 1 kiểu dl có cấu trúc, rất cần thiết và hữu ích trong nhiều ctrình. Mảng 1 chiều là 1 dãy hữu hạn các ptửt cùng kiểu. - Các ng2 Lt thông dụng cho phép người LT xd kiểu dl mảng 1 chiều. - Để mô tả mảng 1 chiều cần khai báo kiểu của các ptử và cách đánh số các ptử của nó. II.Biện pháp: Dạy và học phát hiện và giải quyết vấn đề III. Phương tiện: - GV: SGK, tài liệu tham khảo - HS: SGK, bót vë IV. Nội dung tiết dạy: Ổn định tổ chức: Kiểm tra bài cũ: Tiến trình bài học: Hoạt động Nội dung Tiết 1: GV: Giới thiệu k/n về kiểu mảng 1 chiều. - Phân tích và đưa ra quy tắc xd, sd kiểu mảng 1 chiều. HS: Chú ý nghe giảng và ghi bài. GV: Y/c hs đọc và nghiên cứu VD – SGK trang 53. - Gợi ý rồi gọi 1 hs lên bảng viết ctrình, dưới lớp làm ra nháp. HS: Thực hiện theo y/c của Gv. GV: nhận xét, chữa bài cho cả lớp. - Với toán tính nhiệt độ trong tuần thì số ngày chỉ tối đa lên tới 7 ngày ta có thể làm theo cách này. Nhưng nếu tính nhiệt độ trong năm lên tới 365 ngày ta ko thể cứ liệt kê mãi ra thế được. -Để giải quyết vđ đó ta có thể sd kiểu dl mảng 1 chiều để mô tả dl. - Cú pháp của việc khai báo mảng 1 chiều. HS: Chú ý nghe giảng và ghi bài. Tiết 2: GV: Đưa ra VD và gợi ý. - Y/c hs nghiên cứu VD. HS: nghiên cứu VD. GV: Gọi 1 hs lên bảng xác định bài toán. HS: Xđ bài toán. GV: Gọi 1 HS khác lên bảng viết lại thuật toán này (thuật toán này đã học trong ctrình lớp 10). HS: Lên bảng viết lại thuật toán. - Dưới lớp làm ra nháp. GV: Cả lớp cùng nghiên cứu và sd mảng 1 chiều để viết ctrình giải bài toán này. HS: Làm ra nháp. GV: Quan sát các em làm bài và gợi ý them cho hs. - Gọi 1 Hs lên bảng chữa bài. HS: Lên bảng chữa bài. - Cả lớp quan sát và nhận xét bài bạn. GV: Nhận xét lại và chữa bài. Tiết 3: GV: Giới thiệu k/n về kiểu mảng 2 chiều. - Phân tích và đưa ra quy tắc xd, sd kiểu mảng 2 chiều. HS: Chú ý nghe giảng và ghi bài. GV: Cú pháp của việc khai báo mảng 2 chiều. HS: Chú ý nghe giảng và ghi bài. GV: Y/c hs đọc và nghiên cứu VD – SGK trang 61. - Gợi ý rồi gọi 1 hs lên bảng viết ctrình, dưới lớp làm ra nháp. HS: Thực hiện theo y/c của Gv. GV: nhận xét, chữa bài cho cả lớp. 1. Kiểu mảng một chiều. + K/n: là dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử có nó có 1 chỉ số. Để mô tả mảng 1 chiều cần xđ kiểu của các p.tử và cách đánh số các p.tử của nó. + Quy tắc xd, và sd kiểu mảng 1 chiều. - Tên kiểu mảng 1 chiều. - Số lượng p.tử. - Kiểu dl của p.tử. - Cách khai báo biến mảng. - Cách tham chiếu đến p.tử. VD: (SGK-T53). Chương trình. Program Nhiet_do_tuan; Var t1, t2, t3, t4, t5, t6, t7, tv: real; Dem: integer; Begin Writeln(‘nhap vao nhiet do cua 7 ngay trong tuan: ‘); 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 t5>tb then dem:=dem+1; If t7>tb then dem:=dem+1; Writeln(‘Nhiet do trung binh trong tuan la: ’,tb:4:2); Writeln(‘So ngay nhiet do cao hon nhiet do trung binh la: ‘, dem) Readln End. a, Khai báo. *C1: Khai báo trực tiếp biến mảng 1 chiều: Var:array [Kiểu chỉ số] of ; *C2: Khai báo gián tiếp biến mảng qua kiểu mảng 1 chiều: Type =array [kiểu chỉ số] of ; Var :; Trong đó: - Kiểu chỉ số thường là 1 đoạn số nguyên liên tục. - Kiểu phần tử: là kiểu của các phần tử mảng. b. Một số ví dụ. VD1: Tìm phần tử lớn nhất của dãy số nguyên. * Xác định bài toán: Input: Output: * Xd thuật toán theo liệt kê các bước: Bc1: Nhập N và dãy A1,,AN; Bc2: Max<- A1, 1<- 2; Bc3:Nếu i>N thì đưa ra giá trị Max rồi kết thúc; Bc4: Nếu Ai>Max thì Max <- Ai; - i<- i+1 rồi quay lại bc 3; * Viết chương trình: Program TimMax; Uses crt; Nmax = 250; Type ArrInt = array [1..Nmax] of integer; Var N, i, Max, csmax: Integer; A: ArrInt; BEGIN Clrscr; Write(‘nhap so luong phan tu cua day so, N=’’); Readln (N); For i:=1 to N do Begin Write(‘phan tu thu ‘, i,’ = ’); Readln (A[i]); End; Max: = A[i]; csmax:=1; For i:=2 to N do If A[i] > Max then Begin Max: = A[i]; Csmax:=i; End; Writeln (‘Gia tri cua phan tu Max : ‘, Max); Writeln (‘Chi so cua phan tu Max : ‘, csMax); Readln END. 2.Kiểu mảng 2 chiều: * mảng 2 chiều là bảng các p tử cùng kiểu. - Mỗi hàng của mảng 2 chiều có cấu trúc như 1 mảng 1 chiều cùng kích thước. - Nếu coi mỗi hàng của mảng 2 chiều là 1 ptử thì ta có thể nói mảng 2 chiều là mảng 1 chiều mà mỗi p.tử là mảng 1 chiều. * Quy tắc xác định mảng 2 chiều: - Tên kiểu mảng 2 chiều. - Slượng ptử của mỗi chiều. - Kiểu dl của ptử. - Cách khai báo biến. - Cách tham chiếu đến ptử. a. Khai báo. C1: Khai báo trực tiếp biến mảng 2 chiều. Var :array [kiểu chỉ số hàng, kiểu chỉ số cột] of ; *C2: Khai báo gián tiếp biến mảng qua kiểu mảng 2 chiều: Type =array [kiểu chỉ số hàng, kiểu chỉ số cột] of ; Var :; VD: Tính và đưa ra màn hình bảng nhân. Program Bang_nhan; Uses crt; Var B: array [1..9, 1..10] of integer; {B: biến mảng 2 chiều lưu bảng nhân} I, j: integer; BEGIN Clrscr; For i:=1 to 9 do For j:=1 to 10 do B [i, j]:=i*j; For i:=1 to 9 do Begin For J:=1 to 10 do write (B[i,j]:4); Writeln; End; Readln END. 4. Củng cố: ? phân biệt thế nào là mảng 1 chiều và mảng 2 chiều. (Ngoài 2 kiểu mảng trên thì còn có kiểu mảng nhiều chiều) 5. Dặn dò: - Về nhà học bài và nghiên cứu các ví dụ còn lại trong SGK.
Tài liệu đính kèm: