Giáo án Tin Học 11 đầy đủ
TIẾT 30: KIỂU XÂU
I. MỤC ĐÍCH, YÊU CẦU
- Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều);
- Biết cách khai báo xâu, truy cập phần tử của xâu;
- Biết một số hàm và thủ tục thông dụng về xâu.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
- Giải quyết vấn đề
- Thuyết trình
2.Phương tiện:
- Bảng + SGK
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung:
Ngày soạn: 4/02/2015 Dạy các lớp: 11A11 TIẾT 27: BÀI TẬP I. MỤC ĐÍCH, YÊU CẦU Cũng cố kiến thức về kiểu mảng; Rèn luyện kỹ năng sử dụng kiểu mảng để giải quyết một số bài toán đơn giản. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Vấn đáp Giải quyết vấn đề 2.Phương tiện: Bảng + SGK III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: Hoạt động của GV và HS Nội dung GV: Yêu cầu HS nghiên cứu câu 6b SGK Trang 79 , xác định bài toán và thực hiện viết chương trình. HS: Thực hiện theo yêu cầu GV: Hướng dẫn , số nguyên tố là số như thế nào? HS: là số chỉ có hai ước số là 1 và chính nó GV: Yêu cầu HS xác định bài toán HS: Xác định bài toán GV: Hướng dẫn HS: Theo dõi, viết chương trình. Bài 1: câu 6b (SGK T79) Program bai1; Var A: array[1..100] of integer; NT, I, u : integer; Begin Write(‘Nhap vao N’); readln(N); For i:=1 to N do begin Write(‘phan tu thu’,i); readln(A[i]); End; NT:=0; For i:=1 to N -1 do If (A[i] > 1) then Begin U:=2; While ((u0 ) do u:=u+1; If u>sqrtA[i] then NT:=NT+1; Else writeln(‘so luong so nguyen to la:’,NT); Readln End. Bài 2: câu 7 (SGK T79) IV. CŨNG CỐ: - Nhắc một số lỗi học sinh thường gặp và yêu cầu học sinh rút kinh nghiệm trong các bài tập sau. - Yêu cầu học sinh về nhà làm các bài tập trong sách bài tập Ngày soạn: 9/02/2015 Dạy các lớp: 11A11 TIẾT 28: BÀI TẬP THỰC HÀNH 4 (T1) I. MỤC ĐÍCH, YÊU CẦU Cũng cố kiến thức về kiểu mảng 2 chiều; Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.; II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề Thực hành 2.Phương tiện: Bảng + SGK + Phòng thực hành III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: * Hoạt động 1: Tìm hiểu và chạy thử chương trình 1a (SGK T65) Hoạt động của GV và HS Nội dung GV: yêu cầu tìm hiểu và chạy thử chương trình. HS: Theo dõi, tìm hiểu, mở chương trình trong máy và chạy thử GV: Gợi ý để HS nhớ lai thuật toán sắp xếp tăng dần đã học ở lớp 10. HS: Theo dõi GV: Hỏi: Biến i, j trong chương trình có vai trò gì? Mỗi vòng lặp for ứng với mỗi lần duyệt HS: dùng làm chỉ số GV: Hỏi: đoạn lệnh nào thực hiện việc tráo đổi? tráo đổi bằng cách nào? HS: Trả lời: tráo đổi bằng cách dùng biến trung gian . Bµi to¸n 1: ViÕt ch¬ng tr×nh s¾p xÕp c¸c phÇn tö cña m¶ng theo thø tù kh«ng gi¶m. Uses CRT; Const nmax=250; type arrint=array[1..nmax] of integer; Var n, i, j, y:integer; a:arrint; Begin clrscr; Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n do a[i]:=random(300) – random (300); For i:=1 to n do write(a[i]:5); Writeln; For i:=n dowto 2 do For i:=1 to i – 1 do If a[i] >a[i+1] then Begin t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; End; Writeln(‘day so sau khi sap xep’); For i:=1 to n do write(a[i]:7); Writeln; readln;End. * Hoạt động 2: Thực hiện câu 1b (SGK T66) Hoạt động của GV và HS Nội dung GV: Yêu cầu HS thực hiện câu 1b (SGK T66) HS: Nghiên cứu yêu cầu và viết chương trình. GV: Khai báo biến dem như thế nào? HS: đặt ở phần khai báo biến: var dem: integer; GV: Vì dem để đếm số lần tráo đổi nên khi chưa thực hiện tráo đổi ta gán giá trị cho biến đếm bằng 0, theo em nên để câu lệnh này ở đâu? HS: đặt sau câu lệnh writeln; và trước câu lệnh duyệt để tráo đổi (dem:=0;). GV: Khai nào thực hiện tráo đổi thì ta tăng dem lên một đẻ đếm, vậy câu lệnh tăng dem này đặt ở đâu? HS: Đặt ngay sau lệnh tráo đổi A[i+1]:=t; dem:=dem+1; 1b) Khai báo thêm biế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ố ần thực hiển tráo đổi trong thuật toán. Đưa kết quả ra màn hình. - dem:=0; - dem:=dem+1; IV. CŨNG CỐ: Thuật toán sắp xếp đơn giản và chương trình thực hiện : Ngày soạn: 23/02/2015 Dạy các lớp: 11A11 TIẾT 29: BÀI TẬP THỰC HÀNH 4 (T2) I. MỤC ĐÍCH, YÊU CẦU Cũng cố kiến thức về kiểu mảng 2 chiều; Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn; II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề Thực hành 2.Phương tiện: Bảng + SGK + Phòng thực hành III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: Tìm hiểu câu 2 (SGK T66) và đề xuất cách giải bài toán nhanh hơn Hoạt động của GV và HS Nội dung GV: Yêu cầu HS xác định bào toán HS: Xác định bài toán GV: yêu cầu HS nghiên cứu chương trình sau đó cho biết trình tự thực hiện của chương trình? HS: Nghiên cứu, trả lời GV: Trong chương trình phải thực hiện bao nhiêu phép cộng? HS: n(n+1)/2 phép cộng GV: Hỏi: Có cách nào để số phép cộng nhỏ hơn hay không? HS: Có: ta sử dụng kết quả đã tính ở bước i-1 để tính bước i GV: Vậy phải sửa đổi chương tình như thế nào? HS: Thay đoạn lệnh tạo B là: For j:=1 to i do B[i]:=B[i]+A[j]; ch ỉ thực hiện n-1 phép cộng HS: Chạy chương trình GV: Yêu cầu HS chạy chương trình và quan sát kết quả Cho màng A gồm n phần tử. Hãy viết chương trình tạo mảng B[1..n], trong B[i] là tổng của i phần tử đầu tiên của A. Const nmax=100; Type myarray=array[1..nmax] of integer; Var n, i, j:integer; a,b:arrint; Begin Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n do a[i]:=random(300) – random(300); For i:=1 to n do write(a[i]:5); Writeln; For i:=1 to n do Begin B[i]:=0; For j:=1 to i do B[i]:=B[i]+A[j]; End; For i:=1 to n do write(B[i]:5); Readln; End. IV. CŨNG CỐ: Cùng một bài toán nhưng có thể có những chương trình cài đặt khác nhau, người lập trình luôn phải có ý thức chọn cách cài đặt sao cho số phép toán máy tính thực hiện càng ít càng tốt.: Ngày soạn: 24/02/2015 Dạy các lớp: 11A11 TIẾT 30: KIỂU XÂU I. MỤC ĐÍCH, YÊU CẦU Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều); Biết cách khai báo xâu, truy cập phần tử của xâu; Biết một số hàm và thủ tục thông dụng về xâu. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề Thuyết trình 2.Phương tiện: Bảng + SGK III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: * Hoạt động 1: Tìm hiểu về xâu và cách sử dụng Hoạt động của GV và HS Nội dung GV: Dữ liệu trong các bài toán ngoài kiểu số ra còn có kiểu phi số - dạng kí tự. Ví dụ bài toán nhập vào danh sách học sinh của lớp 11A, thì họ tên của các em là dạng các kí tự. Để biểu diễn dãy các kí tự người ta dùng kiểu xâu. HS:Theo dõi, lắng nghe GV:Giới thiệu về xâu HS: Nghe, ghi nhớ kiến thức GV: Như vậy, có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự. - Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu. Số lượng các kí tự trong xâu được gọi là độ dài của xâu. Xâu có độ dài bằng 0 gọi là xâu rỗng (Kí hiệu ‘’). - Ví dụ: ‘Nguyen Le Huyen’ ‘ ‘àđây là xâu chỉ chứa một kí tự trống. - Cách tham chiếu : Ví dụ : Biến Hoten lưu hằng xâu ‘ Nguyen Le Huyen’ thì Hoten[6] cho ta kí tự ‘n’. Hoạt động 2 : Tìm hiểu cách khai báo kiểu dữ liệu xâu Hoạt động của GV và HS Nội dung GV :Giới thiệu khai báo biến xâu HS :Theo dõi, ghi nhớ kiến thức GV : Yêu cầu HS lấy ví dụ HS : Lấy ví dụ 1. Khai báo - Cú pháp : Var : string[độ dài lớn nhất của xâu] ; - Ví dụ : Var Hoten :string[26]; - Nếu trong khai báo không chỉ ra độ dài lớn nhất thì ngầm định là 255 kí tự. Ví dụ: var Hoten:string; àbiến Hoten lưu trữ xâu có độ dài lớn nhất là 255 kí tự Hoạt động 3 : Tìm hiểu các thao tác xử lý xâu Hoạt động của GV và HS Nội dung GV : Giới thiệu các thao tác xử lý xâu rồi yêu cầu HS lấy ví dụ GV : Lưu ý HS phép so sánh có thứ tự ưu tiên thấp hơn so với phép ghép xâu và được thực hiện theo thứ tự từ điển HS : Theo dõi, ghi nhớ kiến thức GV : Tiếp tục giới thiệu các hàm và thủ tục chuẩn thường dùng đối với kiểu xâu HS : Theo dõi, ghi bài GV : yêu cầu HS thực hiện được ví dụ GV đưa ra và lấy được ví dụ khác HS :Theo dõi, cho ví dụ 2. Các thao tác xử lý xâu a) Phép ghép xâu : sử dụng dấu cộng (+) - ví dụ : ‘Quynh’+’Luu’ à QuynhLuu ‘Quynh ‘+’Luu’à Quynh Luu b) Phép so sánh: =, , , =, thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu, và tuân theo các quy tắc sau : - xâu A > xâu B nếu như kí tự đầu tiên khác nhau giữa chúng tính từ trái sang trong xâu A có mã ASCII lớn hơn. Ví dụ : ‘A’<’B’. - Nếu xâu A và xâu B có độ dài khác nhau và A là đoạn đầu của B thì A<B. Ví dụ : ‘may tinh’ < ‘may tinh của toi’. - Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn. Ví dụ : ‘tin’ = ‘tin’. c) Thủ tục delete(st,vt,n) : xoá n kí tự của xâu st bắt đầu từ vị trí vt Ví dụ : st=’tin hoc’ àdelete(st,4,4)= ‘tin’ d) Thủ tục Insert(s1,s2,vt): chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt Ví dụ: s1=’ toi do’, s2=’lop’ àinsert(s1,s2,4)=’lop toi do’ e) Hàm copy(s,vt,n): tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu s Ví dụ: s=’truong toi rat dep’à copy(s,1,10)=’truong toi) f) Hàm length(s): cho độ dài xâu s. Ví dụ: s=’truong toi rat dep’à length(s)=18. g) Hàm pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 Ví dụ: s1=’hoc’, s2=’tin hoc 11’ à pos(s1,s2)= 10 h) Hàm upcase(ch): chữ cái in hoa ứng với ch Ví dụ: ch=’a’àupcase(ch)=’A’ IV. CŨNG CỐ: Cách khai báo biến xâu, hằng xâu Một số thao tác xử lý đối với dữ liệu kiểu xâu Ngày soạn: 1/03/2015 Dạy các lớp: 11A7,A11 TIẾT 31: KIỂU XÂU (Tiếp) I. MỤC ĐÍCH, YÊU CẦU HS cài đặt được một số chương trình đơn giản có sử dụng xâu. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề Hỏi đáp 2.Phương tiện: Bảng + SGK III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Bài cũ: 1) Trình bày cách khai báo dữ liệu kiểu xâu và cho ví dụ? 2) Viết chương trình thông báo độ dài của xâu ‘em yeu truong em!’ 3. Bài mới: * Hoạt động 1: Tìm hiểu ví dụ 1 SGK Hoạt động của GV và HS Nội dung GV: Yêu cầu HS xác định bài toán HS: Xác định bài toán GV: Hỏi: như vậy với bài toán này ta cần khai báo bao nhiêu biến? và biến thuộc kiểu dữ liệu nào? HS: cần khai báo hai biến xâu để lưu trữ họ tên của hai người GV: Hỏi: làm thế nào để biết xâu nào dài hơn? HS: ta so sánh độ dài hai xâu bằng cách dùng hàm length(s) GV:yêu cầu HS viết chương trình HS: thực hiện viết chương trình 3. Một số ví dụ Ví dụ 1: Viết chương trình nhập họ tên của hai người vào hai biến xâu và đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau Var a, b: string; Begin Write(‘nhap ho ten thu nhat:’); Readln(a); Write(‘nhap ho ten thu hai:’); Readln(b); If length(a)> length(b) then Write(a) Else write(b); Readln End. * Hoạt động 2: Tìm hiểu ví dụ 2 SGK Hoạt động của GV và HS Nội dung GV: Yêu cầu HS xác đinh bài toán HS: Xác định bài toán GV: Hỏi: Làm thế nào để biết được kí tự cuối cùng của xâu thứ hai? HS: ta phải xác định được độ dài của xâu b, giả sử là x thì kí tự cuối cùng sẽ là b[x] GV: Hỏi: Như vậy chúng ta cần so sánh gì? HS: so sánh a[1] và b[x], nếu bằng nhau thì thông báo là trùng nhau, ngược lại thì thông báo là khác nhau. GV: yêu cầu HS viết chương trình HS: thực hiện Ví dụ 2: Viết chương trình nhập hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không. Var x: byte; a, b: string; begin write(‘nhap xau th nhat’); readln(a); write(‘nhap xau thu hai’); readln(b); x:=length(b); if a[1] = b[x] then write(‘trung nhau’) else write)’khac nhau’); readln end. * Hoạt động 3: Tìm hiểu ví dụ 4 GV: Yêu cầu HS xác định bài toán HS: Xác định bài toán GV: Hỏi: làm thế nào để tạo một xâu mới bằng cách loại bỏ các dấu cách từ xâu cũ? HS: ban đầu khởi tạo xâu mới rỗng, sau đó thực hiện kiểm tra lần lượt các kí tự trong xâu cũ , nếu gặp dấu cách thì ta bỏ qua, ngược lại ta thêm kí tự đó vào xâu mới GV: yêu cầu HS viết chương trình HS: thực hiện Ví dụ 4: Chương trình nhập một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách nếu có. IV. CŨNG CỐ: GV hướng dẫn các ví dụ 3, 5, yêu cầu HS về nhà thực hiện Ngày soạn: 4/03/2015 Dạy các lớp: 11A11 TIẾT 32: BÀI TẬP I. MỤC ĐÍCH, YÊU CẦU Cũng cố kiến thức về kiểu xâu; Rèn luyện kỹ năng sử dụng kiểu xâu để giải quyết một số bài toán đơn giản. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Vấn đáp Giải quyết vấn đề 2.Phương tiện: Bảng + SGK III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: Hoạt động của GV và HS Nội dung GV: Yêu cầu HS nghiên cứu câu 10 SGK Trang 80 , xác định bài toán và thực hiện viết chương trình. HS: Thực hiện theo yêu cầu GV: Hướng dẫn, ta sẽ duyệt lần lượt từng kí tự trong xâu s, nếu kí tự nào là chữ số thì đếm. GV: Hỏi: dùng cấu trúc nào để duyệt hết tất cả các kí tự của xâu s? HS: For i:=1 to length(s) do If (‘0’=’9’) then dem:=dem+1; GV: yêu cầu HS xác định bài toán HS: xác định bài toán GV:Hỏi: làm thế nào để chuyển một kí tự là chữ cái thường sang chữ in hoa? HS: dùng hàm Upcase(ch). HS: viết chương trình GV: Yêu cầu HS xác định bài toán HS: Xác định bài toán GV: Hướng dẫn HS: Theo dõi, viết chương trình. Bài 1: câu 10 (SGK T80) Program bai1; Var s: string[100]; i, dem: byte; Begin Writeln(‘Nhap vao xau ki tu khong qua 100’); readln(s); dem:=0; For i:=1 to length(s) do If (‘0’=’9’) then dem:=dem+1; writeln(‘trong xau s co’,dem,’chu so’); Readln End. Bài 2: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ in hoa rồi in kết quả ra màn hình. Ví dụ :Xâu abCdAbcD sẽ cho ra xâuABCDABCD. Var s: string; i: byte; Begin Writeln(‘Nhap vao mot xau:’); readln(s); for i:=1 to length(s) do s [i ]:= Upcase(s [i ]); writeln(‘xau sau khi chuyen sang chu hoa’, s ); readln end. Bài 3: Viết chương trình nhập vào xâu kí tự từ bàn phím s1, tạo xâu s2 từ xâu s1 sau khi đã loại bỏ các chữ số, đưa kết quả ra màn hình. Program B3; Uses crt; Var s1, s2: string; i: byte; Begin Clrscr; Write(‘nhap vao xau s1: ‘); Readln(s1); s2:=’’; For i:=1 to length(s1) do If (s1[i] =’9’) then s2:=s2+s1[i]; Writeln(‘xau s2 la: ’,s2); readln; End. IV. CŨNG CỐ: ra bài tập về nhà, hướng dẫn qua - Bài 1: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ thường rồi in kết quả ra màn hình. Ví dụ :Xâu abCdAbcD sẽ cho ra xâu abcdabcd. - Bài 2: Viết chương trình nhập một xâu từ bàn phím. In ra xâu đó sau khi xóa hết các ký tự trắng thừa trong xâu. (Ký tự trắng thừa là các ký tự trắng đầu xâu, cuối xâu và nếu ở giữa xâu có 2 ký tự trắng liên tiếp nhau thì có 1 ký tự trắng thừa). - Yêu cầu HS chuẩn bị trước các bài 1b, 2 và 3 của bài tập và thực hành 5. Ngày soạn: 8/03/2015 Dạy các lớp: 11A11 TIẾT 33: BÀI TẬP THỰC HÀNH 5 I. MỤC ĐÍCH, YÊU CẦU Cũng cố cho HS những hiểu biết về kiểu xâu; Tổ chức những hoạt động trong phòng máy để HS có được các kĩ năng cơ bản làm việc với xâu trong lập trình; Cung cấp một số thuật toán đơn giản và cơ bản thường gặp trong xử lý văn bản; Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề Thực hành 2.Phương tiện: Bảng + SGK + Phòng thực hành III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Nội dung: * Hoạt động 1: Tìm hiểu chương trình được cài đặt sẵn (bài 1a sgk) Hoạt động của GV và HS Nội dung GV: Gọi một HS cho biết nội dung đề bài HS: đứng tại chỗ trả lời GV: Yêu cầu HS lấy ví dụ về xâu palindrom và xâu không phải palidrom HS: cho ví dụ: + aadaa, abcba,.. + abcde, noan,... - thực hiện GV: hướng dẫn HS mở chương trình được cài đặt sẵn trong máy, chạy thử chương trình với các bộ dữ liệu khác nhau (chẳng hạn những bộ dữ liệu đã lấy ví dụ). GV: Chương trình cho kết quả gì? HS: tương ứng với từng xâu nhập vào thì chương trình in ra màn hình “xâu là palindrom” hoặc “xau khong la palindrom”. Var i, x:Byte; a,p:string; Begin Write(‘nhap vao mot xau’); readln(a); x:=length(a); p:= ‘’; For i:=x downto 1 do p:=p+a[i]; If a=p then write(‘xau la Palindrom’) else write(‘xau khong la Palindrom’); Readln; End. * Hoạt động 2: Cải tiến chương trình (tìm hiểu câu 1b sgk) GV: Nêu yêu cầu mới HS: theo dõi GV: yêu cầu HS nhận xét về các cặp kí tự đối xứng nhau trong một xâu palindrom HS: các kí tự ở các vị trí này giống nhau GV: kí tự thứ i đối xứng với kí tự ở vị trí nào? HS: kí tự thứ i trong xâu a đối xứng với kí tự ở vị trí length(a)-i+1 GV: Phải so sánh bao nhiêu cặp kí tự trong xâu để biết được xâu đó có phải là xâu palindrom hay không? Hãy dùng vòng lặp để thực hiện các phép so sánh này. HS: phải so sánh tối đa length(a) div 2 cặp kí tự. Có thể dùng vòng lặp for hoặc while GV: yêu cầu HS gõ chương trình, chạy thử với các bộ dữ liệu giáo viên đưa ra, thông báo kết quả HS: gõ chương trình, chạy thử các bộ dữ liệu GV đưa ra, thông báo kết quả GV:quan sát HS, xác nhận những bài làm đúng GV:Yêu cầu HS xác định bài toán HS: nghiên cứu và xác định bài toán GV: Hướng dẫn: để ghi nhận số lần xuất hiện của các kí tự trong xâu s có thể dùng một mảng với chỉ số là kí tự từ ‘A’ đến ‘Z’ HS:theo dõi GV: Hỏi: để giải quyết vấn đề không phân biệt chữ hoa hay chữ thường ta làm thế nào? HS: nghiên cứu và xác định bài toán GV: đưa ra dàn ý chương trình và yêu cầu HS chi tiết hoá bằng các câu lệnh để được một chương trình chạy đúng GV: quan sát, bổ sung GV: lập một vài bộ test, yêu cầu HS chạy thử chương trình rồi báo cá kết quả GV: Yêu cầu HS xác định bài toán HS: nghiên cứu và xác định bài toán GV: Hướng dẫn: để thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’, ta có thể làm một cách tự nhiên: + tìm vị trí bắt đầu của xâu ‘anh’ + xoá xâu ‘anh’ vừa tìm thấy + chèn xâu ‘em’ vào xâu s tại vị trí đó. HS: theo dõi GV: Hỏi: với các hàm và thủ tục đã biết đối với kiểu xâu có thể làm được những việc đó hay không? HS: có GV: yêu cầu HS viết chương trình 1b) Hãy viết lại chương trình mà không dùng biến xâu p Var i, x: byte; a: string; kq:boolean; Begin Write(‘nhap vao xau:’); Readln(a); x:= length(a); kq:=true; For i:=1 to x div2 do If a[i] a[x-i+1] then kq:=false; If kq:=false then Writeln(‘xau khong la palindrom’) else Writeln(‘xau la palindrom’) ; Readln End. Cách 2 : Var i, x :byte ; a : string ; Begin Write(‘nhap vao xau: ’); Readln(a); x:=length(a); i:=1; While (i<= (x div 2) and (a[i]=a[x-i+1]) do i:=i+1; If i > (x div2) then writeln(‘xau la palindrom’) Else writeln(‘xau khong la palindrom’); Readln End. Bài 2: (sgk T73) Dàn ý chương trình: {phần khai báo} Begin { nhập xâu s} N:=length(s); {khởi trị cho mảng dem} For i:= 1 to N do {nếu s[i] là chữ cái thì đếm tăng cho s[i] } For c:= ‘A’ to ‘Z’ do { Thông báo số lần xuất hiện của c} End. Bài 3: (sgk T73) Var vt: byte; S: string; Begin Write(‘nhap vao mot xau: ‘); Readln(s); While pos(‘anh’,s) 0 do Begin Vt:=pos(‘anh’,s); Delete(s,vt,3); Insert(‘em’,s,vt); End; Write(s); Readln End. IV. CŨNG CỐ: - Giải đáp một số thắc mắc của HS về bài nếu có - yêu cầu về nhà nghiên cứu bài tập 2, 3 của bài thực hành chuẩn bị cho tiết thực hành sau Ngày soạn: 10/03/2015 Dạy các lớp: 11A11 CHƯƠNG V. TỆP VÀ THAO TÁC VỚI TỆP TIẾT 34: KIỂU DỮ LIỆU TỆP VÀ THAO TÁC VỚI TỆP. I. MỤC ĐÍCH, YÊU CẦU Biết khái niệm và vai trò của kiểu tệp; Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập; Hiểu bản chất của tệp văn bản; II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC 1. Phương pháp: Giải quyết vấn đề thuyết trình 2.Phương tiện: Bảng + SGK III. NỘI DUNG 1. Ổn định lớp: Kiểm tra sĩ số, nề nếp. 2. Bài mới: Tìm hiểu về vai trò của kiểu tệp và cách phân loại tệp Hoạt động 1: Tìm hiểu về Kiểu dữ liệu tệp Hoạt động của GV và HS Nội dung GV: Hỏi: Các kiểu dữ liệu trước được lưu trữ ở bộ nhớ nào? HS: bộ nhớ ngoài (RAM) GV: Hái: V× sao em biÕt ®îc ®iÒu ®ã? HS: dữ liệu bị mất khi tắt máy GV: Để lưu giữ dữ liệu lâu dài nhằm khai thác, xử lí thông tin đó ta phải lưu nó ở bộ nhớ ngoài thông qua kiểu dữ liệu tệp. GV: Yêu cầu học sinh nghiên cứu sách giáo khoa và nêu đặc
File đính kèm:
- giao_an_tin_11_day_du_20150727_011245.doc