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