SKKN mở rộng các bài tập cơ bản về kiểu xâu cho học sinh khá, giỏi

19 117 0
SKKN mở rộng các bài tập cơ bản về kiểu xâu cho học sinh khá, giỏi

Đ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

1 MỞ ĐẦU 1.1 Lý chọn đề tài Tin học môn học trường phổ thơng nên học sinh nhiều bỡ ngỡ tiếp cận với môn học Nội dung tin học lập trình lớp 11 nội dung lạ đa số học sinh với nhiều khái niệm, thuật ngữ, cấu trúc liệu mà học sinh tiếp xúc lần đầu Chính mà học sinh dễ mắc sai lầm lập trình giải tốn Trong việc giảng dạy cho HS, ngồi việc giúp học sinh lĩnh hội kiến thức bản, người thầy phải biết kích thích tính tích cực, sáng tạo say mê học hỏi học tập em Vì đòi hỏi học sinh phải có ý thức mục tiêu đặt ra, tạo động lực bên thúc đẩy thân em hoạt động để đạt mục tiêu Điều thực dạy học không đơn giản việc nêu rõ mục tiêu mà quan trọng gợi động học tập việc đổi phương pháp dạy học Là giáo viên giảng dạy môn này, theo tìm nhiều tốn khó, tốn hay để giảng dạy cho học sinh Mà vấn đề đặt phải tích cực tìm tòi, sáng tạo việc đưa tốn để giúp học sinh có hứng thú, sáng tạo học tập để giải vấn đề đưa Xuất phát từ thực tiễn giảng dạy trường PT Nguyễn Mộng Tuân, nhận thấy để đạt hiệu cao phần học, tiết học cần có phương pháp, đưa ý tưởng xây dựng viết chương trình cách thiết kế giảng cho phù hợp với nội dung kiến thức, phương pháp phương tiện dạy học cho học sinh Để qua phần học, tiết học, học sinh hứng thú với kiến thức mới, hiểu kiến thức học lớp vận dụng vào thực tiễn Trong môn học bậc THPT Tin học lớp 11 em cho mơn học khó hiểu Các em làm quen với ngơn ngữ lập trình Turbo Pascal Trong ngơn ngữ lập trình em làm quen với nhiều kiểu liệu mới, hiểu thuật toán cho toán xây dựng viết chương trình Quả thật em khó khăn, từ việc em người sử dụng phần mềm có sẵn như: soạn thảo văn bản, phần mềm Excel, phần mềm học tập, giải trí … em lại phải tìm lời giải cho toán, bước cho máy tính thực viết chương trình để tạo sản phẩm phần mềm cho người khác sử dụng Qua trình giảng dạy Tin học khối 11, nhận thấy liệu kiểu xâu thường gặp nhiều toán vận dụng linh hoạt thao tác xử lý kiểu liệu vào tốn khơng dễ Việc học sinh tìm hiểu kiểu liệu có cấu trúc nói chung kiểu liệu xâu nói riêng nhiều lúng túng Đặc biệt liệu vào kiểu xâu yêu cầu toán liên quan đến liệu kiểu xâu, học sinh thường không để giải vấn đề mà tốn đưa Qua thực tế cơng tác 10 năm trường, qua học hỏi kinh nghiệm từ đồng nghiệp, với mong muốn phần giúp cho học sinh giáo viên việc tìm lời giải cho số toán liên quan tới kiểu liệu xâu dễ dàng Để học sinh rèn luyện tập bản, từ mở rộng tốn nâng cao kiểu xâu dành cho học sinh giỏi hút học sinh, tạo hứng thú cho học sinh học lập trình Vì vậy, tơi xin mạnh dạn giới thiệu đề tài sáng kiến kinh nghiệm mà nghiên cứu là: “Mở rộng tập kiểu xâu cho học sinh khá, giỏi ” Tin học 11 mà tơi áp dụng có hiệu q trình giảng dạy 1.2 Mục đích nghiên cứu - Giới thiệu cách khai báo truy xuất đến kiểu liệu xâu - Giới thiệu số phép toán liệu kiểu xâu, đồng thời cung cấp thêm số hàm, thủ tục chưa có 12 sách giáo khoa tin học 11 - Hệ thống toán dạng số dạng tập thường gặp giúp cho giáo viên học sinh phần nhận dạng giải số tập liên quan - Sử dụng ví dụ cụ thể trước hết để học sinh nắm cú pháp, ý nghĩa kiểu xâu Đồng thời giới thiệu thêm số hàm, thủ tục xử lý xâu nhằm giúp em học sinh xử lý số tập ứng dụng, tăng u thích mơn học cho khó trừu tượng 1.3 Đối tượng nghiên cứu Sử dụng ngơn ngữ lập trình Turbo Pascal Free Pascal để tiến hành nghiên cứu toán kiểu liệu xâu với đối tượng nghiên cứu học sinh khối 11 trường PT Nguyễn Mộng Tuân Hình thành kỹ thực hành giải tập cho học sinh có hệ thống kiến thức với dạng tập lập trình nâng cao theo độ khó dần tập liệu kiêu xâu 1.4 Phương pháp nghiên cứu Hình thành học sinh kỹ phân tích, xử lý vấn đề liên quan đến tập kiểu xâu Để trình bày sáng kiến kinh nghiệm này, sử dụng phối kết hợp nhiều phương pháp như: nghiên cứu tài liệu, sách, báo, thuyết trình, quan sát, tham khảo ý kiến cấp đồng nghiệp, điều tra bản, thực nghiệm so sánh, phân tích kết thực nghiệm phù hợp với môn học thuộc lĩnh vực Tin học NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lý luận sáng kiến kinh nghiệm Trong bối cảnh toàn ngành GD-ĐT đổi phương pháp dạy học theo hướng phát huy tính tích cực chủ động học sinh học tập Điều 24.2 Luật giáo dục nêu rõ: “Phương pháp giáo dục phổ thơng phải phát huy tính tích cực, tự giác, chủ động sáng tạo học sinh, phù hợp với đặc điểm lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Như vậy, khẳng định đổi phương pháp dạy học trường phổ thông giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động Với số nội dung đề tài này, học sinh tự học, tự rèn luyện thông qua số dạng tập cụ thể nâng cao Căn vào mục tiêu môn Tin học, phải cung cấp tri thức bản, làm tảng để học sinh tiếp tục sâu vào tìm hiểu xây dựng khoa học Tin học tiếp thu tri thức lĩnh vực kĩ thuật công nghệ tiên tiến, lĩnh vực công nghệ thông tin Môn Tin học, môn học khác, vào mục tiêu để xác định nhiệm vụ cụ thể môn học, tổ chức hoạt động đào tạo góp phần thực mục tiêu giáo dục mà Đảng nhà nước đề Nếu học sinh rèn luyện kỹ tập việc mở rộng tốn kiểu xâu dành cho học sinh giỏi hút học sinh, tạo hứng thú cho học sinh học lập trình 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Trước chưa áp dụng phương pháp giảng dạy giáo án điện tử, hệ thống tập, thực hành có nội dung liên hệ với thực tiễn, học sinh phản ánh với giáo viên tập kiểu xâu thường trừu tượng khó hiểu Tin học mơn học đặc thù có nhiều kiến thức khó lập trình pascal lớp 11, kiến thức thi học sinh giỏi tỉnh thường bị xem nhẹ, bị xem “môn phụ” Học sinh phụ huynh chưa mặn mà, chưa quan tâm mực tới môn học nên việc lựa chọn bồi dưỡng học sinh giỏi vơ khó khăn Đứng trước toán tin học, học sinh thường lúng túng khơng biết tìm thuật tốn tốn từ đâu tìm nào? Một số học sinh khá, giỏi có thói quen mò mẫm thử nghiệm để tìm lời giải, điều dẫn tới kết sai chệch hướng giải tốn, hiệu suất để tìm thuật tốn khơng cao, số học sinh khơng biết cách tìm thuật tốn từ đâu điều gây tâm lý chán nản cho em Với tình hình để giúp học sinh định hướng tốt trình tìm thuật tốn, trước tự tìm thuật tốn tốt người giáo viên cần tạo cho học sinh thói quen tìm thuật tốn cho tốn khó từ các toán quen thuộc mà em biết, khai thác yếu tố đặc trưng số toán để tìm thuật tốn cho tốn nâng cao Qua việc giảng dạy học sinh học lập trình lớp 11, tơi nhận thấy học sinh nhiều bỡ ngỡ tiếp cận với lập trình có cấu trúc kiểu liệu có cấu trúc Với thao tác duyệt xâu thao tác kiểm tra tính chất phần tử xâu cần phải sử dụng cấu trúc lặp học sinh thường gặp nhiều khó khăn Và bước để tạo tiền đề việc lựa chọn học sinh để bồi dưỡng học sinh giỏi với chuyên đề tập kiểu xâu 2.3 Giải pháp sử dụng để giải vấn đề 2.3.1 Giới thiệu kiến thức kiểu xâu a Khai báo xâu: - Xâu dãy kí tự thuộc bảng mã ASCII, kí tự gọi phần tử xâu Số lượng kí tự xâu gọi độ dài xâu Xâu có độ dài gọi xâu rỗng - Để khai báo liệu kiểu xâu ta sử dụng tên dành riêng String, độ dài lớn xâu Var :string [độ dài lớn xâu]; Ví dụ: Var hocsinh:string[28]; - Có thể xem xâu mảng chiều mà phần tử kí tự Các kí tự xâu đánh số thứ tự thường - Nếu khơng khai báo độ dài lớn xâu xâu nhận giá trị ngầm định 255 - Ngồi có kiểu khai báo khác xâu như: + Shortstring: String + longstring: mảng ký tự có kiểu char Thơng thường kiểu char có kích thước 16 bit nên mảng có kích thước tối đa 16 bit = 65535 ký tự + ansistring (chỉ có free pascal) có kích thước gần 2GB = 230 B b Các thao tác xử lí xâu - Phép ghép xâu: (phép cộng xâu): kí hiệu dấu cộng (+), dùng để ghép nhiều xâu thành VD: ‘hoc ’ + ‘sinh’ cho kết ‘hocsinh’ - Các phép so sánh: , có thứ tự thực ưu tiên thấp phép ghép xâu thực việc so sánh hai xâu theo quy tắc sau: + Xâu A > xâu B kí tự khác chúng kể từ trái sang xâu A có mã ASCII lớn VD: ‘Ha Noi’ > ‘Ha Nam’ (111 kí tự) (97 kí tự) + Xâu B đoạn đầu xâu A VD: ‘Xau ki tu’ > ‘Xau’ + A=B xâu A B giống hoàn toàn VD: ‘tin’= ‘tin’, ‘tin’ ‘TIN’ c Một số thủ tục xử lý xâu: Thủ tục Delete(s,vt,n) Insert(s1,s2,vt) Str(value,s) val(s,value,code) Ý nghĩa Ví dụ Xóa n kí tự xâu S bắt đầu S= ‘Song Hong’ từ vị trí vt Delete(S,1,5)= ‘Hong’ Chèn xâu s1 vào s2, bắt đầu S1= ‘1’; S2= ‘Hinh 2’ vị trí vt Insert(S1,S2,6)= ‘Hinh 1.2’ Chuyển đổi giá trị kiểu số VD: n:=‘2019’ (value) sang dạng xâu kí tự str(n,s)= ‘2019’ gán cho biến s đổi xâu kí tự s sang dạng số VD: val(‘198’,value,code) gán cho biến value, biến lúc đổi thành cơng code nhận value=198 giá trị 0, ngược lại cho giá trị khác d Một số hàm: TT Hàm Copy(s,vt,n) Length(s) Pos(s1,s2) Upcase(ch) Ord(ch) Chr(n) Concat(s1,s2, ,sn) Ví dụ: TT Giá trị s ‘Tin hoc’ ‘Xin chao’ ‘Xin chao’ TT code=0 Ý nghĩa Tạo xâu gồm n kí tự liên tiếp vị trí vt xâu s Cho giá trị độ dài xâu s Cho vị trí xuất xâu s1 xâu s2 Cho chữ in hoa ứng với chữ ch Cho mã kí tự ch bảng mã ASCII Cho kí tự có mã n Cho xâu cách nối đuôi xâu s1,s2, ,sn lại với Biểu thức Copy(s,5,3) Length(s) Pos(‘c’,s) Kết ‘hoc’ Upcase(ch) Ord(ch) Chr(65) Concat(‘tin’,’hoc’) ‘A’ 97 ‘A’ ‘tinhoc’ Giá trị ch ‘a’ ‘a’ 2.3.2 Các dạng tập kiểu xâu Bài tập 1: Nhập vào từ bàn phím xâu Thay tất cụm kí tự “anh” cụm kí tự “em” * GV gợi ý cho HS cách viết chương trình theo dàn ý sau: {Phần khai báo} BEGIN {Nhập xâu S} {Chừng tìm thấy xâu “anh” xâu S làm ba việc sau: - Tìm vị trí bắt đầu xâu “anh” - Xóa xâu “anh” vừa tìm thấy - Chèn xâu “em” vào xâu S vị trí trước xuất xâu “anh” } In xâu S kết END Viết chương trình: Program baitap1; Var vt:byte; S:string; Begin Write(‘Nhap vao mot xau: ’); readln(s); While pos(‘anh’,s) Begin Vt:=pos(‘anh’,s); Delete(s,vt,3); Inset(‘em’,s,vt); End; Write(s); Readln End Bài tập 2: Nhập xâu S từ bàn phím (Smax) then begin max:=d; csd:=i; csc:=j; end; end; for i:=csd to csc write(s[i]); readln; End 2.3.5 Dạng tập xâu Bài tập 1: Cho trước hai xâu kí tự S1 S2 Viết chương trình tính số lần lặp lại xâu S1 xâu S2 Dữ liệu vào từ tệp văn xau.inp gồm: 12 - Dòng chứa xâu S1 - Dòng thứ hai chứa xâu S2 Kết ghi tệp xau.out lần ghi số lần lặp lại xâu s1 xâu s2 Xau.inp Aba Bababababa Xau.out * Ý tưởng: Sử dụng hàm Pos(s1,s2) để xuất có hay khơng xuất xâu s1 xâu s2 Giả sử giá trị hàm trả i khác 0, ta tăng biến đếm lên xóa kí tự thứ i xâu s2, tiếp tục trình i=0 xâu s2 rỗng * Viết chương trình: Var s1,s2:ansistring; f,g:text; dem:longint; begin assign(f,’xau.inp’);reset(f); assign(g,’xau.out’);rewrite(g); readln(f,s1); readln(f,s2); dem:=0; while (pos(s1,s2)0) and (length(s2)0) begin inc(dem); delete(s2,pos(s1,s2),1); end; writeln(g,dem); close(f); close(g); end Bài tập 2: Xâu kí tự X gọi xâu kí tự Y ta xóa số kí tự xâu Y đê xâu X Cho biết hai xâu kí tự A B, tìm xâu kí tự C có độ dài lớn A B Dữ liệu vào từ file xaucon.inp gồm: - Dòng 1: chứa xâu A (độ dài xâu

Ngày đăng: 21/11/2019, 08:53

Từ khóa liên quan

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

Tài liệu liên quan