SKKN 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
Bạn đang xem 20 trang mẫu của tài liệu "SKKN 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ải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- skkn_phuong_phap_giai_mot_so_dang_bai_tap_ve_kieu_du_lieu_xa.pdf
- bìa SKKN.doc
- Đơn.doc
Nội dung tóm tắt: SKKN 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
- 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 { Thân chương trình xử lý} S:= s1+s1; d:=0; n:= length(s); for i:= n+1 to 2*n do begin s3:= s1 + s[i]; if DX (s3) then d:=d+1; end; Chú ý: với học sinh đại trà chưa học đến chương trình con thì trong phần thân chương trình sẽ kiểm tra tính đối sứng của s3 như trong hàm viết ở trên Bài 6 (Đề thi hsg lớp 10 năm 2010 - 2011) Đưa ra xâu con đối xứng có độ dài dài nhất. Bài này có hai cách để làm là sử dụng quy hoạch động và duyệt bình thường, nhưng xuất phát từ thực tế giảng dạy học sinh trường THPT Đồng Đậu khó hình dung được bằng cách quy hoạch động nên ở đây tôi sử dụng cách duyệt và kiểm tra tính đối xứng thông thường. Để tối ưu lời giải các bạn có thể tìm hiểu thêm cách sử dụng quy hoạch động cho bài toán trên. * Ý tưởng: Tạo các xâu con có độ dài là 2, 3, đồng thời kiểm tra luôn xâu con đó có đối xứng không? Nếu đối xứng thì so sánh độ dài của xâu con đó với giá trị max trước đó, nếu lớn hơn thì gán lại max. * Đoạn chương trình: n:=length(s); max:=1; for k:=1 to n – 1 do 13
- 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 for i:=1 to n – k do begin j:= i+1; s1:= copy(s, i, j – i+1); KT:=true; l:=length(s1); for h:=1 to l div 2 do if s1[h] <> s1[l-h+1] then KT:=false; if (KT) and (max<l) then begin max:=l; x:=s1; end; end; write(x); Bài 7(Bài 4.25 sách bài tập) Xâu S chỉ bao gồm ngoặc mở ‘(‘ và ngoặc đóng ‘)’. Xâu S xác định một cách đặt ngoặc đúng, nếu thỏa mãn các điều kiện: o Số ngoặc mở = số ngoặc đóng. o Nếu duyệt từ trái sang phải thì số lượng ngoặc mở luôn luôn lớn hơn hoặc bằng số lượng ngoặc đóng Ví dụ, xâu ‘((()(())))’ xác định một cách đặt ngoặc đúng. Còn xâu ‘(()()))(())’ là một cách đặt ngoặc sai Viết đoạn chương trình kiểm tra xem xâu s có xác định một cách đặt ngoặc đúng hay không? * Ý tưởng: Dùng biến d với giá trị ban đầu = 0; Duyệt từ trái qua phải gặp dấu ngoặc mở thì tăng d lên 1, gặp dấu ngoặc đóng thì giảm d một đơn vị. Biểu thức ngoặc là sai khi gặp d= -1 hoặc hết biểu thức ngoặc d vẫn lớn hơn 0; d:=0; kt:= true; for i:= 1 to length(s) do 14
- 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 begin if s[i]=’(‘ then inc(d) else dec(d); if d 0 then kt:=false; Bài 8( Đề thi hsg lớp 11 năm 2012 – 2013) Cho xâu S độ dài không quá 250 chỉ gồm các kí tự ngoặc đóng và ngoặc mở. Xác định số cặp chỉ số (p, q) sao cho p<q và s[p] = s[p+1] = ‘(‘; s[q] = s[q+1] = ‘)’ * Ý tưởng: Vì p < q nên sử dụng một vòng lặp for duyệt từ đầu xâu đến độ dài xâu – 2 và một vòng for duyệt từ cuối xâu đến p+1, kiểm tra điều kiện đề bài cho có thỏa mãn không, nếu thỏa mãn thì tăng biến đếm. * Đoạn chương trình: d:=0; for i:=1 to length(s)-2 do for j:=length(s) downto i+1 do if (s[i]=s[i+1]) and (s[j]=s[j+1]) and (s[i]='(') and (s[j]=')')then d:=d+1; write(d); Dạng 2: Đếm số lần xuất hiện của các kí tự trong xâu Ý tưởng chung của dạng 2 là thường sử dụng phương pháp duyệt (câu lênh for) và kiểm tra điều kiện đi kèm (câu lệnh if), sử dụng mảng đếm với các chỉ số tương ứng mà đề bài yêu cầu. 15
- 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 Bài 1(bài 10 sgk): Viết chương trình nhập vào từ bàn phím một xâu kí tự S có độ dài không quá 100. Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu S. Thông báo kết quả ra màn hình. * Ý tưởng: Đi từ đầu xâu đến cuối xâu, kiểm tra lần lượt từng kí tự có nằm trong khoảng từ ‘0’ đến ‘9’ không? Nếu nằm thì tăng biến đếm lên 1. * Đoạn chương trình: dem:=0; for i:=1 to length(s) do if (s[i]>=’0’) and (s[i]<=’9’) then dem:=dem+1; writeln(‘Co ‘,dem,’ chu so xuat hien trong xau s’); Bài 2 ( Bài 7.14 sách bài tập): Cho số nguyên N ở hệ 10 dưới dạng xâu S không quá 50 chữ số và không có số 0 ở đầu. Thống kê của N được xây dựng như sau: - Tính tần số xuất hiện các chữ số của N. - Viết liên tiếp tần số và chữ số theo thứ tự tăng dần của các chữ số khác nhau trong N. Ví dụ, với N=353 ta có tần số xuất hiện của 3 là 2, của 5 là 1. Như vậy thống kê sẽ viết là 2315. * Phân tích đề: Bài 2 phát triển từ bài 1. Ở bài trên là chỉ thông báo có bao nhiêu chữ số, nhưng ở bài này lại cụ thể là mỗi chữ số xuất hiện bao nhiêu lần. * Ý tưởng: - Khởi tạo một mảng d với chỉ số là các ký tự chữ số từ ‘0’ đến ‘9’ 16
- 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 - Duyệt từ đầu xâu đến cuối xâu, với mỗi ký tự S[i] của N tăng tương ứng phần tử có chỉ số là S[i] trong mang d lên 1 đơn vị . * Đoạn chương trình: var d:array[‘0’ ’9’] of byte; c : char; BEGIN for c:=’0’ to ‘9’ do d[c]:=0; for i:=1 to length(s) do inc(d[s[i]]); for c:=’0’ to ‘9’ do writeln(d[c],’ ‘, c); END. Bài 3 (sgk): Thông báo số lần xuất hiện của mỗi chữ cái tiếng anh trong s (không phân biệt chữ hoa hay thường) * Ý tưởng: Tạo ra xâu s2 bằng cách lấy các ký tự là chữ cái trong xâu s1 sau khi đã chuyển thành chữ in hoa. Dùng mảng d để đếm như bài số 2. * Đoạn chương trình: var d:array[‘A’ ’Z’] of byte; BEGIN N:=length(s1); s2:=’’; For i:= 1 to n do if (s1[i]>’A’) and (s1[i]<’Z’) then s2:=s2+upcase(s1[i]); for c:=’A’ to ‘Z’ do d[c]:=0; for i:=1 to n do 17
- 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 inc(d[s2[i]]); for c:=’A’ to ‘Z’ do if d[c] <> 0 then writeln(‘ki tu ‘,c,’ xuat hien ‘,d[c]); END. Bài 4 ( Bài 4.39 sách bài tập): Viết chương trình nhập vào xâu s chứa các kí tự in thường và các chữ số từ 0 đến 9. Đếm và đưa ra màn hình số kí tự khác nhau trong xâu s. Ví dụ, nếu s = ‘abcabcaab’ thì số kí tự khác nhau là 3 * Ý tưởng: Gộp của hai bài 2 và 3, tức là sử dụng hai mảng đếm chữ số và đếm chữ thường, lúc đưa ra thì nếu đếm khác 0 thì tăng biến tổng lên 1 đơn vị. Dạng 3: Mã hóa và giải mã Ý tưởng chung của dạng bài mã hóa và giải mã: - Sử dụng mảng gán giá trị ban đầu cho các kí tự từ A đến Z là 1 đến 26. - Theo yêu cầu đề bài phải xây dựng được hàm f. - Từ hàm f giải mã ngược trở lại theo quy tắc mã hóa. Bài 1 (Bài 4.27 sách bài tập - Mã Xê Da): Thay mỗi chữ cái bằng chữ cái đứng sau nó k vị trí trong bảng chữ cái. Việc tìm kiếm thay thế được tiến hành vòng tròn. Nếu bảng chữ cái có N chữ thì sau chữ cái N-1 là chữ cái N, sau chữ cái N là chữ cái thứ nhất Cách mã hóa này gọi là mã Xê da. Nhập từ bàn phím số nguyên K(1< K <= 26) và xâu s không quá 255 kí tự. Mã hóa theo quy tắc Xê da và đưa kết quả ra màn hình. Ví dụ, xâu s = ‘TIN HOC’ với K = 2 sẽ được mã hóa thành ‘VKP JQE’ * Ý tưởng: Sử dụng đúng ý tưởng chung của dạng bài. 18
- 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 * Đoạn chương trình: { Khởi tạo mảng d} a:=0; For c:=’A’ to ‘Z’ do begin d[c]:= a+1; a:=d[c]; end; { Tính hàm f} For i:=1 to length(s) do begin For c:=’A’ to ‘Z’ do if s[i]=c then f[i]:=(d[c] + k) mod 26; if s[i] = ‘ ‘ then f[i]=27; { Trường hợp gặp dấu cách} end; {Mã hóa} For i:=1 to length(s) do begin For c:=’A’ to ‘Z’ do if f[i]=d[c] then write (c); if f[i] = 27 then write(‘ ‘); end; Bài 2 (Đề hsg lớp 10 năm 2009 – 2010- Mã hóa caesar): Cho xâu s mã hóa xâu s theo nguyên tắc f[p] = a*p + k; Cho trước a, k. P được xây dựng là p[A]=1, p[B] = 2 p[Z]=26. Cách làm tương tự ví dụ trên. 19
- 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 Bài 3 (Đề hsg lớp 11 năm 2010 – 2011- Đi hay ở lại): Cho hai chuỗi in hoa. Hai chuỗi được chuyển thành số theo quy tắc ví dụ ‘USACO’= 21*19*1*3*15=17955 (A có giá trị là 1, B có giá trị là 2, , Z có giá trị là 26). Nếu số của hai chuỗi mod 47 bằng nhau thì ’GO’ ngược lại thì ‘STAY’. Cách làm hoàn toàn tương tự chỉ khác cách tính hàm f bằng công thức nhân. Không làm phần mã hóa mà kiểm tra điều kiện f1 mod 47 = f2 mod 47 thi GO ngược lại là STAY. Bài 4 (Đề hsg lớp 11 năm 2008 – 2009- Thứ tự từ điển): Cho bảng sắp thứ tự các từ a b z aa ab az ba bb bc bz aaa aab aaaa abcd 1 2 26 27 28 52 53 54 55 78 703 704 18279 Cho xâu s( nhiều nhất 4 kí tự) Chỉ ra số thứ tự của s trong bảng sắp thứ tự trên Ví dụ, ad ở vị trí 30. * Ý tưởng: - Sử dụng mảng gán giá trị ban đầu cho các kí tự từ A đến Z là 1 đến 26. - Xây dựng hàm tính f trong từng trường hợp n=1, 2, 3, 4( n là độ dài xâu) * Đoạn chương trình: a:=0; for c:=’a’ to ‘z’ do begin f[c]:=a+1; a:= f[c]; end; if n= 1 then tt:= f[c]; if n=2 then tt:= 26 * f[s[1]] +f[s[2]]; if n=3 then tt:= 26* 26* f[s[1]]+26*f[s[2]]+f[s[3]]; if n=4 then tt:= 26* 26*26* f[s[1]]+26*26*f[s[2]]+26*f[s[3]]+f[s[4]]; 20
- 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 Dạng 4: Xóa và thay thế Ý tưởng chung của dạng 4 là lặp đi lặp lại (câu lệnh lặp while) các công việc: tìm vị trí, xóa và thay thế. Bài 1 (sgk): Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự ‘anh’ bằng cụm từ ‘em’. * Ý tưởng: Muốn thay thế cụm từ ‘anh’ phải biết được vị trí của cụm từ đó trong xâu s, từ đó xóa cụm từ ‘anh’ đi và chèn cụm từ ‘em’ vào đúng vị trí vừa xóa cụm từ ‘anh’. + vị trí xuất hiện của cụm từ anh trong xâu s(sử dụng hàm POS) + Xóa cụm kí tự anh(sử dụng thủ tục delete) + Chèn cụm kí tự em vào vị trí vừa xóa cụm kí tự anh(sử dụng thủ tục Insert) => 3 công việc trên lặp lại đến khi không tìm thấy vị trí xuất hiện của cụm từ anh trong xâu s. * Đoạn chương trình: while pos(‘anh’,s)<>0 do begin i:=pos(‘anh’,s); delete(s,i,3); insert(‘em’,s,i); end; writeln(s); Bài 2 ( Đề hsg lớp 12 năm 2012 – 2013 - Giải mã): Cho xâu s đã được mã hóa theo quy tắc các nguyên âm a, e, i, o, u được viết thêm chữ cái p đằng sau và thêm chính nguyên âm đó đằng sau chữ cái p. Đưa ra xâu sau khi giải mã Ví dụ, từ ‘welcome’sẽ được mã hóa thành ‘wepelcopomepe’ 21
- 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 * Ý tưởng: Sử dụng ý tưởng chung của dạng bài tập này là tìm vị trí xuất hiện, xóa đi hai kí tự từ vị trí tìm được +1. Bình thường tìm vị trí xuất hiện chỉ có 1 xâu x trong xâu s nhưng ở đây có 5 trường hợp => sử dụng mảng để duyệt từng trước hợp. * Đoạn chương trình: x[1]:=’apa’; x[2]:=’epe’; x[3]:=’ipi’; x[4]:=’opo’; x[5]:=’upu’; for i:=1 to 5 do while pos(x[i], s) 0 thì xóa đi 1 dấu cách tại vị trí đó => công việc này lặp đi lặp lại khi không tìm thấy vị trí xuất hiện đầu tiên của hai dấu cách liền nhau. - Nếu kí tự đầu tiên là dấu cách thì xóa. Kí tự cuối cùng là dấu cách thì xóa. * Đoạn chương trình: while pos(‘ ‘,s) <> 0 do begin vt:= pos(‘ ‘, s); delete(s, vt, 1); 22
- 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 end; if s[1] = ‘ ‘ then delete(S, 1, 1); if s[length(s)] = ‘ ‘ then delete(s, length(s), 1); write(s); Bài 4 (Bài 4.41 sách bài tập): Xâu không chứa các kí tự phân cách ‘.’ (dấu chấm), ‘,’ (dấu phẩy), ‘ ‘ (dấu cách) được gọi là một từ. Câu là một xâu bao gồm nhiều từ, nếu xâu có nhiều từ thì các từ được phân cách nhau bởi một hoặc một số kí tự phân cách. Tính số lượng từ trong câu? Ví dụ, ‘Tin’ là câu có 1 từ, ‘Tin hoc 11’ là câu có 3 từ, ‘Co anh ban xa nha, co co ban nho cha.’ Câu có 10 từ. * Ý tưởng: Lần lượt thực hiện các việc sau: + Chuẩn hóa xâu S theo cách làm của bài 3. +Đếm số lượng dấu cách trong câu.( không cần đếm số dấu ngắt câu vì theo qui ước gõ văn bản thì các dấu ngắt câu phải đặt sát vào từ đằng trước). + Số từ bằng số lượng dấu cách +1. * Đoạn chương trình: d:=1; for i:=2 to length(s) do if (s[i] = ‘ ‘) then d:=d+1; write(d); Dạng 5: Chuyển số sang xâu và ngược lại Với những số lớn, các số cần sắp xếp lại vị trí, cần xóa đi k chữ số ta chuyển sang xâu để áp dụng được các thao tác xử lý xâu mà đối với số ta không làm được. 23
- 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 Bài 1(Bài 7.30 sách bài tập): Với số nguyên N cho trước ở hệ thập phân có thể tạo ra những số nguyên khác nhau bằng cách hoán vị các chữ số của n. Ví dụ, n=133 ta có thể có các số 313 và 331. Hãy xác định số lớn nhất có thể tạo được? * Ý tưởng: - Đọc N ở dạng xâu; - Chuyển từng phần tử của xâu sang mảng số. - Sắp xếp mảng theo thứ tự giảm dần - Đưa mảng đã sắp xếp chính là số lớn nhất cần tìm * Đoạn chương trình: str(n, s); l:=length(s); for i:=1 to l do val (s[i],a[i], c); for i:=l downto 2 do for j:=1 to i-1 do if a[j+1] > a[j] then begin tg:=a[j]; a[j]:= a[j+1]; a[j+1]:=tg; end; for i:=1 to l do write(a[i]); Bài 2 (Đề hsg lớp 11 năm 2011 – 2012 – Số nhỏ nhất): Cho số nguyên X. Đổi chỗ các chữ số trong X ta thu được số nguyên Y. Tìm số Y nhỏ nhất nhưng lớn hơn X * Ý tưởng: (Thuật toán sinh) - Đọc X vào theo kiểu xâu. 24
- 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 - Đẩy từng phần tử trong xâu theo thứ tự vào mảng số. - Đi từ cuối mảng đến đầu mảng so sánh nếu số bên phải lớn hơn số bên trái thì tráo đổi vị trí, ghi nhận vị trí tráo đổi và thoát khỏi lặp nhảy xuống câu lệnh tiếp theo (bằng break). - Sắp xếp lại mảng theo thứ tự tăng dần từ vị trí tráo đổi ở trên đến cuối mảng. * Đoạn chương trình: {Các công việc giống bài 1 tác giả không trình bày chỉ trình bày phần tìm vị trí mà số bên phải lớn hơn bên trái thì tráo đổi} If n=1 then write(S); if n= 2 then if s[2] > s[1] then write(s[2], s[1]) else write(S); if n>=3 then begin {chuyển sang mảng} I:=n; while i>=1 do begin if a[i] > a[i-1] then begin tg:=a[i]; a[i]:= a[i+1]; a[i+1]:=tg; vt:=i; break; end; i:=i-1; end; Bài 3 (Bài 7.40 sách bài tập): Cho số nguyên N, tạo N1 bằng cách viết liên tiếp nhau từ 1 đến N.Ví du, với N = 11 ta có N1=1234567891011. Thu gọn N1 bằng cách xóa 25
- 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 các chữ số ở vị trí chẵn, sau đó xóa các chữ số ở vị trí lẻ, rồi lại xóa các chữ số ở vị trí chẵn, cho đến khi chỉ còn lại một chữ số. * Ý tưởng: - Để tạo xâu: chuyển từng số từ 1 đến N sang xâu. Tạo xâu s gồm các kí tự trên. - Để thu gọn xâu: thực hiện các thao tác sau lặp đi lặp lại cho đến khi length(s)=1 + Tạo ra xâu mới s2 bằng cách lấy các ký tự ở vị trí lẻ trong s. + gán s = s2 vừa tạo ra + Tạo ra xâu s2 bằng cách lấy các ký tự ở vị trí chẵn trong S + gán s= s2 vừa tạo ra lẻ, gán lại độ dài xâu. Đưa ra xâu còn lại. * Đoạn chương trình: s:=’’; for i:= 1 to N do begin str(i, s1); s:=s+s1; end; l:= length(s); lan1:=1; while l<>1 do begin s2:=’’; if lan mod 2 = 1 then for i:=1 to l do if i mod 2 = 1 then s2:=s2+s[i]; if lan mod 2 = 0 then for i:=1 to l do if i mod 2 = 0 then s2:=s2+s[i]; 26
- 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 s:=s2; inc(lan); l:=length(s); end; write(S); Bài 4 (Đề hsg lớp 10 năm 2011 – 2012): Cho số nguyên dương gồm N chữ số, tìm số lớn nhất có thể sau khi gạch bỏ đi k chữ số trong số N chữ số đã cho. Ví dụ, với N = 3; k = 1 số đó là 991 số còn lại sau khi xóa là 99 Với N = 4; k = 2 số đó là 1782 số còn lại sau khi xóa là 82 *Phân tích đề: khi xóa đi k chữ số sẽ thu được một số có N-k chữ số. Muốn thu được số lớn nhất thì cần xóa k chứ số sao cho các chữ số còn lại đứng ở vị trí từ trái qua phải phải là số lớn nhất có thể. * Ý tưởng: - Đọc số vào dưới dạng xâu S. - Duyệt từ đầu xâu, xét 2 ký tự liền kề nhau nếu s[i] 0 thì xâu S còn lại là xâu gồm các ký tự số theo thứ tự giảm dần, như vậy chỉ cần xóa từ cuối xâu đúng k ký tự. * Đoạn chương trình: For i:= 1 to length(s)-1 do begin 27
- 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 If s[i] 0 then delete(s, length(s)-k, k); Bài 5 (Xóa k chữ số để được số nhỏ nhất): Cho xâu gồm N chữ số. Xóa k chữ số để được số nhỏ nhất. Ví dụ, s = ‘869357495356872’ k=9 thì xâu còn lại là s=’335672’ * Phân tích: Bài này phát triển từ bài 4 nhưng khi so sánh 2 ký tự liền kề nhau thì nếu ký tự đứng trước lớn hơn ký tự đứng sau thì xóa ký tự đứng trước. 28
- 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 CHƯƠNG IV: KẾT QUẢ THỰC HIỆN SAU ĐỀ TÀI 1. Tiến hành khảo sát học sinh PHIẾU PHẢN HỒI CỦA HỌC SINH SAU KHI THỰC HIỆN ĐỀ TÀI I. Phần chung Họ và tên: Lớp: II. Phần trả lời Câu 1: Qua bài học, em có nắm được kiến thức của bài học hay không? Có Không Câu 2: Em có thấy hứng thú với nội dung kiến thức này không? Có Không Câu 3: Qua bài học, em thấy phát triển thêm kỹ năng gì? Kỹ năng thu thập thông tin Kỹ năng phân tích Kỹ năng giải quyết vấn đề Câu 4: Sau khi học xong bài học, mức độ hứng thú với môn Tin học của em như thế nào? Rất thích thú Thích Không thích Chán ngán Tình cảm khác: 29
- 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 2. Kết quả học sinh Bảng số liệu kết quả đạt được của học sinh hai lớp 11 năm học 2018-2019 khi không thực hiện đề tài: STT Lớp Sĩ số Đạt yêu cầu Không đạt yêu cầu 1 11A2 40 73% 27% 2 11A3 40 65% 35% - Bảng số liệu kết quả đạt được của học sinh hai lớp 11 năm học 2019-2020 sau khi thực hiện đề tài: STT Lớp Sĩ số Đạt yêu cầu Không đạt yêu cầu 1 11A1 44 95% 5% 2 11A4 40 88% 12% Trong quá trình trao đổi, thảo luận, trình bày, các em HS thể hiện được khả năng vận dụng, hiểu biết của mình nên các em tỏ ra hăng hái trong việc giơ tay phát biểu tranh luận. Đồng thời tiết học trở nên sinh động hơn và GV không đóng vai trò là người xây dựng lý luận mà học sinh là người chủ động để giải quyết các vấn đề. 8. NHỮNG THÔNG TIN CẦN ĐƯỢC BẢO MẬT (NẾU CÓ): 9. CÁC ĐIỀU KIỆN CẦN THIẾT ĐỂ ÁP DỤNG SÁNG KIẾN: Học sinh: là học sinh lớp 11, học sinh giỏi môn tin học các lớp 10, 11, 12 Giáo viên: Đã được tập huấn về phương pháp dạy học tích cực Cơ sở vật chất: có máy tính, máy chiếu 10. ĐÁNH GIÁ LỢI ÍCH THU ĐƯỢC o Đối với giáo viên: nâng cao kiến thức và năng lực giảng dạy o Đối với học sinh: Phát huy được hứng thú học tập của học sinh. Rèn luyện cho học sinh năng lực tự học, năng lực phân tích, năng lực giải quyết vấn đề. 30
- 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 KẾT LUẬN Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây dựng các chương trình ứng dụng để phục vụ cho cuộc sống. Nhờ sự phát triển của tin học trong đó các nhà lập trình chuyên nghiệp đóng vai trò không nhỏ mà hiện nay hầu hết các lĩnh vực trong xã hội đã ứng dụng được tin học để giải quyết công viêc nhanh, hiệu quả và chính xác hơn. Trong quá trình giảng dạy các thầy cô có thể đưa ra các vấn đề như lập trình các bài toán lớn thực tế liên quan đến xâu, để các em có thể chứng tỏ được khả năng của mình làm cho học sinh yêu thích môn học, ham học hỏi và tìm tòi sáng tạo. Đề tài này mang tính thực tiễn rất cao cụ thể là: học sinh đã không sợ học lập trình, học sinh có một mẫu, một hướng cụ thể để giải quyết bài toán. Trong quá trình giải quyết vấn đề, giáo viên chỉ ra những sai lầm mà các em học sinh mắc phải do hiểu không rõ vấn đề giúp cho các em hiểu rõ hơn về cách làm bài lập trình đối với kiểu dữ liệu xâu. 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Ó): Số Tên tổ Địa chỉ Phạm vi/Lĩnh vực TT chức/cá nhân áp dụng sáng kiến 1 Lớp 11A1, Trường THPT Đồng Đậu Dạy bài 12: “Kiểu xâu” 11A4 chương trình tin học 11 2 Đội tuyển học Trường THPT Đồng Đậu Chữa các bài tập về kiểu dữ sinh giỏi lớp liệu xâu trong các đề thi HSG 10, 11, 12 31
- 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 , ngày tháng năm , , Thủ trưởng đơn vị/ ngày tháng năm ngày tháng năm Chính quyền địa phương CHỦ TỊCH HỘI ĐỒNG Tác giả sáng kiến (Ký tên, đóng dấu) SÁNG KIẾN CẤP CƠ SỞ (Ký, ghi rõ họ tên) (Ký tên, đóng dấu) 32