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

Giáo án Tin học 11 - Nguyễn Quang Tuấn

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 (346.93 KB, 20 trang )

<span class='text_page_counter'>(1)</span>Giáo án Tin học 11. Nguyễn Quang Tuấn. Ngày soạn: LUYỆN TẬP VỀ CẤU TRÚC RẼ NHÁNH VÀ CẤU TRÚC LẶP. PPCT: 20 I. Mục đích, yêu cầu 1. Kiến thức Củng cố cho học sinh kiến thức về cấu trúc rẽ nhánh và cấu trúc lặp. 2. Kỹ năng: -Rèn luyện kỹ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp để giải quyết bài toán đặt ra. 3. Tư duy, thái độ: -Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiểu, chủ động trong giải quyết các bài tập.Rèn luyện tư duy khoa học, tư duy logic. II. Chuẩn bị của giáo viên và học sinh GV: - Soạn giáo án. HS: - Học bài cũ và chuẩn bị bài tập. III. Phương pháp dạy học Gợi mở và thuyết trình. IV. Tiến trình bài dạy: 1. Hoạt động 1: Kiểm tra bài cũ Câu hỏi 1(H1): Trình bày cấu trúc câu lệnh rẽ nhánh và cấu trúc lặp ? Hoạt động của GV - GV gọi 1 HS lên trả lời H1.. Hoạt động của HS - 1 HS lên bảng trả lời.. Ghi bảng -Rẽ nhánh If <btđk > then <lệnh 1> else <lệnh 2>; If <btđk > then <lệnh 1>; - Lặp For For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh>; For <biến đếm>:= <giá trị đầu> Downto <giá trị cuối> Do <lệnh>; - Lặp While While<điềukiện>Do<lệnh>;. - Cả lớp theo dõi và - GV yêu cầu cả lớp nhận nhận xét bổ sung (nếu có). xét câu trả lời của bạn. - GV nhận xét và đánh giá. 2. Hoạt động 2: Giải bài tập 4 Câu hỏi 1(H1): Sử dụng lệnh If này gồm mấy nhánh ? Câu hỏi 2(H2): Hàm lấy giá trị tuyệt đối của biểu thức hay biến ? Hoạt động của GV Hoạt động của HS Ghi bảng Hoạt động 1: - GV gọi 1 HS lên bảng - 1 HS lên bảng Câu 4a) giải câu 4a) giải câu 4a) If (sqrt(x) + sqrt(y)) <=1 then z:= sqrt(x) Trang - 1 Lop11.com.

<span class='text_page_counter'>(2)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. - GV đặt H1. - 1 HS trả lời H1. - GV yêu cầ cả lớp theo - Các HS khác theo dõi và nhận xét. dõi và nhận xét. - GV nhận xét, hoàn chỉnh bài làm và đánh giá. Hoạt động 2: - GV gọi 1 HS lên bảng - 1 HS lên bảng giải câu 4b) giải câu 4b) - 1 HS trả lời H2. - GV đặt H2.. + sqrt(y) Else If y>=x then z:= x+y Else z:= 0.5;. Câu 4b) If (sqr(x-a) + sqr(y-b)) <= sqr(r) then z:=abs(x) +abs(y) Else z:= x+y;. - GV nhận xét và đánh giá. 3. Hoạt động 3: Giải bài tập 5 50. n dưới dạng tường minh ? n 1 n  1. Câu hỏi 1(H1): Hãy khai triển biểu thức Y = . Câu hỏi 2(H2): Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị trong đoạn nào ? Câu hỏi 3(H3): Em hãy thử đưa ra phương pháp tính Y ? Câu hỏi 4(H4): Sử sụng cấu trúc điều khiển lặp nào là phù hợp ? Hoạt động của GV Hoạt động của HS Ghi bảng 1 2 3 50 - GV đặt H1. - 1 HS lên bảng Y =    - GV đặt H2. trình bày H1. 2 3 4 51 - GV đặt H3. - 1 HS trả lời H2. Câu 5a) - GV đặt H4. - 1 HS trả lời H3 Uses crt; - GV gọi 1 HS lên bảng giải - 1 HS trả lời H4 Var y: real; bài 5a) - 1 HS lên bảng giải n: byte; - GV yêu cầu các HS còn bài 5a Begin - Các HS còn lại lại theo dõi và nhận xét. Clrscr; theo dõi và nhận xét - GV nhận xét, hoàn chỉnh y:=0; bổ sung (nếu có). bài làm và đánh giá. for n:=1 to 50 do y:= y + n/(n+1); writeln(y:14:6); readln; End. V. Củng cố và dặn dò 1. Nắm được những Nội dung đã học: Có 2 cấu trúc lặp:  Lặp For: Số lần lặp đã xác định  Lặp While: Số lần lặp chưa xác định 2. Làm các bài tập còn lại trong SGK trang 51. Trang - 2 Lop11.com.

<span class='text_page_counter'>(3)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Ngày soạn: 16/11/2010 §11. KIỂU MẢNG (Tiết 1) PPCT: 21 I. Mục đích, yêu cầ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 mảng một chiều, cách khai báo biến kiểu mảng một chiều. 2. Kĩ năng -Biết được các thành phần trong khai báo kiểu mảng một chiều; -Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình; -Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên; -Biết cách tham chiếu đến các phần tử của mảng một chiều. 3. Tư duy và thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức. II. Đồ dùng dạy học 1. Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng 1 chiều 2. Học sinh: sgk III. Phương pháp Đặt vấn đề, thuyết giảng IV. Hoạt động dạy học 1. Hoạt động 1: Khởi động bài mới Hoạt động của GV Hoạt động của HS Nội dung ghi bảng 1. Nêu bài toán mở đầu. Y/cầu 1. N/cứu bài toán và hs đọc, tìm hiểu chương trình chương trình, suy nghĩ giải quyết bài toán đó. Và trả lời trả lời các câu hỏi: - Nhận giá trị nhiệt độ các câu hỏi sau: - Các biến: t1, …,t7 thể hiện của 7 ngày trong tuần. các giá trị nào? Kiểu của các Cùng kiểu thực (real) - dem: để đếm số biến đó thế nào? ngày tron tuần có nđộ lớn hơn nđộ trung - Biến dem dùng làm gì? bình. - Để kiểm tra lần lượt - 7 câu lệnh IF trong chương các ngày, nđộ ngày trình thực hiện việc gì? nào lớn hơn nđộ trung bình. 2. Mở rộng bài toán từ phạm vi 2. Bản chất thuật toán một tuần sang phạm vi N ngày không có gì thay đổi (chẳng hạn một tháng hay một nhưng việc viết năm) thì chương trình trên có chương trình gặp khó hạn chế như thế nào? khăn do cần dùng rất nhiều biến và đoạn các câu lệnh tính toán Trang - 3 Lop11.com.

<span class='text_page_counter'>(4)</span> Giáo án Tin học 11. 3. Để khắc phục hạn chế trên người ta thường ghép chung 7 biến trên thành một dãy và đặt cho nó chung 1 tên và đánh cho mỗi phần tử một chỉ số. - GV giới thiệu bài mới: Kiểu mảng. Chúng ta chỉ xét hai kiểu mảng thông dụng: Kiểu mảng một chiều và kiếu mảng hai chiều. 4. Y/cầu hs tham khảo sgk và hỏi: Em hiểu như thế nào về mãng một chiều?. Nguyễn Quang Tuấn. khá dài. 3. Lắng nghe BÀI 11. KIỂU MẢNG. 4. N/cứu sgk và trả lời: Mảng một chiều là dãy hữu hạn các phận tử cùng kiểu dữ liệu. Các ptử trong mảng cùng tên và phân biệt nhau bởi chỉ số. - Trả lời: + Kiểu của các p/tử. Hỏi: Để mô tả mảng một chiều, + Cách đánh số các ta cần xác định những yếu tố p/tử. nào?. 1.Kiếu mảng một chiều a. K/n 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 dữ liệu. Các ptử trong mảng cùng tên và phân biệt nhau bởi chỉ số. Để mô tả mảng một chiều, ta cần xác định: + Kiểu của các p/tử. + Cách đánh số các p/tử.. 2. 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 GV Hoạt động của HS Nội dung ghi bảng 1. Y/cầu hs tìm hiểu phần khai Type báo một lời giải khác cho bài - Trả lời Kmang1=array [1..Max] toán trên trong trường hợp tổng of real; Var Nhietdo: Kmang1; quát (N ngày), có sử dụng mảng Trả lời: 1 chiều. Dòng 1: Kbáo kiểu Hỏi: Chỉ ra phần khai báo mảng mảng một chiều gồm trong phần khi báo của chương Max số thực. Dòng 2 : Kbáo biến b. Khai báo (Có hai cách) trình? * Ghi lại phần khai báo lên mảng Nhietdo qua kiểu + Kbáo gián tiếp: (sgk) mảng + Kbáo trực tiếp: (sgk) bảng - Ý nghĩa của các khai báo trên là gì? Lắng nghe và ghi chép Ví dụ 1: Var Nhietdo: array [1..Max] 3. Suy nghĩ và trả lời Of real; 2. Giới thiệu cú pháp khai báo Var Dhs2: array kiểu mảng một chiều. [1..100] of real; -Khái quát hoá, ta có cú pháp - Kbáo trực tiếp mảng Ví dụ 2: Khai báo mảng tối đa khái báo biến mảng một chiều có tên Dhs2 gồm 100 100 số nguyên (chỉ số đầu tiên là 1) * Lưu ý về cách chọn <Kiểu chỉ p/tử có kiều thực. Trả lời: Ta có các cách sau: số> Trang - 4 Lop11.com.

<span class='text_page_counter'>(5)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. 3. Y/cầu cho ví dụ khai báo Cách 2 & 3, vì ta dễ mảng? dàng điều chỉnh kích Gọi hs khác: Ý nghĩa của khai thước của mảng báo bạn vừa viết? * Lưu ý hs tránh nhầm lẫn giữa tên kiểu dữ liệu mảng và biến kiểu mảng. -Hỏi: (Treo bảng) Trong ba cách khai báo ở ví dụ 2, thì cách nào tốt hơn?. Cách 1: Var a: Array[1..100] Of Integer; Cách 2: Const Nmax = 100; Var a: Array[1..Nmax] Of .ArrayReal integer; .301 phần tử Cách 3: .Real Const Nmax = 100; Type MyArray = Array [1..Nmax] Of Integer; a[2] p/tử ở vị trí thứ 2 Var a:MyArray; của mảng a a[i] p/tử ở vị trí i của mảng a.. - Hỏi: Dựa vào ví dụ trang 55 hs trả lời câu hỏi. SGK, cho biết: + Tên kiểu mảng? + Số phần tử của mảng? + Mỗi phần tử của mảng thuộc kiểu gì? 4. Cách tham chiếu đến từng phần tử của mảng: Y/cầu hs lấy ví dụ(sử dụng các khbáo ở trên) 3. Hoạt động 3: Củng cố Hoạt động của GV (Treo bảng) + Những khai báo nào là đúng?. Hoạt động của HS. * Tham chiếu tới phần tử cuả mảng Tên_biến[chỉ số]. Nội dung ghi bảng. Type + Trả lời: Arrayr = array[1..200] of Arrayr=array[1..200] integer; Arrayr = array[byte] of real; of integer; + Biến a trong khai báo trên Arrayb = array[- Arrayb = array[-100..100] of chiếm dung lượng bộ nhớ là bao 100..100] boolean; nhiêu? (số phần tử của mảng a, of boolean; Var a : arrayr; + Trả lời: a chiếm 400 kiểu phần tử) B : arrayb; byte trong bộ nhớ. IV. Củng cố bài học Câu hỏi, bài tập về nhà Đọc ví dụ 1 và ví dụ 2/ trang 56+57 SGK : -Xem lại thuật toán tìm phần tử lớn nhất của dãy số nguyên và thuật toán sắp xếp dãy số nguyên bằng thuật toán hoán đổi (lớp 10); -Khai báo được mảng, tham chiếu được các phần tử của mảng. Trang - 5 Lop11.com.

<span class='text_page_counter'>(6)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Ngày soạn: 21/11/2010 §11. KIỂU MẢNG (Tiết 2) PPCT: 22 I. Mục đích, yêu cầu 1. Kiến thức: Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản. 3. Tư duy, thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức II. Đồ dùng dạy học 1. Giáo viên: giáo án, bảng phụ, sgk 2. Học sinh: sgk III. Phương pháp IV. Hoạt dộng dạy học 1. Hoạt động 1: Kiểm tra bài cũ Hoạt động của GV Hoạt động của HS 1. Trình bày các cách khai báo kiểu mảng Hs1: Đứng tại chổ trả lời trong NNLT Pascal? Hs2: (lên bảng) 2. Khai báo mảng gồm N số nguyên (N500). Const N = 500; C1: Var M : array[1..N] of integer; (theo 2 cách: trực tiếp và gián tiếp). C2: Type Mnguyen = array[1..N] of Gọi lần lượt hs trả lời. integer; Gọi hs khác nhận xét Nội dung trên bảng Var M : Mnguyen; Đánh giá, cho điểm. 2. Hoạt động 2: Vận dụng kiểu mảng một chiều a. Nội dung : - Bài toán: Tạo mảng A gồm N (N100) số nguyên. Tính tổng các phần tử của mảng là bội của một số nguyên dương k cho trước. b. Các bước tiến hành: Hoạt động của GV Hoạt động của HS Nội dung ghi bảng 1. Nêu đề bài toán (ghi bảng) 1. Đọc đề bài toán và trả lời: Y/cầu hs xác định In/Output In: mảng A, số k Bài 1: Viết CT tạo mảng A gồm Out: Tổng (S) các p/tử N (N100) số nguyên. Tính tổng của bài toán. trong mảng A là bội các phần tử của mảng là bội của 2. Ở lớp 10 ta đã xây dựng của k. một số nguyên dương k cho t/toán cho bài toán này rồi. trước. 2. 1-2 hs nhắc lại Y/cầu hs nhắc lại t/toán. 3. Y/cầu hs cho biết các việc t/toán chính cần thực hiện trong chương trình là gì? 3. Trả lời + Cho biết số ptử của mảng A. + Nhập giá trị cho các 4. Y/cầu hs cho biết các biến ptử của mảng A Trang - 6 Lop11.com.

<span class='text_page_counter'>(7)</span> Giáo án Tin học 11. chính cần sử dụng là gì? - Y/cầu hs khác lên viết phần khai báo các biến đó? 5. Tiếp tục y/cầu hs lên viết phần chương trình tạo giá trị cho các ptử của mảng A. (lưu ý nhập số lượng ptử của mảng trước) Gọi hs khác nhận xét * Chỉnh sửa đoạn chương trình hs vừa hoàn thành. 6. Để viết tiếp đoạn chương trình còn lại (tính tổng) theo thuật toán ta phải kiểm tra lần lượt tất cả các ptử của mảng từ A[1] đến A[n]. vậy ta sử dụng câu lệnh gì ở đây? - Hỏi: trước khi tính tổng, ngoài mảng A trong CT cần có thêm gì không? (GV bổ sung) - Y/cầu hs khác lên viết đoạn chương trình còn lại? ** Chuẩn hoá lại chương trình.. Nguyễn Quang Tuấn. + Tính tổng. 4. suy nghĩ và trả lời - mảng A biến đơn: N, k, S. - Lên bảng trình bày Var S, N, k: integer; A: array[1..100] of integer; 5. Thực hiện tương tự các CT trước (Lên bảng trình bày) Đứng tại chổ n/xét, (bổ sung nếu sai sót) 6. Chú ý sự dẫn dắt vấn đề của gv, suy nghĩ và trả lời: Sử dụng cấu trúc lặp For.. Var. S, n, k, i : integer; A: array[1..100] of integer; Begin Write(‘Nhap n = ’); readln(n); {tao mang} For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]); end; write(‘Nhap k = ’); readln(k); S := 0; {khoi tao S ban dau} {tinh tong} For i:=1 To n Do If A[i] mod k = 0 Then S := S + A[i]; Writeln(‘Tong can tinh la ’, S); End.. -Giá trị k và Biến S := 0. - Lên bảng trình bày Chạy thử chương trình * Chạy thử chương trình với 1 N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3 bộ giá trị: A 5 6 - 8 13 24 7 -4. 12 8. i 1 2 3 4 5 6 7 A[i] mod 2 0 -2 1 0 1 -1 0 3 S 0 0 6 6 6 30 30 30 18 3. Hoạt động 3: Mở rộng bài toán có vận dụng mảng một chiều a. Nội dung : Cho một số câu lệnh: (1) ......am, duong : integer; (2) ......am := 0; duong := 0; (3) ......If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then am := am + 1; (4) ......Writeln(duong: 4, am:4); Hãy đưa các câu lệnh đó vào những vị trí thích hợp trong chương trình bài 1, để có được chương trình đưa ra số các số dương và số các số âm trong mảng.. Trang - 7 Lop11.com.

<span class='text_page_counter'>(8)</span> Giáo án Tin học 11. b. Các bước tiến hành: Hoạt động của GV (Treo bảng) chứa Nội dung câu lệnh cần thêm vào chương trình ở bài 1. 1. Y/cầu hs n/cứu Nội dung các câu lệnh và hỏi: - Ý nghĩa của biến am, duong?. Nguyễn Quang Tuấn. Hoạt động của HS Quan sát các câu lệnh. 1. N/cứu ý nghĩa các câu lệnh và trả lời: - Dùng để lưu số lượng đếm được. - Đếm số dương hoặc đếm số âm. - Chức năng của lệnh (3)? - Số các số dương, số các số âm. - Lệnh (4) đưa ra thông tin gì? 2. Chỉ ra vị trí cần bổ 2. Y/cầu hs tìm vị trí bổ sung các sung và các câu lệnh lệnh vào cho phù hợp để chương cần loại bỏ bớt. trình đếm được số dương, số âm. 3. Lên bảng , chỉnh 3. Y/cầu hs lên hoàn chỉnh lại sửa lại chương trình. chương trình? ** Chuẩn hoá lại chương trình. * Chạy thử chương trình với 1 bộ giá trị:. Nội dung ghi bảng Var n, i : integer; am, duong : integer; A : array[1..100] of integer; Begin Write(‘Nhap n = ’); readln(n); {tao mang} For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]); end; am := 0; duong := 0; {dem} For i:=1 To n Do If A[i] >0 Then duong := duong +1 Else if A[i]<0 Then am := am + 1; Writeln(duong: 4, am:4); End.. Chạy thử chương trình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 A Duo ng am. 5. 6. -8. 13. 24. 7. -4. 12. 1. 2. 2. 3. 4. 5. 5. 5. 0. 0. 1. 1. 1. 1. 2. 3. IV. Củng cố bài học 1. Nội dung đã học - Tính tổng các phần tử trong mảng thoả mãn một điều kiện. - Đếm số phần tử trong mảng thoả mãn một điều kiện. 2. Câu hỏi, bài tập về nhà - Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i]) - Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.. Trang - 8 Lop11.com.

<span class='text_page_counter'>(9)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Ngày soạn: 22/11/2010 §11. KIỂU MẢNG (Tiết 3) PPCT: 23 I. Mục đích, yêu cầu 1. Kiến thức: - Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. - Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản. 3. Tư duy và thái độ: -Rèn luyện tác phong, tư duy lập trình, tự giác , tích 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. Giáo viên: giáo án, bảng phụ, sgk 2. Học sinh: sgk III. Phương pháp IV. Hoạt động dạy học 1. Hoạt động 1: Kiểm tra bài cũ Hoạt động của GV Hoạt động của HS Gọi 2 Hs lên bảng trình bày bài tập cho về 2 hs lên bảng trình bày nhà tiết trước. Gọi hs khác nhận xét Nhận xét Đánh giá cho điểm 2. Hoạt động 2: Phân tích bài toán trước khi viết chương trình a. Nội dung : Sắp xếp dãy số nguyên bằng thuật toán tráo đổi. b. Các bước tiến hành: Hoạt động của GV Hoạt động của HS Nội dung ghi bảng 1. Nêu bài toán, y/cầu hs xác 1. Đọc đề và xác định Số nguyên dương N (N250) định In/Output của bài toán. bài toán. và dãy A gồm N số nguyên In: N (N250), dãy A dương, mỗi số đều không (A[i]<500). vượt quá 500. Hãy sắp xếp 2. Y/cầu hs trình bày lại thuật Out: dãy A không giảm dãy A thành dãy không giảm. toán sắp xếp tráo đổi. (Đã học ở 2.Thuật toán lớp 10) B1: Nhập N, dãy A ; B2: jN; B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, KT; B4: jj-1; i1; B5: Nếu i>j thì Qlại B3; B6: Nếu A[i]>A[i+1] 3. Y/cầu cả lớp n/cứu lại t/toán thì tráo đổi A[i] và và trả lời các câu hỏi: A[i+1]; - Biến j sẽ nhận các giá trị trong B7: Quay lại B5. phạm vi nào? Tương tự với biến i? Trang - 9 Lop11.com.

<span class='text_page_counter'>(10)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. - Có nhận xét gì về 2 biến i,j? Trả lời: (với mỗi giá trị j, i lần lượt nhận + 2  j  N, 1  i  j-1 các giá trị từ 1 đến j-1) + i phụ thuộc theo j 3. Hoạt động 3: Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal Hoạt động của GV Hoạt động của HS Nội dung ghi bảng 1. Y/cầu hs xác định những Nội 1. Suy nghĩ và trả lời: dung chính cần viết trong +Khai báo biến chương trình. +Tạo mảng A +Sắp xếp mảng A tăng Var A: array[1..300] of * Chốt lại các Nội dung chính dần integer; cần viết. +Đưa mảng A đã sắp N, i, j :integer; 2. Yêu cầu từng hs lên bảng viết xếp ra màn hình Begin từng Nội dung của chương trình. 2. Lên bảng trình bày {tao mang} từng Nội dung . - Khai báo những biến gì? Write(‘Nhap n = ’); - mảng A, biến đơn N, i, readln(n); j - Tạo mảng là làm những gì? For i:=1 To n Do - Nhập sl p/tử của mảng begin và nhập giá trị cho các write(‘phan tu thu ’,i,’ p/tử trong mảng =’); readln(A[i]); - Sắp xếp mảng end; Hỏi: Làm thế nào để tráo đổi giá {sap xep mang} trị 2 biến cho nhau (a[i] và For j := N Downto 1 Do Tl: sử dụng thêm biến a[i+1])? for i:=1 to j - 1 do trung gian t: If a[i] > a[i+1] then t:=a[i]; begin a[i]:=a[i+1]; t:=a[i]; a[i]:=a[i+1]; - Đưa mảng ra màn hình a[i+1] :=t a[i+1] :=t end; {dua ra mang da sap xep} Writeln (‘Mang da duoc Viết lại chương trình sap xep ’); vào vở. For i :=1 To N Do write (a[i]:4); Readln End. IV. Củng cố bài học 1. Nội dung đã học -Cách phân tích và viết chương trình cho một bài toán. 2. Câu hỏi, bài tập về nhà -Xem lại các bài tập về mảng đã giải ở tiết 20 -Xem trước bài: Bài thực hành số 3 Trang - 10 Lop11.com.

<span class='text_page_counter'>(11)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. -Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i]) ***************** Ngày soạn: 24/11/2010 §11. KIỂU MẢNG (Tiết 4) PPCT: 24 I. Mục đích, yêu cầu 1. Kiến thức - Hiểu được khái niệm mảng hai chiều. - Hiểu cách khai báo và tham chiếu đến các phần tử của mảng hai chiều. 2. Kĩ năng - Thực hiện được khai báo mảng hai chiều, cách tham chiếu đến một phần tử của mảng hai chiều. - Thực hiện được việc tính toán các phần tử trong mảng hai chiều. 3. Tư duy, thái độ - Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính. - Luôn muốn cải tiến chương trình nhằm nâng cao hiệu quả chương trình. II. Đồ dùng dạy học 1. Giáo viên: Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và in ra màn hình tổng các phần tử trong mảng. 2. Học sinh: SGK, vở soạn. III. Phương pháp Thuyết trình, đặt vấn đề, hỏi đáp. IV. Hoạt động dạy học 1. Hoạt động 1: Kiểm tra bài cũ Hoạt động của GV Hoạt động của HS Viết CT tạo và in ra màn hình mảng A gồm n phần tử 10 phần tử. Mỗi phần tử là một số nguyên. Cho biết có bao nhiêu phần tử trong mảng có giá trị bằng số nguyên k. 2. Hoạt động 2: Tìm hiểu ý nghĩa của mảng hai chiều. Đặt vấn đề: Ở tiết trước, chúng ta đã tìm hiểu cách khai báo mảng, cách tạo mảng và truy cập đến một phần tử trong mảng một chiều. Hôm nay, chúng ta sẽ tìm hiểu các vấn đề đó đối với mảng hai chiều. Hoạt động của GV Hoạt động của HS Nội dung ghi bảng - GV yêu cầu HS xem bảng nhân - Xem bảng nhân ở §11. KIỂU MẢNG (tiết 4) ở SGK. SGK trang 59.. 2. Kiểu mảng hai chiều: - Với kiến thức về mảng một - Sử dụng 9 mảng một a. Xét bài toán: Bảng nhân chiều đã học, em hãy đưa ra cách chiều, mỗi mảng lưu (SGK). sử dụng kiểu mảng đó để lưu trữ một hàng của bảng. bảng nhân? - Với cách lưu trữ như vậy, ta - TL: Khai báo 9 biến phải khai báo bao nhiêu biến mảng một chiều. mảng? Trang - 11 Lop11.com.

<span class='text_page_counter'>(12)</span> Giáo án Tin học 11. - Khai báo như vậy có những hạn chế nào? - Để khắc phục những hạn chế này, ta có thể mô tả dữ liệu của bảng nhân là kiểu mảng một chiều gồm 9 phần tử, mỗi phần tử là mảng một chiều có 10 phần tử. Như vậy, ta có thể biểu diễn bảng nhân bằng kiểu dữ liệu mảng hai chiều. - Yêu cầu HS nhận xét về mảng hai chiều?. Nguyễn Quang Tuấn. - TL: Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo và in giá trị của mảng. - Chú ý lắng nghe.. - TL: Nếu coi mỗi hàng của mảng hai chiều là một phần tử thì ta có thể coi mảng hai chiều là mảng một chiều mà mỗi phần tử của nó là mảng - Nêu khái niệm mảng hai chiều. một chiều. * Khái niệm mảng hai chiều: (SGK). - Để mô tả kiểu mảng hai chiều, - HS trả lời. cần xác định những yếu tố nào? * Các yếu tố cần xác định để - Tham khảo SGK và mô tả kiểu mảng hai chiều. trả lời. (SGK). 3. Hoạt động 3:(10’)Tìm hiểu cách khai báo biến mảng hai chiều và cách tạo/in mảng hai chiều. Hoạt động của GV Hoạt động của HS Nội dung ghi bảng b. Khai báo:  C1: Trực tiếp: - GV đưa ra hai cách khai báo - HS chú ý theo dõi. Var <tênbiếnmảng>:array biến mảng hai chiều. [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;  C2: Gián tiếp: - GV giải thích các thành phần - Chú ý lắng nghe. Type <tên kiểu mảng> = trong khai báo. array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu ptử>; Var <tên biến mảng>:<tên kiểu mảng>; Ví dụ: i) var A:array [1..50,1..100] of integer; ii) type mang2c = array - Gọi HS nêu cách khai báo gián - HS đứng tại chỗ trả [1..9,1..10] of byte; tiếp biến B để lưu trữ bảng nhân lời. var B: mang2c; ở SGK. c.Tham chiếu đến một phần tử của mảng hai chiều: - Gọi HS nhắc lại cách tham Tênbiến[chỉ số hàng,chỉ số chiếu đến một phần tử của mảng cột] - TL: Tênbiến[chỉ số] i) A[i,j]  phần tử ở hàng i, cột j một chiều. Trang - 12 Lop11.com.

<span class='text_page_counter'>(13)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. - Gọi HS nêu cách tham chiếu đến số 81 trong bảng nhân? - TL: B[9,9] = 81 4. Hoạt động 4: Tìm hiểu cách viết chương trình đơn giản. Hoạt động của GV Hoạt động của HS. - GV hướng dẫn HS cách tạo - HS chú ý theo dõi. mảng hai chiều có m hàng, n cột.. - GV hướng dẫn HS cách in mảng hai chiều vừa tạo.. - Gọi HS lên bảng sửa lại phần khai báo và các câu lệnh nhập cho phù hợp với bài này.. - GV hướng dẫn HS cách tính tổng. - GV treo bảng phụ viết sẵn chương trình cho HS tham khảo.. của mảng A. ii) B[9,9]  phần tử ở hàng 9, cột 9 của bảng nhân B. Nội dung ghi bảng d. Các ví dụ: Ví dụ 1: Viết chương trình tạo và in mảng hai chiều gồm m hàng, n cột. program Tao_in_mang; var i, j, m, n: integer; A: array [1..100,1..100] of integer; begin write ('Nhap so hang m = '); readln (m); write ('Nhap so cot n = '); readln (n);. {Tạo mảng} for i := 1 to m do for j := 1 to n do begin - Chú ý lắng nghewrite('Nhap và A[',i, ',' ,j,']='); theo dõi. readln (A[i , j]); end; {In mảng} for i:= 1 to m do begin for j := 1 to n do write (A[i , j]:4); - HS lên bảng làm. + Không khai báo m,n. writeln; + Khai báo thêm biến T. end; + Viết hai vòng for của readln lệnh tạo và in mảng là: end. for i := 1 to 5 do Ví dụ 2: Tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính for j := 1 to 7 do và in ra màn hình tổng các - HS chú ý theo dõi. phần tử trong mảng. - Theo dõi chương trình T:= 0; trên bảng phụ. for i := 1 to 5 do for j := 1 to 7 do T := T + A[i,j];. IV. Củng cố bài học Trang - 13 Lop11.com.

<span class='text_page_counter'>(14)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. 1. Nội dung đã học - Cách khai báo biến mảng hai chiều. - Cách tạo mảng hai chiều. - Cách tính toán các phần tử trong mảng hai chiều. 2. Câu hỏi, bài tập về nhà : Xem các ví dụ còn lại trong SGK. PPCT: 25. Ngày soạn:1/12/2010. Bài tập I. Mục tiêu: 1. Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế. - Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập. - Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type. 2. Về kĩ năng: - Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc (với Pascal, sử dụng thành thạo các từ khoá Var, Type). - Sử dụng thành thạo các thao tác vào/ ra và các phép toán trên các thành phần cơ sở. 3. Về tư duy và thái độ: - Thái độ học tập tích cực, ham thích lập trình. - Tiếp tục hình thành và xây dựng phẩm chất cần thiết của người lập trình. II. Chuẩn bị: - GV: Computer - HS: Chuẩn bị bài tập về nhà. III. Phương pháp: - Nêu vấn đề, Dẫn dắt, gợi ý... IV. Tiến trình hoạt động: Hoạt động 1: Giải bài tập số 6 trang 79 Sách GK Tin học lớp 11 Hoạt động của GV Hoạt động của HS Ghi bảng HĐTP1: H1: Sử dụng kiểu dữ liệu nào - Trả lời: Chính xác hoá bài 6/tr79. và cách khai báo? Kiểu mảng một chiều: Var A:array [1..100] of integer; H2: Khai báo biến như thế - Trình bày lên bảng: nào? - Yêu cầu HS viết chương trình nhập mảng A. - Chỉnh sửa bài làm của HS. TL: Chia hết cho 2. H3: Số chẵn là số như thế nào? - Nếu có số lượng số chẵn - Nếu có số lượng số trong dãy thì tìm số lượng số lẻ chẵn trong dãy thì tìm số được hay không? - Nếu được lượng lẻ bằng cách: n Trang - 14 Lop11.com.

<span class='text_page_counter'>(15)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Hoạt động của GV Hoạt động của HS Ghi bảng thì tìm bằng cách nào? số lượng số chẵn. H4: Sử dụng câu lệnh nào để TL: If ... then... viết? - Yêu cầu HS hoàn thành - Trình bày lên bảng: chương trình của câu a. - Nhận xét, chỉnh sửa bài làm của HS. HĐTP 2: H1: Nêu thuật toán kiểm tra 1 - Trả lời câu hỏi: số có phải là số nguyên tố hay không? - Trình bày lên bảng: - Yêu cầu HS viết chương trình dựa theo thuật toán. Hd: Sử dụng câu lệnh nào? - Yêu cầu HS hoàn thành đoạn chương trình câu b. - Nhận xét, đánh giá: - Gợi ý để HS kết hợp hai đoạn chương trình thành một chương trình hoàn chỉnh cho cả bài. + Hoạt động 2: Giải bài tập 7 trang 79 Sách GK Tin học lớp 11 Hoạt động của GV Hoạt động của HS Ghi bảng - Yêu cầu HS liệt kê 6 số hạng - Liệt kê: 0, 1, 1, 2, 3, 5. đầu của dãy Fiponaci. H1: Đoạn chương trình nhập - Viết chương trình lên Chính xác hoá bài 6/trang79. từ bàn phím số nguyện dương bảng: như thế nào? H2: Số hạng tổng quát thứ n TL: Fn = Fn-1 + Fn-2 như thế nào? - Gợi ý: Để viết chương trình TL: Dùng 2 biến phụ này ta cần bao nhiêu biến phụ? (F1, F2) H3: sử dụng câu lệnh nào - Suy nghĩ, trả lờ: trong bài này? - Yêu cầu HS viết chương - Lên bảng trình bày: trình tìm số hạng thứ n. - Gọi 1 HS hoàn chỉnh lại chương trình. - Nhận xét, chỉnh sửa, đánh giá bài làm. + Hoạt động 3: Củng cố (2ph) Cấu trúc lệnh: While ... do ... và For ... do ... Về nhà làm các bài tập tiếp theo. ************************* Trang - 15 Lop11.com.

<span class='text_page_counter'>(16)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. PPCT: 26-27. Ngày soạn: 10/12/2010. BÀI THỰC HÀNH SỐ 3 I.Mục tiêu: 1.Kiến thức: - Củng cố lại kiến thức cơ bản về kiểu dữ liệu mảng, cụ thể là mảng một chiều.Qua đó cung cấp cho học sinh các thuật toán cơ bản thường gặp với kiểu dữ liệu mảng. 2.Kĩ năng: - Rèn luyện cho học sinh một số kĩ năng làm việc với mảng như: +Khai báo kiểu dữ liệu mảng một chiều, + Nhập/ xuất dữ liệu, +Duyệt qua các phần tử của mảng, -Qua đó giúp học sinh biết cách giải một số bài toán cơ bản thường gặp như: +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/bé nhất của mảng và vị trí của nó. 3. Thái độ: -Rèn luyện tác phong, tư duy lập trình, tự giác , tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức. II.Chuẩn bị của giáo viên và học sinh: 1.Giáo viên: +Phòng máy vi tính, +Một số chương trình cài sẵn trong USB hoặc đĩa mềm, +Máy chiếu hoặc bảng phụ, 2.Học sinh: +Học bài cũ, +Đọc trước bài ở nhà. III.Phương pháp: -Trình chiếu kết hợp đàm thoại. -Hướng dẫn học sinh các bước thực hiện một số chương trình. IV.Tiến trình bài dạy: Hoạt động 1: Kiểm tra bài cũ Câu hỏi: Có mấy cách khai báo mảng một chiều? Cho ví dụ. Hoạt động học sinh Hoạt động giáo viên Ghi bảng -Lắng nghe câu hỏi. -Nêu câu hỏi.. -Học sinh trả lời câu -Gọi học sinh lên trả lời. hỏi. Cả lớp theo dõi, nhận xét. Có hai cách khai báo: a/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ử>;. b/ 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 -Giáo viên nhận xét, cho mảng >; điểm Trang - 16 Lop11.com.

<span class='text_page_counter'>(17)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Hoạt động 2: Bài tập số 1 sgk/63 Hoạt động học sinh. Hoạt động giáo viên. Ghi bảng. 1/HĐTP1: Quan sát bảng phụ, Treo bảng phụ có nội - Lắng nghe câu hỏi và dung bài số 1a/ sgk/63 ( có trả lời. thể sử dụng máy chiếu ). Sau đó đặt câu hỏi cho học sinh trả lời . + Khai báo uses CRT; có ý -Khai báo thư viện chương trình nghĩa gì? con CRT để sử dụng được thủ tục Clrscr; - Myarray : tên kiểu dữ liệu +Myarray là tên kiểu dữ - nmax: số phần tử tối đa có thể liệu hay tên biến? chứa của biến mảng a, +Vai trò của nmax và n có n: số phần tử thực tế của a. gì khác nhau? -Random(n): cho số ngẫu nhiên từ +Những dòng lệnh nào 0 đến n-1 dùng để tạo biến mảng a -Theo dõi để nắm hàm -Giáo viên giới thiệu hàm Random. Random cho học sinh.Sau +Câu lệnh cho số ngẫu đố đặt câu hỏi: nhiên có giá trị từ -299 + a[i] := Random(300) – đến 299. Random (300) có ý nghĩa gì? +câu lệnh in ra màn hình giá trị tất cả các + Lệnh for i:=1 to n do phần tử của mảng. Write ( a[i] : 5); Có ý nghĩa gì? +cộng tất cả các phần tử +Lệnh For-do cuối cùng chia hết cho k. thực hiện nhiệm vụ gì? +Số lần thực hiện lệnh gán đúng bằng số phần +Lệnh gán s := s + a[i] ; tử của mảng chia hết được thực hiện bao nhiêu lần? cho k. -Theo dõi kết quả chạy Trang - 17 Lop11.com.

<span class='text_page_counter'>(18)</span> Giáo án Tin học 11. thử chương trình.. Nguyễn Quang Tuấn. -Thực hiện lại chương trình lần cuối để học sinh thấy được kết quả.. 2/HĐTP2: Sửa chương trính câu a/ để được chương trình giải quyết bài toán câu b/ -Quan sát bảng phụ, theo dõi và trả lời các câu hỏi của GV. -Treo bảng phụ câu b/ bài +posi : đếm số dương trong mảng. tập 1 sgk/64 +neg: đếm các số âm trong mảng. Hỏi HS: + Ý nghĩa của biến posi và neg? +Nếu a[i] > 0 thì cộng a[i] vào posi; ngược lại nếu a[i] < 0 thì cộng a[i] + Chức năng của lệnh : If a[i] > 0 then vào neg. posi := posi +1 else if a[i] < 0 then neg := neg +1; +Quan sát các lệnh và là gì? suy nghĩ vị trí cần sửa trong chương trình câu +Hướng dẫn học sinh a?. thêm vào vị trí cần thiết để chương trình đếm được số lượng các số âm và các số +Theo dõi kết quả chạy dương. chương trình. +Chạy thử chưong trình để học sinh theo dõi kết quả. Hoạt động 3: Bài tập số 2/sgk/64 Hoạt động học sinh Hoạt động giáo viên 1/HĐTP1: Đưa ra một Ví dụ: Cho mảng gồm 5 ví dụ cụ thể . phần tử: 1 5 7 5 2 . Tìm phần tử có giá trị lớn nhất và vị trí của nó trong mảng ( số thứ tự ) -Gợi ý , hướng dẫn học sinh thuật toán tìm phần tử Trang - 18 Lop11.com. Ghi bảng.

<span class='text_page_counter'>(19)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. lớn nhất và vị trí của nó -Theo dõi, suy nghĩ để (kết hợp làm thủ công). j:=1; For i:=2 to n do nắm thuật toán. If a[i] > a[j] then j:=i; (Sau khi kết thúc: + Giá trị lớn nhất là a[j] -Cho học sinh đọc đoạn + vị trí cần tìm j.) chương trình trong bài 2/64sgk . -Đọc đoạn chương trình sgk. Liên hệ trả lời các Hỏi HS: + Nếu muốn tìm phần tử câu hỏi mà GV nêu ra. nhỏ nhất thì cần sửa ở chỗ +Sửa a[i] > a[j] ; thành nào? a[i] < a[j] ; +Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất +Sửa a[i] > a[j]; thành của nó thì ta sửa ổ chỗ a[i] >= a[j]; nào? -Chạy thử chưong trình cho học sinh theo dõi -Theo dõi học sinh thực hiện chương trình và xem 2/HĐTP2: -Theo dõi GV chạy kết quả. chương trình và làm lại trên máy tính. Hoạt động 4: Củng cố -Nhắc lại cho học sinh một số kiến thức về: + Tính tổng các phần tử các phần tử thoả mãn một điều kiện nào đó. + Đếm số các phần tử thoả mãn một điều kiện nào đó. + Tìm phần tử lớn nhất/ bé nhất. BTVN- Viết một chương trình nhập một mảng một chiều, đếm số phần tử nhỏ hơn một số k nào đó.. Trang - 19 Lop11.com.

<span class='text_page_counter'>(20)</span> Giáo án Tin học 11. Nguyễn Quang Tuấn. Ngày soạn:16/12/2010 BÀI THỰC HÀNH SỐ 4 (Tiết 1) PPCT: 28 I. Mục đích, yêu cầu 1. Kiến thức - Củng cố kiến thức về dữ liệu kiểu mảng. - Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi. 2. Kĩ năng - Biết chỉnh sữa lỗi trong chương trình. - Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh. 3. Thái độ - Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình. II.Chuẩn bị - Gv:Bảng phụ viết sẵn chương trình, phòng máy, project. - Hs: Sgk, CT đã được viết sẵn. III. Phương pháp IV. Tiến hành dạy học 1. Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành. Hoạt động của GV Hoạt động của Hs Hỏi 1: Nêu cách khai báo kiểu mảng 1 Tl: có 2 cách chiều. + gián tiếp: + trực tiếp: TL: For i:= 1 to 6 do Hỏi 2: Nhập từ bàn phím xây dựng mảng Begin một chiều A có 6 phần tử. Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]); End; 2. Hoạt động 2: Xác định bài toán và tìm hiểu chương trình. Hoạt động của GV Hoạt động của HS Ghi bảng 1. Chiếu đề bài lên bảng. 1. Quan sát đề và lằng Đề: Sắp xếp dãy số nguyên bằng nghe câu hỏi của gv. thuật toán tráo đổi với các giá trị khác nhau của n số. 2. Xác định bài toán 2. Trả lời câu hỏi. Y/cầu hs xác định dữ liệu - Vào: mảng A vào/ra của bài toán? - Ra: mảng A đã sắp xếp 3. Gv minh hoạ bài toán: 3. Theo dãy số minh A 5 7 2 8 6 4 họa, nhớ lại thuật toán 1 2 3 4 5 6 sắp xếp đã học. Mảng A đã sắp xếp: A 2 4 5 6 7 8 1 2 3 4 5 6 CT( SGK/65) - Yêu cầu hs nhắc lại ý tưởng - Nhắc lại thuật toán. thuật toán(Lớp 10)? - Chiếu thuật toán đã được - Quan sát, đối chiếu thuật toán liệt kê với CT liệt kê các bước. (SGK). 4. Tìm hiểu chương trình Trang - 20 Lop11.com.

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

×