Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
115 KB
Nội dung
MỤC LỤC Mục lục .1 Mở đầu 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu .2 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu .2 1.5 Những điểm SKKN Nội dung 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 .3 2.3.Giải vấn đề Bài toán 1: Sinh dãy nhị phân có độ dài N .10 Bài tốn 2: Sinh dãy tam phân có độ dài N 12 Bài toán 3: Biểu thức Zero(Nguồn đề thi HSG Tỉnh Thanh Hóa năm 2019) .13 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 16 Kết luận, kiến nghị .16 3.1 Kết luận .16 3.2 Kiến nghị .16 Tài liệu tham khảo 17 Danh mục đề tài SKKN mà tác giả Hội đồng SKKN Sở GD tỉnh Thanh hóa đánh giá đạt từ loại C trở lên 18 1 MỞ ĐẦU 1.1 Lí chọn đề tài Hiện vấn đề luyện thi học sinh giỏi môn tin học cấp trung học phổ thông, mà cụ thể ngơn ngữ lập trình pascal thuộc chương trình tin học 11, chương trình tin học 11 sách giáo khoa cung cấp số kiểu liệu số tập Bởi em học sinh, việc cung cấp cho em hệ thống tập việc khó, giải tốn liệt kê tốn mang tính chất đệ quy cịn khó khăn nhiều Đây vấn đề khó cung cấp cho học sinh nguyên nhân sau: + Lượng kiến thức lập trình học sinh hạn chế + Thời gian dạy đội tuyển học sinh giỏi không nhiều + Đặc biệt môn Tin học “môn phụ” nên việc đầu tư thời gian học sinh cịn Tơi chọn đề tài: “LIỆT KÊ XÂU NHỊ PHÂN, TAM PHÂN KHÔNG DÙNG ĐỆ QUY VÀ ÁP DỤNG VÀO GIẢI SỐ BÀI TOÁN LIỆT KÊ, QUAY LUI” để giúp em có cách đơn giản để giải tốn liệt kê mang tính chất đệ quy Giúp cho giáo viên trung học phổ thông làm nhiệm vụ tơi có thêm tư liệu để tham khảo Trên sở nghiên cứu phát triển rộng chuyên đề luyện thi học sinh giỏi cấp trung học phổ thơng 1.2 Mục đích nghiên cứu - Để làm tốt công tác luyện thi học sinh giỏi môn tin học cấp trung học phổ thông - Về nội dung: Giải số toán liệt kê mang tính chất đệ quy mà khơng phải dùng cách giải đệ quy 1.3 Đối tượng nghiên cứu - Học sinh lớp 11 trường trung học phổ thông Mai Anh Tuấn 1.4 Phương pháp nghiên cứu Kinh nghiệm giáo dục thân trình giảng dạy, luyện thi học sinh giỏi môn tin học - Trao đổi với chuyên môn với đồng nghiệp - Nghiên cứu tài liệu liên quan 1.5 Những điểm SKKN - Giải số tốn khó liệt kê khơng phải dùng chương trình đệ quy Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lí luận sáng kiến kinh nghiệm 2.1.1 Cơ sở lý luận - Liệt kê xâu nhị phân, tam phân cách sử dụng nguyên lý đếm hệ đếm nhị phân hệ đếm tam phân 2.1.2 Cơ sở thực tiễn - Đối với em học sinh việc tiếp cận với cách đơn giản để liệt kê xâu nhị phân, tam phân hệ đếm khác sở để giải số toán liệt kê quay lui 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Bài toán 1: Liệt kê xâu nhị phân có chiều dài N Đối với giáo viên: Khi giải toán liệt kê xâu nhị phân có chiều dài N Đa phần tất nghĩ tới chương trình đệ quy Chương trình xây dựng sau: const nmax=9; type data = byte; var n:data; res:array[1 nmax]of data; procedure xuat; var i:data; begin for i:=1 to n write(res[i]); writeln; end; procedure try(i:data); var j:data; begin if i>n then xuat else for j:=0 to begin res[i]:=j; try(i+1); end; end; begin readln(n); try(1); end Đối với học sinh thpt: Việc xây dựng chương trình đệ quy đòi hỏi học sinh tư cao Nên học sinh để tiếp cận cách giải đệ quy không hiệu Và thực tế với q trình luyện thi học sinh giỏi mơn tin học trung học phổ thông thân thấy tất học sinh không hiểu cách giải đệ quy Bởi đặc thù học sinh trung học phổ thơng có thời gian tiếp xúc với môn tin học ngắn Đặc biệt học sinh lớp 10 thi học sinh giỏi môn Tin học thpt khả tiếp cận khơng thể Bài tốn 2: Liệt kê xâu tam phân có chiều dài N const nmax=9; type data = byte; var n:data; res:array[1 nmax]of data; procedure xuat; var i:data; begin for i:=1 to n write(res[i]); writeln; end; procedure try(i:data); var j:data; begin if i>n then xuat else for j:=0 to begin res[i]:=j; try(i+1); end; end; begin readln(n); try(1); end Bài toán 3: Bài toán 4: Chia quà const fi='chiaqua.inp'; fo='chiaqua.out'; var f:text; n:byte; mx:integer; a,kq,x:array[1 20] of byte; procedure inp; var i:byte; begin assign(f,fi); reset(f); readln(f,n); for i:=1 to n read(f,a[i]); close(f); end; function min(a,b,c:byte):byte; var m:byte; begin m:=a; if bm then m:=c; max:=m; end; procedure try(i,t1,t2,t3:byte); var j,h:byte; begin for j:=1 to begin x[i]:=j; case j of 1:t1:=t1+a[i]; 2:t2:=t2+a[i]; 3:t3:=t3+a[i]; end; if i=n then begin h:=max(t1,t2,t3)-min(t1,t2,t3); if h