PDF Google Drive Downloader v1.1


Báo lỗi sự cố

Nội dung text CHUYEN DE GIAI DE THI HOC SINH GIOI TIN THCS BANG PYTHON.pdf

Tác giả: NGƯT Nguyễn Tấn Phong – Trường THCS Đồng Nai, Cát Tiên, Lâm Đồng TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC BẬC THCS CHUYÊN ĐỀ GIẢI ĐỀ THI HỌC SINH GIỎI BẰNG NNLT PYTHON 3.x Tác giả: NGƯT Nguyễn Tấn Phong Đơn vị: Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng 1. ĐỀ THI HSG HUYỆN CÁT TIÊN – NĂM HỌC 2020 – 2021 Câu 1: Tính tổng Viết chương trình tính tổng: 2 2 2 1 1 1 S=1+ + +...+ 2 3 n * Dữ liệu vào từ file: TONG.INP - Dòng đầu tiên ghi số tự nhiên n. * Kết quả ra file: TONG.OUT - Dòng đầu tiên ghi số thực là tổng S, làm tròn đến hai chữ số thập phân. Ví dụ: TONG.INP TONG.OUT 3 1,361 4 1,424 Phân tích: Kết quả file OUT dùng dấu phẩy (,) để ngăn cách phần nguyên và phần thập phân và làm tròn 3 chữ số thập phân. Đây được xem là một “bẩy” kĩ năng đọc và phân tích đề bài (còn gọi là “bẩy” cá tính thí sinh). Code tham khảo: 1 2 3 4 5 6 #Đọc dữ liệu vào từ file INP fi = open('tong.inp') n = int(fi.read()) fi.close() #Thuật toán tong = 0
2 Tài liệu bồi dưỡng học sinh giỏi môn tin THCS – Giải đề thi bằng ngôn ngữ python 7 8 9 10 11 12 13 14 15 for i in range(1,n+1): tong = tong + 1/(i**2) #Xử lý dấu thập phân tong = str(round(tong,3)) #làm tròn 3 chữ số thập phân tong=tong.replace('.',',',1) #thay dấu chấm . bởi dấu phẩy , #Ghi vào file OUT fo = open('tong.out','w') fo.write(tong) fo.close() ☼Tìm hiểu: .replace(); round(); str() Câu 2: Tìm số tự mãn trong dãy Qui ước: Số tự mãn bậc 3 là những số bằng tổng lập phương các chữ số của nó. Ví dụ: Số 153 là số tự mãn vì 153 = 13 + 53 + 33 . Cho dãy gồm N phần tử là số nguyên dương A1, A2, ... , An; (03 Tài liệu bồi dưỡng học sinh giỏi môn tin THCS – Giải đề thi bằng ngôn ngữ python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #Đọc dữ liệu vào từ file INP fi = open('SOTUMAN.INP') n = int(fi.readline()) a = fi.readline().split() for i in range(n): a[i] = int(a[i]) #chuyển mảng a về số nguyên fi.close() #Xây dựng hàm kiểm tra số tự mãn (True/False) def sotuman(m): tlp=0 for i in str(m): tlp = tlp + int(i)**3 if tlp==m: return True return False #Thuật toán xử lý b=[] for i in a: if sotuman(i): b.append(i) b.sort() #Sắp xếp mảng b tăng dần #Ghi kết quả vào file OUT fo = open('SOTUMAN.OUT','w') for i in b: fo.write(str(i)+' ') fo.close() Cách 2: Tối ưu cách 1 bằng kĩ thuật sử dụng List Comprehension 1 2 3 4 5 6 7 #đọc dữ liệu vào fi = open('SOTUMAN.INP') n = int(fi.readline()) a = list(map(int,fi.readline().split())) fi.close() #Thuật toán với List Comprehension b = []
4 Tài liệu bồi dưỡng học sinh giỏi môn tin THCS – Giải đề thi bằng ngôn ngữ python 8 9 10 11 12 13 14 for i in a: if i == sum([int(x)**3 for x in str(i)]): b.append(i) b.sort() #Sắp xếp mảng b tăng dần #ghi file OUT fo = open('SOTUMAN.OUT','w') for i in b: fo.write(str(i)+' ') fo.close() ☼Tìm hiểu: - Thay 2 dòng lệnh 4, 5 bằng dòng lệnh dùng hàm list(map()): a = list(map(int,fi.readline().split())) - Bằng kĩ thuật dùng List Comprehension ta sửa lại hàm sotuman(m) của cách 1 như sau: def sotuman(m): return m==sum([int(i)**3 for i in str(m)]) Câu 3: Xếp hàng Trong giờ sinh hoạt tập thể, lớp 9A có n học sinh (n <=45) xếp thành hàng dọc. Mỗi học sinh có chiều cao a[i]. Em hãy viết chương trình đếm số bạn có chiều cao bằng nhau nhiều nhất. * Dữ liệu vào từ file: XEPHANG.INP - Dòng thứ nhất chứa số tự nhiên n. - Dòng thứ hai gồm n số tự nhiên a[i], mỗi số ứng với chiều cao của từng bạn (đơn vị cm), các số cách nhau một khoảng trắng. * Kết quả ra file: XEPHANG.OUT - Gồm một dòng ghi 2 số tự nhiên. Số thứ nhất ghi tổng số bạn có chiều cao bằng nhau nhiều nhất, số thứ 2 ghi chiều cao tương ứng, các số cách nhau một khoảng trắng. Ví dụ: XEPHANG.INP XEPHANG.OUT 10 160 158 158 160 159 158 159 160 158 161 4 158

Tài liệu liên quan

x
Báo cáo lỗi download
Nội dung báo cáo



Chất lượng file Download bị lỗi:
Họ tên:
Email:
Bình luận
Trong quá trình tải gặp lỗi, sự cố,.. hoặc có thắc mắc gì vui lòng để lại bình luận dưới đây. Xin cảm ơn.