Bài giảng Môn Tin học lớp 11 - Tiết 1 - Bài 1 : Khái niệm lập trình và ngôn ngữ lập trình
Đề: Khai báo biến đếm nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần tráo đổi trong chương trình.
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: 1.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ụ. TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 5’ -Lắng nghe câu hỏi -Học sinh trả lời câu hỏi. Cả lớp theo dõi, nhận xét -Nêu câu hỏi. -Gọi học sinh lên trả lời. -Giáo viên nhận xét, cho điểm Có hai cách khai báo: a/Khai báo trực tiếp: Var : array [ kiểu chỉ số ] of ; b/ Khai báo gián tiếp Type : array [ kiểu chỉ số ] of ; Var : ; 2.Hoạt động 2: Bài tập số 1 sgk/63 TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 25’ 10’ 1/HĐTP1: Quan sát bảng phụ, - Lắng nghe câu hỏi và trả lời. -Theo dõi để nắm hàm Random. +Câu lệnh cho số ngẫu nhiên có giá trị từ -299 đến 299. +câu lệnh in ra màn hình giá trị tất cả các phần tử của mảng. +cộng tất cả các phần tử chia hết cho k. +Số lần thực hiện lệnh gán đúng bằng số phần tử của mảng chia hết cho k. -Theo dõi kết quả chạy thử chương trình. 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. +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] vào neg. +Quan sát các lệnh và suy nghĩ vị trí cần sửa trong chương trình câu a/. +Theo dõi kết quả chạy chương trình. Treo bảng phụ có nội dung bài số 1a/ sgk/63 ( có 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ó ý nghĩa gì? +Myarray là tên kiểu dữ liệu hay tên biến? +Vai trò của nmax và n có gì khác nhau? +Những dòng lệnh nào dùng để tạo biến mảng a -Giáo viên giới thiệu hàm Random cho học sinh.Sau đố đặt câu hỏi: + a[i] := Random(300) – Random (300) có ý nghĩa gì? + Lệnh for i:=1 to n do Write ( a[i] : 5); Có ý nghĩa gì? +Lệnh For-do cuối cùng thực hiện nhiệm vụ gì? +Lệnh gán s := s + a[i] ; được thực hiện bao nhiêu lần? -Thực hiện lại chương trình lần cuối để học sinh thấy được kết quả. -Treo bảng phụ câu b/ bài tập 1 sgk/64 Hỏi HS: + Ý nghĩa của biến posi và neg? + Chức năng của lệnh : If a[i] > 0 then posi := posi +1 else if a[i] < 0 then neg := neg +1; là gì? +Hướng dẫn học sinh 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ố dương. +Chạy thử chưong trình để học sinh theo dõi kết quả. -Khai báo thư viện chương trình con CRT để sử dụng được thủ tục Clrscr; - Myarray : tên kiểu dữ liệu - nmax: số phần tử tối đa có thể chứa của biến mảng a, n: số phần tử thực tế của a. -Random(n): cho số ngẫu nhiên từ 0 đến n-1 +posi : đếm số dương trong mảng. +neg: đếm các số âm trong mảng. 3.Hoạt động 3: Bài tập số 2/sgk/64 TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 15’ 30’ 1/HĐTP1: Đưa ra một ví dụ cụ thể . -Theo dõi, suy nghĩ để nắm thuật toán. -Đọc đoạn chương trình sgk. Liên hệ trả lời các câu hỏi mà GV nêu ra. +Sửa a[i] > a[j] ; thành a[i] < a[j] ; +Sửa a[i] > a[j]; thành a[i] >= a[j]; 2/HĐTP2: -Theo dõi GV chạy chương trình và làm lại trên máy tính. Ví dụ: Cho mảng gồm 5 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ử lớn nhất và vị trí của nó (kết hợp làm thủ công). -Cho học sinh đọc đoạn chương trình trong bài 2/64sgk . Hỏi HS: + Nếu muốn tìm phần tử nhỏ nhất thì cần sửa ở chỗ nào? +Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất của nó thì ta sửa ổ chỗ 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 kết quả. j:=1; For i:=2 to n do If a[i] > a[j] then j:=i; (Sau khi kết thúc: + Giá trị lớn nhất là a[j] + vị trí cần tìm j.) 4.Hoạt động 4: Củng cố (3’) -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. 5.Bài tập về nhà (2’) - 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 đó. Ngày soạn: 30/11/07 Tiết thứ:…..Bài: BÀI THỰC HÀNH SỐ 4 I. Mục tiê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. Hđ của GV Hđ của Hs Hỏi 1: Nêu cách khai báo kiểu mảng 1 chiều. Hỏi 2: Nhập từ bàn phím xây dựng mảng một chiều A có 6 phần tử. Tl: có 2 cách + gián tiếp: + trực tiếp: TL: For i:= 1 to 6 do Begin 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. TG Hđ của GV Hđ của HS Ghi bảng 1. Chiếu đề bài lên bảng. 2. Xác định bài toán Y/cầu hs xác định dữ liệu vào/ra của bài toán? 3. Gv minh hoạ bài toán: A 5 7 2 8 6 4 1 2 3 4 5 6 Mảng A đã sắp xếp: A 2 4 5 6 7 8 1 2 3 4 5 6 - Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)? - Chiếu thuật toán đã được liệt kê các bước. 4. Tìm hiểu chương trình - Vai trò của biến i, j trong CT? - Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần tử liền kề của mảng? - Treo bảng CT chuẩn bị sẵn. Giải thích một số lệnh của CT. 1. Quan sát đề và lằng nghe câu hỏi của gv. 2. Trả lời câu hỏi. - Vào: mảng A - Ra: mảng A đã sắp xếp 3. Theo dãy số minh họa, nhớ lại thuật toán sắp xếp đã học. - Nhắc lại thuật toán. - Quan sát, đối chiếu thuật toán liệt kê với CT (SGK). 4. Xem CT và tìm hiểu một số biến, lệnh. - TL: Dùng làm biến chỉ số. - TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg; - Chú ý, lắng nghe, quan sát và ghi nhớ. Đề: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n số. CT( SGK/65) 3. Hoạt động 3: Chạy CT câu a. TG Hđ của GV Hđ của HS Ghi bảng - Yêu cầu hs tự nhập dữ liệu với CT có sẵn. - Giúp hs phát hiện và sữa lỗi. - Thuật toán trên tiến hành đưa số lớn thứ j về đến vị trí j sau mỗi vòng lặp: For i:= 1 to j-1 do - Chạy CT, nhập dữ liệu, xm kết quả. - Chỉnh sữa CT thông qua các thông báo lỗi. - Chú ý hiểu rõ thêm về CT. 4. Hoạt động 4: Xác định bài toán câu b. TG Hđ của GV Hđ của HS Ghi bảng 1. Xác định bài toán. - Y/cầu hs xác I/O bài toán? - Biến Dem được tăng lên khi nào? - Cần đưa câu lệnh tăng Dem vào chỗ nào trong CT trên? - Câu lệnh khởi tạo Dem:= 0 được đặt vào vị trí nào trong CT? + Trước CL đầu tiên: For j:= N down to 2 do + Trước CL duyệt: For i:= 1 to j-1 do + Trước 3 CL tráo đổi + Sau 3 CL tráo đổi - Sau CL cuối CT nên đưa CL nào vào để hiển thị giá trị biến Dem ra màn hình. 1. Xác định bài toán: + I: mảng a; +O: mảng a đã sắp xếp, số lần tráo đổi (Dem); TL: Khi A[i] > A[i+1] (tức là biểu thức đk trong CL If đúng) TL: Trong thân CL If: trước hoặc sau 3 lệnh tráo đổi. TL: Chọn một trong hai phương án 3, 4. Đề: Khai báo biến đếm nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần tráo đổi trong chương trình. 4. Hoạt động 5: Sữa CT câu a để giải bài toán câu b. TG Hđ của GV Hđ của HS Ghi bảng - Yêu cầu hs sữa lại CT theo gợi ý đã nêu. - Hướng dẫn hs chỉnh sữa và chạy CT. - Đánh giá kết quả của hs. - Thêm các CL như đã hướng dẫn vào CT. - Chạy CT. CT(Phụ lục) Hoạt động 6: Củng cố Thuật toán sắp xếp bằng tráo đổi. Đếm số lần tráo đổi. Hoạt động 7: Bài tập về nhà Tìm thêm các thuật toán sắp xếp khác tối ưu hơn. Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo mảng B. Ngày soạn: 02/12/07 Tiết thứ:…..Bài: BÀI THỰC HÀNH SỐ 4 I. Mục tiêu 1. Kiến thức Tiếp tục củng cố kiến thức khi lập trình với dữ liệu kiểu mảng. 2. Kĩ năng Nhận xét, phân tích và đề xuất các cách giải bài toán sao cho chương trình chạy nhanh hơn. 3. Thái độ Tự giác, chủ động 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:(3') Ôn lại kiến thức chuẩn bị thực hành Hđ của GV Hđ của Hs Hỏi 1: cách khai báo kiểu mảng 1 chiều. Hỏi 2: (tuỳ từng lớp) Tl: có 2 cách + gián tiếp: + trực tiếp: 2. Hoạt động 2:(13') Nêu đề bài toán và tìm hiểu TG Hđ của GV Hđ của HS Ghi bảng 2' 3' 5' 3' 1. Ghi đề bài lên bảng. 2. Tìm hiểu đề Y/cầu hs xác định dữ liệu vào/ra của bài toán? 3. Gv lấy ví dụ minh hoạ A 4 5 1 2 3 7 1 2 3 4 5 6 B 1 2 3 4 5 6 Ban đầu: mọi B[i] = 0 Hỏi: mỗi B[i] được tạo mới bằng bao nhiêu? Tóm lại: B[i] = A[1] + …+ A[i] = GV minh hoạ một số phần tử: B[1], B[2], B[3] - Y/cầu hs tìm kết quả mảng B theo ví dụ trên. 4. Viết CT thô - Y/cầu hs cho biết từng phần của CT cần xây dựng? Gv tranh thủ ghi lại trên bảng. H: Bước B2 được cụ thể trong CT như thế nào? 5. Treo bảng CT chuẩn bị sẵn. Giải thích từng phần của CT tương ứng với phần trả lời được ghi bảng của hs. 1. Quan sát đề và lắng nghe câu hỏi của gv. 2. Trả lời câu hỏi. - Vào: - Ra: 3. Theo dõi ví dụ minh hoạ Tl: (2-3hs) Tl: B 4 9 10 12 15 22 1 2 3 4 5 6 4. Lần lượt cho từng hs trình bày Tl: Tl: sử dụng 2 vòng for lồng nhau. for i:=1 to n do begin b[i]: =0; for j:=1 to i do b[i]:=b[i]+a[j]; end; 5. Chú ý, lắng nghe, quan sát và ghi nhớ. Đề: Cho mảng A gồm n phần tử. Viết CT tạo ra mảng B[1..n] Khai báo: + k/báo mảng + biến đơn Phần thân: B1: tạo mảng A. B2: xd mảng B theo A. B3: In mảng B. 3. Hoạt động 3: (5')Tối ưu chương trình TG Hđ của GV Hđ của HS Ghi bảng 5' 1. Dựa vào phần phân tích ví dụ thuật toán ở trên. Gv hỏi: So sánh giá trị B[i] và B[i-1]? Đặc biệt: B[1]=? 2. Chta luôn hướng tới thuật toán tối ưu. Đối với bài toán này theo phân tích ở trên ta đã tận dụng được kết quả của việc tính tổng i -1 phần tử có sẵn ở bước trước. - Do vậy ta có được: + Số lượng phép toán '+' ít hơn +Chỉ dùng 1 vòng lặp for -> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B. 3. Cải tiến lại chtrình. Gv treo bảng chtrình được cải tiến. Tl: B[i]:=B[i-1]+A[i] Tl: B[1]=A[1] 2. Chú ý theo dõi {tùy đối tượng hs} 3. Nhìn bảng, tự điều chỉnh hành vi nhận thức. Đoạn CT cải tiến: Sgk 4. Hoạt động 4: (20') Hs thực hành trên máy theo nhóm TG Hđ của GV Hđ của HS Ghi bảng 1. Y/cầu hs nhập CT cải tiếnvào máy. 2. Theo dõi quá trình t/hiện của hs. Giải quyết 1 số lỗi nhỏ tại từng nhóm. 1. Hs nhập chtrình vào máy 2. Tự biên dịch và chạy CT với ví dụ trên. 3. Tự lấy Input để chạy lại CT 5. Hoạt động 5: (3') Củng cố, uốn nắn những sai sót thường gặp của Hs. 6. Hoạt động 6: (1') Dặn dò: Xem, chuẩn bị trước bài 12: Kiểu xâu. Ngày soạn: 06/12/07 Tiết thứ:…..Bài 12: KIỂU XÂU I.Mục tiêu 1. Về kiến thức - Biết được một kiểu dự liệu mới, biết được khái niệm kiểu xâu. - Phân biệt được sự giống và khác giữa kiểu mảng với kiểu xâu. - Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu. - Biết các phép toán liên quan đến xâu. 2. Về kĩ năng - Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal. - Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản. II. Chuẩn bị của GV và HS 1. GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ. 2. HSSGK. III. Phương pháp Thuyết trình, vấn đáp IV. Tiến trình bài học HĐ1: Kiểm tra bài cũ và khởi động bài mới T/g HĐ của GV HĐ của HS Ghi bảng 10' Ghi câu hỏi lên bảng Phát vấn HS tại chỗ Y/c HS khác nhận xét Chính xác hóa nội dung 'Viet Nam' là dữ liệu kiểu mảng. Tuy nhiên nó là một kiểu dữ liệu mà tiết này ta sẽ học: KIỂU XÂU Suy nghĩ, trả lời Nhận xét Ghi nhớ kiến thức Câu hỏi: Định nghĩa mảng một chiều và cách khai báo. 'Viet Nam' có phải là dữ liệu kiểu mảng một chiều không, Vì sao? HĐ2: Tìm hiểu về dữ liệu kiểu xâu T/g HĐ của GV HĐ của HS Ghi bảng 14' Xâu là gì? Y/c HS khác nhận xét Chính xác hóa nội dung Y/c HS cho VD Xâu có bao nhiêu kí tự? Dấu cách là 1 ký tự. Y/c HS viết xâu có ký tự trống, xâu rỗng, nêu số lượng ký tự của mỗi xâu. Giới thiệu cách tham chiếu phần tử Trả lời Nhận xét Hình thành khái niệm Xâu Cho VD Trả lời. Bài 12: KIỂU XÂU Khái niệm (SGK) Ttự kiểu mảng HĐ3: Khai báo dữ liệu kiểu xâu và các thao tác xử lí xâu T/g HĐ của GV HĐ của HS Ghi bảng 15' - Hỏi: Ý nghĩa của từ String? Độ dài lớn nhất của xâu là bao nhiêu - Hãy nhắc lại các phép toán đã học trên kiểu dữ liệu chuẩn - Chiếu chương trình VD - Hỏi: Kết quả của chương trình in ra màn hình? Thực hiện chương trình cho HS thấy kết quả - Y/c HS tìm một số VD khác - Hỏi: Chức năng của phép cộng - Chiếu chương trình VD về phép so sánh và y/c HS cho biết kết quả Lưu ý cho HS Trả lời Trả lời Quan sát chương trình để dự tính kết qủa 1. Khai báo (SGK) 2. Các thao tác xử lí xâu Var st:string; Begin St:='A' + 'B'; Write(st); Readln; End. VD: 'AB'<'ABC' 'AC'<'ABC' Lưu ý: Một xâu có độ dài nhỏ hơn có thể lớn hơn (>) và ngược lại c) Th HĐ4: Củng cố(5'): Nhắc lại những nội dung đã học: - Khai báo biến - Nhập xuất gá trị cho biến xâu - Tham chiếu từng kí tự trong xâu. - Phép ghép xâu. - Các phép so sánh. HĐ5: Dặn dò (1') - Về nhà xem phần kiến thức lý thuết còn lại trong bài, bao gồm các thủ tục và hàm liên quan đến xâu, sách giáo khoa trang 70 - 72. Ngày soạn: 28/11/07 Tiết thứ:…..Bài 12: KIỂU XÂU(TT) I: Mục tiêu: Kiến thức: Hiểu được lợi ích của các hàm và thủ tục liên quan đến xâu tring ngôn ngữ lập trình Pascal. Nắm được cấu trúc ching và chức năng của một số hàm liên quan đến xâu. Kỹ năng: Bước đầu sử dụng được một số hàm, thủ tục thông dụng về xâu. Có thể cài đặt được một số chương trình đơn giản có sử dụng xâu II. Chuẩn bị của GV và HS: GV: Giáo án, SGK, sách GV, bảng phụ soạn các ví dụ. HS: Sách GK. III. Phương pháp: Đặt vấn đề. Thuyết trình, vấn đáp. Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng trong ví dụ IV. Tiến trình bài học. Hoạt động 1: Tổ chúc lớp: Ổn định và kiểm tra sĩ số. Các bước tiến hành: Hoạt động của thầy Hoạt động của trò Nội dung iểm tra kiến thức cũ. - Gọi HS : Câu 1: Xâu là gì? Cách khai báo biến xâu. -GV nhận xét cho điểm. * Giới thiệu bài mới ĐVĐ: Chúng ta đã biết xâu là gì? Và một số các phép toán trên xâu. Bây giờ chung ta sẽ học về một số thủ tục chuẩn dùng để xử lí xâu. -Ứng với mỗi thủ tục và hàm giáo viên đưa ra một ví dụ minh hoạ theo sgk. - Xâu gồm một kí tự trống được viết như thế nào? số lượng kí tự là bao nhiêu? - Tham số của các hàm và thủ tục chuẩn phải hợp lí, chẳng hạng không thể dùng Insert( S1, S2, 12) khi length(S2)<12. Hoạt động 2: Rèn luyện kĩ năng vận dụng hàm và thủ tục. ĐVĐ: Bấy giờ chúng ta sẽ đi sâu hơn về các chức năng của các hàm và thủ tục trong xâu. - Ý nghiã của hàm Length(b)? Em nào có thể giải thích câu lệnh For i:=k downto 1 do write([i]); Qua các ví dụ trên ta thấy điêù gì? Em có nhận xét gì về xâu b được tạo thành. Tương tự các em xem ví dụ 5 - HS trả lời câu hỏi. Chú ý quan sát trên bảng. HS trả lời. - Kí hiệu cảu xâu gồm 1 kí tự trống là ‘ ‘ xâu này có độ dài là 1. Quan sát trên bảng TL: Cho ra số lượng kí tự có trong sâu b. Quan sát trên bảng TL: Sử dụng vòng lặp For giá trị cuối downto giá trị đầu để sau đó in ra các kí tự của chuỗi theo chiều ngược lại. TL: cho thấy hàm length() có thể tham chiếu đến từng kí tự cử một xâu thông qua vị trí của nó. TL: Xâu b được tạo thành từ một xâu rỗng qua phép ghép xâu. Quan sát trên bảng 2. Các thao tác sử lí xâu: Một số thủ tục chuẩn dùng để sử lí xâu. Delete(St,vt,n) Xoá n kí tự của xâu st bắt đầu từ vị trí vt. Insert(S1,S2,vt) Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt của S2. Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị vào biến X, nến không đổi được thì vị trí gây lỗi ghi trong m, nếu đổi thành công thì m = 0 Str(X,St) Chuyển số X thành xâu kí tự lưu trong St. Một số hàm chuẩn: - Copy(St, vt, n) Sao chép từ xâu St n kí tự từ vị trí vt. - Pos(S1, S2) Tìm vị trí xuất hiện đầu tiên của S1 trong S2. - Length(st) Cho độ dài của xâu St. - Upcase(ch) Cho chữ cái viết hoa tưng ứng với chữ thường trong ch Bảng phụ chứa ví dụ 1 Ues crt; Var a, b: string; Begin Clrscr; Write(‘ nhap ho ten thu nhat: ‘); Realn (a); Write(‘ nhap ho ten thu hai: ‘); Realn (b); If length(a)>length(b) then Write(a) else writer(b); Realn End. Bảng phụ chứa ví dụ 2 Bảng phụ chứa ví dụ 3 Bảng phụ chứa ví dụ 4 Bảng phụ chứa ví dụ 5 Hoạt động 3: Củng cố: Nhắc lại một số hàm và thủ tục liên quan đến xâu. Nhắc lại cấu trúc câu lệnh. Bài tập về nhà: Giải bài tạp số 10 trang 80. Ngày soạn: 28/11/07 Tiết thứ:…..Bài: Tên bài học: BÀI THỰC HÀNH SỐ 5(2 tiết) Mục tiêu: Kiến thức: Củng cố cho học sinh những kiến thức về xâu ký tự, đặc biệt là các hàm và thủ tục liên quan. Nắm được một số thuật toán cơ bản : tạo xâu mới, đếm số lần xuất hiện 1 ký tự… Kỹ năng: Khai báo được biến kiểu xâu Nhập, xuất giá trị cho biến xâu. Duyệt qua được tất cả các ký tự của xâu. Sử dụng được các hàm và thủ tục chuẩn. Thái độ: Tự giác, tích cực, chủ động trong thực hành. Chuẩn bị của giáo viên và học sinh: GV: - Phòng máy vi tính đã được cài đầy đủ Turbo Pascal. - Tổ chức trong phòng máy để HS có được kỹ năng cơ bản khi làm việc với kiểu xâu. HS: SGK, bài tập chuẩn bị sẵn ở nhà Phương pháp dạy học: Gợi mở, vấn đáp kết hợp hoạt động nhóm. Tiến trình bài dạy: Hoạt động 1: Tìm hiểu một chương trình, đề xuất phương án cải tiến TG Hoạt động của HS Hoạt động của GV Ghi bảng 5’ Quan sát, đọc kỹ đề. -HS trả lời: * Là xâu Palidrom: 45654; abccba * Không là xâu Palidrom: abcdba - HS nhận xét HĐTP1: Tìm hiểu đề bài: - Giới thiệu nội dung đề bài lên bảng. - GV diễn giải: Một xâu được gọi là Palidrom nếu ta đọc các ký tự từ phải sang trái sẽ giống khi đọc từ trái sang phải. - Yêu cầu HS cho 1 ví dụ về xâu Palidrom và 1 ví dụ không phải là xâu Palidrom * Gọi 2 HS trả lời. * Gọi HS khác nhận xét. * GV chính xác BÀI THỰC HÀNH SỐ 5 Bài 1: SGK trang 73 TG Hoạt động của HS Hoạt động của GV Ghi bảng 15’ - Quan sát chương trình, suy nghĩ, phân tích để hiểu chương trình. - HS trả lời: * Kiểm tra 1 xâu có phải Palidrom hay không? *In ra: ‘ xau la Palidrom’ ‘xau khong la Palidrom’ - HS nhận xét. - Quan sát GV thực hiện chương trình, nhập dữ liệu và kết quả của chương trình HĐTP2: Tìm hiểu chương trình gợi ý - GV thực hiện chương trình gợi ý trên máy chủ để HS quan sát. * Chức năng của chương trình là gì? *Kết quả in ra màn hình như thế nào? - Gọi 2 HS trả lời. - Gọi HS khác nhận xét. - GV chính xác. - Chạy chương trình trên máy chủ để HS kiểm nghiệm suy luận của mình. 25’ - Chú ý theo dõi yêu cầu của GV và trả lời 1 số câu hỏi dẫn dắt: * Các ký tự ở vị trí này giống nhau *Ký tự thứ i đối xứng với ký tự thứ length( ) – i +1 * So sánh tối đa length( ) div 2 * Có thể dùng For hoặc While -Thực hiện soạn thảo chương trình vào máy theo yêu cầu cải tiến của GV - Nhập dữ liệu vào và thông báo kết quả HĐTP3: Cải tiến chương trình - GV nêu yêu cầu mới : Viết lại chương trình mà không sử dụng biến trung gian p. * Nhận xét về các cặp ở vị trí đối xứng nhau trong một xâu Palidrom? * Ký tự thứ i đối xứng với ký tự vị trí nào? * Cần
File đính kèm:
- Giao an tin hoc 11.doc