(SKKN mới NHẤT) giúp học sinh phân dạng, tạo dữ liệu đầu vào và cài đặt chương trình tối ưu khi giải một số bài tập về xâu, nhằm nâng cao chất lượng học sinh giỏi môn tin học

24 8 0
(SKKN mới NHẤT) giúp học sinh phân dạng, tạo dữ liệu đầu vào và cài đặt chương trình tối ưu khi giải một số bài tập về xâu, nhằm nâng cao chất lượng học sinh giỏi môn tin học

Đ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

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT THỌ XUÂN SÁNG KIẾN KINH NGHIỆM TÊN ĐỀ TÀI GIÚP HỌC SINH PHÂN DẠNG, TẠO DỮ LIỆU ĐẦU VÀO VÀ CÀI ĐẶT CHƯƠNG TRÌNH TỐI ƯU KHI GIẢI MỘT SỐ BÀI TẬP VỀ XÂU, NHẰM NÂNG CAO CHẤT LƯỢNG HỌC SINH GIỎI MÔN TIN HỌC Người thực hiện: Lê Thị Hạnh Chức vụ: Giáo viên SKKN thuộc lĩnh vực (mơn): Tin học THANH HỐ NĂM 2020 TIEU LUAN MOI download : skknchat@gmail.com MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 2 NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm 2.2.1 Về phía Phụ huynh học sinh 2.2.2 Về phía Giáo viên 2.2.3 Về phía học sinh .3 2.2.4 Một số tài liệu có 2.3 Các sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề 2.3.1 Phân dạng tập dạng cụ thể để học sinh dễ nhận diện, áp dụng thuật toán phù hợp Dạng Xử lý số nguyên lớn .3 Dạng 2: Tìm số Dạng Biến đổi xâu Dạng 4: Tần suất xuất 10 Dạng Xâu Palindrome 12 Dạng 6: Tìm xâu 14 Dạng 7: Tách từ, xếp xâu 16 2.3.2 Tạo test liệu đầu vào kiểu xâu 17 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường .19 Kết luận, kiến nghị 20 3.1 Kết luận 20 3.2 Kiến nghị 20 TIEU LUAN MOI download : skknchat@gmail.com MỞ ĐẦU 1.1 Lí chọn đề tài Chương trình Tin học 11 THPT chủ yếu trang bị kiến thức kĩ lập trình cho học sinh Đây nội dung tương đối khó với đa số học sinh, đòi hỏi em phải tư suy luận nhiều so với chương trình Tin học lớp 10 lớp 12 Bên cạnh đó, Tin học môn không chọn để xét tuyển tốt nghiệp, cao đẳng, đại học nên phần lớn em quan tâm, đầu tư thời gian cơng sức Tuy nhiên mơn học có nội dung bổ ích thiết thực với em, khơng rèn luyện tư logic mà cịn mang tính sáng tạo giúp cho học sinh có khả phân tích, tổng hợp, trừu tượng hóa, khái quát hóa vấn đề và đặc biệt là phát triển tư Muốn vậy ngoài dạy đại trà Tin học nhà trường nhằm đảm bảo tính phổ thông, hướng nghiệp và dạy nghề thì cần phải tạo điều kiện cho những học sinh có khiếu tin học được phát triển về khả lập trình và giải quyết các bài toán Để đáp ứng yêu cầu Giáo viên phải có kiến thức vững vàng, có cách dạy sáng tạo, phù hợp để kích thích thích thái độ học tập học sinh, cần phải cung cấp cho học sinh những kiến thức về thuật toán và các phương pháp thiết kết thuật toán Học sinh THPT nguồn lao động trẻ sử dụng sau tốt nghiệp việc tiếp cận công nghệ thông tin từ nhà trường phổ thông giúp cho học sinh tự tin cơng việc Nhất học sinh có niềm đam mê CNTT muốn tiếp tục theo đuổi kiến thức vững vàng lập trình từ THPT giúp em nhiều tiếp cận với nhiều ngôn ngữ lập trình khác nhau, giải vấn đề nhanh hơn, triệt để Giữ thành tích học tập cao bạn lớp Cùng với công tác bồi dưỡng học sinh thi Đại học – Cao đẳng thì công tác bồi dưỡng học sinh giỏi là một công tác mũi nhọn của nhà trường Do việc nâng cao chất lượng học sinh giỏi môn Tin học cần thiết cấp bách nhằm góp thêm vào thành tích chung nhà trường Trong quá trình dạy bời dưỡng học sinh giỏi gặp rất nhiều bài toán về Xâu Đây là dạng bài tập khó thường xuất các đề thi học sinh giỏi môn Tin học Rất nhiều học sinh gặp dạng tập bị điểm điểm không cao Nguyên nhân nhiều đó kể đến là: khơng nhận diện dạng tốn để áp dụng cho thuật tốn phù hợp Khơng đọc liệu đầu vào số loại test khó chương trình cho kết output sai hoặc chương trình cho kết output với input có dữ liệu nhỏ với input có dữ liệu lớn chương trình chạy thời gian quy định 1giây/1test (mặc dù kết output đúng) Với mong muốn giúp học sinh giải tốt tập Xâu hiểu biết sâu sắc cách giải tập này, mạnh dạn trình bày sáng kiến kinh nghiệm: “Giúp học sinh phân dạng, tạo liệu đầu vào cài đặt chương trình tới ưu giải số bài tập về xâu, nhằm nâng cao chất lượng học sinh giỏi môn Tin học.” để trao đổi đồng nghiệp TIEU LUAN MOI download : skknchat@gmail.com 1.2 Mục đích nghiên cứu Phân dạng toán xâu, đưa ý tưởng giải quyết, cài đặt chương trình tối ưu giải số tốn cụ thể, qua sai lầm học sinh thường mắc phải, giới thiệu đến em tập từ đến khó đưa vào dạng để xử lý 1.3 Đối tượng nghiên cứu + Học sinh giỏi lớp 11 trường THPT Thọ Xuân + Một số toán Xâu nghiên cứu nhiều cách làm, xét nhiều phương diện như: độ phức tạp, kết output, thời gian thực chương trình 1.4 Phương pháp nghiên cứu + Phương pháp nghiên cứu xây dựng sở lý thuyết: Tôi chủ động tham khảo tài liệu lấy từ nhiều nguồn học liệu mở mạng internet phân tích có hệ thống dạng tập theo nội dung đề + Phương pháp điều tra, khảo sát, thu thập thơng tin: Để có sở cho việc áp dụng phương pháp kinh nghiệm này, tổ chức điều tra, khảo sát, thu thập thông tin thực tế dạy học liên quan đến đề tài số trường địa bàn huyện nhóm đội tuyển Tin học năm nhà trường + Phương pháp thống kê, xử lý số liệu: Với tốn tơi thực nhiều cách khác nhau, dùng phần mềm themis để kiểm tra output thời gian thực chương trình NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm Nghị quyết hội nghị Trung ương VIII khóa XI đề mục tiêu: “Đối với giáo dục phổ thông tập trung phát triển trí tuệ, thể chất, hình thành phẩm chất, lực công dân, phát hiện và bồi dưỡng khiếu, định hướng nghề nghiệp cho học sinh Nâng cao chất lượng giáo dục toàn diện, chú trọng giáo dục lý tưởng truyền thống đạo đức, lối sống, ngoại ngữ, tin học, lực và kỹ thực hành, vận dụng kiến thức vào thực tiễn, phát triển khả sáng tạo và tự học, khuyến khích học tập suốt đời, hoàn thành đào tạo giáo dục phổ thông giai đoạn sau 2015”.[1] Căn vào quan điểm, định hướng 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 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm 2.2.1 Về phía Phụ huynh học sinh Môn Tin học môn học không đưa vào thi tốt nghiệp xét trường Cao đẳng, Đại học Chính đa phần khơng phụ huynh đồng tình lựa chọn vào đội tuyển Tin học phải đầu tư thời gian để tìm hiểu 2.2.2 Về phía Giáo viên Tin học 11 lĩnh vực khó truyền tải, Khơng phải Giáo viên có chun mơn tốt đào tạo học sinh Giỏi, mà Giáo viên có chun mơn tốt phải đồng TIEU LUAN MOI download : skknchat@gmail.com hành với việc có phương pháp giảng dạy lập trình tốt Có đánh giá điểm mạnh, điểm yếu lập trình học sinh, sai lầm lập trình em hay mắc phải 2.2.3 Về phía học sinh Các em thường quen với việc giải toán tìm cách giải cho đáp án theo đề Chính nhiều em thi học sinh giỏi tự tin làm tốt mà khơng kiểm tra cách giải tối ưu chưa? Đã bao quát tất trường hợp xảy chưa? Đã chạy test với liệu lớn hay chưa? Dẫn đến kết kỳ thi thấp 2.2.4 Một số tài liệu có Trên thực tế có số tài liệu đề cập đến tập Xâu, tài liệu đưa thuật toán chương trình giải số tập cụ thể làm ví dụ minh họa cho kỹ thuật lập trình nghiên cứu mà chưa khái quát dạng Các chương trình mà số tài liệu đưa khó hiểu phức tạp khơng phù hợp lực học sinh Trường THPT Thọ Xuân 5, chưa bám sát vào cấu trúc thi học sinh giỏi Tỉnh Khi nghiên cứu tài liệu này, không học sinh mà giáo viên lúng túng, mơ hồ, áp dụng cách máy móc mà chưa biết nên chọn cách làm nào? Cách làm tối ưu hơn? 2.3 Các sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề Từ thực trạng trên, qua năm đứng đội tuyển từ 2016- 2019 dạy kiểu liệu Xâu giải sau: 2.3.1 Phân dạng tập dạng cụ thể để học sinh dễ nhận diện, áp dụng thuật toán phù hợp Dạng Xử lý số nguyên lớn           Phương pháp chung: Để thực phép tính xử lý với số nguyên phạm vi biểu diễn cung cấp, cách đơn giản sử dụng xâu kí tự để biểu diễn với ký tự xâu tương ứng với chữ số số nguyên lớn tính từ trái qua phải Các tập áp dụng: Bài 1: Cộng, trừ số nguyên lớn           Cho hai số nguyên dương lớn có có độ dài không 200 chữ số Hãy đưa tổng hiệu số nguyên           * Ý tưởng: Sử dụng xâu để lưu số lớn Trước hết cho xâu cách chèn thêm nhiều ký tự '0' vào trước xâu ngắn Việc thực cộng số thực cách cộng cặp ký tự số tương ứng từ phải sang trái xâu           * Đoạn chương trình: function  Add(s1,s2:string):string; var  i,nho,z,x,y:longint;  s:string; begin    while length(s1)=s2 then sub:=sub1(s1,s2)       else  sub:='-'+sub1(s2,s1); end; Bài : Số nhỏ (Đề thi học sinh giỏi lớp 11 tỉnh Hà Tĩnh năm 2008-2009)           Một số nguyên dương n lớn cho P (P ≤ 20) số nguyên dương A P xâu ký tự s1, s2, ,sp (độ dài xâu không vượt 255) gồm số thập phân cách viết s1 liên tiếp A1 lần viết s2 liên tiếp A2 lần, , viết sp liên tiếp Ap lần           Giả sử với số n cho cho trước số nguyên dương k nhỏ số chữ số N Hãy tìm cách gạch k chữ số N để nhận số có giá trị nhỏ [2] Ví dụ: Vào Kết p=3, k =11 44 a1=3, a2 = 4, a3 = s1 = 123, s2=0, s3 = 45 * Ý tưởng : Ở toán N số nguyên lớn nên ta sử dụng xâu để biểu diễn nó, giả sử số n lớn ghép lại m ký tự khác sau xóa ta lại mk chữ số n Lần lượt tìm m chữ số nhỏ xâu cịn lại ta kết cần tìm Procedure       xuly; var m:longint; sm:ansistring; code:integer;     Begin      j:=0;      m:=length(st)-k;       Repeat          sm:='9';          dec(m);              For i:=j+1 to length(st)-m                 If sm>st[i] then                   Begin                      sm:=st[i];                      j:=i;                   End;           kq:=kq+sm;       Until m=0;      Val(kq,m,code);      Write(m);     End; Bài 3: Ghép số lớn (http://vn.spoj.com/problems/NUMCON/)        Vaxia viết số lớn cuộn giấy dài muốn khoe với anh trai Petia thành vừa đạt Tuy nhiên,  Vaxia vừa khỏi phòng để gọi TIEU LUAN MOI download : skknchat@gmail.com anh trai em Kachia chạy vào phịng xé rách cuộn giấy thành số mảnh Kết mảnh có vài kí số theo thứ tự viết Bây Vaxia nhớ xác viết số Vaxia nhớ số lớn Để làm hài lịng cậu em trai, Petia định truy tìm  số lớn mà Vaxia viết lên cuộn giây trước bị xé Bạn giúp Petia làm việc [2] Dữ liệu vào:           Ghi nhiều dòng Mỗi dòng ghi dãy kí số Số dịng khơng vượt q 100 Mỗi dịng ghi từ đến 100 kí số Bảo đảm có dịng mà kí số khác Dữ liệu ra:           Ghi số lớn viết cuộn giấy trước bị xé rách Ví dụ Input Output 66220004 20 004 66 3 * Ý tưởng: Lưu số dạng mảng kiểu xâu, thực xếp mảng theo thứ tự tăng dần theo tiêu chí xếp phần tử s[i] đứng trước phần s[j] (s[i] ghép với s[j]) > (s[j] ghép với s[i]) Phép cộng phép ghép hai xâu Kết toán ghi xâu s[i] xếp var s: array[0 1000] of string; i,n,j: word; procedure qsort(L,H: word); var tg,k:string; begin if l>=h then exit; i:=l; j:=h; tg:=s[(l+h) div 2]; repeat while tg+s[i]s[j]+tg dec(j); if i st[i+1] ( Nếu tìm số bé )thì xóa kí tự st[i] ngắt Nếu khơng có trường hợp thỏa mãn xóa kí tự cuối xâu Cài đặt thuật toán: For i:=1 to K Begin Kt:=true; For j:=1 to length(st)- if st[j] > st[j+1] then Begin Delete(st,j,1); Kt:= false; Break; End; If kt then delete(st,length(st),1); End; Bài tốn áp dụng: Cho số nguyên dương có N chữ số Hãy xóa K số để số sau xóa số bé Dữ liệu vào: Vào từ file văn XOASO.INP gồm + Dòng số nguyên dương có N chữ số (N≤ 10 4) + Dịng thứ hai số nguyên dương K( K< N) Kết quả: Ghi file XOASO.OUT gồm số nguyên bé sau xóa K chữ số XOASO.INP XOASO.OUT 15132334312122345 11233312122345 Loại 2: Bỏ số kí tự để số có K chữ số số bé lớn TIEU LUAN MOI download : skknchat@gmail.com * Ý tưởng: Gọi xâu đầu vào xâu s1, sử dụng vịng lắp while vị trí đánh dấu j để duyệt từ đầu xâu đến cuối xâu Nếu mà s1[j] < s1[j+1] ( Nếu tìm số lớn ) xóa kí tự s1[j] đưa j lại vị trí đầu tiên, ngược lại tăng j lên Kết tốn K kí tự đầu xâu s1 Cài đặt thuật toán: j := ; while ( length(s1) > ) and ( j < length(s1) ) if s1[j] < s1[j+1] then begin delete(s1,j,1); j := ; end else inc(j); s1 := copy(s1,1,5); Bài tốn áp dụng: Cho trước xâu kí tự, có chữ số Hãy loại bỏ số kí tự khỏi xâu cho kí tự cuối cịn lại theo thứ tự tạo thành số lớn Dữ liệu vào: Cho tệp Bai1.inp Kết quả: ghi vào tệp bai1.out Bai1.inp Bai1.out 13a7b48cb7d9e68f7 89687 Dạng Biến đổi xâu           Phương pháp chung: Đây dạng thường gặp, việc biến đổi xâu thực ký tự xâu nên cần nắm rõ hàm, thủ tục kiểu liệu xâu để vân dụng cách linh hoạt vào tập cụ thể Bài tốn áp dụng: Bài Rút gọn xâu (Đề thi HSG lớp 12 tỉnh Nghệ An năm 2009-2010) Cho xâu S gồm chữ in thường với độ dài tối đa 250 ký tự Em viết chương trình để tạo xâu SG từ xâu S cách xóa ký tự liên tiếp giống xâu S để lại kí tự đại diện đoạn [2] Dữ liệu vào: Đọc từ file văn XAUGON.INP chứa xâu S gồm chữ in thường.  Kết quả: Ghi file văn XAUGON.OUT xâu SG tìm Ví dụ: XAUGON.INP XAUGON.OUT hhooocccsssiiiiinnnhhh hocsinh           * Ý tưởng: Duyệt từ đầu xâu đến cuối xâu, gặp ký tự liên tiếp khác giống xóa ký tự TIEU LUAN MOI download : skknchat@gmail.com Cài đặt thuật toán: procedure  xuly; var  ch,kt:char; i,max,dem:longint; begin    assign(f,fo); rewrite(f);    i:=1;    while i delete (s,pos('( ',s)+1,1); while pos(' )',s) delete (s,pos(' )',s),1); for i:= to begin st := ' '+ a[i] ; while pos(st,s) TIEU LUAN MOI download : skknchat@gmail.com delete(s,pos(st,s),1); while (pos(a[i],s) > 0) and (pos(a[i],s) < length(s)) and (s[pos(a[i],s)+1] ' ') insert(' ',s,pos(a[i],s)+1); end; Dạng 4: Tần suất xuất Phương pháp chung: Với dạng tập ta nên sử dụng thuật toán đếm phân phối Bài 1: Kí tự khác ( Đề thi HSG Tỉnh Thanh Hóa năm 2015-2016).[2] Cho xâu S gồm kí tự chữ tiếng anh chữ số (có phân biệt chữ in hoa, in thường) Yêu cầu: Hãy xác định số kí tự khác xâu S kí tự xuất lần Dữ liệu vào: Vào từ file văn BAI2.INP gồm dịng xâu kí tự S (có độ dài khơng q 255) Kết quả: Kết ghi file văn BAI2.OUT gồm: - Dòng đầu ghi số kí tự khác - Các dịng tiếp theo, dịng ghi kí tự xuất xâu S số lần xuất Các kí tự đưa theo thứ tự chữ in hoa, in thường, chữ số Các chữ cái, chữ số đưa theo thứ tự từ điển Ví dụ: BAI2.INP AzB1C9A1BC BAI2.OUT A2 B2 C2 z1 12 91 * Ý tưởng:           - Với xâu có độ dài tối đa 106 ta sử dụng khai báo kiểu xâu Ansistring           - Sử dụng mảng đánh dấu B['a' 'z'] of longint để đếm số lần xuất ký tự xâu s với B[ch] = d có nghĩa ký tự ch xuất d lần           - Lần theo giá trị mảng B ta số lượng ký tự khác (tức số lượng phần tử có giá trị khác khơng mảng B) tìm giá trị lớn mảng B ta tìm ký tự xuất nhiều lần Cài đặt thuật toán: procedure  xuly; var  ch,kt:char; i,max,dem:longint; begin or ch:='a' to 'z' b[ch]:=0; for i:=1 to length(s) inc(b[s[i]]); TIEU LUAN MOI download : skknchat@gmail.com dem:=0;  max:=0; for ch:='a' to 'z' begin if b[ch]0 then inc(dem); if b[ch]>max then begin max:=b[ch]; kt:=ch; end; end;   writeln(dem, ' ', max); end; Bài 2: Mã hóa xâu ( Đề thi khảo sát HSG trường THPT Thọ Xuân 5) Bình tìm hiểu kĩ thuật mật mã hóa đơn giản Với tin cần mã hóa, phương pháp mã hóa thành xâu với quy tắc sau: - Xâu mã hóa lưu lại kí tự chữ xuất Nói cách khác, kí tự xuất lớn lần trở lên, bị xóa bỏ, giữ lại kí tự - Giá trị mật mã xâu tính tổng số lần xuất kí tự có tần suất xuất lớn lần Các bạn Bình giải toán nhé! Dữ liệu vào: Vào từ tệp BAI2.INP Một dịng gồm nhiều chuỗi kí tự, có tổng độ dài khơng vượt q 10 (Các kí tự chữ in hoa chữ thường.) Dữ liệu ra: ghi dòng số giá trị mật mã xâu xâu sau mã hóa vào tệp BAI2.OUT BAI2.INP BAI2.OUT MOI CAC BAN GHE THAM 30 moicabnghetxul THO XUAN NAM LAN NUA NHE Ý tưởng: sử dụng thuật toán đếm phân phối, tìm tần suất xuất kí tự, kí tự xuất > lần trở lên, bị xóa bỏ, giữ lại kí tự đầu tiên, tần suất > lần Lưu ý: Chuyển đổi liệu đầu vào đồng thành chữ thường, kiểm soát khoảng trắng xâu Cài đặt thuật toán: procedure xuli; var i,j,res:data; c:char; begin res:=0; fillchar(dd,sizeof(dd),0); TIEU LUAN MOI download : skknchat@gmail.com s:=upcase(s); for i:=1 to length(s) if s[i] in ['A' 'Z'] then s[i]:=chr(ord(s[i])+32); for i:=1 to length(s) if s[i]' ' then inc(dd[s[i]]); res:=0; for c:='A' to 'z' if dd[c]>1 then inc(res,dd[c]); write(f2,res,' '); fillchar(dd,sizeof(dd),0); for i:=1 to length(s) if (s[i]' ') and (dd[s[i]]=0) then begin dd[s[i]]:=1; write(f2,s[i]); end; Dạng Xâu Palindrome Phương pháp chung: Xâu Palindrome hay cịn gọi xâu đối xứng, có nghĩa xâu đọc ký tự xâu từ trái sang phải giống từ phải sang trái xâu gọi xâu Palinhdrome           Với tập kiểm tra xâu Palindrome hay tìm kiếm xâu có tính chất Palindrome trước hết nên xây dựng hàm kiểm tra tính chất đối xứng xâu với độ phức tạp O(n), sở giải tập khó Xâu Palindrome           Cho xâu S có độ dài không vượt 10 Kiểm tra xem xâu S có phải xâu Palindrome hay khơng?           * Ý tưởng: Một xâu s có tính chất đối xứng s[i] = s[n-i+1] với i chạy từ đến length(s) div Dựa sở ta xây dựng hàm kiểm tra           * Chương trình tham khảo Var s:ansitring function palindrome(s: string): boolean; var i, n : integer; begin n := length(s);           for i := to (n div 2)                    if s[i] s[n+1-i] then  begin palindrome := false; exit; end;           palindrome := true; end; begin   write('nhap s:'); readln(s);   If palindrome(s) then write('xau doi xung') else write('xau khong doi xung'); end Bài tập áp dụng: TIEU LUAN MOI download : skknchat@gmail.com Bài 1: Một xâu kí tự gọi xâu Palindrome ( đối xứng ) ta đọc từ trái sang phải hay đọc từ phải sang trái giống nhau.( Đề thi HSG Tỉnh hóa năm 2012-2013) [2] Yêu cầu: Cho trước xâu kí tự S Hãy xác định số xâu đối xứng xâu Một kí tự coi xâu đối xứng Xâu S xâu gồm số kí tự liên tiếp S Dữ liệu vào: Từ tệp văn BAI2.INP: Dòng thứ ghi số nguyên dương N (N output sai XAU.INP XAU.OUT aba aababababa Bài 3. Chiếc nón kỳ diệu (Đề thi học sinh giỏi lớp 12 tỉnh Phú Yên năm học 20092010) [2]           Một lần chương trình “Chiếc nón diệu kỳ”, phần chơi dành cho khán giả, thay đốn chữ khi, người dẫn chương trình tự quay “chiếc nón” cho lên hình trước mặt khán giả trường quay số ô mà kim thị qua “Chiếc nón” quay số ngun vịng, TIEU LUAN MOI download : skknchat@gmail.com nên dãy số lên hình, số cuối trùng với số Sau đó, người dẫn chương trình mời khán giả cuối trường quay (chỉ nhìn thấy hình mà khơng nhìn thấy “chiếc nón”) cho biết nón có tối thiểu ơ? u cầu: Hãy trả lời câu hỏi người dẫn chương trình Dữ liệu: Vào từ tập tin văn CNDK.INP gồm hai dòng:           + Dòng ghi số N số lượng số lên hình, (2 ≤ N≤ 100)           + Dịng ghi N số, số có giá trị khơng 32000 Kết quả: Ghi tập tin văn CNDK.OUT số tối thiểu “chiếc nón” Lưu ý: Các số dịng cách khoảng trắng Ví dụ:      CNDK.INP CNDK.OUT 13 5313525313525           * Ý tưởng: Nhận thấy ghép toàn số lên hình (trừ số cuối cùng) vào xâu S xâu S ln tồn xâu s1 dài mà ghép liên tiếp số lần xâu s1 ta xâu s Số lần xuất xâu s1 kết cần tìm Bài tốn trở thành tìm xâu dài s1 Cài đặt thuật toán: s:='';   for i:=1 to n    begin read(f,x); str(x,s1); s:=s+s1; end;      dem:=0;   delete(s,length(s),1);   for i:=1 to length(s)     begin      s2:=s; s1:=copy(s2,1,i); while (pos(s1,s2)0) and (length(s2)0) delete(s2,1,i);       if length(s2)=0 then           begin dem:=i; write(dem); break; end; end; Dạng 7: Tách từ, xếp xâu Phương pháp chung: dựa vào tính chất từ xâu ( từ phân cách dấu cách ) ta sử dụng hàm pos(‘ ‘,s2) để tách từ xâu, sau sử dụng thuật tốn xếp quick sort để xếp từ xâu Cài đặt thuật toán tách từ: procedure    tachtu; var x,tu:ansistring; dem:longint; begin   n:=length(s); x:=s; dem:=0;   while (pos(' ',x)0) and (length(x)>=0)     begin  i:=pos(' ',x); tu:=copy(x,1,i); inc(dem); a[dem]:=tu; delete(x,1,i);  end; TIEU LUAN MOI download : skknchat@gmail.com Bài toán áp dụng: Bài 1.  Sắp xếp xâu (Đề thi học sinh giỏi lớp 12 tỉnh Quảng Bình năm học 20122013) [2] Người ta định nghĩa: Từ nhóm ký tự đứng liền Cho xâu St gồm ký tự lấy từ tập ‘a’ ‘z’ dấu cách Xâu không 20 từ, từ dài không 10 ký tự Yêu cầu: Sắp xếp từ xâu ký tự theo thứ tự không giảm độ dài từ xâu St Dữ liệu vào: Cho file văn SAPXAU.INP, có cấu trúc: - Dịng 1: Ghi xâu ký tự St (có từ).  Dữ liệu ra: Ghi file văn SAPXAU.OUT, theo cấu trúc: - Dòng 1: Ghi từ xâu ký tự sau xếp Các từ ghi cách dấu cách Ví dụ: SAPXAU.INP SAPXAU.OUT acb   abcde     abcd   abc acb abc abcd abcde Bài 2. Sắp xếp xâu (Đề thi học sinh giỏi lớp 11 tỉnh Quảng Bình năm học 20112012)    Mỗi xâu kí tự St lấy từ tập ký tự ’a’ ’z’, ’0’ ’9’ có độ dài tối đa 1000 kí tự Cho N xâu kí tự St (0 < N ≤ 200).  Yêu cầu: Thực xếp N xâu kí tự St theo thứ thự khơng giảm số lượng kí tự chữ số có xâu St Dữ liệu vào: Cho file văn SAPXEP.INP có cấu trúc sau: - Dòng 1:  Ghi số nguyên N - N dòng tiếp theo:  Mỗi dòng ghi xâu St Dữ liệu ra: Ghi file văn SAPXEP.OUT theo cấu trúc sau: - Ghi N dòng: Mỗi dòng ghi xâu St, xâu ghi theo thứ tự xếp   SAPXEP.INP SAPXEP.OUT cb1 abc1x2y3z 1cd7hd cb1 abc1x2y3z 1cd7hd 2.3.2 Tạo test liệu đầu vào kiểu xâu Hiện khơng có phần mềm để tạo test Mà tạo test thông qua code đúng: đưa input vào phải cho output đắn (không cần mặt thời gian) Khi có code cơng việc cịn lại tạo file input Để tạo file input tốt file input phải quét hết trường hợp toán Để tạo file input cho kiểu liệu xâu sử dụng: + Bằng tay: gõ trực tiếp liệu từ bàn phím vào + Dùng chương trình để sinh file input Thơng thường dùng chương trình để sinh file input có liệu đặc biệt ngẫu nhiên Đối với sinh liệu ngẫu nhiên ta ý hàm thủ tục : randomize; random(n); chr(n); ord(ch); TIEU LUAN MOI download : skknchat@gmail.com + Tạo file input bai1.inp gồm dòng đầu số nguyên dương N (N ≤ 10 6), dòng thứ hai xâu ký tự ngẫu nhiên độ dài N gồm chữ từ ‘a’ đến ‘z’ const fo='bai1.inp'; maxn=round(1e6); var i,n: longint; BEGIN randomize; assign(output,fo); rewrite(output); n:= random(maxn)+1;writeln(n); for i:= to n write(chr(ord('a')+ random(ord('z')-ord('a')+1))); close(output); END + Tạo file input bai1.inp gồm dòng đầu số nguyên dương N (N ≤ 10 6), dòng thứ hai xâu ký tự ngẫu nhiên độ dài N gồm chữ từ latin const fo='bai1.inp'; maxn=round(1e6); var i,j,n: longint; ch: char; a: array[1 255] of char; BEGIN randomize; assign(output,fo); rewrite(output); n:= random(maxn)+1;writeln(n); i:=0; for ch:='a' to 'z' begin inc(i); a[i]:=ch; end; for ch:= 'A' to 'Z' begin inc(i); a[i]:=ch; end; for j:=1 to n write(a[random(i)+1]); close(output); END + Tạo file input bai1.inp gồm dòng đầu số nguyên dương K (K≤ 10 4), K dòng xâu ký tự ngẫu nhiên độ dài N gồm chữ từ ‘a’ đến ‘z’ const fo='MANGXAU.inp'; MAXK=ROUND(10000); maxn=round(10000); var i,n,K,J: longint; BEGIN randomize; assign(output,fo); rewrite(output); n:= random(maxn)+1;K:=RANDOM(maxk)+1;writeln(K); TIEU LUAN MOI download : skknchat@gmail.com for j:=1 to k BEGIN for i:= to n write(chr(ord('a')+ random(ord('z')-ord('a')+1))); WRITELN; END; close(output); END + Tạo file input bai1.inp gồm dòng đầu số nguyên dương K (K≤ 10 4), K dòng xâu ký tự ngẫu nhiên độ dài N gồm chữ latin const fo='taoxau_inhoa_inthuong.inp'; maxk=1000; maxn=round(1000); var g,i,j,n,k: longint; ch: char; a: array[1 255] of char; BEGIN randomize; assign(output,fo); rewrite(output); n:= random(maxn)+1; k:=random(maxk)+1;writeln(k); i:=0; for ch:='a' to 'z' begin inc(i);a[i]:=ch; end; for ch:= 'A' to 'Z' begin inc(i);a[i]:=ch; end; i:=n; for j:=1 to maxk begin for g:=1 to n write(a[random(g)+1]); writeln; end; close(output); END 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường Qua lần thi khảo sát trường liên trường chất lượng học sinh giỏi nâng lên, tập xâu em lấy điểm gần trọn vẹn chất lượng đề có độ khó tăng dần Kết điểm thi học sinh giỏi cấp tỉnh năm 2018 - 2019 môn Tin học THPT học sinh trường tơi có tiến rõ rệt: em tham gia thi đạt giải cả em với giải ba, giải khuyến khích (trong năm học trước không có học sinh nào có giải) Kết HSG năm 2016 -2017 TIEU LUAN MOI download : skknchat@gmail.com STT HỌ TÊN ĐIỂM Lê Văn Thọ 7/20 Kết HSG năm 2017 -2018 STT HỌ TÊN ĐIỂM Lê Văn Bình 8/20 Lê Văn Trà 10/20 Kết HSG năm 2018 -2019 STT HỌ TÊN ĐIỂM Lê Văn Bình 15/20 Lê Văn Trà 14/20 Kết luận, kiến nghị 3.1 Kết luận Bài tập kiểu xâu nhiều đa dạng, sáng kiến kinh nghiệm chia tập thành dạng cụ thể (chỉ số dạng thường gặp) Đối với dạng xây dựng nhiều cách giải sau sử dụng phần mềm themis để đo thời gian độ phức tạp để cuối giới thiệu đên đồng nghiệp cách giải tối ưu cho dạng Đề tài kinh nghiệm mà thân đúc rút trình thực nhiệm vụ giảng dạy đội tuyển trường THPT Thọ Xuân Tôi nhận thấy áp dụng đề tài, có nhiều chuyển biến tích cực hiệu chất lượng giảng dạy đội tuyển Đề tài gợi ý thú vị, tài liệu tham khảo cho đồng nghiệp trẻ chưa có nhiều kinh nghiệm công tác bồi dưỡng học sinh giỏi Vì vậy, tơi mạnh dạn trình bày đồng nghiệp để trao đổi, rút kinh nghiệm, mong nhận đóng góp để hồn thiện kinh nghiệm giảng dạy cho thân 3.2 Kiến nghị Để sáng kiến kinh nghiệm áp dụng mang lại hiệu tốt nhất, thân đề xuất với Ban chuyên môn trường THPT Thọ Xuân đợt thi khảo sát chất lượng đội tuyển liên trường tạo thêm đợt giao lưu học hỏi theo chuyên đề Đề xuất với Sở giáo dục tạo thêm đợt bồi dưỡng chuyên môn nghiệp vụ giảng dạy đội tuyển học sinh giỏi XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày 14 tháng năm 2020 Tôi xin cam đoan SKKN viết, khơng chép nội dung người khác Lê Thị Hạnh TIEU LUAN MOI download : skknchat@gmail.com TÀI LIỆU THAM KHẢO [1] Nghị số 29-NQ/TW ngày 4/11/2013 Hội nghị Trung ương khóa XI đổi bản, toàn diện giáo dục đào tạo [2] Tham khảo số tài liệu internet -Nguồn: https://down.vn/s/đề-thi–học–sinh-giỏi–11-môn–tin– học - Nguồn: https://kienthuc24h.com/ [3] Tài liệu giáo khoa chuyên tin tập TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC CÁC ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG ĐÁNH GIÁ XẾP LOẠI CẤP PHÒNG GD&ĐT, CẤP SỞ GD&ĐT VÀ CÁC CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN Họ tên tác giả: Lê Thị Hạnh Chức vụ đơn vị công tác: Giáo viên, Trường THPT Thọ Xuân TT Cấp đánh giá xếp loại Tên đề tài SKKN (Phòng, Sở, Tỉnh ) Kinh nghiệm giáo dục đạo đức Sở GD &ĐT học sinh thông qua tiết sinh Thanh Hóa hoạt lớp chủ nhiệm Một số kinh nghiệm giúp học Sở GD &ĐT sinh phân biệt vận dụng có Thanh Hóa hiệu vịng lặp for - do, while - thông qua việc hướng dẫn học sinh thực tiết 33, " Ôn tập cấu trúc rẽ nhánh lặp "- Tin học 11 Ban Kết đánh giá xếp loại (A, B, C) c c Năm học đánh giá xếp loại 2012-2013 2016-2017 TIEU LUAN MOI download : skknchat@gmail.com ... muốn giúp học sinh giải tốt tập Xâu hiểu biết sâu sắc cách giải tập này, mạnh dạn trình bày sáng kiến kinh nghiệm: ? ?Giúp học sinh phân dạng, tạo liệu đầu vào cài đặt chương trình tới ưu. .. tưởng giải quyết, cài đặt chương trình tối ưu giải số tốn cụ thể, qua sai lầm học sinh thường mắc phải, giới thiệu đến em tập từ đến khó đưa vào dạng để xử lý 1.3 Đối tượng nghiên cứu + Học sinh giỏi. .. 2.2.1 Về phía Phụ huynh học sinh Mơn Tin học môn học không đưa vào thi tốt nghiệp xét trường Cao đẳng, Đại học Chính đa phần khơng phụ huynh đồng tình lựa chọn vào đội tuyển Tin học phải đầu tư

Ngày đăng: 10/07/2022, 06:55

Mục lục

    Người thực hiện: Lê Thị Hạnh

    2. NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM

    Hiện nay không có phần mềm nào để tạo ra test. Mà chúng ta tạo ra test thông qua code đúng: khi đưa input vào thì phải cho ra output đúng đắn (không cần về mặt thời gian). Khi chúng ta đã có code đúng thì công việc còn lại là tạo ra được các file input. Để tạo ra được file input tốt thì các file input đó phải quét hết được các trường hợp của bài toán. Để tạo file input cho kiểu dữ liệu xâu chúng ta có thể sử dụng:

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

Tài liệu liên quan