SKKN Hướng dẫn giải một số bài tập trong sách bài tập Tin học 11 nhằm nâng cao kết quả học tập cho học sinh và lựa chọn, bồi dưỡng học sinh giỏi SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT TRIỆU SƠN[.]
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT TRIỆU SƠN SÁNG KIẾN KINH NGHIỆM HƯỚNG DẪN GIẢI MỘT SỐ BÀI TẬP TRONG SÁCH BÀI TẬP TIN HỌC 11 NHẰM NÂNG CAO KẾT QUẢ HỌC TẬP CHO HỌC SINH VÀ LỰA CHỌN, BỒI DƯỠNG HỌC SINH GIỎI Người thực hiện: Lê Thị Quỳnh Chức vụ: Giáo viên Đơn vị công tác: Trường THPT Triệu Sơn SKKN thuộc lĩnh vực (mơn): Tin học THANH HỐ NĂM 2018 SangKienKinhNghiem.net MỤC LỤC MỞ ĐẦU 1.1 LÝ DO CHỌN ĐỀ TÀI 1.2 MỤC ĐÍCH NGHIÊN CỨU 1.3 ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI 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 CỦA SÁNG KIẾN KINH NGHIỆM 2.2 THỰC TRẠNG VÀ NHỮNG VẤN ĐỀ CẦN GIẢI QUYẾT Bài 4.12/tr33 .4 Bài 4.25/tr39 .4 Bài 4.27/tr39 .4 Bài 4.39/tr45 .4 Bài 4.40/tr45 .4 Bài 4.41/tr45 .4 Bài 4.42/tr46 .4 Bài 7.14/tr68 .4 Bài 7.16/tr69 .4 Bài 7.40/tr75 .5 2.3 CÁC GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ 2.3.1 Xác định toán, khai báo liệu, xây dựng ý tưởng, viết thuật toán 2.3.1.2 Bài 4.25/tr38 2.3.1.3 Bài 4.27/tr39 2.3.1.4 Bài 4.39/tr45 2.3.1.5 Bài 4.40/tr45 2.3.1.7 Bài 4.42/tr46 2.3.1.8 Bài 7.14/tr6 .10 2.3.1.9 Bài 7.16/tr69 10 2.3.1.10 Bài 7.40/tr75 11 2.3.2 Lựa chọn học sinh giỏi thông qua tập 11 2.3.2.1 Lựa chọn thông qua việc phát ý tưởng .11 2.3.2.2 Lựa chọn thơng qua việc lập trình giải tốn 11 2.3.3 Mở rộng tập đưa nhằm bồi dưỡng học sinh giỏi .11 2.4 HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM 17 2.4.1 Kết học tập .17 2.4.2 Đối với nhóm học sinh giỏi 18 KẾT LUẬN, KIẾN NGHỊ 19 3.1 KẾT LUẬN 19 3.2 KIẾN NGHỊ 19 TÀI LIỆU THAM KHẢO 20 DANH MỤC 21 PHỤ LỤC 22 PHỤ LỤC 2: CODE CÁC BÀI TẬP TRONG SÁCH BÀI TẬP .23 PHỤ LỤC 3: CODE CÁC BÀI TẬP MỞ RỘNG 28 SangKienKinhNghiem.net SangKienKinhNghiem.net MỞ ĐẦU 1.1 LÝ DO CHỌN ĐỀ TÀI Sách giáo khoa sách tập hai tài liệu quan trọng cho chương trình mơn học Đối với môn Tin học, sách giáo khoa cung cấp kiến thức nội dung học tập, sách tập mở rộng, khắc sâu kiến thức cho người học thông qua tập với mức độ khác Trên sở tập sách tập mở rộng tập phức tạp để làm nguồn tài liệu cho việc bồi dưỡng học sinh thi học sinh giỏi cấp Tỉnh Học sinh theo học môn khoa học tự nhiên học sinh giỏi đối tượng học sinh ham học hỏi, thích tìm hiểu khơng muốn thua bạn bè nên giáo viên cần tạo tạo động lực, kích thích học sinh nghiên cứu, tìm hiểu mơn học Từ đó, hướng dẫn, rèn luyện thơng qua nhiều tập mới, giúp em thực phát huy hết khả tư duy, sáng tạo không phạm vi mơn học mà cịn hỗ trợ việc học tốt môn học liên quan Giúp nâng cao kết học tập học sinh, đồng thời lựa chọn học sinh tham gia kì thi học sinh giỏi cấp Tỉnh Các tập Bài tập Tin học 11, tác giả không nêu đủ hướng dẫn lời giải chi tiết cho sách Thậm chí số giáo viên trẻ tuổi gặp khó khăn việc nêu thuật toán lời giải cho số tập sách tập Với kinh nghiệm thân trình giảng dạy Tin học lớp 11 ôn thi học sinh giỏi, định chọn đề tài : "Hướng dẫn giải số tập sách tập Tin học 11 nhằm nâng cao kết học tập cho học sinh lựa chọn, bồi dưỡng học sinh giỏi" làm đề tài nghiên cứu năm học 2017-2018 1.2 MỤC ĐÍCH NGHIÊN CỨU Với lý chọn đề tài trình bày trên, tơi mong muốn đề tài giúp đỡ phần khó khăn cho việc nâng cao chất lượng, hiệu môn học cho học sinh; Hỗ trợ đồng nghiệp việc giảng dạy môn Tin học 11, giúp đồng nghiệp có thêm nguồn tài liệu để ôn tập, bồi dưỡng cho học sinh giỏi Từ đó, giảm bớt khó khăn tìm nguồn học sinh tham gia kì thi học sinh giỏi cấp Tỉnh Cụ thể: - Khảo sát, đánh giá thực trạng việc lựa chọn, bồi dưỡng học sinh tham gia thi học sinh giỏi cấp Tỉnh trường Trung học phổ thông Triệu Sơn - Nâng cao hiệu sử dụng sách tập Tin học 11 - Nâng cao kết học tập môn Tin học 11 cho học sinh lớp đăng kí theo học mơn khoa học tự nhiên - Có thêm tài liệu dễ dàng tự học, tư sáng tạo để từ nâng cao chất lượng dạy – học có nhiều học sinh giỏi tham gia vào nguồn thi học sinh giỏi cấp Tỉnh 1.3 ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI - Các tập sách tập Tin học 11 THPT - Các tập mở rộng sở tập sách tập Tin học 11 SangKienKinhNghiem.net - Sự tư duy, ý thức học tập học sinh lớp 11 THPT 1.4 PHƯƠNG PHÁP NGHIÊN CỨU Để thực đề tài này, sử dụng phương pháp: - Phương pháp nghiên cứu xây dựng sở lí thuyết: Cơ sở lý thuyết tài liệu liên quan đến nội dung tập sách tập Tin học lớp 11: Chuẩn kiến thức kỹ chương trình Tin học 11 hành Bộ GD&ĐT, Sách Giáo khoa Tin học 11, sách Giáo viên Tin học 11, sách Bài tập Tin học 11 hành; Sự hứng thú học môn Tin học ý thức tự học học sinh môn học - Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Thông qua phiếu điều tra nguyện vọng tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh môn Tin học nguyên nhân làm học sinh không muốn tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh môn Tin học học sinh lớp 11 trường THPT Triệu Sơn - Phương pháp thống kê, xử lý số liệu: Trên sở phiếu điều tra, kết học tập, thống kê số liệu, xử lí số liệu để so sánh nhóm lớp thực nghiệm đối chứng SangKienKinhNghiem.net NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM 2.1 CƠ SỞ LÍ LUẬN CỦA SÁNG KIẾN KINH NGHIỆM Chương trình mơn Tin học THPT nhằm trang bị cho học sinh kiến thức Cơng nghệ Thơng tin, hình thành cho học sinh số kỹ việc sử dụng Công nghệ Thông tin soạn thảo văn bản, sử dụng bảng tính, lập trình giải tốn, sử dụng Internet tìm kiếm thông tin, Email, Nhưng ý nghĩa sâu xa môn học nhằm trang bị cho học sinh phương pháp tư giải vấn đề cách khoa học Với ý nghĩa này, phần chương trình Tin học lớp 11 - Lập trình đóng vai trị quan trọng cho việc hình thành kỹ giải vấn đề theo "kiểu thuật toán", cách giải vấn đề hiệu lĩnh vực sống Những tập lập trình giải tốn đơn giản chương trình Tin học 11, giúp em nhận thức rõ ràng hình thành kỹ giải vấn đề theo bước bản: lập kế hoạch (xây dựng thuật toán, xác định liệu), triển khai thực (viết chương trình), kiếm tra tính đắn kết (sốt lỗi, kiểm thử), viết báo cáo Trong sách tập Tin học 11 bao gồm tập từ bản, đến trung bình, khó Vì vậy, tập sách tập sở để gợi mở, xây dựng đề thi học sinh giỏi cấp trường, cấp Tỉnh Tuy nhiên, nhiều tập có hướng dẫn giải cịn sơ sài khơng có hướng dẫn Điều khiến cho học sinh tự hiểu nên không hứng thú học tập, từ khơng tự học, khơng chịu tư môn học, dẫn đến việc phát học sinh có tố chất mơn học khó khăn, hệ giáo viên trường khó tìm nguồn học sinh cho kì thi học sinh giỏi cấp Tỉnh 2.2 THỰC TRẠNG VÀ NHỮNG VẤN ĐỀ CẦN GIẢI QUYẾT Trường THPT Triệu Sơn trường nằm vùng bán sơn địa, điểm thi đầu vào tương đối thấp, dân cư nghèo, điều kiện học tập học sinh cịn khó khăn, sở vật chất nhà trường nhiều hạn chế Học sinh trường đa số học sinh thuộc hộ nghèo, cận nghèo Mỗi khóa học (trong năm gần khoảng 7-8 lớp/khóa) có khoảng đến lớp học sinh đăng kí theo học mơn khoa học tự nhiên để thi THPT Quốc gia, số học sinh tham gia vào đội dự tuyển trường thi học sinh giỏi cấp Tỉnh tất mơn Tốn, Vật Lí, Hóa học, Sinh học, Tiếng Anh, Tin học, chí Ngữ văn, Địa lí, Đối với học sinh, Tin học môn lựa chọn sau đội dự tuyển Vì vậy, việc nâng cao chất lượng học tập, lựa chọn bồi dưỡng học sinh giỏi vấn đề vô khó khăn, nhiệm vụ, hội thách thức giáo viên phụ trách ôn luyện học sinh giỏi Trong sách tập Tin học 11 tập mang tính chất gợi mở, đa dạng từ dễ đến khó, học sinh cần hiểu chất vấn đề, thực bước việc giải tập đơn giản nhiều Tuy nhiên, nhiều tập phần hướng dẫn chưa đầy đủ, khó hiểu học sinh Với khả thời gian hạn chế, lựa chọn 10 tập sách tập để thực đề tài, tập lựa chọn đề tài mở rộng thành nhiều tập tham khảo cho việc bồi dưỡng học sinh giỏi để lựa chọn bồi dưỡng học sinh tham gia kì thi học sinh giỏi cấp Tỉnh Đề SangKienKinhNghiem.net tập có sẵn sách Bài tập Tin học 11, xin không nêu đề tài Dưới liệt kê tên tập nguyên văn phần hướng dẫn giải sách tập Tin học 11 STT Tên Bài 4.12/tr33 Bài 4.25/tr39 Bài 4.27/tr39 Bài 4.39/tr45 Bài 4.40/tr45 Bài 4.41/tr45 Bài 4.42/tr46 Bài 7.14/tr68 Bài Gợi ý sách tập SBT, tr98: Khi tìm max phải kiểm tra điều kiện "lớn hơn" tìm từ đầu cuối, cịn tìm phải kiểm tra điều kiện "nhỏ hơn" tìm từ cuối đầu SBT, tr100: Dùng biến đếm d kiểu integer với giá trị ban đầu để đếm duyệt từ trái sang phải, gặp dấu ngoặc mở tăng d lên 1, gặp dấu ngoặc đóng giảm d đơn vị Biểu thức ngoặc sai gặp d=-1 hết biểu thức ngoặc d lớn ( ( ) ( ) ) ) ( ( ) ) d= 2 1 -1 SBT, tr101: Để xử lý liệu vòng tròn thơng thường ta biểu diễn hai lần liên tiếp Ở ta dùng xâu P chứa xâu 'abcdefghijklmnopqrstuvxyz abcdefghijklmnopqrstuvxyz' Việc mã hóa xâu S thực câu lệnh: for i := to length(s) begin j := pos(s[i], p) + k ; s[i] := p[j]; end; SBT, tr103: Tạo hàng rào theo kỹ thuật 4.35, 4.36 SBT, tr103: Kiểm tra tồn hai dấu cách liên tiếp xâu hàm pos(‘ ’,s) Nếu có xóa dấu cách vị trí tìm Lặp lại cơng việc khơng cịn hai dấu cách liên tiếp Kiểm tra kí tự đầu cuối xâu, dấu cách xóa SBT,tr103: Đếm số lượng đầu từ (Kí tự I đầu từ khơng phải kí tự phân cách đứng vị trí trước có dấu cách Có thể đếm số kí tự cuối từ) SBT, tr103: Dữ liệu vịng trịn, phải nhân đơi xâu ban đầu, kiểm tra xâu độ dài N vị trí i (i = 1, 2, , N) SBT, tr116: Tạo mảng thống kê xuất chữ số từ đến SBT, tr116: Dùng xâu P=’0123456789ABCDEF’ để lưu SangKienKinhNghiem.net 7.16/tr69 10 Bài 7.40/tr75 chữ số hệ 16 Lấy phần dư phép chia N cho 16 ta chữ số hàng đơn vị Từ dễ dàng xác định kí tự tương ứng hệ 16 qua xâu P Loại bỏ chữ số xử lí cách lấy phần nguyên phép chi N cho 16 Tiếp tục công việc N=0 Lưu ý: có số ngơn ngữ lập trình cung cấp phương tiện đưa trực tiếp số dạng biểu diễn hệ 16 SBT, tr117: Với N≤1000 ta tạo mảng kí tự biểu diễn số N1, sau xóa theo quy tắc nêu Ghi chú: Nếu áp dụng kỹ thuật phân tích nhị phân ta giải với trường hợp N lớn Có thể thấy, đọc đầu xem xét gợi ý sách tập tập trên, ta nhận thấy cịn mơ hồ học sinh có học sinh hiểu giải tập theo gợi ý Đối với học sinh, việc em làm thêm tập sách tập nhà nội dung quan trọng để em khắc sâu kiến thức, nâng cao khả tư duy, lập trình giải tốn Vấn đề đặt em gặp khó khăn vấp phải tập khó với gợi ý sơ lược sách tập Tin học 11 Theo điều tra khảo sát thực tế học sinh lớp 11C3, 11D3 nhóm học sinh giỏi lớp 11C4, 11D4 trường THPT Triệu Sơn hai năm học liên tiếp: - 11C3, 11C4: Năm học 2016 – 2017, - 11D3, 11D4 : Năm học 2017 – 2018 (Lưu ý: Các lớp chọn tham gia nghiên cứu cho đề tài có nhiều điểm tương đồng ý thức học tập học sinh, thái độ học tập môn Tin học, đặc biệt lực học tập trước tác động.) Kết là: Bảng 1: Nguyện vọng tham gia đội dự tuyển học sinh giỏi trường: Mức độ Rất muốn tham gia Muốn tham gia Không muốn tham gia Tổng Năm học 2016-2017 Lớp 11C3 Lớp 11C4 SL % SL % Năm học 2017-2018 Lớp 11D3 Lớp 11D4 SL % SL % Tổng SL % 4.4 0.0 6.7 4.5 4.4 20.0 20.0 11 24.4 17.4 29 21.0 34 75.6 20 80.0 31 68.9 18 78.2 103 74.6 45 100 25 100 45 100 23 100 138 100 SangKienKinhNghiem.net Bảng 2: Về nguyên nhân chủ yếu làm học sinh không muốn tham gia đội dự tuyển thi học sinh giỏi môn Tin học: Lớp 11C3 11C4 11D3 11D4 Do mơn Sĩ học khó số SL % 45 23 51.1 25 15 60.0 45 21 46.7 23 15 65.2 138 74 53.6 Nguyên nhân Do môn Do gia đinh học phụ không đồng ý SL % SL % 18 40.0 6.7 28.0 12.0 19 42.2 11.1 26.1 8.7 50 36.2 13 9.4 Ý kiến khác SL % 2.2 0.0 0.0 0.0 0.7 Từ kết điều tra cho thấy: Nguyện vọng tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh trường (Bảng 1): Có đến 74.6% học sinh điều tra không muốn tham gia, điều thực khó khăn cho việc tìm nguồn học sinh thi học sinh giỏi cấp Tỉnh môn học nhà trường Về nguyên nhân chủ yếu làm học sinh khơng tham gia (Bảng 2): Có nhiều nguyên nhân, song nguyên nhân chiếm phần nhiều học sinh thấy mơn học khó, khó tự nghiên cứu tự làm tập, không đủ sức để đầu tư vào môn học, thời gian ảnh hưởng đến môn học (các mơn học để thi kì thi THPT Quốc gia) Vậy, làm để nâng cao kết học tập, làm để em cảm thấy chủ động tiếp thu kiến thức cách tư sáng tạo, giúp học sinh hứng thú với mơn học, kết học tập nói chung nâng lên, lựa chọn học sinh có tố chất vào đội dự tuyển trường tham gia dự thi học sinh giỏi cấp Tỉnh điều mà thân suy nghĩ, trăn trở năm học 2.3 CÁC GIẢI PHÁP GIẢI QUYẾT VẤN ĐỀ 2.3.1 Xác định toán, khai báo liệu, xây dựng ý tưởng, viết thuật toán Trong phần tương ứng với tập nêu trên, xin nêu thuật toán cụ thể cho tập mã nguồn viết ngôn ngữ Pascal (mã nguồn xem phần phụ lục), qua em học sinh tham khảo tự viết chương trình giải toán, đoạn mã nguồn nêu đề tài chạy thử, có độ tin cậy cao em học sinh giỏi trường THPT Triệu Sơn sử dụng tham khảo so sánh với làm 2.3.1.1 Bài 4.12/tr33 * Xác định input output toán Input: Dãy số nguyên P =(p1, p2, , pn), ≤ n ≤ 100; pi số nguyên Output: Dãy số nguyên P =(p1, p2, , pn), sau đổi chỗ phần tử lớn có số nhỏ phần tử nhỏ có số lớn SangKienKinhNghiem.net * Khai báo liệu toán - Mảng P gồm tối đa 100 phần tử kiểu Integer để lưu dãy số P nhập vào từ bàn phím - Các biến nguyên Pmax, imax, Pmin, imin tương ứng biến lưu giá trị lớn nhất, vị trí giá trị lớn nhất, giá trị nhỏ nhất, vị trí giá trị nhỏ Ngồi cần dùng biến N - lưu kích thước mảng, biến i - dùng làm số duyệt mảng, nhập in mảng (N, i - kiểu Integer) * Thuật toán Bước 1: Nhập N dãy số P =(p1, p2, , pn) từ bàn phím; Bước 2: Pmin ← p[n] ; imin ← n ; Pmax ← p[1] ; imax ← 1; i ← 1; Bước 3: Nếu i = n đến bước 5; Bước 4: Nếu Pmax < p[i+1] Pmax ← p[imax+1]; imax ← i; i ← i+1; sang bước 3; Bước 5: Nếu imin = đến bước 7; Bước 6: Nếu Pmin > p[i-1] Pmin ← p[i-1]; imin ← i; i ← i-1; sang bước 5; Bước 7: p[imin] ← Pmax; p[imax]← Pmin; Bước 8: In dãy P hình kết thúc 2.3.1.2 Bài 4.25/tr38 * Xác định input output tốn Input: Xâu kí tự s gồm dấu ngoặc mở “(” ngoặc đóng “)” Output: “Yes” cách đặt ngoặc đúng, “No” cách đặt ngoặc sai * Khai báo liệu toán - Xâu ký tự S (string), biến nguyên d tăng đơn vị gặp dấu ngoặc mở giảm đơn vị gặp dấu ngoặc đóng * Thuật toán - Xác định ý tưởng: Dùng biến đếm d kiểu integer với giá trị ban đầu để đếm duyệt từ trái sang phải, gặp dấu ngoặc mở tăng d lên 1, gặp dấu ngoặc đóng giảm d đơn vị Biểu thức ngoặc sai gặp d=-1 hết biểu thức ngoặc d lớn - Thuật toán: Bước 1: Nhập xâu st; Bước 2: d←0; i←1; Bước 3: Bước 3.1: Nếu st[i]= “(” d←d+d; Bước 3.2: Nếu st[i] = “)” d←d-1; Bước 4: Nếu d=-1 thơng báo “No” kết thúc Bước 5: Nếu i>length(st) sang bước 7; Bước 6: i←i+1, quay lại bước 3; Bước 7: Nếu d=0 thơng báo “Yes” kết thúc, ngược lại thơng báo “No” kết thúc; 2.3.1.3 Bài 4.27/tr39 * Xác định input output toán Input: Số nguyên K (1< K ≤ 26) xâu ký tự S không 255 ký tự SangKienKinhNghiem.net Output: Xâu X xâu ký tự S sau mã hóa theo quy tắc Xê Da với khóa K hình * Khai báo liệu toán Số nguyên K (Integer) xâu ký tự S, X (string) * Thuật toán - Xác định ý tưởng: Tạo xâu P gồm 26 ký tự bảng chữ Tiếng Anh, sau gấp đôi xâu P lên gọi P xâu mẫu Duyệt ký tự xâu S, với ký tự S[i] ta thay ký tự cách ký tự S[i] xâu mẫu P K vị trí để ký tự X[i] ký tự mã hóa - Thuật toán: Bước 1: Nhập số nguyên K (1 length(S) đến bước 4; Bước 3: j ← pos(S[i] , P) + k ; X[i] ← P[j] ; i ← i + 1; sang bước 2; Bước 4: In xâu X 2.3.1.4 Bài 4.39/tr45 * Xác định input output toán Input: Nhập xâu S chứa ký tự latinh in thường chữ số Output: Số ký tự khác S * Khai báo liệu toán - Khai báo biến xâu S, biến Count kiểu integer * Thuật toán - Xác định ý tưởng: Duyệt khoảng từ 'a' 'z' từ '0' '9', dùng hàm pos kiểm tra xuất ký tự S, có tăng Count - Thuật toán: Bước 1: Nhập S chứa ký tự latinh in thường chữ số 9; count ← 0; i ← 97 (97 mã chữ 'a') ; j ← 48 (48 mã chữ số '0'); Bước 2: Nếu chr(i) > 'z' sang bước 5; Bước 3: Nếu pos(chr(i),s)>0 Count ← count + 1; Bước 4: i ← i+1; sang bước 2; Bước 5: Nếu chr(j) > '9' sang bước 8; Bước 6: Nếu Pos(chr(j),s)>0 Count ← Count + 1; Bước 7: j ← j + 1; sang bước 5; Bước 8: In giá trị Count kết thúc 2.3.1.5 Bài 4.40/tr45 * Xác định input output tốn Input: Xâu kí tự st Output: Xâu st chuẩn hóa cách xóa dấu cách thừa * Khai báo liệu toán - Khai báo biến xâu St; biến i kiểu integer * Thuật toán - Xác định ý tưởng: Lặp lại việc: xét kí tự đầu xâu, dấu cách xóa; Lặp lại việc: xét kí tự cuối xâu, dấu cách xóa; Nếu tồn hai dấu cách SangKienKinhNghiem.net liên tiếp xâu xóa dấu cách vị trí tìm được, cách sử dụng hàm Pos(‘ ‘,st) Lặp lại công việc khơng cịn hai dấu cách liên tiếp - Thuật toán: Bước 1: Nhập xâu st; Bước 2: i ← 1; Bước 3: Trong st[i]= ‘ ‘ delete(st,i,1); Bước 4: Nếu i>length(st)-1 đưa xâu st, kết thúc; Bước 5: Nếu (st[i]= ‘ ‘) (st[i+1] = ‘ ‘) delete(st,i,1); Bước 6: i←i+1, quay lại bước 3; 2.3.1.6 Bài 4.41/tr45 * Xác định input output tốn Input: Xâu kí tự st Output: Số lượng từ xâu * Khai báo liệu toán - Khai báo biến xâu St; biến i,d kiểu integer * Thuật toán - Xác định ý tưởng: Bắt đầu từ vị trí xâu, kí tự thứ i dấu cách kí tự thứ i+1 khác dấu cách tăng d thêm đơn vị Số lượng từ xâu d - Thuật toán: Bước Nhập xâu st; Bước 2: i←1; d←1; Bước 3: Trong st[i] = ‘ ‘ delete(st,i,1); Bước 4: i←i+1; Bước 5: Nếu i> length(st) đưa d, kết thúc; Bước 5: Nếu st[i] ‘ ‘ st[i+1] = ‘ ‘ d←d+1; Bước 6: Quay lại bước 4; 2.3.1.7 Bài 4.42/tr46 * Xác định input output toán Input: Nhập xâu N viên đá quý (5≤ N ≤ 120), phần tử số nguyên khoảng Output: In số vị trí khác mắc khóa tháo lắp vịng * Khai báo liệu toán - Khai báo biến xâu S, biến Count kiểu integer * Thuật toán - Xác định ý tưởng: Nhân đơi xâu S, kiểm vị trí i = 1, 2, , N, xem xâu độ dài N tính từ i phía đầu S phía cuối S có giống khơng, có tăng Count - Thuật tốn: Bước 1: Nhập S; Bước 2: Khởi tạo: N ← Length(s); s ← s + s; count ← 0; i←1; Bước 3: Nếu i >N sang bước 9; Bước 4: L ←i; R←i+N-1; Bước 5: Nếu (L ≥ R)hoặc(S[L] S[R]) sang bước 7; Bước 6: L ← L + 1; R ← R -1; sang bước 5; Bước 7: Nếu L ≥ R Count ← Count + 1; SangKienKinhNghiem.net Bước 8: i ← i + 1; sang bước 3; Bước 9: In giá trị Count; Kết thúc 2.3.1.8 Bài 7.14/tr6 * Xác định input output tốn Input: Xâu số N (Xâu khơng q 50 chữ số khơng có số khơng có nghĩa đầu) Output: In số thống kê N * Khai báo liệu toán - Khai báo biến xâu N, a ; biến i,j kiểu nguyên * Thuật toán - Xác định ý tưởng: Tạo mảng thống kê xuất chữ số từ đến - Thuật toán: Bước 1: Nhập N; Bước 2:i←0; a[i] ←0; Bước 3: j←1; a[N[j]] ←a[N[j]]+1; Bước 4: Nếu j0 đến bước 8; Bước 7: Bước 7.1: Nếu i9 đến bước 8; Bước 8: Đưa kết quả, kết thúc 2.3.1.9 Bài 7.16/tr69 * Xác định input output toán Input: Số nguyên dương N Output: Dạng biểu diễn N hệ Hexa * Khai báo liệu toán - Số nguyên N; Mảng a để lưu trữ kết số N hệ Hexa * Thuật toán - Xác định ý tưởng: Khởi tạo xâu p=’0123456789ABCDEF’; Lấy số dư N chia 16 lưu vào mảng a: i←0; Trong N>0 làm: i←i+1; a[i] ←p[(N mod 16) +1]; N←N div 16; - Thuật toán: Bước 1: Nhập số nguyên dương N; Bước 2: Nếu N=0 đưa ‘0’, kết thúc Bước 3: i←0; p←’0123456789ABCDEF’; Bước 4: Nếu N>0 i←i+1; Bước 5: a[i] ←p[(N mod 16) +1]; N←N div 16; quay lại Bước Bước 6: j←i; Bước 7: Đưa a[j]; Bước 8: j←i-1; 10 SangKienKinhNghiem.net Bước 9: Nếu j n - sang bước Bước 8: C[j] ← C[j+1]; j ← j + 1; sang bước 7; Bước 9: C[n]← #0; n ← n - 1; i ← i + 1; sang bước 5; Bước 10: Nếu i0=2 i0← i0 - 1; Bước 11: i0 ← i0 + 1; sang bước 2; 2.3.2 Lựa chọn học sinh giỏi thông qua tập Thông qua tập đưa ra, giáo viên phát học sinh tiềm theo học dự tuyển cho thi học sinh giỏi, học sinh lấy “cần cù bù khả năng” Từ đó, chọn lựa học sinh trường tham gia dự tuyển thi học sinh giỏi cấp Tỉnh 2.3.2.1 Lựa chọn thông qua việc phát ý tưởng Với toán đặt ra, giáo viên vào yêu cầu sau để lựa chọn học sinh giỏi: - Học sinh xác định ý tưởng giải tốn khơng? - Học sinh sử dụng cấu trúc liệu để mô tả liệu cho tốn khơng? - Học sinh viết thuật tốn giải tốn khơng? - Học sinh sử dụng câu lệnh ngơn ngữ lập trình để viết chương trình khơng? 2.3.2.2 Lựa chọn thơng qua việc lập trình giải tốn Học sinh phát ý tưởng giải tốn nhanh, sở để chọn lựa học sinh có tố chất, việc giải tốn máy tính cần có tố chất kĩ năng, nên học sinh cần rèn luyện cách lập trình máy tính, giáo viên cần hướng dẫn cho em để lập trình giải tốn thơng qua ý tưởng mà em đưa ra, từ đồng thời hướng dẫn, sửa lỗi cho em dịch thực chương trình Điều giúp em rèn luyện kĩ lập trình máy tính 2.3.3 Mở rộng tập đưa nhằm bồi dưỡng học sinh giỏi 11 SangKienKinhNghiem.net Sau lựa chọn, xác định học sinh giỏi thực muốn tham gia vào đội dự tuyển thi học sinh giỏi cấp Tỉnh Tôi mở rộng hệ thống tập sở tập có sẵn sách tập với mức độ khó dần (tất nhiên có tập mà để giải cần sử dụng nhiều kiến thức nữa, tùy vào chủ đề ôn luyện đưa tập mức độ phù hợp) Từ đó, em cảm thấy vấn đề khơng phải q khó hay lạ, mà từ kiến thức biết, em cần vận dụng tìm ý tưởng cho tốn mở rộng Từ có hứng thú hơn, em học tập chủ động (Lưu ý: mã nguồn cho tập phần phụ lục 3) 2.3.3.1 Với 4.12 Có thể mở rộng thành toán với N lớn hơn, N