Phương pháp giải một số dạng bài tập về kiểu dữ liệu xâu trong đề thi HSG môn tin học MỤC LỤC TÀI LIỆU THAM KHẢO 2 BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN 3 1 LỜI GIỚI THIỆU 3 1 1 Lí do chọn đề[.]
Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học MỤC LỤC TÀI LIỆU THAM KHẢO BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN LỜI GIỚI THIỆU 1.1 Lí chọn đề tài 1.2 Mục tiêu nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp thực TÊN SÁNG KIẾN: .4 TÁC GIẢ SÁNG KIẾN: .4 CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN .5 LĨNH VỰC ÁP DỤNG SÁNG KIẾN NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG LẦN ĐẦU MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN CHƯƠNG I: CƠ SỞ LÍ LUẬN CỦA ĐỀ TÀI CHƯƠNG II: THỰC TRẠNG CỦA VẤN ĐỀ NGHIÊN CỨU CHƯƠNG III: NỘI DUNG CỦA ĐỀ TÀI .6 Lý thuyết kiểu xâu 1.1 Khái niệm .6 1.2 Khai báo 1.3 Các thao tác xử lý xâu: Các dạng tập kiểu xâu 10 Dạng 1: Kiểm tra xâu thỏa mãn tính chất 10 Dạng 2: Đếm số lần xuất kí tự xâu 15 Dạng 3: Mã hóa giải mã 18 Dạng 4: Xóa thay 21 Dạng 5: Chuyển số sang xâu ngược lại 23 NHỮNG THƠNG TIN CẦN ĐƯỢC BẢO MẬT (NẾU CĨ): .30 CÁC ĐIỀU KIỆN CẦN THIẾT ĐỂ ÁP DỤNG SÁNG KIẾN: 30 10 ĐÁNH GIÁ LỢI ÍCH THU ĐƯỢC 30 KẾT LUẬN 31 11 DANH SÁCH NHỮNG TỔ CHỨC/CÁ NHÂN ĐÃ THAM GIA ÁP DỤNG THỬ HOẶC ÁP DỤNG SÁNG KIẾN LẦN ĐẦU (NẾU CÓ): 31 skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học TÀI LIỆU THAM KHẢO 1.Sách giáo khoa tin học 11 Hồ Sĩ Đàm chủ biên Sách giáo viên tin học 11 chủ biên Hồ Sĩ Đàm Sách tập tin học lớp 11 Một số đề thi học sinh giỏi tỉnh Vĩnh Phúc Lập trình Pascal Khoa CNTT trường ĐHSPHN Một số sáng kiến kinh nghiệm ý kiến đồng nghiệp Một số trang web Internet skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN LỜI GIỚI THIỆU 1.1 Lí chọn đề tài Môn tin học đặc biệt nội dung tin học lập trình mơn học lạ học sinh phổ thông nên đa số em bỡ ngỡ tiếp cận nội môn học Trong thực tiễn liệu vào toán liên quan đến kiểu liệu khác nhau, để tiện cho việc lập trình xử lý liệu thường đưa liệu dạng kiểu liệu chuẩn kiểu liệu có cấu trúc, kiểu liệu kiểu xâu Qua q trình tham gia giảng dạy môn tin học trường THPT Đồng Đậu bồi dưỡng học sinh giỏi nhận thấy liệu kiểu xâu gặp nhiều toán để học sinh vận dụng linh hoạt thao tác xử lý kiểu liệu vào tốn khơng phải dễ Với mong muốn 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 tới kiểu liệu xâu dễ dàng hơn, xin đưa “PHƯƠNG PHÁP GIẢI MỘT SỐ DẠNG BÀI TẬP VỀ KIỂU DỮ LIỆU XÂU TRONG ĐỀ THI HỌC SINH GIỎI MÔN TIN HỌC” 1.2 Mục tiêu nghiên cứu o Đề tài thực nhằm giúp cho giáo viên học sinh hệ thống lại kiến thức thao tác kiểu liệu xâu từ áp dụng cho tốn cụ thể o Giới thiệu số phép toán kiểu liệu xâu, đặc biệt phần có cung cấp thêm số hàm, thủ tục chưa giới thiệu 12 sách giáo khoa skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học tin học 11, đồng thời đưa số ví dụ tương ứng để học sinh dễ dàng sử dụng o 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 o Giúp học sinh khơng cịn nhàm chán với mơn tin học nói chung kiểu liệu xâu nói riêng 1.3 Đối tượng nghiên cứu o Học sinh: học sinh học chương trình học sinh đội tuyển học sinh giỏi tin học o Số lượng: 120 học sinh o Số lớp thực hiện: lớp o Khối lớp: 11 1.4 Phương pháp thực Để hồn thành SKKN tơi sử dụng phối kết hợp nhiều phương pháp, phương pháp chủ yếu là: o Nghiên cứu tài liệu o Thực nghiệm o Tham khảo ý kiến cấp đồng nghiệp TÊN SÁNG KIẾN: “PHƯƠNG PHÁP GIẢI MỘT SỐ DẠNG BÀI TẬP VỀ KIỂU DỮ LIỆU XÂU TRONG ĐỀ THI HỌC SINH GIỎI MÔN TIN HỌC” TÁC GIẢ SÁNG KIẾN: o Họ tên: Bùi Thị Phương o Địa tác giả sáng kiến: THPT Đồng Đậu o Số điện thoại:0383797818 o E_mail: buithiphuongc3dongdau.vinhphuc.edu.vn skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN LĨNH VỰC ÁP DỤNG SÁNG KIẾN Đề tài sử dụng để vận dụng giải toán kiểu liệu xâu sách tập tin học lớp 11 đề thi học sinh giỏi tỉnh môn tin học Khi vận dụng đề tài để giải toán kiểu liệu xâu giúp: o Học sinh sau giới thiệu cách hệ thống dạng tập xâu quy trình giải dạng nhận biết u cầu tốn cách thức giải chúng cách hiệu o Hình thành HS kỹ phân tích, xử lý vấn đề liên quan đến tập kiểu xâu, sử dụng thành thạo vòng lặp biết trước, thủ tục chuẩn vào/ra đơn giản, bước đầu làm quen với số chương trình dạng thủ tục tạo điều kiện thuận lợi cho việc tiếp thu kiến thức cách viết chương trình có cấu trúc o Mở rộng số tập kiểu xâu để học sinh thấy ứng dụng quan trọng kiểu liệu xâu lập trình NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG LẦN ĐẦU HOẶC ÁP DỤNG THỬ Đề tài áp dụng vào ngày 20 tháng 02 năm 2019 MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN: NỘI DUNG SÁNG KIẾN CHƯƠNG I: CƠ SỞ LÍ LUẬN CỦA ĐỀ TÀI Trong bối cảnh toàn ngành GD-ĐT nỗ lực đổ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 hoạt động 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, thấy định hướng đổi phương pháp dạy học khẳng skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG mơn tin học định, khơng cịn vấn đề tranh luận Cốt lõi việc đổ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ố tập, dạng tập cụ thể CHƯƠNG II: THỰC TRẠNG CỦA VẤN ĐỀ NGHIÊN CỨU Qua thực tế giảng dạy trường THPT Đồng Đậu nhận thấy học đến chương trình tin học lớp 11 đa số học sinh cho mơn học khó mơn học, nhiều em cịn sợ mơn học Khi học sinh học học Bài 12 “Kiểu xâu”, học sinh có nhiều khó khăn, nhầm lẫn việc xử lý liệu em quen với toán xử lý liệu kiểu số, tốn quen thuộc tính tổng tích dãy số thoả mãn điều kiện đó… Khi gặp tốn phải sử dụng kiểu liệu lớn nhiều em lúng lúng Việc giải toán với kiểu liệu lớn thực cần thiết cho em làm toán lập trình chương trình Tin học phổ thơng nói riêng việc giải tốn thực tế nói chung CHƯƠNG III: NỘI DUNG CỦA ĐỀ TÀI Lý thuyết kiểu xâu 1.1 Khái niệm o Xâu dãy kí tự mã ASCII, kí tự gọi phần tử xâu o Số lượng kí tự xâu gọi độ dài xâu o Xâu có độ dài gọi xâu rỗng o Có thể coi xâu mảng chiều, kí tự xâu phần tử, skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học đánh số Do vậy, để tham chiếu đến phần tử xâu ta viết [chỉ số kí tự]; Ví dụ: s = ‘Tin hoc’ Muốn truy cập đến kí tự ‘i’ viết s[2] = ‘i’; 1.2 Khai báo Var : string [ độ dài lớn xâu ]; Ví dụ: var hoten : string[30]; Chú ý: Độ dài lớn xâu bỏ qua Khi độ dài lớn xâu nhận giá trị ngầm định 255 Ví dụ var s : string; 1.3 Các thao tác xử lý xâu: 1.3.1 Phép ghép xâu Kí hiệu dấu (+), sử dụng để ghép nhiều xâu thành Có thể thực phép ghép xâu biến xâu Ví dụ: ‘Tin’ + ‘ Hoc’ = ‘Tin Hoc’; ‘6’ + ‘7’ = ‘67’; 1.3.2 Phép so sánh o Sử dụng phép so sánh = , , , = có thứ tự ưu tiên thấp phép ghép xâu o Quy tắc so sánh: Xâu A lớn xâu B kí tự khác chúng kể từ trái sang xâu A có mã ASCII lớn Ví dụ: ‘207’ > ‘2007’; skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học Nếu A B xâu có độ dài khác A đoạn đầu B A nhỏ B Ví dụ: ‘Tin’ < ‘Tin hoc’ Hai xâu coi chúng giống hồn tồn Ví dụ: ‘Tin hoc’ = ‘Tin hoc’ 1.3.3 Các hàm thủ tục xử lý xâu Thủ tục Delete (st, vt, n) Thực xóa n kí tự biến xâu st vị trí vt Giá trị st Thao tác Kết ‘Tin hoc’ Delete(st,5,3); ‘Tin’ ‘Song Hong’ Delete(st,1,5); ‘Hong’ Thủ tục Insert (s1, s2, vt) Chèn xâu s1 vào xâu s2 bắt đầu vị trí vt Giá trị s1 Giá trị s2 Thao tác Kết ‘PC’ ‘IBM486’ insert(s1, s2, 4); ‘IBM PC 486’ ‘1’ ‘Hinh 2’ Insert(s1,s2,6); ‘Hinh 1.2’ Hàm copy (s, vt, n) Tạo xâu gồm n kí tự liên tiếp vị trí vt xâu s Giá trị s Thao tác Kết ‘Tin hoc’ copy(s, 1, 3); ‘Tin’ ‘Bai hoc thu 9’ Copy(s,9,5); ‘thu 9’ skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học Hàm length(s) Cho giá trị độ dài xâu s Giá trị s Thao tác Kết ‘Tin hoc’ Length(s); ‘500 ky tu’ Length(s); Hàm pos (s1, s2) Cho vị trí xuất xâu s1 xâu s2 Giá trị s2 Thao tác Kết ‘Tin hoc’ Pos(‘oc’,s2); ‘abcdef’ Pos(‘k’,s2); Hàm upcase(ch) Cho chữ in hoa ứng với chữ ch Giá trị ch Thao tác Kết ‘a’ Upcase(ch); ‘A’ ‘A’ Upcase(ch); ‘A’ Thủ tục chuyển xâu sang số val (s, v, c) Chuyển xâu s thành giá trị số lưu vào v, c vị trí gây lỗi trình chuyển đổi, c = chuyển đổi thành công Giá trị s Thao tác Kết ‘1234’ Val(s,i,c); i = 1234; c=0 ‘12c’ Val(s,i,c); Cho c=3 vị trí ký tự c khơng hợp lệ skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học Thủ tục chuyển số sang xâu str(x, s) Chuyển giá trị kiểu số x thành chuỗi biểu diễn lưu s Giá trị x Thao tác Kết 1234 Str(x,s); S=’1234’ 1.1:0:2 Str(x,s); S=’1.10’ Các dạng tập kiểu xâu 2.1 Dạng 1: Kiểm tra xâu thỏa mãn tính chất Phương pháp chung dạng sử dụng thao tác xử lý xâu vào yêu cầu cụ thể, thường vận dụng câu lệnh for to để duyệt phần tử xâu Bài 1(sgk): Nhập vào hai xâu họ tên đưa hình xâu có độ dài dài Nếu hai xâu có độ dài đưa xâu nhập sau * Ý tưởng: để lấy độ dài xâu sử dụng hàm length(s), So sánh độ dài hai xâu câu lệnh if If length(s1) > length(s2) then write(s1) else write(s2); Bài 2(sgk): Kiểm tra xem kí tự xâu a có trùng với kí tự cuối xâu b khơng? * Ý tưởng: Kí tự xâu a: a[1] kí tự cuối xâu b: b[length(b)] sử dụng câu lệnh if để so sánh If a[1] = b[length(b)] then write (‘Trung nhau’) else write (‘khong trung’); Bài (sgk): Đưa xâu theo thứ tự ngược lại 10 skkn Phương pháp giải số dạng tập kiểu liệu xâu đề thi HSG môn tin học inc(d[s2[i]]); for c:=’A’ to ‘Z’ if d[c] then writeln(‘ki tu ‘,c,’ xuat hien ‘,d[c]); END Bài ( Bài 4.39 sách tập): Viết chương trình nhập vào xâu s chứa kí tự in thường chữ số từ đến Đếm đưa hình số kí tự khác xâu s Ví dụ, s = ‘abcabcaab’ số kí tự khác * Ý tưởng: Gộp hai 3, tức sử dụng hai mảng đếm chữ số đếm chữ thường, lúc đưa đếm khác tăng biến tổng lên đơn vị Dạng 3: Mã hóa giải mã Ý tưởng chung dạng mã hóa giải mã: - Sử dụng mảng gán giá trị ban đầu cho kí tự từ A đến Z đến 26 - Theo yêu cầu đề phải xây dựng hàm f - Từ hàm f giải mã ngược trở lại theo quy tắc mã hóa Bài (Bài 4.27 sách tập - Mã Xê Da): Thay chữ chữ đứng sau k vị trí bảng chữ Việc tìm kiếm thay tiến hành vòng tròn Nếu bảng chữ có N chữ sau chữ N-1 chữ N, sau chữ N chữ thứ Cách mã hóa gọi mã Xê da Nhập từ bàn phím số nguyên K(1< K