Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
69,74 KB
Nội dung
Sáng kiến kinh nghiệm Môn tin học MỤC LỤC Trang I Mở đầu II 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 Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lí luận bit phép xử lí bit A Khái niệm bit nội dung liên quan đến bit a Khái niệm bit .3 b Mã hóa thơng tin máy tính .3 c Hệ đếm B Các phép xử lí bit a Phép cộng bit b Phép đảo bit c Phép nhân bit d Phép loại trừ bit e Phép dịch bit phải f.Phép dịch bit trái II.2 Thực trạng vấn đề trước áp dụng SKKN II.3 Các giải pháp giải vấn đề Sáng kiến kinh nghiệm Môn tin học A Giúp học sinh lớp 10 hiểu bit chuyển đổi sang hệ nhi phân mã ASCII B Áp dụng bit giải toán học sinh giỏi tin lớp 11 10 II.4 Hiệu sáng kiến kinh nghiệm 21 III Kết luận kiến nghị 22 3.1 Kết luận 22 3.2 Kiến nghị 22 3.3 Tài liệu tham khảo .…23 IV Danh mục sáng kiến kinh nghiệm đạt .…24 V Phụ lục …25 Sáng kiến kinh nghiệm I MỞ ĐẦU Mơn tin học 1.1 Lí chọn đề tài Với phát triển vũ bảo Tin học trăn trở làm đào tạo hệ học sinh có trình độ tin học cụ thể lập trình, để làm điều tơi ln phải đổi phương pháp giảng dạy cho phù hợp với học, tiết học, đối tượng học sinh, đặc biệt bồi dưỡng đội tuyển học sinh giỏi Trong năm gần đây, đề thi học sinh giỏi tỉnh, quốc gia tập trang giải trực tuyến nhưvn.spoj.com, vnoi.info, … có nhiều tập mà sử dụng kiến thức đệ quy, duyệt, quy hoạch động, … giải gặp nhiều khó khăn mặt tốc độ giới hạn liệu Trong sử dụng kĩ thuật xử lí theo bit phương pháp có kết hợp với thao tác xử lý theo bit lại cho hiệu rất cao Chính tơi chọn đề tài “Giúp học sinh hiểu rõ bit lớp 10 áp dụng bit giải tập học sinh giỏi lớp 11” làm đề tài nghiên cứu để đáp ứng lí I.2 Mục đích nghiên cứu Mục đích nghiên cứu sáng kiến kinh nghiệm nghiên cứu sở lí luận thực tiễn để học sinh nắm vững khái niệm bit (mã nhị phân), mã hóa số thành mã nhị phân mã ASCII Cung cấp thêm số kiến thức sâu bit (phần học sinh học chương trình lớp 10 khơng sâu) ứng dụng phương pháp xử lí bit giải số toán học sinh giỏi tin học cách hiệu Đối với thân đồng nghiệp trao đổi để bồi dưỡng thêm kiến thức chun mơn, nâng cao trình độ, mở rộng thêm vốn kiến thức hạn hẹp Nếu thực mục tiêu học sinh giáo viên hứng thú học bit giải tốn khó bị giới hạn liệu thời gian 1.3 Đối tượng nghiên cứu -Học sinh khối 10 trường THPT Thiệu Hóa - Học sinh khối 11 trường THPT Thiệu Hóa - Nội dung kiến thức 2: “ Thông tin liệu”, đọc thêm số Sáng kiến kinh nghiệm Môn tin học - Cách xử lí bit ứng dụng vào giải tập học sinh giỏi THPT, tập trang trực tuyến: vnoi.info, laptrinh.ntu.edu.vn,… 1.4 Phương pháp nghiên cứu - Nghiên cứu sở lí luận bit, phép xử lí bit - Nghiên cứu tài liệu chuyên đề loang, DFS, BFS, , lí thuyết phép tốn bit Trên sở phân tích, tổng hợp, khái qt, … rút vấn đề cần thực đề tài Tham khảo trao đổi ý kiến với bạn bè, đồng nghiệp, cấp Tham gia giải bài, phân tích, đánh giá, góp ý câu lạc bộ, diễn đàn trực tuyến II NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận A Khái niệm bit, mã hóa thơng tin, hệ đếm a Bit Bit (Binary digit) đơn vị nhỏ dùng để biểu diễn thơng tin máy tính Mỗi bit chữ số nhị phân thể hai trạng thái với khả xuất Ví dụ : Tung đồng xu có hai mặt hồn tồn cân xứng với khả xuất mặt Kí hiệu mặt đồng xu mặt xuất kí hiệu hay sau tung đồng xu cho ta lượng thông tin bit b Mã hóa thơng tin Thơng tin có nhiều dạng khác đưa vào máy tính chúng biến đổi thành dạng chung – dãy bit Dãy bit mã nhị phân thơng tin mà biểu diễn cách biến đổi gọi mã hóa thơng tin c Hệ đếm - Hệ thập phân: Sử dụng tập kí hiệu gồm 10 chữ số 0,1,2,3,4,…,9 để biểu diễn Giá trị số hệ thập phân xác định theo quy tắc: đơn vị hàng có giá trị 10 đơn vị hàng kế cận bên phải - Hệ nhị phân Sáng kiến kinh nghiệm Chỉ dùng hai kí hiệu chữ số Mơn tin học Vd: 1012= 1x22+0x21+1x20=510 - Hệ hexa (cơ số 16) Sử dụng kí hiệu: 0,1,2,3,…,9,A,B,C,D,E,F Vd: 1BE16= 1x162+11x161+14x160=44610 B Các phép xử lý bit Các phép toán xử lý bit dãy bit x, y xử lý bit thứ x với bit thứ y, bit thứ x với bit thứ y, … bit thứ k x với bit thứ k y, hết a Phép cộng bit (or) Phép toán thao tác bit or lấy hai dãy bit có độ dài thực phép tốn lí luận bao hàm or cặp bit tương ứng Kết vị trí bit 0, ngược lại kết X 0 1 Ví dụ y 1 x or y 1 x = 0101 (số thập phân 5) y = 0011 (số thập phân 3) x or y = 0111 (số thập phân 7) b Phép đảo bit (not) Tốn tử đảo bit not (còn gọi tốn tử lấy phần bù) tốn tử ngơi thực phủ định luận lý bit, tạo thành bù giá trị nhị phân cho trước Bit trở thành trở thành x not x Ví dụ x = 0111 (số thập phân 7) Sáng kiến kinh nghiệm not x = 1000 (số thập phân 8) Môn tin học c Phép nhân bit (and) Toán tử thao tác bit and lấy hai toán hạng nhị phân có chiều dài thực phép toán lý luận and cặp bit tương ứng cách nhân chúng lại với Nhờ đó, bit vị trí so sánh bit hiển thị dạng nhị phân (1 x = 1), ngược lại kết (1 x = 0) X 0 1 y 1 x and y 0 Ví dụ x = 0101 (số thập phân 5) y = 0011 (số thập phân 3) x and y = 0001 (số thập phân 1) d Phép loại trừ bit (xor) Phép toán thao tác bit xor lấy hai dãy bit có độ dài thực phép tốn logic bao hàm or cặp bit tương ứng Kết vị trí bit bit thứ 1, hai hai Ở ta thực phép so sánh bit, kết hai bit khác hai bit giống X 0 1 y 1 x xor y 1 Ví dụ x = 0101 (số thập phân 5) y = 0011 (số thập phân 3) x xor y = 0110 (số thập phân 6) e Phép dịch bit phải (shr k) Sáng kiến kinh nghiệm Dịch chuyển dãy sang phải k bit Mơn tin học Ví dụ x = 13(00001101) x shr = 3(00000011) f Phép dịch trái (shl k) Dịch chuyển dãy sang trái k bit Ví dụ x = 13(00001101) x shl = 54(00110100) 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm a lớp 10 - Khi học sinh học “Thông tin liệu” em nắm bắt đơn vị đo lượng thông tin Bit em thấy loáng thoáng - Rồi đến mã ASCII em thấy phức tạp với dãy số dày đặc Và đến em phải nhớ máy móc dãy bit mã ASCII Vấn đề có cách giúp em tự chuyển đổi sang mã nhị phân mà khơng cần phải nhớ máy móc Tơi mạnh dạn đưa cách sách giáo khoa - Tuy dãy bit nội dung nhỏ chương trình khơng biết khơng hiểu máy tính mã hóa thơng tin ứng dụng bit b lớp 11 Khi học sinh giáo viên làm đến tốn học sinh giỏi vấn đề cần quan tâm để giải với liệu lớn, nhớ mà tốc độ cao Khi tìm giải pháp giải vấn đề tập giải dễ dàng hơn, output tối đa Vậy làm để làm điều tơi mạnh dạn ứng dụng Bit vào giải toán 2.3 Các giải pháp giải vấn đề A Giúp học sinh lớp 10 hiểu rõ bit tự hoàn thành mã ASCII Sáng kiến kinh nghiệm Môn tin học - Các khái niệm Bit sách giáo khoa trình bầy nên tơi khơng trình bầy lại Vậy nên tơi giới thiệu thêm cách chuyển số từ hệ thập phân sang hệ nhị phân sau: Cách 1: Chuyển theo cách đọc thêm số sách giáo khoa Lấy số thập phân chia liên tiếp cho (hoặc 16 hệ hexa) nhận thương số Để có dãy nhị phân ta viết số dư theo thứ tự ngược lại (số dư sau viết trước tiếp tục hết) VD: 1110= ?2=?16 Chia 11 cho số dư 1,1,0,1 Viết ngược lại 1011 để biểu diễn bit ta thêm bit khơng phía trước thành: 00001011 Tương tự hệ 16 là: B biểu diễn bit thành 00B Cách 2: Kẻ bảng điền bit để số cần biểu diễn Vấn đề để điền nhanh bit mà xác Ta có: có n bit có 2n số thập phân biểu diễn phạm vi biểu diễn từ đến 2n-1 Ví dụ1: bit có 22=4 số thập phân từ đến biểu diễn mã nhị phân Ta có bảng sau: gồm cột mã thập phân, có bit nên mã nhị phân có cột Mã thập phân Mã nhị phân 0 1 1 Ví dụ 2: bit có 23=8 số thập phân từ đến biểu diễn mã nhị phân Ta có bảng sau: Mã thập phân 0 0 1 Mã nhị phân 0 1 0 1 1 Sáng kiến kinh nghiệm Môn tin học 1 Đến giáo viên hỏi học sinh tìm quy luật để điền bit vào cột mã nhị phân Nhiều học sinh khơng tìm nghĩ phải học thuộc lòng bảng mã ASCII Đến giáo viên gợi ý đưa phương pháp sau: Phương pháp: Ta có có n bit: - Thì có 2n số thập phân biểu diễn phạm vi biểu diễn từ đến 2n -1 - Đầu tiên xác định số cột mã nhị phân: số bit để biểu diễn Vd: n=3 bit có cột mã nhị phân - Điền bit vào cột từ cột phải sang trái theo quy luật: + Đầu tiên phải bit trước xen kẽ bit + số lượng bit đặt xen kẽ 2n (với n đến n-1) Vd: n=3 Cột từ phải sang 20=1 tức bit đến bit bit cho hết hàng Cột từ phải sang 21=2 Tức bit xen bit 1, bit 0, cho hết Cột từ phải sang 22=4 Tức bit xen bit 1, bit 0, cho hết Nhận xét: Điền ta bảng Và đến em mở mã ASCII so sánh Ta thấy mã biểu diễn giống bảng ta biểu diễn khác có thêm bit đứng trước cho đủ bit Như em tự biểu diễn số thập phân sang nhị phân cách đơn giản mà khơng phải nhớ máy móc trước Tương tự em lập bảng với n=4 cho cô Kết em điền dễ ràng sau: Mã thập phân 0 Mã nhị phân 0 0 Sáng kiến kinh nghiệm 10 11 12 13 14 15 Môn tin học 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 10 Sáng kiến kinh nghiệm end; Môn tin học writeln(ans); Bài Lại chuỗi (Nguồn: laptrinh.ntu.edu.vn – Mã bài: STRAIGAIN) Cho xâu S gồm hai kí tự A B Tại bước đi, bạn phải chọn kí tự liên tiếp, sau đảo ngược lại (A thành B B thành A) Hỏi cần tối thiểu bước để tất kí tự xâu S giống Dữ liệu vào: Tệp STANDARD.INP có cấu trúc: Dòng chứa số nguyên dương N số lượng kí tự xâu S (2 ≤ N ≤ 20) Dòng thứ hai chứa xâu S gồm N kí tự Dữ liệu ra: Tệp STANDARD.OUT có cấu trúc: Gồm dong số bước biến đổi để tất kí tự xâu S giống Dữ liệu đảm bao có kết Ví dụ STANDARD.INP STANDARD.OUT AABBBAA Nhận xét: Với dùng tư tưởng BFS Trong trình biến đổi để sinh cấu hình, ta dùng xử lý bình thường, nhiều thời gian lần phải duyệt đến N ký tự, chạy qua hết test Với xử lý bit, ta cần dùng vài phép gán Chương trình tham khảo: program bai_4; const fi = 'standard.inp'; fo = 'standard.out'; var b, q: array[0 shl 21] of longint; bit: array[0 21] of longint; n, oo, s: longint; procedure docdl; 19 Sáng kiến kinh nghiệm var Môn tin học i: longint; c: string; begin readln(n); readln(c); oo:= (1 shl n)-1; s:= 0; for i:= n downto s:= s*2+ord(c[i])-65; bit[0]:= 1; for i:= to 21 bit[i]:= bit[i-1]*2+1; end; function daobit(x, d, c: longint): longint; begin daobit:= x xor bit[c]; if d0 then daobit:=daobit xor bit[d-1]; end; procedure xuly; var l, r, i, j, u, v: longint; begin fillchar(b, sizeof(b), 0); if (S=0)or(S=oo) then begin writeln(0); exit; end; l:= 1; r:= 1; Q[1]:= S; b[S]:= 1; repeat u:= Q[l]; inc(l); for i:= to 20 Sáng kiến kinh nghiệm for j:= to n-i-1 Môn tin học begin v:= daobit(u, j, j+i); if b[v]=0 then begin if (v=0)or(v=oo) then begin writeln(b[u]); exit; end; inc(r); Q[r]:= v; b[v]:= b[u]+1; end; end; until l>r; writeln(-1); end; begin assign(input, fi); reset(input); assign(output, fo); rewrite(output); docdl; xuly; close(input); close(output); end Do hạn chế dung lượng nên tơi trình bầy vài ví dụ Còn lớp tập áp dụng tơi để phần phụ lục phía 21 Sáng kiến kinh nghiệm 2.4 Hiệu sáng kiến kinh nghiệm Môn tin học Tôi áp dụng vào lớp học, trường học kết đạt sau: - Đối với học sinh lớp 10 hiểu rõ bit cách biểu diễn dạng nhị phân Viết mã nhi phân cho số mã ASCII - Đối với học sinh lớp 11 biết cách vận dụng bit vào giải toán học sinh giỏi có liệu lớn, cần thời gian nhớ - Ưu điểm nhớ Đối với ngơn ngữ lập trình có nhớ hạn chế Turbo Pascal, xử lý bit sử dụng để tạo mảng đánh dấu Ví dụ biến boolean đánh dấu phần tử có giá trị true hay false xử lý bit biến boolean tương ứng bit giá trị 0,1 đánh dấu cho phần tử - Ưu điểm tốc độ Trong ngôn ngữ máy tính, phép tốn thao tác bit thực tính tốn (theo bit) hai chuỗi bit số nhị phân Việc thực thi phép toán thao tác bit thường nhanh so với thực thi phép toán khác cộng, trừ, nhân, chia, … - Đối với đồng nghiệp trau nhiều kiến thức dạy bồi dưỡng học sinh giỏi, giúp cho công việc giảng dạy nhẹ nhàng Và đạt số thành tích cao 22 Sáng kiến kinh nghiệm III KẾT LUẬN VÀ KIẾN NGHỊ Môn tin học III.1 Kết luận Sang kiến kinh nghiệm làm sáng tỏ kiến thức bit, em biểu diễn dạng mã nhị phân thành thạo Các em lớp 11 biết áp dụng dãy bit vào làm tốn đạt kết cao Thơng qua phân tích đánh giá số tốn cụ thể để thấy toán áp dụng phương pháp xử lí theo bit kết hợp phương pháp khác với phương pháp xử lí bit mang lại hiệu cao giải toán mặt thời gian yêu cầu nhớ làm việc với mã máy toán chạy nhanh so với làm việc với mã giả sau chuyển mã máy Hướng phát triển đề tài: Tìm thêm nhiều tập áp dụng phương pháp kết hợp xử lý bit hiệu phân dạng để áp dụng cách hiệu công tác bồi dưỡng đội tuyển học sinh giỏi Đề tài hoàn thành nổ lực cố gắng thân có giúp đỡ bạn bè đồng nghiệp Tuy nhiên điều kiện thời gian kinh nghiệm giảng dạy chưa nhiều nên nội dung gặp nhiều hạn chế Rất mong nhận nhiều đóng góp ý kiến q thầy cơ, bạn bè đồng nghiệp để đề tài hồn thiện áp dụng vào giảng dạy bồi dưỡng học sinh giỏi cách hiệu 3.2 Kiến nghị Để áp dụng đề tài hiệu trình bồi dưỡng giáo viên cần bồi dưỡng nhiều lí thuyết số thao tác xử lí bit phương pháp khác để ứng dụng phương pháp kết hợp phương pháp với phương pháp cách hiệu Hướng dẫn, khuyến khích học sinh tham gia giải bài, tìm kiếm tập có phân dạng xử lí bit trang mạng giải trực tuyến (đặc biệt trang vn.spoj.com) 23 Sáng kiến kinh nghiệm Môn tin học TÀI LIỆU THAM KHẢO Sách giáo khoa Tin học 10: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết, NXBGD Sách giáo khoa Tin học 11: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết, NXBGD Sách tập Tin học 11: Hồ Sĩ Đàm, Trần Đỗ Hùng, Ngơ Ánh Tuyết, NXBGD Thuật tốn: Nguyễn Xn Huy, NXBTK Trang vi.wikipedia.org Trang vn.spoj.com Trang laptrinh.ntu.edu.vn Trang kienthuc24h.com 24 Sáng kiến kinh nghiệm Môn tin học DANH MỤC CÁC SÁNG KIẾN KINH NGHIỆM ĐÃ ĐẠT GIẢI CỦA TÔI NHƯ SAU: Sáng kiến đạt loại C định số 871/QĐ-SGD&ĐT ngày 18/12/2012 tên là: “Áp dụng dạy học phát giải vấn đề vào giảng dạy “Bài toán thuật toán” chương trình Tin học lớp 10 THPT ” Sáng kiến đạt loại B định số 743/QĐ-SGD&ĐT ngày 04/11/2013 tên là: “Hình thành kỹ cho học sinh vận dụng loại cấu trúc lặp vào toán tin học 11 THPT” 25 Sáng kiến kinh nghiệm Môn tin học PHỤ LỤC Một số tập khác áp dụng hiệu bit Bài Bàn cờ (Nguồn: vn.spoj.com – Mã bài: CHESSCBG) Một bàn cờ bảng gồm dòng, cột Mỗi cờ cách xếp quân cờ, hai qn khác hai khác Bài tốn đặt cho hai cờ 2, tìm số bước di chuyển qn để chuyển từ sang Một bước di chuyển quân lần chuyển quân cờ sang ô trống kề cạnh với ô quân cờ đứng Dữ liệu vào: Tệp CHESSCBG.INP có cấu trúc: Gồm dòng, dòng xâu nhị phân độ dài mà số 1/0 tương ứng với vị trí có khơng có qn cờ Bốn dòng đầu cờ Bốn dòng sau cờ Dữ liệu ra: Tệp CHESSCBG.OUT có cấu trúc: Gồm dòng số bước chuyển quân Ví dụ CHESSCBG.INP 1111 0000 1110 0010 1010 0101 1010 0101 CHESSCBG.OUT Nhận xét: Với ta sử dụng quay lui để làm, quay lui chạy qua giới hạn thống Ở tơi muốn giới thiệu đến thuật toán khác tốt hơn, thuật toán loang kết hợp xử lý bit Với thuật tốn loang, từ cấu hình X sinh cấu hình Y chưa sinh, đồng thời trình sinh đánh dấu theo tầng Xử lý bit bài, để tổ chức liệu cách dễ dàng hơn, tất nhiên tốc độ xử lý nhanh xử lý 26 Sáng kiến kinh nghiệm bình thường Mơn tin học Bài Tìm dòng đặc biệt Cho tệp văn có n dòng (n