1. Trang chủ
  2. » Luận Văn - Báo Cáo

(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

103 6 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 103
Dung lượng 1,5 MB

Nội dung

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 h 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 h 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 i 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 đƣợc đă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 đƣợc 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 h ii LỜI CẢM ƠN Trong trình thực luận văn này, Học viên nhận đƣợc 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 h 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 iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT v DANH SÁCH CÁC HÌNH VẼ vi MỞ ĐẦU .1 CHƢƠNG - TỔNG QUAN VỀ DẠY LẬP TRÌNH CHO HỌC SINH PHỔ THÔNG .4 1.1 Thực trạng dạy lập trình cho học sinh phổ thơng Việt Nam 1.2 Tổng quan chƣơng trình mơn Tin học theo khung chƣơng trình ban hành năm 2018 1.2.1 Đặc điểm môn học h 1.2.2 Quan điểm xây dựng chƣơng trình .8 1.2.3 Mục tiêu môn học .10 1.2.4 Yêu cầu cần đạt 12 1.3 Các yêu cầu dạy lập trình học sinh phổ thơng 12 1.4 Phân tích lựa chọn ngơn ngữ lập trình phù hợp cho học sinh phổ thơng 13 1.5 Kết luận chƣơng 15 CHƢƠNG - KHẢO SÁT ĐẶC TRƢNG CƠ BẢN NGÔN NGỮ LẬP TRÌNH PYTHON 16 2.1 Lịch sử hình thành đặc điểm ngơn ngữ lập trình Python .16 2.1.1 Lịch sử hình thành 16 2.1.2 Đặc điểm ngơn ngữ lập trình Python 17 2.2 Khảo sát yếu tố ngơn ngữ lập trình Python 18 2.3 Lựa chọn trình bày số nội dung Python phù hợp với học sinh phổ thông 21 2.3.1 Nhóm nội dung 21 iv 2.3.2 Nhóm nội dung 29 2.3.3 Nhóm nội dung 33 2.3.4 Nhóm nội dung 35 2.3.5 Nhóm nội dung 38 2.3.6 Nhóm nội dung 40 2.4 Giải pháp công nghệ bảo đảm dạy lập trình Python cho học sinh phổ thông 41 2.4.1 Yêu cầu phần mềm cài đặt Python 42 2.4.2 Yêu cầu phịng máy tính 44 2.4.3 Giải pháp ứng dụng E-learning .44 2.5 Kết luận chƣơng 45 CHƢƠNG 3- KẾT QUẢ THỰC HIỆN XÂY DỰNG HỆ THỐNG BÀI TẬP LẬP TRÌNH CHO HỌC SINH PHỔ THÔNG 46 3.1 Các yêu cầu hệ thống tập lập trình cho học sinh phổ thơng 46 3.1.1 Các yêu cầu tính khoa học 46 h 3.1.2 Các yêu cầu tính sƣ phạm 47 3.2 Xây dựng hệ thống tập lập trình Python 48 3.3 Hƣớng dẫn sử dụng hệ thống tập .50 3.3.1 Phƣơng pháp hƣớng dẫn học sinh giải tập 50 3.3.2 Phƣơng pháp đánh giá tập lập trình học sinh 66 3.4 Kết luận chƣơng 69 KẾT LUẬN .70 DANH MỤC TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 73 v DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT 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 Học vấn số hố phổ thơng Học sinh HS 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 h ICT 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 Learning Managerment System Hệ thống quản lý học tập vi DANH SÁCH CÁC HÌNH VẼ Hình 2.1: Thơng tin chi tiết lệnh print() 19 Hình 2.2: Tính tổng số chẵn tích số lẻ số tự nhiên < 23 Hình 2.3: Cửa sổ thực câu lệnh trực tiếp IDLE Python .43 Hình 2.4: Cửa sổ soạn thảo thực chƣơng trình IDLE Python 43 h 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 nhƣ 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 đƣợc đƣa vào nhà trƣờng tri thức phƣơng pháp phổ thông thành tựu h 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 đƣợc 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 đề cập đến quan trọng kĩ lập trình giải tốn Nhờ có kĩ mà học sinh có đƣợc trải nghiệm thú vị, thấy đƣợc 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 nhƣ 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, nhƣng 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 h 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 đƣợc 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 nhƣ 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 Để hoàn thành mục tiêu trên, nội dung luận văn đƣợc bố cục gồm ba chƣơng nhƣ sau: Chƣơng 1: Tổng quan dạy lập trình cho học sinh phổ thơng 81 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 đƣợc 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 h 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 Yêu cầu: Tìm số nguyên 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 nguyên tố tìm đƣợc Ví dụ: SNT.INP SNT.OUT Giải thích 25 23 Số 23 số song nguyên tố, 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 109 Ký hiệu S(x) tổng bình phƣơng chữ số x Ta lập dãy số {un} nhƣ sau: u1 = S(x); với n > un = 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 đƣợc Ví dụ: BP.INP BP.OUT Giải thích 145 Các số hạng khác dãy {un} 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) 82 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 đƣợc 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 h 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 đỗ đƣợc đánh số thứ tự từ đến n Tại bến đỗ biết đƣợc 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 buýt 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 (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 10 + = 23 - Từ bến đến bến có 10 khách xe Từ bến 15 đến bến có khách xe Từ bến đến bến có 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 a1, , an Dãy số ai, ai+1, …, aj (1 ≤ i ≤ j ≤ n) đƣợc 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: 83 - Dịng đầu chứa số ngun dƣơng n khơng vƣợt 105 - Dòng sau chứa n số nguyên a1, , 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 -15 12 là: - Dãy gồm số: 3, -15, 12; - Dãy gồm: 0; - Dãy gồm số cho h 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 đƣợc đánh số từ đến n Công ty thứ i, ≤ i ≤ n, có giá bán di dola / lit xăng ei euro/1 lit xăng Tuy nhiên, theo quy định, công ty đƣợc 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 đƣợc 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 đƣợc 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ố đƣợc 0.67 lit, mua xăng theo euro công ty thứ đƣợc 1.25 lit Tổng cộng, số xăng lớn mà vua mua đƣợc 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ự nhƣ 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 đƣợc 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 đƣợc Ví dụ : 84 NP.INP 17 NP.OUT 10001 24 Giải thích 17 = 1*2 + 24 = 1*24 + 1*23 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ự nhƣ 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 đƣợc 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 đƣợc - Dịng thứ hai ghi số Y tìm đƣợc Ví dụ: HEXA.INP HEXA.OUT Giải thích 1610 64A 1610 = $64A 2660 2660 = $A64 h 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 nhƣ nên phải mua số máy nhƣ để sản xuất Mỗi sản phẩm thứ i đƣợc đƣ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 đƣợc 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 đƣợc Ví dụ: MM.INP 13 15 11 12 10 MM.OUT Giải thích 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) 85 Cho trƣớc số nguyên dƣơng n dãy gồm n số thực a1, a2, , an 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ố nguyên 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 h 6.20 Tham quan (Thời gian chạy chương trình ≤ giây) Có n lớp học sinh đƣợc đá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 vi 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 đƣợc 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 86 Kết quả: Ghi tệp PM.OUT giá trị x tìm đƣợc 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 đƣợc 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 h 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 đƣợc 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ố ngun dƣơng n khơng vƣợt 105 ; - Dòng chứa n số ngun có giá trị tuyệt đối khơng vƣợt q 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 87 4 Có thể chia thành đoạn con, đoạn có tổng nhƣ 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ố nguyên 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 đƣợc Ví dụ : NN.INP NN.OUT Giải thích 5 Số ngun dƣơng nhỏ khơng có mặt 4 dãy h 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 a1, 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 hi 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 109 Kết quả: Ghi tệp CS.OUT số h tìm đƣợc 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ó h1 205 = 30; 225 - Nhóm gồm ba số thứ 2, thứ thứ có h2 190 = 20; 260 Do h = 30 nhỏ 130 225 160 88 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 106 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 nhƣ vậy, ta biết đƣợc số sỏi hộp Yêu cầu: Hãy tìm số sỏi ban đầu hộp h Dữ liệu vào từ tệp TC.INP: - Dòng đầu chứa số ngun dƣơng n khơng vƣợt q 200 - Dịng hai chứa n số nguyên dƣơng a1, 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 c1, c2, …, cP, số nguyên dƣơng ci rõ số hiệu hộp đƣợc 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 đƣợc 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 đƣợc 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 đƣợc 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) 89 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 đƣợc kết dự đoán khán giả qua mạng nhƣ 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ự đoá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 3 đạt giải đạo diễn xuất sắc có tổng điểm dự đốn lớn tìm đƣợc + + = 17 h 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 a1, a2, …, am dãy (B) gồm n số nguyên dƣơng b1, b2, …, bn Từ dãy (A) lấy hai số ak, 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 ak < bi < aj aj < bi < ak Bộ ba số nhƣ 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 đƣợc 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 đƣợc 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ố 90 từ đến m Mỗi đĩa cứng loại j (1 ≤ j ≤ m) có dung lƣợng bj (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 bj, 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 h 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 đƣợc 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 đƣợc 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 đƣợc không dƣới quảng cáo thời gian khách hàng siêu thị Đồng thời hai quảng cáo không đƣợc phát đồng thời số lƣợng quảng cáo ngày nhỏ Các quảng cáo đƣợc 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 nhƣ khách hàng nghe đƣợc 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 91 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 10 10 23 24 h 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 đƣợc đá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 lần lƣợt theo số thứ tự Yêu cầu: Xác định nhà sƣ đƣợc 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ƣ đƣợc 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 đƣợc chia thành luới vng đơ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ố ngun 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 đƣợc dịng Ví dụ: VDP.INP VDP.OUT Giải thích 4 10 1 1 Vùng đất lớn gồm ô: (2,1), (2,2), (2,3), (2,4), (3,3), (3,4) (4, 2) 92 1 h 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 đƣợc chia thành m hàng n cột Các hàng đƣợc đánh số từ dƣới lên theo thứ tự từ đến m Các cột đƣợc đánh số từ trái qua phải theo thứ tự từ đến n Các ô mảnh giấy thần đƣợc 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 đƣợc đá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) đƣợc đặt cho tận phía dƣới 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 đƣợc 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ố ngun dƣơng k khơng vƣợt 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 q 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á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 nhƣ sau: 1 0 3 1 2 1 3 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 đƣợc gọi đối xứng viết kí tự x theo thứ tự ngƣợc lại nhận đƣợc 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 đƣợc 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 đƣợc Ví dụ: XDX.INP XDX.OUT Giải thích 93 acbacca acaca Xâu acaca xâu đối xứng có độ dài lớn thứ tự từ điển bé nhận đƣợc từ xâu acbac cách thay đổi vị trí kí tự bỏ bớt kí tự b kí tự c 6.37 Hoá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 đƣợc 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 đƣợc 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 đƣợc 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 h 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 Xâu cho chứa từ khác nhau: ma 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 đƣợc thực nhƣ sau: - Chọn hai số nguyên dƣơng c d không vƣợt n; 94 - Đổi chỗ hai kí tự s đứng vị trị c vị trí d cho Sau thực m phép biến đổi nhƣ trên, nhận đƣợc 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ố ngun 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 đƣợc Ví dụ : BDX.INP BDX.OUT Giải thích Có ba xâu khác đƣợc theo thứ tự ABCDE EBCDA từ điển ABCDE, ADCBE, EBCDA Do xâu thứ ba EBCDA 3 h 6.40 Xâu 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 lần lƣợt 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ữ cịn lại bảng đƣợc 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 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 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 đƣợc 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 RWYMS thành xâu có thứ tự từ điển nhỏ s = OAIPT AENRSW 95 BDARN LEMES OLYMPIAD PROBLEM TEST h

Ngày đăng: 20/11/2023, 14:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN