Tải bản đầy đủ (.pdf) (20 trang)

Giáo án Tin học 11 - Tiết 20 đến tiết 39

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (275.53 KB, 20 trang )

<span class='text_page_counter'>(1)</span>Ngày soạn : 25/01/2010 Ngày dạy : 04/01/2010 Tiết :20. CHƯƠNG IV. KIỂU DỮ LIỆU CÓ CẤU TRÚC. §11. KIỂU MẢNG (TIẾT 1) I. MỤC TIÊU 1. Kiến thức - Biết được một kiểu dữ liệu mới là kiểu mảng một chiều. Biết được một loại biến có chỉ số. - Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến khiểu mảng một chiều. 2. Kĩ năng - Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể. 3. Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II. ĐỒ DÙNG DẠY HỌC - Giáo án, SGK, SGV,... 2. Chuẩn bị của học sinh - Sách giáo khoa, vở ghi. 3. Nội dung ghi bảng 1. Kiểu mảng một chiều VD: SGK_53 Chương trình minh họa: Program nhietdotuan; Var t1,t2,t3,t4,t5,t6,t7,tb:real; dem:integer; Begin 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;. 1 Lop11.com.

<span class='text_page_counter'>(2)</span> writeln(‘Nhiet do trung binh tuan ’,tb); writeln(‘So ngay nhiet do trung binh cao hon nhiet do trung binh tuan’,dem); readln; end.  Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt nhau bởi chỉ số.  Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần tử của nó. a. Khai báo TYPE tên_km= Array[kiểu_cs] Of kiểu_thành_phần; + Kiểu chii số thường là kiểu số nguyên (hoặc đoạn kí tự) liên tục, có dạng n1..n2 với n1 và n2 là các biểu thức nguyên (hoặc kí tự) xác ddingj chỉ số đầu và chỉ số cuối của mảng. + Kiểu thành phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng. + Khai báo biến mảng 1 chiều: Var Tên_biến: Tên_kiểu_mảng; + Tham chiếu đến từng phần tử: Tên_biến[chỉ số]; III. HOẠT ĐỘNG DẠY-HỌC 1. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 39 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010 2. Kiểm tra bài cũ - Lồng vào bài. 3. Bài mới.. Vắng. Tên HS vắng. Hoạt động 1: Tìm hiểu ý nghĩa của mảng một chiều. HOẠT ĐỘNG CỦA GIÁO VIÊN. HOẠT ĐỘNG CỦA HỌC SINH. 1. Nêu đề bài và chương trình ví dụ lên bảng. - Hỏi: Khi N lớn thì chương trình trên có những hạn chế như thế nào? - Dẫn dắt: Để khắc phục những hạn chế trên,. 1. Quan sát trên bảng, suy nghĩ và trả lời. - Phải khai báo quá nhiều biến. Chương trình phải viết rất dài.. 2 Lop11.com.

<span class='text_page_counter'>(3)</span> người ta thường ghép chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh cho một phần tử một chỉ số. 2. Yêu cầu học sinh tham khảo sách giáo khoa và hỏi: Em hiểu như thế nào về mảng một chiều? 2. Nghiên cứu sách giáo khoa để trả lời. - Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần - Hỏi: Để mô tả mảng một chiều, ta cần xác định tử trong mảng có cùng chung một tên và những yếu tố nào? phân biệt nhau bởi chỉ số. - Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần tử của nó. Hoạt động 2: Tạo kiểu mảng một chiều và khai báo biến mảng. HOẠT ĐỘNG CỦA GIÁO VIÊN. HOẠT ĐỘNG CỦA HỌC SINH. 1. Yêu cầu học sinh nghiên cứu sách giáo khoa 1. Tham khảo sách giáo khoa và trả lời và cho biết cách tạo kiểu dữ liệu mảng một chiều - TYPE tên_km= Array[kiểu_cs] Of kiểu_thành_phần; trong ngôn ngữ lập trình Pascal. - Tìm một ví dụ để minh họa. - Ví dụ: Type mmc=array[1..100] of - Gọi học sinh khác, hỏi: Ý nghĩa của lệnh bạn integer; vừa viết? - Tạo một kiểu dữ liệu mới có tên mmc, gồm 100 phần tử, có kiểu nguyên. - Chiếu lên bảng một số khai báo kiểu mảng một - Quan sát bảng và chọn khai báo đúng. chiều Type Arrayr=array[1..200] of real; Arrayr=array[1..200] of real; Arrayb=array[-100..0] of boolean; Arrayr=array[byte] of real; Arrayb=array[-100..0] of boolean; - Hỏi: Những khai báo nào đúng? 2. Tham khảo sách giáo khoa và trả lời 2. Yêu cầu học sinh cho biết cách khai báo biến - VAR tên_biến:tên_km; và một ví dụ khai báo một biến mảng ứng với - Ví dụ: Var a:mmc; kiểu dữ liệu vừa tạo. - Khai báo một biến mảng một chiều. - Gọi học sinh khác, hỏi: Ý nghĩa của lệnh bạn vừa viết? - a đã chiếm 200 byte trong bộ nhớ. - Dung lượng bộ nhớ của biến a đã chiếm là bao nhiêu? - Chú ý cho học sinh về cách đặt tên kiểu dữ liệu và tên biến, tránh nhầm lẫn. 3. Theo dõi hướng dẫn của giáo viên và 3. Giới thiệu cách tham chiếu đến từng phần tử độc lập suy nghĩ để trả lời.. 3 Lop11.com.

<span class='text_page_counter'>(4)</span> của mảng một chiều. Yêu cầu học sinh lấy một ví a[1] là phần tử ở vị trí 1 của mảng a. dụ. a[i] là phần tử ở vị trí i của mảng a. 4. Củng cố và dặn dò - Cách tạo kiểu mảng một chiều và cách khai báo biến. TYPE tên_kiểu_mảng = Array[kiểu_chỉ_số] Of kiểu_thành_phần; VAR tên_biến:tên_kiểu_mảng; - Tham chiếu đến từng phần tử: Tên_biến[chỉ số] - Trả lời các câu hỏi 1-4 trang 79. - Đọc trước nội dung về kiểu mảng một chiều phần b. IV. RÚT KINH NGHIỆM TIẾT DẠY .............................................................................................................................................. .............................................................................................................................................. .............................................................................................................................................. Tổ trưởng duyệt Giáo viên soạn Ngày tháng 1 năm 2010 ( Chữ ký, Họ tên). Phạm Anh Quý. Giáp Văn Khiêm. 4 Lop11.com.

<span class='text_page_counter'>(5)</span> Ngày soạn : 25/01/2010 Ngày dạy : 06/01/2010 Tiết :21. §11. KIỂU MẢNG (TIẾT 2) I. MỤC TIÊU: 1. Kiến thức: Học sinh sau tiết học sẽ:  Nắm được khái niệm mảng 1 chiều  Hiểu cách khai báo và truy cập đến các phần tử của mảng 2. Kỹ năng:  Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều  Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng 3. Thái độ:  Có tư duy đúng đắn trong việc áp dụng mảng 1 chiều để giải các bài toán đơn giản  Tạo lòng ham muốn giải được một số bài tập tính toán đơn giản bằng ngôn ngữ Pascal II. ĐỒ DÙNG DẠY HỌC 1. Giáo viên: − Sách giáo viên, giáo án, SGK,.... 2. Học sinh: − Vở ghi, SGK III. PHƯƠNG PHÁP: Phương pháp thuyết trình, vấn đáp, kết hợp tạo tình huống có vấn đề IV. HOẠT ĐỘNG DẠY HỌC 1. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 39 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010. Vắng. 5 Lop11.com. Tên HS vắng.

<span class='text_page_counter'>(6)</span> 2. Kiểm tra bài cũ − Mảng một chiều là gì? − Khai báo cho bài toán sau: Cho dãy A gồm n phần tử có giá trị nguyên dương. Sau đó đếm và đưa ra có bao nhiêu số chẵn, bao nhiêu số lẻ trong dãy. 3. Bài mới. Hoạt động 1: Trình bày ví dụ 1 SGK trang 56. HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Nêu nội dung bài toán ví dụ 1. Trình bày Input và Output của bài toán. - Input : Số nguyên dương N và dãy số A1, A2, ….., AN - Output : Chỉ số và giá trị của số lớn nhất trong dãy * Ý tưởng của thuật toán + Đặt số A1 là số lớn nhất (max). + Cho i lặp từ 2 đến N, nếu A[i]> A[1] thì đổi max = A[i] và lưu lại vị trí i. * Thuật toán: B1: Nhập N và dãy A1, A2,…, AN; B2: Max←A1; i←2; B3: Nếu i>N thì đưa ra Max rồi kết thúc; B4: B4.1: Nếu Ai>Max thì Max← Ai; B4.2: i←i+1 rồi quay lại bước 3. − Biến i dùng để làm gì?. − Để thực hiện lần lượt từng phần tử từ vị trí thứ 2 đến vị trí thứ n. − Để kết thúc thuật toán sau khi đã duyệt xong (Tính dừng của thuật toán). − Có. − Khi i=N+1 thì vòng lặp sẽ dừng lại.. − Ý nghĩa của bước 3. − Có sử dụng vòng lặp không? − Khi nào thì vòng lặp dừng lại? * Chương trình như sau : Program timmax ; Uses crt ; var a : array[1..250] of integer ; n,i,max,csmax : Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := 1 to n do Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ;. 6 Lop11.com.

<span class='text_page_counter'>(7)</span> 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 lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End . Cho HS chạy thử thuật toán với bộ dữ liệu: 5 1 7 6 3 15 8 4 Hoạt động 2: trình bày ví dụ 3 trong SGK trang 58. HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Ví dụ 3 : Tìm kiếm nhị phân . Input: Dãy A là dãy tăng gồm N số Gọi HS xác định Input và Output của bài toán? nguyên dương A1, A2, …, AN, số nguyên k. Output: Chỉ số i mà Ai = k hoặc thông báo “Khong tim thay” nếu không có số hạng nào của dãy A có giá trị bằng k. * Thuật toán: Bước 1: Nhập N, các số hạng A1, A2, …, AN, và khóa k; Bước 2: Dau  1; Cuoi  N;  Dau  Cuoi   ; 2 . Bước 3: Giua  . Bước 4: Nếu AGiua = k thì thông báo chỉ số Giua, rồi kết thúc; Bước 5: Nếu AGiua > k thì đặt Cuoi = Giua – 1 rồi chuyển đến bước 7; Bước 6: Dau  Giua + 1; Bước 7: Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trị bằng k, rồi kết thúc; Bước 8: Quay lại bước 3. Gọi HS lên bảng viết phần khai báo và nhập dữ liệu cho bài toán? Chương trình như sau : dau := 1 ; cuoi := n ; TK := false ; while (dau <= cuoi) and Not TK Do Begin. 7 Lop11.com. Program sapxep ; Uses crt ; var A : Array[1..250] of integer ; n,i,k : Integer ; dau,cuoi,giua : Integer ; TK : boolean ; Begin clrscr ;.

<span class='text_page_counter'>(8)</span> giua := (dau+cuoi) div 2 ; If A[giua] = k then TK := true Else If a[giua]>k then cuoi := giua - 1 Else dau := giua + 1 ; End ;. Write('Nhap so ptu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; Write('nhap so can tim k : ') ; Readln(k); Kết quả chưa hiển thị được trên màn Sau khi đã tìm ra được số cần tìm kết quả đã hình, ta phải dùng thủ tục để đưa dữ liệu đó ra màn hình được hiện thị trên màn hình chưa? If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ; End . Cho một bộ dữ liệu cụ thể và yêu cầu HS chạy chương trình với bộ dữ liệu đó. 4. Củng cố và dặn dò - Thuật toán tráo đổi giá trị của hai phần tử, sử dụng biến trung gian để lưu giá trị tạm thời. - Đối với thuật toán tìm kiếm nhị phân, mảng phải được sắp xếp có thứ tự (dãy tăng hoặc dãy giảm). - Về nhà làm các bài tập 5,6 SGK_79 và chuẩn bị ví dụ 2 SGK_57. V. RÚT KINH NGHIỆM TIẾT DẠY .............................................................................................................................................. .............................................................................................................................................. .............................................................................................................................................. Tổ trưởng duyệt Giáo viên soạn Ngày tháng 1 năm 2010 ( Chữ ký, Họ tên). Phạm Anh Quý. Giáp Văn Khiêm. 8 Lop11.com.

<span class='text_page_counter'>(9)</span> Ngày soạn : 30/01/2010 Ngày dạy : 11/01/2010 Tiết :22. §11. KIỂU MẢNG (TIẾT 3) I. MỤC TIÊU: 1. Kiến thức: Học sinh sau tiết học sẽ:  Nắm được khái niệm mảng 1 chiều  Hiểu cách khai báo và truy cập đến các phần tử của mảng 2. Kỹ năng:  Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều  Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng 3. Thái độ:  Có tư duy đúng đắn trong việc áp dụng mảng 1 chiều để giải các bài toán đơn giản  Tạo lòng ham muốn giải được một số bài tập tính toán đơn giản bằng ngôn ngữ Pascal II. ĐỒ DÙNG DẠY HỌC 1. Giáo viên: − Sách giáo viên, giáo án, SGK,.... 2. Học sinh: − Vở ghi, SGK III. PHƯƠNG PHÁP: Phương pháp thuyết trình, vấn đáp, kết hợp tạo tình huống có vấn đề IV. HOẠT ĐỘNG DẠY HỌC 2. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 39 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010. Vắng. 9 Lop11.com. Tên HS vắng.

<span class='text_page_counter'>(10)</span> 2. Kiểm tra bài cũ Trình bày cách khai báo gián tiếp kiểu dữ liệu mảng một chiều trong Turbo Pascal. Có khai báo sau, cho biết tên của kiểu dữ liệu mới, kiểu mảng đó có bao nhiêu phần tử, mỗi phần tử của mảng thuộc kiểu gì, và tên của các mảng sẽ dùng trong chương trình là gì? Type diem = array[1..15] of byte; Var A, mang: diem; 3. Bài mới. Hoạt động 1: Trình bày ví dụ 2 trong SGK trang 57 HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Ví dụ 2 : Sắp xếp dãy số nguyên bằng thuật toán tráo đổi . Trình Input và Output của bài toán? - Input : Số nguyên dương N và dãy số A1, A2, …, AN - Output : Dãy A được sắp xếp theo Việc sắp xếp dãy số là việc hoán vị các số đó sao thứ tự không giảm . cho chúng tạo thành một dãy tăng dần hoặc giảm dần. Chúng ta có thể liên tưởng tới công việc xếp hàng ở mỗi buổi chào cờ. * Ý tưởng : + Đổi để đưa số lớn nhất về vị trí cuối cùng . + Làm tương tự đối với những số còn lại . * Thuật toán: Program sapxep ; Gọi HS lên bảng viết phần khai báo và phần nhập Uses crt ; dữ liệu cho chương trình? var A : Array[1..250] of integer ; n,i,j,tg : Integer ; Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; GV: Hoàn thiện chương trình For j := n downto 2 do Begin For i := 1 to j-1 do If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do. 10 Lop11.com.

<span class='text_page_counter'>(11)</span> write(a[i]:8) ; readln ; End . Writeln('chi so ptu lon nhat : ',csmax); readln ; End . - Trong thuật toán cần duyệt qua bao nhiêu lần? Thuật toán cần duyệt n! lần. - Mỗi lượt thực hiện trên đoạn nào của dãy số? - Câu lệnh nào trong chương trình thể hiện hai Trên đoạn n-1 phần tử. yêu cầu trên? Câu lệnh: For j := n downto 2 do Begin For i := 1 to j-1 do - Mỗi lượt duyệt thực hiện các thao tác gì? Đưa giá trị lớn nhất về cuối dãy - Câu lệnh nào thực hiện việc tráo đổi? Câu lệnh: If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; Hoạt động 2: thực hiện với các bộ số cụ thể HOẠT ĐỘNG CỦA GIÁO VIÊN - Mô phỏng thuật toán với bộ dữ liệu: 6 1 5 3 7 8 10 7 12 4. HOẠT ĐỘNG CỦA HỌC SINH. Thực hiện theo yêu cầu.. . Củng cố và dặn dò - Thuật toán tráo đổi giá trị của hai phần tử, sử dụng biến trung gian để lưu giá trị tạm thời. - Về nhà làm các bài tập 7 SGK_79 và chuẩn bị bài tập thực hành 3. V. RÚT KINH NGHIỆM TIẾT DẠY .............................................................................................................................................. .............................................................................................................................................. .............................................................................................................................................. Tổ trưởng duyệt Giáo viên soạn Ngày tháng 1 năm 2010 ( Chữ ký, Họ tên). 11 Lop11.com.

<span class='text_page_counter'>(12)</span> Ngày soạn: 05/01/2010 Ngày giảng:13/01/2010 Tiết PPCT: 23. BÀI THỰC HÀNH SỐ 3 (tiết 1) I. MỤC TIÊU 1. Kiến thức - Giới thiệu cho học sinh cách lưu trữ mảng một chiều trên máy tính và các thao tác với mảng một chiều. 2. Kĩ năng - Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể: + Khai báo kiểu dữ liệu mảng một chiều. + Nhập/xuất dữ liệu cho mảng. + Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử. 3. Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên - Phòng máy vi tính, giáo án, SGK. 2. Chuẩn bị của học sinh - Sách giáo khoa. 3. Nội dung ghi bảng – Nhắc lại cách mô tả mảng một chiều, cách khai báo, cách tham chiếu. III. HOẠT ĐỘNG DẠY-HỌC 1. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 38 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010. Vắng. 12 Lop11.com. Tên HS vắng.

<span class='text_page_counter'>(13)</span> 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010 2. Kiểm tra bài cũ - Lồng vào bài. 3. Bài mới. Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn. HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH 1. Tìm hiểu chương trình ở câu a, sách giáo 1. Quan sát, chú ý và trả lời. khoa, trang 63 và chạy thử chương trình. - Chiếu chương trình lên bảng. - Hỏi: Khai báo Uses CRT; có ý nghĩa gì? - Khai báo thư viện chương trình con Crt để sử dụng được thủ tục Clrscr; - Hỏi: Myarray là tên kiểu dữ liệu hay tên - Tên kiểu dữ liệu. biến? - Hỏi: Vai trò của nmax và n có gì khác nhau? - nmax là số phần tử tối đa có thể chứa của biến mảng a. n là số phần tử - Hỏi: Những dòng lệnh nào dùng để tạo biến thực tế của a. - Lệnh khai báo kiểu và khai báo mảng a? - Thực hiện chương trình để học sinh thấy kết biến. quả. - Hỏi: Lệnh gán a[i]:=random(300)- - Quan sát chương trình thực hiện và random(300) có ý nghĩa gì? kết quả trên màn hình. - Hỏi: Lệnh For i:=1 to n do Write(A[i]:5); - Lệnh sinh ngẫu nhíên giá trị cho có ý nghĩa gì? mảng a từ -299 đến 299. - Hỏi: Lệnh For-Do cuối cùng thực hiện - In ra màn hình giá trị của từng phần nhiệm vụ gì? tử trong mảng a. - Hỏi: Lệnh s:=s+a[i]; được thực hiện bao - Cộng các phần tử chia hết cho k. nhiêu lần? - Thực hiện lại chương trình lần cuối để học - Có số lần đúng bằng số phần tử a[i] sinh thấy kết quả. chia hết k. 2. Sửa chương trình câu a để được chương - Quan sát giáo viên thực hiện trình giải quyết bài toán ở câu b. chương trình và kết quả trên màn - Chiếu lên màn hình các lệnh cần thêm vào hình. chương trình ở câu a. 2. Quan sát và chú ý theo dõi các câu - Hỏi: Ý nghĩa của biến Posi và neg? hỏi của giáo viên: - Hỏi: Chức năng của lệnh? - Quan sát các lệnh và suy nghĩ vị trí If a[i]>0 then posi:=posi+1 cần sửa trong chương trình câu a. 13 Lop11.com.

<span class='text_page_counter'>(14)</span> else if a[i]<0 then neg:=neg+1; - Yêu cầu học sinh thêm vào vị trí cần thiết để chương trình đếm được số . - Yêu cầu học sinh gõ nội dung và lưu lại với tên caub.pas. Thực hiện chương trình và báo cáo kết quả.. - Dùng để lưu số lượng đếm được. - Đếm số dương hoặc đếm số âm.. HOẠT ĐỘNG CỦA GIÁO VIÊN - Quan sát học sinh thực hành và sửa lỗi. HOẠT ĐỘNG CỦA HỌC SINH Thực hành bài 1. - Chỉ ra vị trí cần thêm vào trong chương trình. - Lưu chương trình. Thực hiện chương trình và thông báo kết quả. Hoạt động 2: Học sinh thực hành, giáo viên quan sát và sửa lỗi. 4. Củng cố và dặn dò Sửa các lỗi mà học sinh mắc phải trong quá trình thực hành. Một số thuật toán cơ bản: + Tính tổng các phần tử thoả mãn điều kiện nào đó. + Đếm số các phần tử thoả mãn điều kiện nào đó. + Tìm phần tử lớn nhất, nhỏ nhất. IV. RÚT KINH NGHIỆM TIẾT DẠY ............................................................................................................................................ ............................................................................................................................................ ............................................................................................................................................ Tổ trưởng duyệt Giáo viên soạn Ngày tháng 1 năm 2010 ( Chữ ký, Họ tên). Phạm Anh Quý. Giáp Văn Khiêm. 14 Lop11.com.

<span class='text_page_counter'>(15)</span> Ngày soạn: 05/01/2010 Ngày giảng:18/01/2010 Tiết PPCT: 24. BÀI THỰC HÀNH SỐ 3 (tiết 2) I. MỤC TIÊU 1. Kiến thức - Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng một chiều. 2. Kĩ năng - Biết giải một số bài toán cơ bản thường gặp: + Tính tổng các phần tử thoả mãn điều kiện nào đó. + Đếm số các phần tử thoả mãn điều kiện nào đó. + Tìm phần tử lớn nhất, nhỏ nhất. 3. Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên - Phòng máy vi tính, giáo án, SGK. 2. Chuẩn bị của học sinh - Sách giáo khoa. III. HOẠT ĐỘNG DẠY-HỌC 2. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 38 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010 2. Kiểm tra bài cũ. Vắng. 15 Lop11.com. Tên HS vắng.

<span class='text_page_counter'>(16)</span> - Lồng vào bài. 3. Bài mới. Hoạt động 1: Rèn luyện kĩ năng lập trình. HOẠT ĐỘNG CỦA GIÁO VIÊN 1. Lấy một ví dụ thực tiễn: Người mù tìm viên sỏi có kích thước lớn nhất trong một dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn nhất. - Yêu cầu: nêu thuật toán tìm phần tử có giá trị lớn nhất. 2. Tìm hiểu chương trình tìm chỉ số và giá trị lớn nhất. - Chiếu chương trình ví dụ, sách giáo khoa, trang 64. - Hỏi: Vai trò của biến j trong chương trình?. HOẠT ĐỘNG CỦA HỌC SINH 1. Theo dõi ví dụ của giáo viên.. - So sánh lần lượt từ trái sang phải, giữ lại chỉ số của phần tử lớn nhất. 2. Quan sát chương trình, suy nghĩ và trả lời.. - Giữ lại chỉ số của phần tử có giá trị lớn nhất. - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần - Phép so sánh a[i]<a[j] sửa ở chỗ nào? - Hỏi: Nếu muốn tìm phần tử lớn nhất với chỉ - Chuyển thứ tự duyệt từ n-1 về 1. số lớn nhất ta sửa ở chỗ nào? 3. Đặt yêu cầu mới: Viết chương trình đưa ra 3. Theo dõi yêu cầu, suy nghĩ các câu các chỉ số của các phần tử có giá trị lớn nhất. hỏi định hướng để viết chương trình. - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn nhất không? - Có. - Hỏi: Cần thêm lệnh nào nữa? - Lệnh để in ra các chỉ số có giá trị - Hỏi: Vị trí thêm các lệnh đó? bằng giá trị lớn nhất tìm được. - Yêu cầu: Viết chương trình hoàn thiện. - Sau khi tìm được giá trị lớn nhất. - Soạn chương trình vào máy. Thực hiện chương trình và thông báo kết - Yêu cầu học sinh nhập dữ liệu vào của giáo quả. - Nhập dữ liệu vào và thông báo cho viên và báo kết quả. - Đánh giá kết quả của học sinh. giáo viên dữ liệu ra. Hoạt động 2: Học sinh thực hành, giáo viên quan sát và sửa lỗi HOẠT ĐỘNG CỦA GIÁO VIÊN - Quan sát học sinh thực hành và sửa lỗi. HOẠT ĐỘNG CỦA HỌC SINH Thực hành bài 2 16. Lop11.com.

<span class='text_page_counter'>(17)</span> 4. Củng cố và dặn dò – Sửa các lỗi sai mà học sinh mắc phải – Về nhà làm bài tập 5, 6 trong SGK trang 79. IV. RÚT KINH NGHIỆM TIẾT DẠY ............................................................................................................................................ .. ............................................................................................................................................ .. ............................................................................................................................................ ... Tổ trưởng duyệt Ngày tháng 1 năm 2010. Giáo viên soạn ( Chữ ký, Họ tên). Phạm Anh Quý. Giáp Văn Khiêm. 17 Lop11.com.

<span class='text_page_counter'>(18)</span> Ngày soạn: 05/01/2010 Ngày giảng:20/1/2010 Tiết PPCT: 25. BÀI TẬP I. MỤC TIÊU 1. Kiến thức - Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng một chiều. 2. Kĩ năng - Biết giải một số bài toán cơ bản thường gặp. 3. Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tich cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên - Giáo án, SGK, phiếu học tập. 2. Chuẩn bị của học sinh - Sách giáo khoa. III. HOẠT ĐỘNG DẠY-HỌC 1. Ổn định tổ chức Kiểm tra sĩ số: Lớp - Sĩ số Ngày dạy 11A1 – 38 ....../....../ 2010 11A2 – 41 ....../....../ 2010 11A3 – 44 ....../....../ 2010 11A4 – 49 ....../....../ 2010 11A5 – 50 ....../....../ 2010 11A6 – 47 ....../....../ 2010 11A7 – 44 ....../....../ 2010 11A8 – 46 ....../....../ 2010 11A9 – 47 ....../....../ 2010 11A10 – 51 ....../....../ 2010 11A11 – 41 ....../....../ 2010 2. Kiểm tra bài cũ - Lồng vào bài. 3. Bài mới.. Vắng. Tên HS vắng. Hoạt động 1: Củng cố lại các kiến thức đã học về mảng một chiều. 18 Lop11.com.

<span class='text_page_counter'>(19)</span> HOẠT ĐỘNG CỦA GIÁO VIÊN ? Thế nào là mảng một chiều. HOẠT ĐỘNG CỦA HỌC SINH Là dãy các phần tử có cùng kiểu dữ liệu. ? Để mô tả mảng một chiều ta phải xác định Ta cần xác định được các yếu tố sau: + Tên kiểu mảng một chiều được các yếu tố nào + Kiểu chỉ số + Kiểu dữ liệu + Cách khai báo + Cách tham chiếu. ? Có mấy cách để khai báo mảng một chiều? Có hai cách để khai báo mảng một Đó là những cách nào chiều: + C1: Khai báo trực tiếp Var <Tên biến mảng>: array[<kiểu chỉ số>] of <kiểu phần tử>; + C2: Khai báo gián tiếp. Type <Tên kiểu mảng>= array[<kiểu chỉ số>] of <kiểu phần tử>; Var <Tên biến mảng>: <Tên kiểu mảng>; ? Lấy ví dụ minh họa VD: Var a: array[1..100] of byte; Var b: array[a..z] of char; Type c=array[1..100] of byte; Var a:c; …………….. Hoạt động 2: Chữa một số bài tập trong SGK. HOẠT ĐỘNG CỦA GIÁO VÊN Bài tập 5 trang 79:. HOẠT ĐỘNG CỦA HỌC SINH. 4. Củng cố và dặn dò – Sư IV. RÚT KINH NGHIỆM TIẾT DẠY ............................................................................................................................................ ............................................................................................................................................ ............................................................................................................................................ Tổ trưởng duyệt Giáo viên soạn Ngày tháng 1 năm 2010 ( Chữ ký, Họ tên) 19 Lop11.com.

<span class='text_page_counter'>(20)</span> Ngày soạn: 01/01/2010 Ngày giảng:25/01/2010 Tiết PPCT: 26 §12. KIỂU MẢNG (TIẾT 3) I. MỤC TIÊU 1. Kiến thức - Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều. - Biết được cách tạo kiểu mảng hai chiều chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng. 2. Kĩ năng - Tạo được kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên -Sách giáo khoa, phiếu học tập. 2. Chuẩn bị của học sinh - Sách giáo khoa. 3. Nội dung ghi bảng Mảng hai chiều là bảng các phần tử cùng kiểu. Cách xác định mảng hai chiều: + Tên kiểu mảng hai chiểu; + Số lượng phần tử của mỗi chiều; + Kiểu dữ liệu của phần tử; + Cách khai báo biến; + Cách tham chiếu đến phần tử. Cấu trúc C1: khai báo gián tiếp TYPE <tên_kiểu_mảng>= Array[csd,csc] Of <kiểu_thành_phần>; VAR <tên_biến_mảng>:<tên_kiểu_mảng>; C2: Khai báo trực tiếp Var <Tên_biến_mảng>:array[csd,csc] of <Kiểu_thành_phần>; * Chú ý: - Các biến mảng thường gồm số lượng lớn các phần tử nên cần lưu ý phạm vi sử dụng chúng để khai báo kích thước và kiểu dữ liệu sao cho tiết kiệm bộ nhớ. - Ngoài hai kiểu mảng một chiều và hai chiều, còn có kiểu mảng nhiều chiều. III. HOẠT ĐỘNG DẠY-HỌC 1. Ổn định tổ chức Kiểm tra sĩ số:. 20 Lop11.com.

<span class='text_page_counter'>(21)</span>

×