Bài 32: Ôn tập lập trình Python

Luyện tập (SGK Kết nối tri thức với cuộc sống - Trang 155)

Hướng dẫn giải

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)

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Vận dụng - bài 1 (SGK Kết nối tri thức với cuộc sống - Trang 155)

Hướng dẫn giải

Hướng dẫn:

Chương trình 1. Nhập số tự nhiên từ bàn phím và tính xem đó là ngày tháng năm nào.

month = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]

def nhuan(year):

      if year % 400 == 0 or (year % 4 == 0 and year%100 != 0):

            return True

      else:

            return False

def day_of_year(year):

      if nhuan(year):

           return 366

      else:

          return 365

def hople(year,mm, day) :

      if nhuan(year):

          month[1] = 29

      if mm < 1 or mm > 12:

          return False

      if day < 1 or day > month[mm-1]:

          return False

      return True

def tinh_nam(d):

      year = 1900

      n_day = day_of_year(year)

      day = d

      while n_day <= d:

          day = d - n_day

          year = year + 1

          n_day = n_day + day of_year(year)

          if day == 0:

               year = year - 1

              day = day_of_year(year)

       return year, đay

def tinh_thang(year, day) :

       if nhuan(year) :

             month[1] = 29

      mm= 0

      n_day = month[mm]

      dd = day

      while n_day <= day anđ mm < 11:

           dd = day - n_day

           mm = mm + 1

           n_day = n_day + month[mm]

           if dd == 0:

                mm = mm - 1

                dd = month[mm]

      return mm+1,dd

# Chương trình chính

d = int(input( "Nhập số ngày tính từ 1/1/1990: "))

year,day = tinh_nam(d)

mm,dd = tinh thang(year, day)

print( "Đó là ngày", dd, "tháng", mm, "năm" , year)

(Trả lời bởi Time line)
Thảo luận (1)

Vận dụng - bài 2 (SGK Kết nối tri thức với cuộc sống - Trang 155)

Vận dụng - bài 3 (SGK Kết nối tri thức với cuộc sống - Trang 155)

Hướng dẫn giải

def phanTichSoNguyen(n):

    i = 2

    A = []

     while (n > 1):

         if (n % i == 0):

             n = n // i;

             A.append(i)

         else:

             i = i + 1

     return A

n = int(input("Nhập số nguyên dương n = "))

A = phanTichSoNguyen(n)

size = len(A)

if size == 1:

print("n là số nguyên tố")

else:

    print("n là hợp số")

sb = "";

    for i in range(0, size - 1):

         sb = sb + str(A[i]) + " x "

    sb = sb + str(A[size-1])

     print("Kết quả:", n, "=", sb)

Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng √n

(Trả lời bởi Time line)
Thảo luận (1)