(LUẬN văn THẠC sĩ) nghiên cứu xây dựng hệ thống bài tập lập trình trên python cho học sinh phổ thông

102 3 0
(LUẬN văn THẠC sĩ) nghiên cứu xây dựng hệ thống bài tập lập trình trên python cho học sinh phổ thông

Đ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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - LÊ THỊ THU HUYỀN NGHIÊN CỨU XÂY DỰNG HỆ THỐNG BÀI TẬP LẬP TRÌNH TRÊN PYTHON CHO HỌC SINH PHỔ THƠNG LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI - 2022 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - LÊ THỊ THU HUYỀN NGHIÊN CỨU XÂY DỰNG HỆ THỐNG BÀI TẬP LẬP TRÌNH TRÊN PYTHON CHO HỌC SINH PHỔ THƠNG CHUN NGÀNH : Mà SỐ: KHOA HỌC MÁY TÍNH 8.48.01.01 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS VŨ VĂN THỎA HÀ NỘI – 2022 LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng tơi Nội dung luận văn có tham khảo sử dụng tài liệu, thông tin đăng tải tạp chí trang web theo danh mục tài liệu tham khảo Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà nội, ngày 12 tháng 07 năm 2022 Người cam đoan Lê Thị Thu Huyền LỜI CẢM ƠN Trong trình thực luận văn này, Học viên nhận hướng dẫn, bảo tận tình Thầy giáo TS Vũ Văn Thỏa, giảng viên Khoa Công nghệ thông tin 1, cán trực tiếp hướng dẫn khoa học Thầy giành nhiều thời gian việc hướng dẫn học viên cách đọc tài liệu, thu thập đánh giá thông tin phương pháp nghiên cứu để hoàn thành luận văn Học viên xin chân thành cảm ơn Thầy, Cơ giáo Học viện Cơng nghệ Bưu Viễn thơng ln nhiệt tình giúp đỡ tạo điều kiện tốt cho em suốt trình học tập trường Xin chân thành cảm ơn anh, chị bạn học viên lớp Cao học – Học viện động viên, giúp đỡ nhiệt tình chia sẻ với em kinh nghiệm học tập, cơng tác suốt khố học Học viên xin chân thành cảm ơn vị lãnh đạo bạn đồng nghiệp quan tạo điều kiện tốt để em hồn thành tốt khố học Cao học Em xin chân thành cảm ơn ! Hà Nội, ngày 12 tháng 07 năm 2022 MỤC LỤC Viết tắt CNTT Tiếng Anh Information Technology Tiếng việt Công nghệ thông tin CT2018 Chương trình cải cách giáo dục phổ thơng năm 2018 CTC Chương trình DL Digital Literacy HS Học vấn số hố phổ thơng Học sinh ICT Information & Communication Technology Công nghệ thông tin truyền thông IDE Integrated Development Environment Mơi trường tích hợp phát triển IDLE Integrated Development and Learning Environment Môi truwowngftichs hợp phát triển học MT Computer Máy tính NNLT Programming language Ngơn ngữ lập trình NLT Người lập trình PPDH Phương pháp dạy học THPT Trung học phổ thông SCORM Sharable Content Object Reference Model Mơ hình tham chiếu đối tượng nộidung E-Learning Electronic Learning Bài giảng điện tử LMS Hệ thống quản lý học tập Learning Managerment System DANH SÁCH CÁC HÌNH VẼ MỞ ĐẦU Mục tiêu giáo dục phổ thơng giúp học sinh phát triển tồn diện đạo đức, trí tuệ, thể chất, thẩm mỹ kĩ bản, phát triển lực cá nhân, tính động sáng tạo, hình thành nhân cách người Việt Nam xã hội chủ nghĩa, xây dựng tư cách trách nhiệm công dân; chuẩn bị cho học sinh tiếp tục học lên vào sống lao động, tham gia xây dựng bảo vệ Tổ quốc Chính vậy, giáo dục có vai trị vơ quan trọng việc xây dựng hệ người Việt Nam phát triển tồn diện, có lý tưởng, đạo đức, có tính tổ chức kỷ luật, làm chủ tri thức đại, có tư sáng tạo, đáp ứng yêu cầu xây dựng bảo vệ tổ quốc Trong thực tế, Tin học mơn học vừa mang tính khoa học vừa mang tính kĩ thuật, ngành Tin học phát triển vũ bão, ngày xâm nhập vào ngành khoa học công nghệ đời sống, môn Tin học đưa vào nhà trường tri thức phương pháp phổ thông thành tựu nhân loại, xếp chúng thành hệ thống logic đảm bảo tính khoa học, tính tư tưởng, tính thực tiễn, tính sư phạm, phù hợp với điều kiện hoàn cảnh đất nước, đáp ứng yêu cầu cách mạng khoa học công nghệ ngày nay, phục vụ cơng cơng nghiệp hóa, đại hóa đất nước, chuẩn bị cho kinh tế tri thức Tin học giúp học sinh hình thành nên kiến thức quan trọng nhất, chuẩn bị cho học sinh hành trang để bước vào đời học lên bậc học cao Đó chìa khố mở cửa cho tương lai Hiện môn Tin học trở thành môn học bắt buộc nhà trường phổ thông, thuận lợi lớn cho việc tiến hành giảng dạy Tuy nhiên, thực tế trường phổ thông nhà trường học sinh chưa ý nhiều đến môn Tin học Vì đa số học sinh THPT cịn non kĩ lập trình Trong chương trình mơn Tin học lớp 11 trường THPT, kĩ đề cập đến quan trọng kĩ lập trình giải tốn Nhờ có kĩ mà học sinh có trải nghiệm thú vị, thấy máy tính giúp người giải tốn, cơng việc cách tự động chương trình, nhận thức kĩ lập trình kích thích học sinh hứng thú việc tìm tịi thuật tốn ngơn ngữ lập trình (NNLT) Chương trình Tin học 2018 [1] địi hỏi mơn tin phải giúp học sinh định hướng nghề nghiệp Do u cầu dạy lập trình cho học sinh phải có đổi mới, phù hợp với yêu cầu sách giáo khoa thực tế NNLT Pascal dạy cho học sinh bộc lộ nhiều nhược điểm cần phải thay Hệ thống tập lập trình chưa đa dạng, chủ yếu dựa tập toán Tại Hà Nội, năm học 2021 – 2022 Sở giáo dục đào tạo khuyến nghị trường dạy học lập trình cho học sinh lớp 11 ngơn ngữ lập trình Python Hiện tại, chưa có nhiều tài liệu xây dựng hệ thống tập ngôn ngữ lập trình Python, đặc biệt dành cho học sinh phổ thơng Một số tài liệu có [2] đưa vấn đề dạy ngơn ngữ lập trình Python cho học sinh, hệ thống tập chưa phù hợp với học sinh phổ thông yêu cầu Các tài liệu nước ngồi ngơn ngữ lập trình Python chủ yếu dành cho lập trình viên chuyên nghiệp chưa phù hợp với khung chương trình mơn Tin học dành cho học sinh phổ thông [6] Như vây, thấy q trình dạy học lập trình cho học sinh phổ thơng có tầm quan trọng đặc biệt Quá trình cần phát huy cao hiệu giảng dạy theo tinh thần đổi chương trình cải cách 2018 Với mong muốn đóng góp phần nhỏ PPDH mơn học cịn mẻ nhà trường THPT, xuất phát từ thực tế mục tiêu trên, học viên chọn thực đề tài luận văn tốt nghiệp chương trình đào tạo thạc sĩ có tên “Nghiên cứu xây dựng hệ thống tập lập trình Python cho học sinh phổ thông” Mục tiêu luận văn nghiên cứu sở lý thuyết thực tế để xây dựng hệ thống tập lập trình Python cho học sinh phổ thơng Để hồn thành mục tiêu trên, nội dung luận văn bố cục gồm ba chương sau: Chương 1: Tổng quan dạy lập trình cho học sinh phổ thơng 10 Nội dung chương khảo sát tổng quan thực trạng yêu cầu dạy lập trình cho học sinh phổ thơng theo chương trình cải cách giáo dục phổ thông năm 2018 (CT2018) vấn đề liên quan Chương 2: Khảo sát đặc trưng ngơn ngữ lập trình Python Nội dung chương khảo sát yếu tố ngơn ngữ lập trình (NNLT) Python phân tích lựa chọn, thực trình bày số nội dung NNLT Python phù hợp với học sinh phổ thông Chương 3: Kết thực xây dựng hệ thống tập lập trình cho học sinh phổ thơng Nội dung chương xác định yêu cầu, xây dựng hệ thống tập lập trình hướng dẫn sử dụng phù hợp với giảng dạy lập trình Python cho học sinh phổ thơng 88 Ví dụ : SM.INP 10 SM.OUT Giải thích Có 6! = 720 nên m = 6.9 Đếm phân số (Thời gian chạy chương trình ≤ giây) Cho trước số nguyên dương n không vượt 104 Yêu cầu: Đếm số lượng L phân số có giá trị khác có tử số mẫu số số nguyên a, b, ≤ a ≤ b, ≤ b ≤ n Dữ liệu: Vào từ tệp PS.INP chứa số nguyên dương n không vượt 104 Kết quả: Ghi tệp PS.OUT số L tìm Ví dụ : PS.INP PS.OUT Giải thích Các phân số khác thỏa mãn: 0/1, 1/1, 1/2, 1/3, 2/3, 1/4, 3/4 6.10 Số song nguyên tố (Thời gian chạy chương trình ≤ giây) Với số tự nhiên x, ký hiệu S(x) tổng chữ số x hệ thập phân, Số x gọi số song nguyên tố x S(x) số nguyên tố Cho trước số nguyên dương n u cầu: Tìm số ngun dương lớn khơng vượt n số song nguyên tố Dữ liệu: Vào từ tệp SNT.INP chứa số nguyên dương n, ≤ n ≤ 109 Kết quả: Ghi SNT số song ngun tố tìm Ví dụ: SNT.INP SNT.OUT Giải thích 25 23 Số 23 số song nguyên tố, cịn số 24, 25 khơng Do số 23 thỏa mãn 6.11 Tổng bình phương chữ số (Thời gian chạy chương trình ≤ giây) Cho trước số nguyên dương x không vượt 10 Ký hiệu S(x) tổng bình phương chữ số x Ta lập dãy số {u n} sau: u1 = S(x); cịn với n > u n = S(un-1) Yêu cầu: Xác định giá trị lớn y số hạng có dãy {un} Dữ liệu: Vào từ tệp BP.INP chứa số x Kết quả: Ghi tệp BP.OUT số y tìm Ví dụ: BP.INP BP.OUT Giải thích 145 Các số hạng khác dãy {u n} là: 81, 65, 61, 37, 58, 89, 145, 42, 20, 4, 16 Do Max= 145 6.12 Bội số dạng lũy thừa (Thời gian chạy chương trình ≤ giây) 89 Cho trước số nguyên dương a Yêu cầu: Tìm số nguyên dương X nhỏ cho XX bội số a Dữ liệu: Vào từ tệp văn LT.INP chứa số nguyên dương a ≤ 109 Kết quả: Ghi tệp văn LT.OUT số X tìm Ví dụ: LT.INP LT.OUT Giải thích 80 10 X = 10 số thỏa mãn 1010 chia hết cho 80 số nguyên dương b có bb chia hết cho 80 b ≥ 10 6.13 Hành khách xe buýt (Thời gian chạy chương trình ≤ giây) Một xe buýt qua n bến đỗ đánh số thứ tự từ đến n Tại bến đỗ biết số khách xuống xe, số khách lại xe số khách lên xe Yêu cầu: Tìm số lượt khách xe buýt số lượng khách xe lớn thời điểm q trình xe bt từ bến đầu đến bến cuối Dữ liệu: Vào từ tệp HK.INP: - Dòng thứ chứa số nguyên dương n (2 ≤ n ≤ 100) - Dòng thứ hai chứa số tự nhiên m (m ≤ 100) số lượng khách có xe xuất phát từ bến thứ - Trong n – dòng tiếp theo, dòng thứ i chứa hai số tự nhiên a i (ai ≤ 100) số lượng khách xuống xe bi (bi ≤ 100) số lượng khách lên xe bến thứ i (2 ≤ i ≤ n - 1) - Dòng cuối chứa số tự nhiên s (s ≤100) số lượng khách lại xe tới bến cuối Kết : Ghi file văn HK.OUT : - Dòng thứ ghi số lượt khách xe buýt - Dòng thứ hai ghi số lượng khách lớn xe thời điểm q trình xe buýt từ bến đầu đến bến cuối Ví dụ: HK.INP HK.OUT Giải thích 23 - Số lượt khách xe buýt tổng số khách có 10 15 xe bến thứ số lượng khách lên xe bến từ thứ hai đến bến thứ 10 + + 10 + = 23 10 - Từ bến đến bến có 10 khách xe Từ bến 2 đến bến có khách xe Từ bến đến bến có 15 13 khách xe Từ bến đến bến có 15 khách xe 6.14 Tổng (Thời gian tối đa chạy chương trình ≤ giây) Cho trước n số nguyên a 1, , an Dãy số ai, ai+1, …, aj (1 ≤ i ≤ j ≤ n) gọi dãy n số cho Yêu cầu: Tìm số lượng dãy có tổng số hạng n số nguyên cho Dữ liệu: Vào từ tệp SUM.INP: - Dịng đầu chứa số ngun dương n khơng vượt 105 90 - Dòng sau chứa n số nguyên a 1, , an, số có giá trị tuyệt đối không vượt 104 Kết quả: Ghi tệp SUM.OUT: Số lượng dãy có tổng số hạng n số nguyên cho Ví dụ : SUM.INP SUM.OUT Giải thích Có ba dãy có tổng số hạng là: -15 12 - Dãy gồm số: 3, -15, 12; - Dãy gồm: 0; - Dãy gồm số cho 6.15 Mua xăng (Thời gian chạy chương trình ≤ giây) Một ơng vua có a dola b euro để mua xăng Có n cơng ty nước ngồi bán xăng đánh số từ đến n Công ty thứ i, ≤ i ≤ n, có giá bán d i dola / lit xăng ei euro/1 lit xăng Tuy nhiên, theo quy định, công ty phép bán xăng cho khách hàng theo dola, theo euro Yêu cầu: Tìm số xăng nhiều mà vua mua Dữ liệu vào cho tệp văn MX.INP: - Dòng đầu chứa số nguyên n, a, b, ≤ n ≤ 106, ≤ a, b ≤ 109) - Trong n dòng tiếp theo, dòng thứ i, ≤ i ≤ n, chứa hai số nguyên dương d i ei không vượt 109 Kết ghi tệp văn MX.OUT số xăng lớn mà vua mua theo quy định với hai chữ số phần lẻ Ví dụ: MX.INP MX.OUT Giải thích 1.92 Vua mua xăng theo dola công ty số 0.67 lit, mua xăng theo euro công ty thứ 1.25 lit Tổng cộng, số xăng lớn mà vua mua 1.92 lit 6.16 Hệ nhị phân (Thời gian chạy chương trình ≤ giây) Mọi số nguyên dương X biểu diễn hệ nhị phân tương tự biểu diễn hệ thập phân Yêu cầu: Cho trước số X Tìm biểu diễn hệ nhị phân số X số Y lớn hệ thập phân cho biểu diễn nhị phân Y nhận từ biểu diễn nhị phân X cách hốn vị vịng quanh chữ số Dữ liệu vào từ tệp văn NP.INP chứa số nguyên dương X (1 ≤ X ≤ 109) Kết ghi tệp văn NP.OUT: - Dòng thứ biểu diễn nhị phân số X - Dịng thứ hai ghi số Y tìm Ví dụ : NP.INP NP.OUT Giải thích 17 10001 17 = 1*2 + 91 24 = 1*24 + 1*23 24 6.17 Hệ Hexa (Thời gian chạy chương trình ≤ giây) Trong hệ số 16 (hệ Hecxa) ta sử dụng 16 chữ sô: 0, 1, , A = 10, B = 11, C = 12, D = 13, E = 14, F = 15 Mọi số nguyên dương X biểu diễn hệ Hecxa tương tự biểu diễn hệ nhị phân Yêu cầu: Cho trước số X Tìm số H biểu diễn hệ Hecxa số X số Y lớn hệ thập phân cho biểu diễn Hecxa Y nhận từ biểu diễn Hecxa X cách hốn vị vịng quanh chữ số Dữ liệu vào từ tệp văn HEXA.INP chứa số nguyên dương X (1 ≤ X ≤ 109) Kết ghi tệp văn HEXA.OUT: - Dòng thứ ghi số H tìm - Dịng thứ hai ghi số Y tìm Ví dụ: HEXA.INP HEXA.OUT Giải thích 1610 64A 1610 = $64A 2660 2660 = $A64 6.18 Mua máy (Thời gian chạy chương trình ≤ giây) Một nhà máy cần gia công n sản phẩm nên phải mua số máy để sản xuất Mỗi sản phẩm thứ i đưa tới nhà máy vào thời điểm d i gia công hết ti đơn vị thời gian Tại thời điểm, máy gia công sản phẩm hồn thành chuyển sang gia cơng sản phẩm khác Mỗi sản phẩm đến nhà máy phải gia công Yêu cầu: Xác định xem nhà máy cần mua số lượng máy để đảm bảo sản xuất Dữ liệu vào từ tệp văn MM.INP: - Dòng đầu chứa số nguyên dương n ≤ 103; - Trong n dòng tiếp theo, dòng thứ i (1 ≤ i ≤ n) chứa hai số nguyên dương d i, ti không vượt 109 Kết ghi tệp văn MM.OUT số lượng máy cần mua tìm Ví dụ: MM.INP MM.OUT Giải thích 13 15 11 12 10 3 Máy thứ gia công sản phẩm 1; Máy thứ hai gia công sản phẩm 3; Máy thứ ba gia công sản phẩm 6.19 Chênh lệch nhỏ (Thời gian chạy chương trình ≤ giây) Cho trước số nguyên dương n dãy gồm n số thực a1, a2, , an 92 Yêu cầu: Tìm cách xếp n số cho để tổng S giá trị tuyết đối hiệu hai số kề dãy S = ∑│ai+1 - ai│, i = 1, 2, , n-1 nhỏ Dữ liệu: Vào từ tệp văn CL.INP : - Dòng đầu chứa số ngun dương n khơng vượt q 105 - Dịng sau chứa n số thực a1, a2, , an Kết quả: Ghi tệp văn CL.OUT: - Dòng đầu giá trị nhỏ S với hai chữ số sau dấu phẩy - Dòng sau ghi cách xếp tương ứng n số thực cho Ví dụ: CL.INP CL.OUT Giải thích 15.00 Sắp xếp -7, 4.2, 5.1, có Smin = 15.00 5.1 -7 4.2 -7.0 4.2 5.1 8.0 6.20 Tham quan (Thời gian chạy chương trình ≤ giây) Có n lớp học sinh đánh số từ đến n tổ chức tham quan Lớp thứ i (1 ≤ i ≤ n) tham quan địa điểm thứ i cách trường D[i] km Một cơng ty vận tải có m xe ca đánh số từ đến m (m ≥ n) để phục vụ đưa lớp học sinh tham quan Xe thứ j (1 ≤ j ≤ m) có mức tiêu thụ xăng V[j] lit/1 km Yêu cầu: Chọn n xe để đưa lớp học sinh tham quan cho tổng lượng xăng cần dùng Dữ liệu: Vào từ tệp TQ.INP: - Dòng đầu chứa hai số nguyên dương n, m với n ≤ m < 100; - Dòng hai chứa n số nguyên dương D[1], …, D[n] không vượt 200; - Dòng ba chứa m số nguyên dương V[1], …, V[m] không vượt 50 Kết quả: Ghi tệp TQ.OUT: Số lượng xăng cần dùng Ví dụ: TQ.INP 17 13 15 10 TQ.OUT 256 Giải thích Lớp thứ xe thứ 2, lớp thứ hai xe thứ 3, lớp thứ ba xe thứ Tổng lượng xăng 256 6.21 Th phịng máy (Thời gian chạy chương trình ≤ giây) Cơng ty phần mềm XYZ có n nhóm làm việc, nhóm thứ i (1 ≤ i ≤ n) có vi nhân viên cần phịng với v i máy tính để làm việc Trong thành phố có m phịng máy tính cho th, phịng thứ j (1 ≤ j ≤ m) có tj máy tính Giá th phịng máy tính tính số lượng máy tính phịng nhân với giá th máy tính a u cầu: Tìm phương án th phịng máy tính cho cơng ty XYZ cho tổng tiền x phải trả Dữ liệu: Vào từ tệp PM.INP: - Dòng đầu chứa số nguyên dương n, m a, với n, m ≤ 106, a ≤ 100 - Dòng thứ hai chứa n số nguyên dương vi, số khơng vượt q 109 - Dịng thứ ba chứa m số nguyên dương tj, số không vượt 109 93 Kết quả: Ghi tệp PM.OUT giá trị x tìm số -1 khơng có phương án th Ví dụ: TM.INP TM.OUT Giải thích 10 470 Nhóm th phịng máy 3, nhóm th 16 15 phịng máy 6, nhóm th phịng máy 20 8 15 17 nhóm th phịng máy 6.22 Chọn phân số nhỏ (Thời gian chạy chương trình ≤ giây) Cho dãy (A) gồm n số hạng số nguyên khác Yêu cầu: Tìm hai số hạng aj dãy (A) cho phân số ai/aj có giá trị nhỏ Dữ liệu: Vào từ tệp văn PSNN.INP: - Dòng đầu chứa số nguyên dương n, với ≤ n ≤ 105 - Dòng chứa n số nguyên khác 0, số có giá trị tuyệt đối không vượt 109 Kết quả: Ghi tệp văn PSNN.OUT hai số aj tìm dịng Ví dụ: PSNN.INP PSNN.OUT Giải thích 10 -1 Hai số hạng a4 = 10 a1 = -1 tạo thành phân số có -1 -4 10 giá trị nhỏ -10 6.23 Chọn phân số lớn (Thời gian chạy chương trình ≤ giây) Cho dãy (A) gồm n số hạng số nguyên khác Yêu cầu: Tìm hai số hạng aj dãy (A) cho phân số ai/aj có giá trị nhỏ Dữ liệu: Vào từ tệp PSLN.INP: - Dòng đầu chứa số nguyên dương n, với ≤ n ≤ 105 - Dòng chứa n số nguyên khác 0, số có giá trị tuyệt đối không vượt 109 Kết quả: Ghi tệp PSLN.OUT hai số aj tìm dịng Ví dụ: PSLN.INP PSLN.OUT Giải thích -4 -1 Hai số hạng a3 = -4 a1 = -1 tạo thành phân số có -1 -4 10 giá trị lớn 6.24 Dãy (Thời gian chạy chương trình ≤ giây) Cho dãy gồm n số nguyên a1, a2, , an Yêu cầu: Tìm cách chia dãy số thành nhiều đoạn có tổng số đoạn Dữ liệu: Vào từ tệp DC.INP: - Dòng đầu chứa số nguyên dương n khơng vượt q 105 ; - Dịng chứa n số ngun có giá trị tuyệt đối khơng vượt 104 Kết : Ghi tệp DC.OUT số lượng đoạn tổng đoạn Ví dụ: DC.INP DC.OUT Giải thích 94 4 Có thể chia thành đoạn con, đoạn có tổng sau: Đoạn 1: 4; Đoạn 2: 1, 3; Đoạn 3: 0, 6.25 Dãy số (Thời gian chạy chương trình ≤ giây) Cho dãy (A) gồm n số nguyên dương a1, a2, , an Yêu cầu: Tìm số ngun dương nhỏ m khơng có mặt dãy (A) Dữ liệu: Vào từ tệp NN.INP: - Dòng đầu chứa số nguyên dương n, n ≤ 106; - Dòng chứa n số nguyên dương không vượt 109 Kết : Ghi tệp NN.OUT số m tìm Ví dụ : NN.INP NN.OUT Giải thích 5 Số ngun dương nhỏ khơng có mặt dãy 4 6.26 Chọn số (Thời gian tối đa chạy chương trình ≤ giây) Cho n số nguyên dương a 1, a2, …, an Người ta chia n số nguyên thành k nhóm, nhóm có m số Trong nhóm thứ i, (1 ≤ i ≤ k) ta tính h i hiệu số lớn số nhỏ nhóm gọi h số lớn k số hi Yêu cầu: Xác định giá trị nhỏ h Dữ liệu: Vào từ tệp CS.INP: - Dòng đầu chứa ba số nguyên dương n, k m, ≤ k.m ≤ n ≤ 105 - Trong n dòng tiếp theo, dòng thứ i (1 ≤ i ≤ n) chứa số nguyên dương a i có giá trị khơng vượt q 109 Kết quả: Ghi tệp CS.OUT số h tìm Ví dụ : CS.INP CS.OUT Giải thích 30 Có thể chia số cho thành hai nhóm: 170 - Nhóm gồm ba số thứ 1, thứ thứ có h = 205 30; 225 - Nhóm gồm ba số thứ 2, thứ thứ có h = 190 20; 260 Do h = 30 nhỏ 130 225 160 95 6.27 Trò chơi xếp sỏi (Thời gian chạy chương trình ≤ giây) Có n hộp đánh số từ đến n xếp thành hình tròn theo chiều quay kim đồng hồ Trong số hộp có đựng sỏi cho tổng số sỏi khơng vượt 10 Mõi lượt chơi, người chơi chọn hộp i có sỏi lấy tất sỏi hộp bỏ vào hộp viên sỏi hộp đứng sau hộp i theo chiều quay kim đồng hồ hết Sau P lượt chơi vậy, ta biết số sỏi hộp Yêu cầu: Hãy tìm số sỏi ban đầu hộp 1 Dữ liệu vào từ tệp TC.INP: - Dòng đầu chứa số nguyên dương n khơng vượt q 200 - Dịng hai chứa n số nguyên dương a 1, a2, …, an số lượng sỏi sau lượt chơi cuối hộp - Dòng ba chứa số nguyên dương P (1 ≤ P ≤ 200) - Dòng bốn chứa P số nguyên dương c 1, c2, …, cP, số nguyên dương c i rõ số hiệu hộp bỏ viên đá cuối lượt chơi thứ i, ≤ i ≤ P Kết ghi tệp TC.OUT gồm n số tự nhiên, số thứ i số lượng sỏi ban đầu có hộp thứ i, ≤ i ≤ n Ví dụ: TC.INP TC.OUT Giải thích 0 Bốc viên sỏi từ hộp rải sỏi theo 2 qui tắc có số lượng sỏi tương ứng hộp 1, 2, 2, viên sỏi cuối bỏ vào hộp Thực lượt chơi 6.28 Cộng số (Thời gian chạy chương trình ≤ giây) Một máy tính thực phép cộng số nguyên dương theo nguyên tắc sau Mỗi lần tính tổng hai số đó, cần trả khoản tiền có giá trị 5% tổng chúng Như vậy, để tính tổng n số nguyên dương cho trước, cần thực n-1 phép tính cộng hai số theo thứ tự Yêu cầu: Xác định số tiền phải trả tính tổng n số nguyên dương cho Dữ liệu: Vào từ tệp CS.INP: - Dòng đầu chứa số nguyên dương n ≤ 105 - Dòng chứa n số nguyên dương, số ≤ 104 Kết quả: Ghi tệp CS OUT số tiền cần trả để tính tổng n số cho với chữ số sau dấu phẩy Ví dụ: CS.INP CS.OUT Giải thích 4.60 Ta cơng theo thứ tự sau: 10 + 11 = 21; 12 + 13 = 25 10 11 12 13 21 + 25 = 46 Tổng tiền phải trả 0.05(21 + 25 +46) = 4.60 6.29 Dự đoán phim (Thời gian chạy chương trình ≤ giây) 96 Trong liên hoan phim thành phố X có n phim tham gia tranh giải phim hay đạo diễn xuất sắc Ban tổ chức nhận kết dự đoán khán giả qua mạng sau: Phim thứ i (1 ≤ i ≤ n) có tổng điểm dự báo không đạt giải thưởng ai, đạt giải thưởng phim hay bi đạt giải thưởng đạo diễn xuất sắc ci Yêu cầu: Chọn hai phim khác u v, u đạt giải phim hay v đạt giải đạo diễn xuất sắc nhất, phim khác khơng đạt giải cho tổng điểm dự đốn lớn Dữ liệu: Vào từ tệp PHIM.INP: - Dòng đầu chứa số nguyên dương n, với ≤ n ≤ 105; - Trong n dòng tiếp, dòng thứ i (1 ≤ i ≤ n) chứa số nguyên dương ai, bi ci, số không vượt 109 Kết quả: Ghi tệp PHIM.OUT tổng điểm dự đốn lớn tìm được; Ví dụ : PHIM.INP PHIM.OUT Giải thích 17 Chọn phim đạt giải phim hay phim đạt giải đạo diễn xuất sắc có tổng điểm dự đốn lớn tìm + + = 17 6.30 Bộ ba số đặc biệt (Thời gian chạy chương trình ≤ giây) Cho dãy (A) gồm m số nguyên dương a 1, a2, …, am dãy (B) gồm n số nguyên dương b1, b2, …, bn Từ dãy (A) lấy hai số a k, aj (k ≠ j, ≤ k, j ≤ m); từ dãy (B) lấy số bi (1 ≤ i ≤ n) để tạo thành ba số thỏa mãn a k < bi < aj aj < bi < ak Bộ ba số gọi ba số đặc biệt Đối với số lại hai dãy (A) (B) lại tiếp tục trình để chọn ba số đặc biệt khác Yêu cầu: Xác định số lượng ba số đặc biệt nhiều chọn từ hai dãy (A) (B) Dữ liệu: Vào từ tệp SDB.INP : - Dòng đầu chứa hai số nguyên dương m n, ≤ m, n ≤ 105; - Dòng chứa m số nguyên dương a1, a2, …, am, ≤ 109, ≤ i ≤ m; - Dòng cuối chứa n số nguyên dương b1, b2, …, bn, bj ≤ 109, ≤ j ≤ n; Kết quả: Ghi tệp SDB.OUT số lượng ba số đặc biệt chọn từ hai dãy (A) (B) Ví dụ: SDB.INP SDB.OUT Giải thích Bộ ba thứ nhất: a1 = 5, a4 = 2, b2= 4; 51322 Bộ ba thứ hai: a2= 1, a3 = b1 = 243 6.31 Máy tính (Thời gian chạy chương trình ≤ giây) Có n máy tính đánh số từ đến n Mỗi máy tính thứ i (1 ≤ i ≤ n) cần trang bị đĩa cứng với dung lượng tối thiểu (GB) Trên thị trường có m loại đĩa cứng đánh số 97 từ đến m Mỗi đĩa cứng loại j (1 ≤ j ≤ m) có dung lượng b j (GB) giá tiền cj (ngàn đồng) Máy tính thứ i trang bị đĩa cứng thứ j bj ≥ Yêu cầu: Tìm số tiền nhỏ để trang bị đĩa cứng cho n máy tính Dữ liệu: Vào từ tệp MT.INP: - Dịng đầu chứa số ngun dương n khơng vượt q 105 - Dòng chứa n số nguyên dương ai, ≤ i ≤ n, ≤ 1000 - Dịng chứa số ngun dương n khơng vượt 105 - Trong m dòng tiếp theo, dòng thứ j (1 ≤ j ≤ m) chứa hai số nguyên dương b j, cj, số không vượt 1000 Kết quả: Ghi tệp MT.OUT số tiền nhỏ cần đầu tư Ví dụ: MT.INP MT.OUT Giải thích 13 Máy tính thứ trang bị đĩa cứng loại 3, máy 312 tính thứ thứ trang bị đĩa cứng loại 4 Tổng số tiền cần đầu tư + + = 13 10 17 37 23 6.32 Quảng cáo (Thời gian tối đa chạy chương trình ≤ giây) Trong siêu thị liên tục phát quảng cáo mặt hàng qua loa phóng Để xếp lịch quảng cáo tối ưu, ban lãnh đạo siêu thị tiến hành điều tra khách hàng biết hàng ngày khách hàng đến rời siêu thị vào thời điểm Siêu thị muốn tiến hành quảng cáo cho khách hàng đến siêu thị nghe không quảng cáo thời gian khách hàng siêu thị Đồng thời hai quảng cáo không phát đồng thời số lượng quảng cáo ngày nhỏ Các quảng cáo bắt đầu phát kết thúc vào thời điểm số nguyên Khi khách hàng đến siêu thị rời siêu thị vào thời điểm bắt đầu phát quảng cáo xem khách hàng nghe quảng cáo u cầu: Tìm lịch phát quảng cáo thoả mãn tất yêu cầu Dữ liệu: Vào từ tệp QC.INP: - Dòng đầu chứa số nguyên dương n ≤ 3000 số lượng khách hàng đến siêu thị vòng ngày - Trong n dòng tiếp theo, dòng chứa cặp số nguyên dương A B thời điểm đến rời khỏi siêu thị khách hàng Kết quả: Ghi tệp QC.OUT số lượng quảng cáo cần phát Ví dụ: QC.INP QC.OUT Giải thích 5 Quảng cáo phát vào thời điểm 10 Quảng cáo phát vào thời điểm 10 10 12 Quảng cáo phát vào thời điểm 12 98 10 10 23 24 Quảng cáo phát vào thời điểm 23 Quảng cáo phát vào thời điểm 24 6.33 Chép kinh (Thời gian chạy chương trình ≤ giây) Trong chùa Thiếu lâm, nhà sư phạm giới bị phạt đưa vào Tàng Kinh Các để chép kinh Hiện có tất n nhà sư phạm giới đánh số thứ tự từ đến n phải chép m kinh Nhà sư thứ i (1 ≤ i ≤ n) chép kinh hoàn thành sau di ngày Các nhà sư phải làm việc liên tục chép xong m kinh Tại Tàng Kinh Các, nhà sư nhận kinh để chép theo số thứ tự Yêu cầu: Xác định nhà sư giao chép kinh cuối ngày diễn kiện Dữ liệu: Vào từ tệp văn CK.INP: - Dòng đầu chứa hai số nguyên dương m ≤ 104 n ≤ 103; - Dòng chứa n số nguyên dương di ≤ 15 (1 ≤ i ≤ n) Kết quả: Ghi tệp văn CK.OUT gồm hai số nguyên dương s k, s số thứ tự nhà sư giao chép kinh cuối k ngày diễn kiện Ví dụ: CK.INP CK.OUT Giải thích 22 Đến ngày thứ 9, nhà sư thứ chép kinh thứ 20, nhà sư thứ hai chép kinh thứ 21, nhà sư thứ tư chép kinh thứ 22 6.34 Vùng đất phẳng (Thời gian chạy chương trình ≤ giây) Một vùng đất có dạng hình chữ nhật chia thành luới ô vuông đơn vị gồm m hàng n cột Tại ô vuông ghi số tự nhiên không vượt 100 độ cao đất u cầu: Tìm vùng đất phẳng gồm số kề cạnh có độ cao cho diện tích vùng lớn Dữ liệu: Vào từ tệp VDP.INP:: - Dòng đầu chứa hai số nguyên dương m, n không vượt 100 - Trong m dòng tiếp theo, dòng thứ i (1 ≤ i ≤ m) chứa n số tự nhiên mô tả độ cao ô hàng i Các số cách dấu cách Kết quả: Ghi tệp VDP.OUT gồm số diện tích vùng đất lớn tìm dịng Ví dụ: VDP.INP VDP.OUT Giải thích 4 Vùng đất lớn gồm ô: (2,1), 10 (2,2), (2,3), (2,4), (3,3), (3,4) (4, 2) 1 1 99 1 5 1 6.35 Tìm hình (Thời gian chạy chương trình ≤ giây) Cuội có mảnh giấy thần hình chữ nhật chia thành m hàng n cột Các hàng đánh số từ lên theo thứ tự từ đến m Các cột đánh số từ trái qua phải theo thứ tự từ đến n Các ô mảnh giấy thần tô màu Bờm lấy k mảnh giấy hình chữ nhật có kích thước cho đặt vào mảnh giấy thần khơng có phần thừa ngồi Các mảnh giấy Bờm đánh số từ đến k tô màu khác tương ứng từ đến k Mỗi mảnh giấy thứ i (1 ≤ i ≤ k) đặt cho ô tận phía bên trái hàng h 1[i], cột c1[i] tận phía bên phải hàng h2[i], cột c2[i] Sau Bờm đặt xong k mảnh giấy, mảnh giấy thần ban đầu chia thành hình, hình gồm vng màu có chung cạnh u cầu: Tính số hình mảnh giấy thần Dữ liệu vào từ tệp TH.INP: - Dòng đầu chứa hai số nguyên dương m, n không vượt 102 - Dòng thứ hai chứa số nguyên dương k khơng vượt q 103 - Trong k dịng tiếp theo, dòng thứ i chứa số nguyên dương h 1[i], c1[i], h2[i], c2[i], h1[i], h2[i] khơng vượt m, c1[i], c2[i] không vượt n Kết ghi tệp TH.OUT gồm dòng chứa số hình tính Các số dịng cách dấu cách Ví dụ: TH.INP TH.OUT Giải thích Sau Bờm đặt mảnh giấy, có màu sau: 0 3 2 1 3 1 3 2 2 Do có tất hình 6.36 Xâu đối xứng (Thời gian chạy chương trình ≤ giây) Xâu kí tự x gọi đối xứng viết kí tự x theo thứ tự ngược lại nhận x Cho trước xâu kí tự s gồm chữ thường tiếng Anh, có độ dài khơng q 255 u cầu: Tìm xâu đối xứng x có độ dài lớn thứ tự từ điển bé nhận từ s cách thay đổi vị trí kí tự loại bỏ bớt số kí tự Dữ liệu: Vào từ tệp văn XDX.INP chứa xâu s Kết quả: Ghi tệp văn XDX.OUT xâu x tìm Ví dụ: XDX.INP XDX.OUT Giải thích 100 acbacca acaca Xâu acaca xâu đối xứng có độ dài lớn thứ tự từ điển bé nhận từ xâu acbac cách thay đổi vị trí kí tự bỏ bớt kí tự b kí tự c 6.37 Hốn vị xâu (Thời gian chạy chương trình ≤ giây) Cho trước xâu kí tự s bao gồm chữ tiếng Anh in hoa Khi thực phép hốn vị vịng quanh kí tự s nhận m xâu khác s1, s2, , sm u cầu: Tìm xâu có thứ tự từ điển nhỏ lớn m xâu Dữ liệu: Vào từ tệp văn HV.INP: Xâu kí tự s có độ dài khơng q 105 Kết quả: Ghi tệp văn HV.OUT: - Dòng đầu ghi số m tìm được; - Dịng thứ hai ghi xâu có thứ tự từ điển nhỏ tìm được; - Dịng thứ ba ghi xâu có thứ tự từ điển lớn tìm Ví dụ: HV.INP HV.OUT Giải thích ABC Từ xâu ‘ABC’ hốn vị vịng quanh ABC kí tự nhận xâu khác nhau: ‘ABC’, CAB ‘BCA’, ‘CAB’, xâu ‘ABC’ có thứ tự từ điển nhỏ xâu ‘CAB’ có thứ tự từ điển lớn 6.38 Tách từ (Thời gian chạy chương trình ≤ giây) Cho trước xâu S gồm chữ dấu cách có độ dài ≤ 255 Ta gọi từ xâu gồm số chữ liền không chứa dấu cách không phân biệt chữ in hoa hay thường Yêu cầu: Xét xem xâu S có chứa từ khác Dữ liệu: Vào từ tệp TU.INP chứa xâu S Kết quả: Ghi tệp TU.OUT: - Dòng đầu ghi số lượng t từ khác S - Dòng thứ i (1 ≤ i ≤ t) t dòng tiếp theo, dòng ghi từ in hoa số lần xuất từ xâu S theo thứ tự giảm dần số lần xuất thứ tự từ điển từ Ví dụ: TU.INP TU.OUT Giải thích Ha Ta ma an ta ma Xâu cho chứa từ khác nhau: an an AN - Từ AN xuất lần; HA - Từ HA xuất lần; MA - Từ MA xuất lần; TA - Từ TA xuất lần; 6.39 Biến đổi xâu (Thời gian chạy chương trình ≤ giây) Cho trước xâu kí tự s Mỗi phép biến đổi xâu s thực sau: - Chọn hai số nguyên dương c d không vượt n; 101 - Đổi chỗ hai kí tự s đứng vị trị c vị trí d cho Sau thực m phép biến đổi trên, nhận k xâu khác (k ≤ m) xếp chúng theo thứ tự từ điển Yêu cầu: Tìm xâu x đứng vị trí thứ k Dữ liệu: Vào từ tệp BDX.INP: - Dòng đầu chứa số nguyên n, ≤ n ≤ 255; - Dòng thứ hai chứa xâu s; - Dòng thứ ba chứa số nguyên dương m không vượt 103 - Mỗi dòng m dòng tiếp, chứa hai số nguyên dương c d không vượt n Kết quả: Ghi tệp BDX.OUT: - Dòng đầu ghi số k; - Dịng sau ghi xâu x tìm Ví dụ : BDX.INP BDX.OUT Giải thích Có ba xâu khác theo thứ tự ABCDE EBCDA từ điển ABCDE, ADCBE, EBCDA Do xâu thứ ba EBCDA 3 6.40 Xâu cịn lại (Thời gian chạy chương trình ≤ giây) Cho bảng ô vuông gồm n hàng n cột Tại mỗi ô bảng người ta viết chữ in hoa chữ từ A đến Z Từ bảng cho, người ta chọn m xâu theo quy tắc: chọn xâu cần phải xóa tất chữ bảng thuộc xâu Các chữ lại bảng viết thành xâu s có thứ tự từ điển nhỏ Yêu cầu: Tìm xâu s Dữ liệu: Vào từ tệp XAU.INP: - Dòng đầu chứa hai số nguyên dương n, m, số khơng vượt q 1000 - Trong n dịng tiếp theo, dòng chứa n chữ in hoa phạm vi từ A đến Z - Trong m dòng tiếp theo, dòng chứa xâu gồm chữ phạm vi từ A đến Z có độ dài khơng vượt q 200 Biết xâu chọn từ bảng cho Kết : Ghi tệp văn XAU.OUT: - Dòng đầu ghi số k số lượng chữ lại bảng - Trong trường hợp k > 0, dịng thứ hai ghi xâu s tìm Ví dụ : XAU.INP XAU.OUT Giải thích Khi xóa ba xâu chọn OLYMPIAD, POLTE AENRSW PROBLEM, TEST cịn lại chữ tạo thành RWYMS xâu có thứ tự từ điển nhỏ s = AENRSW OAIPT 102 BDARN LEMES OLYMPIAD PROBLEM TEST ... thạc sĩ có tên ? ?Nghiên cứu xây dựng hệ thống tập lập trình Python cho học sinh phổ thông? ?? Mục tiêu luận văn nghiên cứu sở lý thuyết thực tế để xây dựng hệ thống tập lập trình Python cho học sinh. .. định yêu cầu, xây dựng hệ thống tập lập trình hướng dẫn sử dụng phù hợp với giảng dạy lập trình Python cho học sinh phổ thông 11 CHƯƠNG - TỔNG QUAN VỀ DẠY LẬP TRÌNH CHO HỌC SINH PHỔ THÔNG Trong... ngơn ngữ lập trình (NNLT) Python phân tích lựa chọn, thực trình bày số nội dung NNLT Python phù hợp với học sinh phổ thông Chương 3: Kết thực xây dựng hệ thống tập lập trình cho học sinh phổ thơng

Ngày đăng: 11/08/2022, 20:11

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

Tài liệu liên quan