Câu hỏi:

13/07/2024 4,520

Em hãy viết chương trình nhập số tự nhiên n, sau đó nhập n họ tên đầy đủ học sinh trong lớp. Khi kết thúc sẽ in ra danh sách học sinh với 2 cột, cột 1 là tên, cột 2 là họ đệm của học sinh này.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Hướng dẫn:

Mỗi họ tên được nhập sẽ được tách ra thành tên và họ đệm bằng hàm split(). Các tên học sinh sẽ được đưa vào dãy ten, các họ đệm sẽ được đưa vào dãy hodem. Sau khi nhập xong thì in ra danh sách các tên và họ đệm này.

n = int(input("Nhập số học sinh trong lớp: "))

ten = []

hodem = []

for i in range(n):

s = input("Nhập họ tên học sinh thứ "+str(i+1)+": ")

sline = s.split()

m = len(sline) -1

ten.append(sline[m])

del sline [m]

hodem.append(" ".join(sline))

print("Danh sách học sinh:")

for i in range(n):

print(ten[i], hodem[i])

* Chương trình chạy thử:

Media VietJack

Bình luận


Bình luận

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Chương trình có thể viết như sau:

a = float(input("Nhập số thực dương a:"))

while a <= 0:

print("Nhập sai, số a phải lớn hơn 0. Hãy nhập lại.")

a = float(input("Nhập số thực dương a:"))

Media VietJack

Lời giải

Hướng dẫn:

Từ yêu cầu của đề bài chúng ta sẽ thiết lập thủ tục chính printBCC() có chức năng in bảng cửu chương. Thủ tục này sẽ có hai phần độc lập, phần đầu in 5 khối thuộc hàng thứ nhất là bảng cửu chương của các số 1, 2, 3, 4, 5. Phần sau của thủ tục sẽ in 5 khối thuộc hàng thứ hai là bảng cửu chương của các số 6, 7, 8, 9, 10.

Để thể hiện chính xác và cân đối trên màn hình chúng ta thiết lập thêm hai hàm:

- Hàm st(num) để tạo xâu kí tự thể hiện số num. Nếu num là số có 1 chữ số thì st(num) sẽ chèn 1 dấu cách phía trước num.

- Hàm space(k) thể hiện k dấu cách trên màn hình.

Nhập, chạy thử và kiểm tra kết quả chương trình sau:

def st(n):

if n < 10:

return" "+str(n)

else:

return str(n)

def space(k):

return" "*k

def printBCC():

for h in range (10):

i = h+1

for j in range (1,6):

print(st(j) + " x " + st(i) + " = " + st(i*j) + space(2), end = " ")

print()

print()

for h in range(10):

i = h+1

for j in range (6,11):

print(st(j) + " x " + st(i) + " = " + st(i*j) + space(2), end = " ")

print()

# Chương trình chính

printBCC()

* Chương trình nhập lên phần mềm lập trình Python:

Media VietJack

* Kết quả chạy thử chương trình:

Media VietJack

Câu 4

Bài toán sắp xếp: Cho trước một dãy số A, viết chương trình sắp xếp dãy số này theo thứ tự tăng dần.

Giả sử chúng ta sẽ áp dụng thuật toán sắp xếp chèn để cài đặt cho chương trình này. Ý tưởng của thuật toán này như sau: Sẽ duyệt từng phần tử của dãy A, tính từ vị trí thứ 2 trở đi. Với mỗi phần tử (giả sử A[k]), sẽ tìm cách chèn phần tử này vào đúng vị trí của dãy con phía trước A[0], [1], ..., A[k-1] sao cho dãy con này được sắp xếp đúng. Sau khi duyệt xong các phần tử của dãy thì dãy gốc đã được sắp xếp xong.

Với mỗi phần tử A[k], việc chèn vào vị trí đúng trong dãy con phía trước được thực hiện bằng một vòng lặp như sau:

j = k – 1

while j > 0 and A[j] > A[j+1]:

A[j], A[j+1] = A[j+1],A[j]

j = j – 1

Để tìm lỗi chương trình trên chúng ta áp dụng công cụ printine, in các giá trị trung gian. Với mỗi vòng lặp chính (vòng lặp for k in range(1,n)), chúng ta sẽ in ra các giá trị sau: k, A[k] và kết quả dãy A.

Chương trình được viết như sau, sau khi bổ sung các lệnh in phần tử trung gian.

dayA = [5,1,8,4,2]                  # Dãy gốc cần sắp xếp

def sap_xep (A):

n = len(A)

for k in range(1,n):

print("vòng" ,k, "số đang xét:", A[k], end = " ")

j = k - 1

while j > 0 and A[j] > A[j+1]:

A[j], A[j+1] = A[j+1], A[j]

j = j - 1

print(A)

print("Dãy gốc:",dayA)

A = dayA. copy()

sap_xep (A)

print("Dãy đích:",A) 

Em hãy viết lại chương trình trên và tiến hành kiểm thử xem chương trình có lỗi không? Nếu có thì tìm ra lỗi và sửa lại cho chương trình chạy đúng.

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Vietjack official store
Đăng ký gói thi VIP

VIP +1 - Luyện thi tất cả các đề có trên Website trong 1 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +3 - Luyện thi tất cả các đề có trên Website trong 3 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +6 - Luyện thi tất cả các đề có trên Website trong 6 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +12 - Luyện thi tất cả các đề có trên Website trong 12 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay