I. MỤC TIÊU:
- Biết được kiểu dữ liệu mới là kiểu mảng một chiều và hai chiều :biết cấu trúc tạo mảng một chiều và hai chiều, cách tham chiếu đến phần tử của mảng một chiều và hai chiều, cách khai báo biến kiểu mảng một chiều và hai chiều.
- Sử dụng kiểu mảng một chiều và hai chiều trong ngôn ngữ lập trình Pascal để giải quyết các bài toán cụ thể.
II. PHÂN TIẾT:
- Tiết 21: mục 1.a.
- Tiết 22: mục 1.b (ví dụ 1,2).
- Tiết 23: mục 1.b (ví dụ 3).
- Tiết 24 : Luyện tập.
- Tiết 25-26: Bài thực hành số 3.
- Tiết 27: mục 2.
III. TIẾN TRÌNH BÀI HỌC:
TIẾT 21
A. Ổn định lớp:
B. Bài cũ :
C. Bài mới:
CHƯƠNG III : KIỂU DỮ LIỆU CÓ CẤU TRÚC §11 KIỂU MẢNG I. MỤC TIÊU: - Biết được kiểu dữ liệu mới là kiểu mảng một chiều và hai chiều :biết cấu trúc tạo mảng một chiều và hai chiều, cách tham chiếu đến phần tử của mảng một chiều và hai chiều, cách khai báo biến kiểu mảng một chiều và hai chiều. - Sử dụng kiểu mảng một chiều và hai chiều trong ngôn ngữ lập trình Pascal để giải quyết các bài toán cụ thể. II. PHÂN TIẾT: - Tiết 21: mục 1.a. - Tiết 22: mục 1.b (ví dụ 1,2). - Tiết 23: mục 1.b (ví dụ 3). - Tiết 24 : Luyện tập. - Tiết 25-26: Bài thực hành số 3. - Tiết 27: mục 2. III. TIẾN TRÌNH BÀI HỌC: TIẾT 21 A. Ổn định lớp: B. Bài cũ : C. Bài mới: Hoạt động 1 : Tìm hiểu kiểu mảng một chiều. Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1: Dẫn dắt đến kiểu mảng một chiều: - Xét input, output, thuật toán bài toán nhiệt độ nhập vào nhiệt độ (trung bình ) của mỗi ngày trong tuần và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ cao hơn nhiệt độ trung bình của tuần. - Cho HS tìm hiểu chương trình Nhiêtdo_Tuan. Sau đó phát vấn HS để hiểu chương trình. - Nếu mở rộng chương trình là một tháng, một năm thì các em có nhận xét gì về chương trình. H2: Mảng một chiều. - HS trả lời. - HS tìm hiểu chương trình và trả lời các câu hỏi phát vấn của GV. - Chương trình sử dụng rất nhiều biến và các đoạn lệnh chương trình khá dài. - Nghe, ghi và hiểu. 1. 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. Mảng được đăït tên và mỗi phần tử của nó có một chỉ số. - Các ngôn ngữ lập trình có quy tắc và cách thức cho phép người lập trình xác định: + Tên kiểu mảng một chiều. + Số lượng phần tử. + Kiểu dữ liệu của phần tử. + Cách khai báo biến mảng. + Cách tham chiếu đến phần tử. Hoạt động 2 : Cách khai báo biến kiểu mảng một chiều trong Pascal. Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1:HS tìm hiểu chương trình Nhietdo_Nngay. H2: Trong phần khai báo chương trình có khai báo nào mới? H3: GV giải thích và dẫn dắt đến phần khai báo. H4: Tìm hiểu lại chương trình Nhietdo_Nngay hiểu cách khai báo biến mảng, cách tham chiếu đến phần tử của mảng. H5: Cho ví dụ về khai báo mảng một chiều: var Hocsinh : array[-100..100] of char; - Xác định tên biến mảng, số lượng phần tử và kiểu dữ liệu phần tử. - Chuyển sang khai báo cách 2. H6: Gọi HS cho ví dụ về khai báo biến mảng môt chiều. - HS tìm hiểu chương trình. - HS trả lời: type Kmang1 = array[1..Max] of real; var Nhietdo : Kmang1; - HS xem SGK, nghe và hiểu. - Tìm hiểu chương trình để hiểu bài. - Tên kiểu mảng là Hoc sinh, mảng có 201 phần tử, kiểu các phần tử của mảng là kí tự. - type ArrChar = array[-100..100] of char; var Hocsinh : ArrChar; - HS cho ví dụ. a) Khai báo (SGK) D.Củng cố và dặn dò: - Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều. - Về xem lại bài và xem trước mục 1b) Một số ví dụ. . TIẾT 22 A. Ổn định lớp: B. Bài cũ : Thế nào là mảng một chiều? Cách khai báo biến mảng một chiều. Cho ví dụ khai báo biến mảng một chiều theo cách khai báo gián tiếp và cho biết tên kiểu mảng , số lượng phần tử của mảng và kiểu dữ liệu các phần tử của mảng. C. Bài mới: Hoạt động 1 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 1. Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1:Tìm hiểu bài toán tìm phần tử lớn nhất của dãy số nguyên : input, output, thuật toán(bảng phụ). H2: Phát vấn HS mô phỏng thuật toán với kiểu dữ liệu cụ thể. H3: Tìm hiểu chương trình cài đặt trong Pascal (có phát vấn HS) : - Dùng một mảng một chiều có kiểu phần tử là nguyên để biểu diễn một dãy hữu hạn số nguyên và cách khai báo mảng này. - Số lượng phần tử thực sự của mảng do người chạy chương trình nhập. - Câu lệnh for –do thứ nhất trong chương trình thể hiện bước 1 trong thuật toán dùng để nhập các phần tử của mảng (lưu ý cho HS cách tham chiếu đến phần tử của mảng). - Câu lệnh for –do thứ hai trong chương trình thể hiện bước 3,4 trong thuật toán dùng để duyệt tuần tự các phần tử của mảng. - HS trả lời theo câu hỏi của giáo viên. - HS trả lời. - HS hiểu chương trình thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn. b) Một số ví dụ Ví dụ 1: SGK Hoạt động 2 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 2. Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1:Tìm hiểu bài toán sắp xếp của dãy số nguyên bàng thuật toán tráo đổi : input, output, thuật toán (bảng phụ). H2: Phát vấn HS mô phỏng thuật toán với kiểu dữ liệu cụ thể. H3: Tìm hiểu chương trình cài đặt trong Pascal (có phát vấn HS) : - Giải thích cho học sinh hiểu mục đích trong câu lệnh: for j := N downto 2 do for i :=1 to j -1 do if A[i]:=A[i+1] then begin t:=A[i]; A[i]:=A[i+1] A[i+1]:=t; end; - HS trả lời theo câu hỏi của giáo viên. - HS trả lời. - HS hiểu chương trình thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn. b) Một số ví dụ Ví dụ 2: SGK D.Củng cố và dặn dò: - Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều. - Về xem lại bài và xem trước mục 1b) Một số ví dụ : ví dụ 3. TIẾT 23 A. Ổn định lớp: B. Bài cũ : C. Bài mới: Hoạt động 1 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 3. Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1:Tìm hiểu bài toán nhị phân: ý tưởng của bài toán, xác định input, output. thuật toán(bảng phụ). H2: Phát vấn HS mô phỏng thuật toán với kiểu dữ liệu cụ thể. H3: Phát vấn HS về thuật toán: - Phạm vi tìm kiếm được xác định bởi ? -Việc tìm kiếm là lặp với số lần chưa biết trước ( chọn số hạng “giữa” dãy, so sánh với k rồi căn cứ vào kết quả so sánh này để kết luận hoặc tìm thấy hoặc thu hẹp phạm vi tìm kiếm) vậy vòng lặp dừng lại khi nào? H4:Từ thuật toán chuyển sang chương trình: phát vấn HS từng bước. - HS trả lời theo câu hỏi của giáo viên. - HS trả lời. - Được xác định bởi chỉ số Dau và Cuoi. - Khi xảy ra một trong hai điều kiện sau: +Đã tìm thấy (AGiua=k). + Không gian tìm thấy trở nên rỗng(Dau > Cuoi). - HS hiểu chương trình thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn. b) Một số ví dụ Ví dụ 3: SGK D.Củng cố và dặn dò: - Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều. - Về xem lại bài và học bài. TIẾT 24 BÀI TẬP A. Ổn định lớp: B. Bài cũ : C. Bài mới: Hoạt động của giáo viên Hoạt động của học sinh Nội dung H1:Tìm hiểu bài toán nhị phân: +Ý tưởng của bài toán +Xác định input, output. + Thuật toán. H2: Phát vấn HS mô phỏng thuật toán với kiểu dữ liệu cụ thể. H3: Cài đặt chương trình từng bước? - HS trả lời theo câu hỏi của giáo viên. - HS trả lời. - HS trả lời. Bài toán: Viết chương trình đảo ngược vị trí của dãy số N phần tử (N300). Input: Dãy A gồm N số : A1, A2,, AN Output: Dãy A gồm N số : AN, AN-1,, A1 Thuật toán: Bước 1: Nhập N , các số hạng A1, A2,, AN; Bước 2: i 1; Bước 3: Nếu i > thì xuất dãy A rồi kết thúc; Bước 4: Bước 4.1: Hoán đổi Ai và AN-i+1; Bước 4.2: i i +1 rồi quay lại bước 3; Chương trình: program Dao_nguoc_DS; uses crt; const Nmax = 300; type ArrReal = array[1..Nmax] of real; var N , i : integer; tam : real; A : ArrReal; begin clrscr; write(‘Nhap so phan tu cua day so N= ’); readln(N); write(‘Hay nhap day so vao!’); for i := 1 to N do begin write(‘A[’, i , ‘]=’); readln(A[i]); end; for i := 1 to N div 2 do begin tam := A[i]; A[i] := A[N – i +1]; A[N – i +1] := tam; end; for i := 1 to N do write(A[i] :8 :3,‘ ‘); Readln end. D.Củng cố và dặn dò: - Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều. - Về xem lại bài và học bài để tiết sau thực hành.
Tài liệu đính kèm: