Câu hỏi:

13/07/2024 904

Em hãy viết chương trình nhập một xâu kí tự bất kì từ bàn phím. Cần sắp xếp lại các chữ số thì dồn sang trái, các chữ cái tiếng Anh thì dồn sang phải xâu, các kí tự khác thì giữ nguyên vị trí.

Sách mới 2k7: 30 đề đánh giá năng lực DHQG Hà Nội, Tp. Hồ Chí Minh, BKHN 2025 mới nhất (600 trang - chỉ từ 160k).

Mua bộ đề Hà Nội Mua bộ đề Tp. Hồ Chí Minh Mua đề Bách Khoa

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Hướng dẫn:

Chúng ta đã biết giữa các kí tự cũng có thể được so sánh. Hai kí tự ch1 và ch2 được so sánh với nhau thông qua vị trí của các kí tự này trong bảng mã ASCII hoặc Unicode. Quan hệ so sánh tự nhiên giữa các kí tự chữ cái và số như sau:

"0" < "1" < ... < "9".

"A" < "B" < ... < "Z" < "a" < "b" <...< "Z".

Để giải bài tập này chúng ta cần tạo các biến nhớ dùng để lưu các xâu kí tự trung gian là s_tr (xâu dùng để lưu tạm các kí tự là số), s_ph (xâu dùng để lưu tạm các kí tự là chữ cái) và s_gi (xâu dùng để lưu các kí tự không là chữ số cũng không là chữ cái). Thuật toán của chương trình như sau: duyệt một lần tất cả các kí tự của xâu gốc S, sau đó đưa các kí tự này vào các xâu trung gian s­_tr, s_ph, s_gi. Xâu kết quả sẽ là s_tr + s_gi + s_ph. Mở phần mềm soạn thảo và nhập chương trình sau:

S = input("Nhập xâu kí tự bất kì: ")

s_tr = s_ph = s_gi = " "

for ch in S:

if "0" <= ch <="9":

s_tr = s_tr + ch

else:

if "a" <= ch <= "z" or "A" <= ch <= "Z":

s_ph = s_ph + ch

else:

s_gi = s_gi + ch

Skq = s_tr + s_gi + s_ph

print("Xâu kết quả:", Skq)

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

Media VietJack

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

Câu 1:

Viết chương trình yêu cầu nhập số thực dương a. Chương trình cần kiểm soát lỗi nhập dữ liệu như sau:

Nếu số đã nhập nhỏ hơn hoặc bằng 0 thì thông báo: Nhập sai, số a phải lớn hơn 0. Hãy nhập lại. 

Chương trình cần kiểm soát lỗi nhập cho đến khi nào nhập đúng thì thôi.

Xem đáp án » 13/07/2024 6,840

Câu 2:

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.

Xem đáp án » 13/07/2024 2,754

Câu 3:

Viết chương trình in bảng cửu chương ra màn hình. Yêu cầu bảng cửu chương in ra thành 10 khối bao gồm 2 hàng, 5 cột như sau:

Media VietJack

Xem đáp án » 13/07/2024 2,615

Câu 4:

Cho trước dãy số bất kì A. Em hãy viết chương trình tìm và chỉ ra vị trí đầu tiên của dãy A mà 3 số hạng liên tiếp có giá trị là 1, 2, 3 (có thể tổng quát 3 số bất kì p, q, s). Nếu tìm thấy thì thông báo vị trí tìm thấy, nếu không thì thông báo "không tìm thấy mẫu".

Xem đáp án » 13/07/2024 1,987

Câu 5:

Em hãy viết chương trình nhập hai số tự nhiên Y1, Y2 là số năm, Y2 > Y1. Tính xem trong khoảng thời gian từ năm Y1 đến năm Y2 có bao nhiêu năm nhuận. Áp dụng tính xem trong thế kỉ XXI có bao nhiêu năm nhuận.

Xem đáp án » 11/07/2024 1,668

Câu 6:

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.

Xem đáp án » 13/07/2024 1,586

Câu 7:

Em hãy viết chương trình nhập số tự nhiên n > 1, sau đó in ra tất cả các ước số nguyên tố khác nhau của n theo hàng ngang trên màn hình. Ví dụ:

- Nếu n = 10 thì in ra 2 5.

- Nếu n = 12 thì in ra 2 3.

Xem đáp án » 13/07/2024 1,199

Bình luận


Bình luận
Đăng ký thi VIP

VIP 1 - Luyện 1 môn của 1 lớp

  • Được thi tất cả đề của môn bạn đăng ký có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi đáp với đội ngũ chuyên môn với những vấn đề chưa nắm rõ của môn bạn đang quan tâm.

Lớp đăng ký:

Môn đăng ký:

Đặt mua

VIP 2 - Combo tất cả các môn của 1 lớp

  • Được thi tất cả đề của tất cả các môn (Toán, Lí, Hóa, Anh, Văn,...) trong lớp bạn đăng ký có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi đáp với đội ngũ chuyên môn với tất cả những vấn đề chưa nắm rõ.
  • Ẩn tất cả các quảng cáo trên Website

Lớp đăng ký:

Đặt mua

VIP 3 - Combo tất cả các môn tất cả các lớp

  • Siêu tiết kiệm - Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi đáp với đội ngũ chuyên môn với tất cả những vấn đề chưa nắm rõ.
  • Ẩn tất cả các quảng cáo trên Website

Bạn sẽ được luyện tất cả các môn của tất cả các lớp.

Đặt mua

tailieugiaovien.com.vn