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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 [r]

(1)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 Kiến thức Củng cố cho học sinh kiến thức cấu trúc rẽ nhánh và cấu trúc lặp Kỹ năng: -Rèn luyện kỹ vận dụng và linh hoạt việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp để giải bài toán đặt 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 giải các bài tập.Rèn luyện tư khoa học, tư logic II Chuẩn bị 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: 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 GV - GV gọi HS lên trả lời H1 Hoạt động HS - 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 lớp nhận nhận xét bổ sung (nếu có) xét câu trả lời bạn - GV nhận xét và đánh giá Hoạt động 2: Giải bài tập Câu hỏi 1(H1): Sử dụng lệnh If này gồm nhánh ? Câu hỏi 2(H2): Hàm lấy giá trị tuyệt đối biểu thức hay biến ? Hoạt động GV Hoạt động HS Ghi bảng Hoạt động 1: - GV gọi HS lên bảng - 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 - Lop11.com (2) Giáo án Tin học 11 Nguyễn Quang Tuấn - GV đặt H1 - HS trả lời H1 - GV yêu 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 HS lên bảng - HS lên bảng giải câu 4b) giải câu 4b) - 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á Hoạt động 3: Giải bài tập 50 n dạng tường minh ? n 1 n  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ị đoạn nào ? Câu hỏi 3(H3): Em hãy thử đưa 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 GV Hoạt động HS Ghi bảng 50 - GV đặt H1 - HS lên bảng Y =    - GV đặt H2 trình bày H1 51 - GV đặt H3 - HS trả lời H2 Câu 5a) - GV đặt H4 - HS trả lời H3 Uses crt; - GV gọi HS lên bảng giải - HS trả lời H4 Var y: real; bài 5a) - 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 y:= y + n/(n+1); writeln(y:14:6); readln; End V Củng cố và dặn dò Nắm Nội dung đã học: Có 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 Làm các bài tập còn lại SGK trang 51 Trang - Lop11.com (3) 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 Kiến thức -Biết kiểu liệu là kiểu mảng chiều -Biết loại biến có số; -Biết cấu trúc tạo mảng chiều, cách khai báo biến kiểu mảng chiều Kĩ -Biết các thành phần khai báo kiểu mảng chiều; -Biết định danh phần tử kiểu mảng chiều xuất chương trình; -Biết cách khai báo mảng đơn giản với số miền kiểu nguyên; -Biết cách tham chiếu đến các phần tử mảng chiều Tư và thái độ: Tự giác, tích cực, chủ động và sáng tạo tìm kiếm tri thức II Đồ dùng dạy học Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng chiều Học sinh: sgk III Phương pháp Đặt vấn đề, thuyết giảng IV Hoạt động dạy học Hoạt động 1: Khởi động bài Hoạt động GV Hoạt động HS Nội dung ghi bảng Nêu bài toán mở đầu Y/cầu 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 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ể ngày tuần các giá trị nào? Kiểu các Cùng kiểu thực (real) - dem: để đếm số biến đó nào? ngày tron tuần có nđộ lớn nđộ trung - Biến dem dùng làm gì? bình - Để kiểm tra - câu lệnh IF chương các ngày, nđộ ngày trình thực việc gì? nào lớn nđộ trung bình Mở rộng bài toán từ phạm vi Bản chất thuật toán tuần sang phạm vi N ngày không có gì thay đổi (chẳng hạn tháng hay việc viết năm) thì chương trình trên có chương trình gặp khó hạn chế nào? khăn cần dùng nhiều biến và đoạn các câu lệnh tính toán Trang - Lop11.com (4) Giáo án Tin học 11 Để khắc phục hạn chế trên người ta thường ghép chung biến trên thành dãy và đặt cho nó chung tên và đánh cho phần tử số - GV giới thiệu bài mới: Kiểu mảng Chúng ta xét hai kiểu mảng thông dụng: Kiểu mảng chiều và kiếu mảng hai chiều Y/cầu hs tham khảo sgk và hỏi: Em hiểu nào mãng chiều? Nguyễn Quang Tuấn khá dài Lắng nghe BÀI 11 KIỂU MẢNG N/cứu sgk và trả lời: Mảng chiều là dãy hữu hạn các phận tử cùng kiểu liệu Các ptử mảng cùng tên và phân biệt số - Trả lời: + Kiểu các p/tử Hỏi: Để mô tả mảng chiều, + Cách đánh số các ta cần xác định yếu tố p/tử nào? 1.Kiếu mảng chiều a K/n mảng chiều Mảng chiều là dãy hữu hạn các phận tử cùng kiểu liệu Các ptử mảng cùng tên và phân biệt số Để mô tả mảng chiều, ta cần xác định: + Kiểu các p/tử + Cách đánh số các p/tử Hoạt động 2:Tạo kiểu mảng chiều và khai báo biến mảng Hoạt động GV Hoạt động HS Nội dung ghi bảng Y/cầu hs tìm hiểu phần khai Type báo lời giải khác cho bài - Trả lời Kmang1=array [1 Max] toán trên 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: chiều Dòng 1: Kbáo kiểu Hỏi: Chỉ phần khai báo mảng mảng chiều gồm phần báo chương Max số thực Dòng : 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ác khai báo trên là gì? Lắng nghe và ghi chép Ví dụ 1: Var Nhietdo: array [1 Max] Suy nghĩ và trả lời Of real; Giới thiệu cú pháp khai báo Var Dhs2: array kiểu mảng 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 chiều có tên Dhs2 gồm 100 100 số nguyên (chỉ số đầu tiên là 1) * Lưu ý cách chọn <Kiểu p/tử có kiều thực Trả lời: Ta có các cách sau: số> Trang - Lop11.com (5) Giáo án Tin học 11 Nguyễn Quang Tuấn Y/cầu cho ví dụ khai báo Cách & 3, vì ta dễ mảng? dàng điều chỉnh kích Gọi hs khác: Ý nghĩa khai thước mảng báo bạn vừa viết? * Lưu ý hs tránh nhầm lẫn tên kiểu 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ứ Var a:MyArray; mảng a a[i] p/tử vị trí i 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ử mảng? + Mỗi phần tử mảng thuộc kiểu gì? Cách tham chiếu đến phần tử mảng: Y/cầu hs lấy ví dụ(sử dụng các khbáo trên) Hoạt động 3: Củng cố Hoạt động GV (Treo bảng) + Những khai báo nào là đúng? Hoạt động 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 khai báo trên Arrayb = array[- Arrayb = array[-100 100] of chiếm dung lượng nhớ là bao 100 100] boolean; nhiêu? (số phần tử mảng a, of boolean; Var a : arrayr; + Trả lời: a chiếm 400 kiểu phần tử) B : arrayb; byte nhớ IV Củng cố bài học Câu hỏi, bài tập nhà Đọc ví dụ và ví dụ 2/ trang 56+57 SGK : -Xem lại thuật toán tìm phần tử lớn dãy số nguyên và thuật toán xếp dãy số nguyên thuật toán hoán đổi (lớp 10); -Khai báo mảng, tham chiếu các phần tử mảng Trang - Lop11.com (6) 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 Kiến thức: Khai báo kiểu, biến mảng chiều, cách tham chiếu dến các p/tử mảng Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải bài toán đơn giản Tư duy, thái độ: Tự giác, tích cực, chủ động và sáng tạo tìm kiếm tri thức II Đồ dùng dạy học Giáo viên: giáo án, bảng phụ, sgk Học sinh: sgk III Phương pháp IV Hoạt dộng dạy học Hoạt động 1: Kiểm tra bài cũ Hoạt động GV Hoạt động HS Trình bày các cách khai báo kiểu mảng Hs1: Đứng chổ trả lời NNLT Pascal? Hs2: (lên bảng) 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 cách: trực tiếp và gián tiếp) C2: Type Mnguyen = array[1 N] of Gọi 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 Hoạt động 2: Vận dụng kiểu mảng 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ử mảng là bội số nguyên dương k cho trước b Các bước tiến hành: Hoạt động GV Hoạt động HS Nội dung ghi bảng Nêu đề bài toán (ghi bảng) Đọ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 bài toán mảng A là bội các phần tử mảng là bội Ở lớp 10 ta đã xây dựng k số nguyên dương k cho t/toán cho bài toán này trước 1-2 hs nhắc lại Y/cầu hs nhắc lại t/toán Y/cầu hs cho biết các việc t/toán chính cần thực chương trình là gì? Trả lời + Cho biết số ptử mảng A + Nhập giá trị cho các Y/cầu hs cho biết các biến ptử mảng A Trang - Lop11.com (7) 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 đó? 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ử mảng A (lưu ý nhập số lượng ptử 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 Để 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 tất các ptử mảng từ A[1] đến A[n] ta sử dụng câu lệnh gì đây? - Hỏi: trước tính tổng, ngoài mảng A 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 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; Thực tương tự các CT trước (Lên bảng trình bày) Đứng chổ n/xét, (bổ sung sai sót) Chú ý dẫn dắt vấn đề 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 = Then S := S + A[i]; Writeln(‘Tong can tinh la ’, S); End -Giá trị k và Biến S := - Lên bảng trình bày Chạy thử chương trình * Chạy thử chương trình với N = A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3 giá trị: A - 13 24 -4 12 i A[i] mod -2 1 -1 S 0 6 30 30 30 18 Hoạt động 3: Mở rộng bài toán có vận dụng mảng chiều a Nội dung : Cho số câu lệnh: (1) am, duong : integer; (2) am := 0; duong := 0; (3) If A[i] >0 Then duong := duong + 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 vị trí thích hợp chương trình bài 1, để có chương trình đưa số các số dương và số các số âm mảng Trang - Lop11.com (8) Giáo án Tin học 11 b Các bước tiến hành: Hoạt động 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 Y/cầu hs n/cứu Nội dung các câu lệnh và hỏi: - Ý nghĩa biến am, duong? Nguyễn Quang Tuấn Hoạt động HS Quan sát các câu lệnh N/cứu ý nghĩa các câu lệnh và trả lời: - Dùng để lưu số lượng đếm - Đếm số dương đếm số âm - Chức lệnh (3)? - Số các số dương, số các số âm - Lệnh (4) đưa thông tin gì? Chỉ vị trí cần bổ 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 số dương, số âm Lên bảng , chỉnh 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 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 = A: 5, 6, -8, 13, 24, 7, -4, -12 A Duo ng am -8 13 24 -4 12 2 5 0 1 1 IV Củng cố bài học Nội dung đã học - Tính tổng các phần tử mảng thoả mãn điều kiện - Đếm số phần tử mảng thoả mãn điều kiện Câu hỏi, bài tập nhà - Cho 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], đó C[i] là tổng 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ụ và ví dụ 3/trang 57, 58 sgk Trang - Lop11.com (9) 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 Kiến thức: - Khai báo kiểu, biến mảng chiều, cách tham chiếu dến các p/tử mảng - Củng cố và làm hs hiểu sâu thuật toán xếp đã học lớp 10 Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải bài toán đơn giản Tư và thái độ: -Rèn luyện tác phong, tư lập trình, tự giác , tích cực, chủ động và sáng tạo tìm kiếm kiến thức II Đồ dùng dạy học Giáo viên: giáo án, bảng phụ, sgk Học sinh: sgk III Phương pháp IV Hoạt động dạy học Hoạt động 1: Kiểm tra bài cũ Hoạt động GV Hoạt động HS Gọi Hs lên bảng trình bày bài tập cho 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 Hoạt động 2: Phân tích bài toán trước viết chương trình a Nội dung : Sắp xếp dãy số nguyên thuật toán tráo đổi b Các bước tiến hành: Hoạt động GV Hoạt động HS Nội dung ghi bảng Nêu bài toán, y/cầu hs xác Đọc đề và xác định Số nguyên dương N (N250) định In/Output 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, số không (A[i]<500) vượt quá 500 Hãy xếp 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 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: j<2 thì đưa dãy đã 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] Y/cầu 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 nhận các giá trị B7: Quay lại B5 phạm vi nào? Tương tự với biến i? Trang - Lop11.com (10) Giáo án Tin học 11 Nguyễn Quang Tuấn - Có nhận xét gì biến i,j? Trả lời: (với giá trị j, i nhận +  j  N,  i  j-1 các giá trị từ đến j-1) + i phụ thuộc theo j Hoạt động 3: Vận dụng kiểu liệu mảng chiều để mô tả t/toán trên Pascal Hoạt động GV Hoạt động HS Nội dung ghi bảng Y/cầu hs xác định Nội Suy nghĩ và trả lời: dung chính cần viết +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 đã N, i, j :integer; Yêu cầu hs lên bảng viết xếp màn hình Begin Nội dung chương trình Lên bảng trình bày {tao mang} Nội dung - Khai báo biến gì? Write(‘Nhap n = ’); - mảng A, biến đơn N, i, readln(n); j - Tạo mảng là làm gì? For i:=1 To n Do - Nhập sl p/tử mảng begin và nhập giá trị cho các write(‘phan tu thu ’,i,’ p/tử mảng =’); readln(A[i]); - Sắp xếp mảng end; Hỏi: Làm nào để tráo đổi giá {sap xep mang} trị biến cho (a[i] và For j := N Downto Do Tl: sử dụng thêm biến a[i+1])? for i:=1 to j - 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 màn hình a[i+1] :=t a[i+1] :=t end; {dua mang da sap xep} Writeln (‘Mang da duoc Viết lại chương trình sap xep ’); vào For i :=1 To N Do write (a[i]:4); Readln End IV Củng cố bài học Nội dung đã học -Cách phân tích và viết chương trình cho bài toán Câu hỏi, bài tập nhà -Xem lại các bài tập mảng đã giải tiết 20 -Xem trước bài: Bài thực hành số Trang - 10 Lop11.com (11) 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 mảng B gồm N phần tử, đó B[i] tổng i phần tử đầu tiên 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 Kiến thức - Hiểu 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ử mảng hai chiều Kĩ - Thực khai báo mảng hai chiều, cách tham chiếu đến phần tử mảng hai chiều - Thực việc tính toán các phần tử mảng hai chiều Tư duy, thái độ - Xây dựng lòng yêu thích giải toán 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 chương trình II Đồ dùng dạy học Giáo viên: Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm hàng, cột Tính và in màn hình tổng các phần tử mảng Học sinh: SGK, 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 Hoạt động 1: Kiểm tra bài cũ Hoạt động GV Hoạt động HS Viết CT tạo và in màn hình mảng A gồm n phần tử 10 phần tử Mỗi phần tử là số nguyên Cho biết có bao nhiêu phần tử mảng có giá trị số nguyên k Hoạt động 2: Tìm hiểu ý nghĩ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 phần tử mảng chiều Hôm nay, chúng ta tìm hiểu các vấn đề đó mảng hai chiều Hoạt động GV Hoạt động 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 Kiểu mảng hai chiều: - Với kiến thức mảng - Sử dụng mảng a Xét bài toán: Bảng nhân chiều đã học, em hãy đưa cách chiều, mảng lưu (SGK) sử dụng kiểu mảng đó để lưu trữ hàng bảng bảng nhân? - Với cách lưu trữ vậy, ta - TL: Khai báo biến phải khai báo bao nhiêu biến mảng chiều mảng? Trang - 11 Lop11.com (12) Giáo án Tin học 11 - Khai báo có hạn chế nào? - Để khắc phục hạn chế này, ta có thể mô tả liệu bảng nhân là kiểu mảng chiều gồm phần tử, phần tử là mảng chiều có 10 phần tử Như vậy, ta có thể biểu diễn bảng nhân kiểu liệu mảng hai chiều - Yêu cầu HS nhận xét 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ị mảng - Chú ý lắng nghe - TL: Nếu coi hàng mảng hai chiều là phần tử thì ta có thể coi mảng hai chiều là mảng chiều mà phần tử nó là mảng - Nêu khái niệm mảng hai chiều 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 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) 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 GV Hoạt động HS Nội dung ghi bảng b Khai báo:  C1: Trực tiếp: - GV đưa 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 số hàng, kiểu 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> = khai báo array[kiểu số hàng, kiểu 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 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 phần tử 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 phần tử mảng cột] - TL: Tênbiến[chỉ số] i) A[i,j]  phần tử hàng i, cột j chiều Trang - 12 Lop11.com (13) 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 bảng nhân? - TL: B[9,9] = 81 Hoạt động 4: Tìm hiểu cách viết chương trình đơn giản Hoạt động GV Hoạt động 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 mảng A ii) B[9,9]  phần tử hàng 9, cột 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 := to m for j := to n begin - Chú ý lắng nghewrite('Nhap và A[',i, ',' ,j,']='); theo dõi readln (A[i , j]); end; {In mảng} for i:= to m begin for j := to n 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 readln lệnh tạo và in mảng là: end for i := to Ví dụ 2: Tạo và in mảng hai chiều gồm hàng, cột Tính for j := to và in màn hình tổng các - HS chú ý theo dõi phần tử mảng - Theo dõi chương trình T:= 0; trên bảng phụ for i := to for j := to T := T + A[i,j]; IV Củng cố bài học Trang - 13 Lop11.com (14) Giáo án Tin học 11 Nguyễn Quang Tuấn 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ử mảng hai chiều Câu hỏi, bài tập nhà : Xem các ví dụ còn lại SGK PPCT: 25 Ngày soạn:1/12/2010 Bài tập I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế - Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo số cách thức tạo kiểu ngôn ngữ lập trình Pascal quy định - Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số bài tập - Trong ngôn ngữ Pascal dùng mô tả kiểu liệu với từ khoá Type Về kĩ năng: - Rèn luyện kĩ khai báo kiểu 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/ và các phép toán trên các thành phần sở Về tư 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 người lập trình II Chuẩn bị: - GV: Computer - HS: Chuẩn bị bài tập 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ố trang 79 Sách GK Tin học lớp 11 Hoạt động GV Hoạt động HS Ghi bảng HĐTP1: H1: Sử dụng kiểu 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 chiều: Var A:array [1 100] of integer; H2: Khai báo biến - 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 HS TL: Chia hết cho H3: Số chẵn là số nào? - Nếu có số lượng số chẵn - Nếu có số lượng số dãy thì tìm số lượng số lẻ chẵn dãy thì tìm số hay không? - Nếu lượng lẻ cách: n Trang - 14 Lop11.com (15) Giáo án Tin học 11 Nguyễn Quang Tuấn Hoạt động GV Hoạt động HS Ghi bảng thì tìm 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âu a - Nhận xét, chỉnh sửa bài làm HS HĐTP 2: H1: Nêu thuật toán kiểm tra - 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 chương trình hoàn chỉnh cho bài + Hoạt động 2: Giải bài tập trang 79 Sách GK Tin học lớp 11 Hoạt động GV Hoạt động HS Ghi bảng - Yêu cầu HS liệt kê số hạng - Liệt kê: 0, 1, 1, 2, 3, đầu 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: nào? H2: Số hạng tổng quát thứ n TL: Fn = Fn-1 + Fn-2 nào? - Gợi ý: Để viết chương trình TL: Dùng 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ờ: 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 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 và For Về nhà làm các bài tập ************************* Trang - 15 Lop11.com (16) 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Ố I.Mục tiêu: 1.Kiến thức: - Củng cố lại kiến thức kiểu liệu mảng, cụ thể là mảng chiều.Qua đó cung cấp cho học sinh các thuật toán thường gặp với kiểu liệu mảng 2.Kĩ năng: - Rèn luyện cho học sinh số kĩ làm việc với mảng như: +Khai báo kiểu liệu mảng chiều, + Nhập/ xuất liệu, +Duyệt qua các phần tử mảng, -Qua đó giúp học sinh biết cách giải số bài toá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é mảng và vị trí nó Thái độ: -Rèn luyện tác phong, tư lập trình, tự giác , tích cực, chủ động và sáng tạo tìm kiếm kiến thức II.Chuẩn bị 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 USB đĩa mềm, +Máy chiếu 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 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ó cách khai báo mảng 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 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 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 (17) Giáo án Tin học 11 Nguyễn Quang Tuấn Hoạt động 2: Bài tập số 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ì? CRT để sử dụng thủ tục Clrscr; - Myarray : tên kiểu liệu +Myarray là tên kiểu - nmax: số phần tử tối đa có thể liệu hay tên biến? chứa biến mảng a, +Vai trò nmax và n có n: số phần tử thực tế a gì khác nhau? -Random(n): cho số ngẫu nhiên từ +Những dòng lệnh nào đế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 màn hình giá trị tất các + Lệnh for i:=1 to n phần tử mảng Write ( a[i] : 5); Có ý nghĩa gì? +cộng tất các phần tử +Lệnh For-do cuối cùng chia hết cho k thực nhiệm vụ gì? +Số lần thực lệnh gán đúng số phần +Lệnh gán s := s + a[i] ; tử mảng chia hết thực bao nhiêu lần? cho k -Theo dõi kết chạy Trang - 17 Lop11.com (18) Giáo án Tin học 11 thử chương trình Nguyễn Quang Tuấn -Thực lại chương trình lần cuối để học sinh thấy kết 2/HĐTP2: Sửa chương trính câu a/ để chương trình giải 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 GV -Treo bảng phụ câu b/ bài +posi : đếm số dương mảng tập sgk/64 +neg: đếm các số âm mảng Hỏi HS: + Ý nghĩa biến posi và neg? +Nếu a[i] > thì cộng a[i] vào posi; ngược lại a[i] < thì cộng a[i] + Chức lệnh : If a[i] > then vào neg posi := posi +1 else if a[i] < then neg := neg +1; +Quan sát các lệnh và là gì? suy nghĩ vị trí cần sửa 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 số lượng các số âm và các số +Theo dõi kết chạy dương chương trình +Chạy thử chưong trình để học sinh theo dõi kết 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 Ví dụ: Cho mảng gồm ví dụ cụ thể phần tử: Tìm phần tử có giá trị lớn và vị trí nó 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 (19) Giáo án Tin học 11 Nguyễn Quang Tuấn lớn và vị trí nó -Theo dõi, suy nghĩ để (kết hợp làm thủ công) j:=1; For i:=2 to n nắm thuật toán If a[i] > a[j] then j:=i; (Sau kết thúc: + Giá trị lớn là a[j] -Cho học sinh đọc đoạn + vị trí cần tìm j.) chương trình 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 nhỏ 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 với số lớn +Sửa a[i] > a[j]; thành 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 chương trình và xem 2/HĐTP2: -Theo dõi GV chạy kết 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 số kiến thức về: + Tính tổng các phần tử 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é BTVN- Viết chương trình nhập mảng chiều, đếm số phần tử nhỏ số k nào đó Trang - 19 Lop11.com (20) 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Ố (Tiết 1) PPCT: 28 I Mục đích, yêu cầu Kiến thức - Củng cố kiến thức liệu kiểu mảng - Xây dựng cấu trúc liệu, hiểu thuật toán xếp tráo đổi Kĩ - Biết chỉnh sữa lỗi chương trình - Tự nhập các liệu để hiểu ý nghĩa số câu lệnh Thái độ - Nghiêm túc thực đúng nội quy phòng máy, tự giác 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 đã viết sẵn III Phương pháp IV Tiến hành dạy học 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 GV Hoạt động Hs Hỏi 1: Nêu cách khai báo kiểu mảng Tl: có cách chiều + gián tiếp: + trực tiếp: TL: For i:= to Hỏi 2: Nhập từ bàn phím xây dựng mảng Begin chiều A có phần tử Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]); End; Hoạt động 2: Xác định bài toán và tìm hiểu chương trình Hoạt động GV Hoạt động HS Ghi bảng Chiếu đề bài lên bảng Quan sát đề và lằng Đề: Sắp xếp dãy số nguyên nghe câu hỏi gv thuật toán tráo đổi với các giá trị khác n số Xác định bài toán Trả lời câu hỏi Y/cầu hs xác định liệu - Vào: mảng A vào/ra bài toán? - Ra: mảng A đã xếp Gv minh hoạ bài toán: Theo dãy số minh A họa, nhớ lại thuật toán xếp đã học Mảng A đã xếp: A 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 đã - Quan sát, đối chiếu thuật toán liệt kê với CT liệt kê các bước (SGK) Tìm hiểu chương trình Trang - 20 Lop11.com (21)

Ngày đăng: 01/04/2021, 21:58

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan