Câu hỏi:
17/07/2024 73
Tính điểm thi tốt nghiệp trung học phổ thông
Chuẩn bị cho kì thi tốt nghiệp trung học phổ thông theo Chương trình giáo dục phổ thông 2018, em hãy lập trình giải quyết bài toán xử lí số liệu kết quả kì thi. Dữ liệu nằm trong tập thi TN.inp gồm n thi sinh, thông tin mỗi thí sinh năm trên một dòng gồm bốn nội dung: tên, điểm Toán, điểm Tin, điểm tiếng Anh. Yêu cầu: Hãy tỉnh tổng điểm (tổng của ba môn Toán, Tin, tiếng Anh cộng lại), sắp xếp các thí sinh và đưa kết quả ra tệp thiTNout theo thứ tự tổng điểm tăng dân.
Dữ liệu: Nhập từ tệp thiTN.inp
- Dòng đầu chứa số nguyên n là số lượng thí sinh.
- n dòng sau, mỗi dòng chứa xấu s (là tên của thí sinh, không chứa dấu cách, các tên đều khác nhau) và ba số thực a, b, c (lần lượt là điểm thi các môn Toán, Tin học, tiếng Anh, có tối đa một chữ số ở phần thập phân). Kết quả: Đưa ra tệp thi TNout:
- n dòng được sắp xếp theo thứ tự tổng điểm tăng dần của các thí sinh, mỗi dòng tương ứng là 5 thông tin của một thí sinh lần lượt là: tên, điểm Toán, điểm Tin, điểm tiếng Anh và tổng điểm,
- Nếu có nhiều thí sinh cùng tổng điểm thì thi sinh nào xuất hiện trước ở trong danh sách lúc đầu sẽ được xếp trước.
Tính điểm thi tốt nghiệp trung học phổ thông
Chuẩn bị cho kì thi tốt nghiệp trung học phổ thông theo Chương trình giáo dục phổ thông 2018, em hãy lập trình giải quyết bài toán xử lí số liệu kết quả kì thi. Dữ liệu nằm trong tập thi TN.inp gồm n thi sinh, thông tin mỗi thí sinh năm trên một dòng gồm bốn nội dung: tên, điểm Toán, điểm Tin, điểm tiếng Anh. Yêu cầu: Hãy tỉnh tổng điểm (tổng của ba môn Toán, Tin, tiếng Anh cộng lại), sắp xếp các thí sinh và đưa kết quả ra tệp thiTNout theo thứ tự tổng điểm tăng dân.
Dữ liệu: Nhập từ tệp thiTN.inp
- Dòng đầu chứa số nguyên n là số lượng thí sinh.
- n dòng sau, mỗi dòng chứa xấu s (là tên của thí sinh, không chứa dấu cách, các tên đều khác nhau) và ba số thực a, b, c (lần lượt là điểm thi các môn Toán, Tin học, tiếng Anh, có tối đa một chữ số ở phần thập phân). Kết quả: Đưa ra tệp thi TNout:
- n dòng được sắp xếp theo thứ tự tổng điểm tăng dần của các thí sinh, mỗi dòng tương ứng là 5 thông tin của một thí sinh lần lượt là: tên, điểm Toán, điểm Tin, điểm tiếng Anh và tổng điểm,
- Nếu có nhiều thí sinh cùng tổng điểm thì thi sinh nào xuất hiện trước ở trong danh sách lúc đầu sẽ được xếp trước.
Trả lời:
Dùng danh sách hai chiều, mỗi dòng của danh sách là thông tin của một thí sinh.
import sys
sys.stdin = open ("thi TN.inp", "r") sys.stdout = open("thi TN. out", "w") n = int(input())
A = []
for i in range (n):
s = input().split()
A.append(s)
for i in range(n):
# Cú pháp a[-i] để truy cập phần tử thứ i
# từ phải sang của mảng a
x = format (float (A[i] [-3])+ float (A[i] [-2])+ float (A[i] [-1]), ".1f")
A[i].append(x)
# Sắp xếp danh sách A theo thứ tự tăng dần của cột tổng A. sort (key-lambda x: x[-1])
for x in A:
for temp in x: print (temp, end=" ")
print ()
Dùng danh sách hai chiều, mỗi dòng của danh sách là thông tin của một thí sinh.
import sys
sys.stdin = open ("thi TN.inp", "r") sys.stdout = open("thi TN. out", "w") n = int(input())
A = []
for i in range (n):
s = input().split()
A.append(s)
for i in range(n):
# Cú pháp a[-i] để truy cập phần tử thứ i
# từ phải sang của mảng a
x = format (float (A[i] [-3])+ float (A[i] [-2])+ float (A[i] [-1]), ".1f")
A[i].append(x)
# Sắp xếp danh sách A theo thứ tự tăng dần của cột tổng A. sort (key-lambda x: x[-1])
for x in A:
for temp in x: print (temp, end=" ")
print ()
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Blaise Pascal là một nhà toán học người Pháp. Mặc dù tam giác Pascal được đặt theo tên của ông, một người sống ở thế kỉ XVII, nhưng thực tế nó đã được nghiên cứu từ rất lâu về trước, ở nhiều quốc gia khác nhau. Bằng tam giác này, em có được hệ số của các hạng tử trong nhị thức (a + b)" (nằm trên dòng thứ 7 của tam giác).
Công thức của tam giác này rất đơn giản: C(i, j) = C(i – 1,j) + C − 1, j − 1) với C(i, j) là kí hiệu cho ô ở dòng i, cột j (đây cũng là tổ hợp số cách chọn ra j phần tử từ một tập hợp có i phần tử).
Theo định nghĩa, ta cũng có C(i, 0) = C(i, i) = I.
Hãy quan sát các dòng 0, 1, 2, 3, 4, 5 của tam giác Pascal:
Yêu cầu: Nhập vào số nguyên n, hãy in ra dòng thứ n của tam giác Pascal. Dữ liệu: Nhập từ thiết bị vào chuẩn, một dòng duy nhất chứa số nguyên n. Két quả: Hiển thị ở thiết bị ra chuẩn, chứa n + 1 số nguyên là dòng thứ n của tam giác Pascal.
Blaise Pascal là một nhà toán học người Pháp. Mặc dù tam giác Pascal được đặt theo tên của ông, một người sống ở thế kỉ XVII, nhưng thực tế nó đã được nghiên cứu từ rất lâu về trước, ở nhiều quốc gia khác nhau. Bằng tam giác này, em có được hệ số của các hạng tử trong nhị thức (a + b)" (nằm trên dòng thứ 7 của tam giác).
Công thức của tam giác này rất đơn giản: C(i, j) = C(i – 1,j) + C − 1, j − 1) với C(i, j) là kí hiệu cho ô ở dòng i, cột j (đây cũng là tổ hợp số cách chọn ra j phần tử từ một tập hợp có i phần tử).
Theo định nghĩa, ta cũng có C(i, 0) = C(i, i) = I.
Hãy quan sát các dòng 0, 1, 2, 3, 4, 5 của tam giác Pascal:
Yêu cầu: Nhập vào số nguyên n, hãy in ra dòng thứ n của tam giác Pascal. Dữ liệu: Nhập từ thiết bị vào chuẩn, một dòng duy nhất chứa số nguyên n. Két quả: Hiển thị ở thiết bị ra chuẩn, chứa n + 1 số nguyên là dòng thứ n của tam giác Pascal.
Câu 2:
Trên con đường đi học từ trường về nhà có trồng các cây xanh dọc theo via hè. Sơ đồ bố trí các cây xanh trên vỉa hè được biểu diễn bằng một xâu kí tự gồm kỉ tự chữ cái T đại diện cho cây xanh và giữa hai kí tự chữ cái T có một vài kí tự chữ số biểu diễn cho một số nguyên dương là khoảng cách giữa hai cây xanh này (đơn vị: m).
Yêu cầu: Xác định khoảng cách (đơn vị: m) giữa cây xanh đầu tiên và cây xanh cuối cùng trên vỉa hè từ trường về nhà.
Dữ liệu: Nhập từ thiết bị vào chuẩn một dòng chứa một xâu kí tự biểu diễn sơ đồ bố trí cây xanh.
Kết qua: Hiển thị ở thiết bị ra chuẩn giá trị khoảng cách giữa cây xanh đầu tiên và cây xanh cuối cùng.
Trên con đường đi học từ trường về nhà có trồng các cây xanh dọc theo via hè. Sơ đồ bố trí các cây xanh trên vỉa hè được biểu diễn bằng một xâu kí tự gồm kỉ tự chữ cái T đại diện cho cây xanh và giữa hai kí tự chữ cái T có một vài kí tự chữ số biểu diễn cho một số nguyên dương là khoảng cách giữa hai cây xanh này (đơn vị: m).
Yêu cầu: Xác định khoảng cách (đơn vị: m) giữa cây xanh đầu tiên và cây xanh cuối cùng trên vỉa hè từ trường về nhà.
Dữ liệu: Nhập từ thiết bị vào chuẩn một dòng chứa một xâu kí tự biểu diễn sơ đồ bố trí cây xanh.
Kết qua: Hiển thị ở thiết bị ra chuẩn giá trị khoảng cách giữa cây xanh đầu tiên và cây xanh cuối cùng.
Câu 3:
Thời khoá biểu
Bạn Nam đang lập thời khoá biểu học tập cho chính mình. Nam sử dụng phần mềm Excel hay viết ra bằng giấy cũng thực hiện được việc trên, nhưng do vừa được học về mảng hai chiều nên bạn muốn áp dụng tối đa những gì mình đã học.
Các tiết học trên lớp của Nam gồm từ tiết 1 đến tiết 10. Vì tính thêm cả lịch học thêm (hoặc học bù) nên thời khoá biểu của bạn có đủ từ thứ Hai đến Chủ nhật. Nam đã suy nghĩ và quyết định được đầu vào của chương trình như sau:
Với mỗi hoạt động, sẽ có một dòng tương ứng trong đầu vào. Có tất cả Q hoạt động được điền vào. Mỗi dòng trong Q dòng có dạng: a b c, trong đó:
a là khoảng thời gian (tiết học).
b là ngày trong tuần (các số 2, 3,..., 8 tương ứng từ thứ Hai đến Chủ nhật).
c là hoạt động/tiết học của Nam.
Nhận thấy đây là một bài tập thú vị, Nam chia sẻ nó với các bạn. Em hãy giải bài tập trên để luyện kĩ năng của mình nhé. Hãy in ra thời khoá biểu của Nam từ mô tả ở đầu vào.
Dữ liệu: Nhập từ thiết bị vào chuẩn:
Dòng đầu tiên chứa số nguyên Q.
• Q dòng tiếp theo, mỗi dòng chứa 3 biến a, b, c. Trong đó, a, b là các số nguyên và c là một xâu kí tự (1 ≤a≤ 10,2≤b≤8,c không chứa dấu cách). • Nếu một cặp (a, b) lặp lại nhiều lần trong dữ liệu đầu vào, điều đó có nghĩa là bạn Nam chỉnh sửa nội dung tại vị trí (a, b) và ghi lại hoạt động trong đó. Kết quả: Hiển thị ở thiết bị ra chuẩn, in ra dưới dạng bảng như sau:
Để kết quả trông đẹp hơn, quy ước các nội dung trong mỗi ô được căn lề trái và mỗi cột có độ rộng là số kí tự của xâu dài nhất trên cột đó cộng 1.
Thời khoá biểu
Bạn Nam đang lập thời khoá biểu học tập cho chính mình. Nam sử dụng phần mềm Excel hay viết ra bằng giấy cũng thực hiện được việc trên, nhưng do vừa được học về mảng hai chiều nên bạn muốn áp dụng tối đa những gì mình đã học.
Các tiết học trên lớp của Nam gồm từ tiết 1 đến tiết 10. Vì tính thêm cả lịch học thêm (hoặc học bù) nên thời khoá biểu của bạn có đủ từ thứ Hai đến Chủ nhật. Nam đã suy nghĩ và quyết định được đầu vào của chương trình như sau:
Với mỗi hoạt động, sẽ có một dòng tương ứng trong đầu vào. Có tất cả Q hoạt động được điền vào. Mỗi dòng trong Q dòng có dạng: a b c, trong đó:
a là khoảng thời gian (tiết học).
b là ngày trong tuần (các số 2, 3,..., 8 tương ứng từ thứ Hai đến Chủ nhật).
c là hoạt động/tiết học của Nam.
Nhận thấy đây là một bài tập thú vị, Nam chia sẻ nó với các bạn. Em hãy giải bài tập trên để luyện kĩ năng của mình nhé. Hãy in ra thời khoá biểu của Nam từ mô tả ở đầu vào.
Dữ liệu: Nhập từ thiết bị vào chuẩn:
Dòng đầu tiên chứa số nguyên Q.
• Q dòng tiếp theo, mỗi dòng chứa 3 biến a, b, c. Trong đó, a, b là các số nguyên và c là một xâu kí tự (1 ≤a≤ 10,2≤b≤8,c không chứa dấu cách). • Nếu một cặp (a, b) lặp lại nhiều lần trong dữ liệu đầu vào, điều đó có nghĩa là bạn Nam chỉnh sửa nội dung tại vị trí (a, b) và ghi lại hoạt động trong đó. Kết quả: Hiển thị ở thiết bị ra chuẩn, in ra dưới dạng bảng như sau:
Để kết quả trông đẹp hơn, quy ước các nội dung trong mỗi ô được căn lề trái và mỗi cột có độ rộng là số kí tự của xâu dài nhất trên cột đó cộng 1.
Câu 4:
Sau tiết kiểm tra chạy 1000 mét, thầy giáo biết được thành tích của từng bạn học sinh (đơn vị tính là giây). Các bạn học sinh về đứng thành một hàng dọc. Thầy giáo muốn biết với mỗi nhóm k học sinh liên tục trong hàng thì thành tích tốt nhất của k ban đó là bao nhiêu.
Dữ liệu: Nhập từ thiết bị vào chuẩn:
• Dòng đầu chứa dãy số nguyên 4 là thành tích tương ứng của từng học sinh sau khi xếp hàng.
• Dòng tiếp theo chứa số nguyên k.
Kết quả: Hiển thị ở thiết bị ra chuẩn, với mỗi nhóm k học sinh theo thứ tự, in ra một dòng mới, chứa một số nguyên là thành tích tốt nhất của nhóm học sinh đó.
Sau tiết kiểm tra chạy 1000 mét, thầy giáo biết được thành tích của từng bạn học sinh (đơn vị tính là giây). Các bạn học sinh về đứng thành một hàng dọc. Thầy giáo muốn biết với mỗi nhóm k học sinh liên tục trong hàng thì thành tích tốt nhất của k ban đó là bao nhiêu.
Dữ liệu: Nhập từ thiết bị vào chuẩn:
• Dòng đầu chứa dãy số nguyên 4 là thành tích tương ứng của từng học sinh sau khi xếp hàng.
• Dòng tiếp theo chứa số nguyên k.
Kết quả: Hiển thị ở thiết bị ra chuẩn, với mỗi nhóm k học sinh theo thứ tự, in ra một dòng mới, chứa một số nguyên là thành tích tốt nhất của nhóm học sinh đó.
Câu 5:
Giá trị quà sinh nhật
Mỗi năm vào ngày sinh nhật, các bạn đã tặng em rất nhiều quà. Mỗi món quà sẽ có một giá trị riêng là một số nguyên không âm. Qua nhiều năm, em luôn trân trọng những món quà các bạn đã tặng.
Hôm nay, em ôn lại kỉ niệm, nên đã vào kho để tìm lại những món quà. Em nhìn lại mỗi món quà qua từng năm và tự hỏi tổng giá trị của tất cả món quà đã được nhận là bao nhiêu. Để không phải tính nhẩm, em hãy viết chương trình tính giá trị này.
Dữ liệu: Nhập từ tệp input.txt, gồm nhiều dòng, mỗi dòng chứa một hoặc nhiều số nguyên không âm, tương ứng với giá trị của những món quà đã nhận được trong một năm.
Kết quả: Hiển thị ở thiết bị ra chuẩn một số nguyên duy nhất là tổng giá trị của tất cả món quà.
Giá trị quà sinh nhật
Mỗi năm vào ngày sinh nhật, các bạn đã tặng em rất nhiều quà. Mỗi món quà sẽ có một giá trị riêng là một số nguyên không âm. Qua nhiều năm, em luôn trân trọng những món quà các bạn đã tặng.
Hôm nay, em ôn lại kỉ niệm, nên đã vào kho để tìm lại những món quà. Em nhìn lại mỗi món quà qua từng năm và tự hỏi tổng giá trị của tất cả món quà đã được nhận là bao nhiêu. Để không phải tính nhẩm, em hãy viết chương trình tính giá trị này.
Dữ liệu: Nhập từ tệp input.txt, gồm nhiều dòng, mỗi dòng chứa một hoặc nhiều số nguyên không âm, tương ứng với giá trị của những món quà đã nhận được trong một năm.
Kết quả: Hiển thị ở thiết bị ra chuẩn một số nguyên duy nhất là tổng giá trị của tất cả món quà.
Câu 6:
Em hãy cho biết kết quả được in ra sau khi chạy đoạn chương trình dưới đây:
A = [[1, 2, 3], [2, 4, 6], [3, 6, 9], [4, 8, 12]] print (len(A))
print (len (A[1]))
print (A[1] [2])
Em hãy cho biết kết quả được in ra sau khi chạy đoạn chương trình dưới đây:
A = [[1, 2, 3], [2, 4, 6], [3, 6, 9], [4, 8, 12]] print (len(A))
print (len (A[1]))
print (A[1] [2])