Bài tập  /  Bài đang cần trả lời

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 ...

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.

1 trả lời
Hỏi chi tiết
13
0
0

Dễ thấy thời khoá biểu là một thông tin dạng bảng nên em có thể áp dụng mảng hai chiều.

- Cần phải điền nội dung vào trước, sau đó mới có cơ sở để tính độ rộng của cột và thực hiện in ra. Các thao tác này đều thực hiện được bằng hai vòng lặp for. Chương trình mẫu:

q = int(input())

TKB = [[""] * 8 for i in range (11)]

# Dòng 0 dành cho tiêu đề cột

TKB[0] = ["Tiet", "Hai", "Ba", "Tu", "Nam", "Sau", "Bay", "CN"]

# Cột 0 chứa tiêu đề dòng

for i in range (1,11):

TKB [i][0] = str(i)

for i in range (q):

a, b, c = input ().split()

a = int (a)

b = int (b)

TKB [a] [b-1] = C

# Vì đã có dòng 0 nên lấy [a] thay vì [a-1]

# Tương tự, vì cột 0 đầu tiên cũng đã có nội dung

# Nên lấy [b-1] thay vì [b-2]

doRong = [0] * 8

for i in range (11):

for j in range (8):

doRong [j] = max (doRong [j], len (TKB [i][j]) + 1)

for i in range (11):

for j in range (8):

print (TKB [i][j], end = "")

print (" "* (doRong [j] - len (TKB [i][j])), end = "")

print ()

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 11 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500K