Câu hỏi:

13/05/2022 1,897

Viết chương trình nhập số n, sau đó nhập danh sách tên học sinh với họ, đệm, tên. Sắp xếp tên học sinh trong lớp theo bảng chữ cái. Đưa kết quả ra màn hình.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Chương trình:

def Sosanhxau(name1, name2):

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):                

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)

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

Lời giải

Để giải quyết bài toán một cách triệt để và bằng phép tính thủ công sẽ khá khó khăn, trong Python cung cấp một số thư viện cũng như hàm có sẵn, giúp cho quá trình giải bài toán thuận tiện và dễ dàng hơn.

Tham khảo đoạn code sau:

from datetime import date

from datetime import timedelta

 

dateStandard = date(1990, 1, 1)

def calNumberDay(date1):

    return (date1 - dateStandard).days

def NumberToDate(number):

    return dateStandard + timedelta(days=number)

d=int(input("Nhap số ngày"))

a=input("Nhập thời gian").split(" ")

a[0]=int(a[0])

a[1]=int(a[1])

a[2]=int(a[2])

print(NumberToDate(number=32))

print(calNumberDay(date(a[2],a[1],a[0])))

Trong các phần mềm bảng tính điện tử, dữ liệu ngày tháng được coi là số ngày tính  (ảnh 1)

Lời giải

import re

def Chuyendoi(s):

    s = re.sub(r'[àáạảãâầấậẩẫăằắặẳẵ]', 'a', s)

    s = re.sub(r'[ÀÁẠẢÃĂẰẮẶẲẴÂẦẤẬẨẪ]', 'A', s)

    s = re.sub(r'[èéẹẻẽêềếệểễ]', 'e', s)

    s = re.sub(r'[ÈÉẸẺẼÊỀẾỆỂỄ]', 'E', s)

    s = re.sub(r'[òóọỏõôồốộổỗơờớợởỡ]', 'o', s)

    s = re.sub(r'[ÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠ]', 'O', s)

    s = re.sub(r'[ìíịỉĩ]', 'i', s)

    s = re.sub(r'[ÌÍỊỈĨ]', 'I', s)

    s = re.sub(r'[ùúụủũưừứựửữ]', 'u', s)

    s = re.sub(r'[ƯỪỨỰỬỮÙÚỤỦŨ]', 'U', s)

    s = re.sub(r'[ỳýỵỷỹ]', 'y', s)

    s = re.sub(r'[ỲÝỴỶỸ]', 'Y', s)

    s = re.sub(r'[Đ]', 'D', s)

    s = re.sub(r'[đ]', 'd', s)

    return s

def Sosanhxau(name1, name2):

    name1=Chuyendoi(name1)

    name2=Chuyendoi(name2)

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):               

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)