Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính

Xem toàn bộ tài liệu Lớp 10 – Kết Nối Tri Thức: tại đây

Luyện tập trang 155 Tin học 10:

Lời giải:

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)

Vận dụng 1 trang 155 Tin học 10:

– Nhập số tự nhiên n từ bàn phím và tính xem số đó ứng với ngày, tháng, năm nào.

– Nhập thời gian theo khuôn dạng ngày – tháng – năm (ví dụ 8-10-2021), tính số ngày ứng với ngày này theo phần mềm bảng tính điện tử.

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])))

Vận dụng 2 trang 155 Tin học 10:

– Việc sắp xếp thứ tự phải ưu tiên tính theo tên trước, rồi đến họ, rồi đến đệm.

– Sắp xếp theo thứ tự của bảng chữ cái tiếng Việt.

    Chú ý: Bảng chữ cái tiếng Việt (bao gồm cả dấu thanh) được sắp xếp theo thứ tự sau: AÀÁẢÃẠĂẰẮẲẴẶÂẤẨẪẬBCDĐEÈÉẺẼẸÊỀẾỂỄỆGHIÌÍỈĨỊJKLMNOÒÓỎÕỌƠỚỞỠỢÔỒỐỔỖỘPQRSTUÙÚỦŨỤƯỪỨỬỮỰVXXYỲÝỶỸỴ.

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) 

Vận dụng 3 trang 155 Tin học 10:

Lời 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)

 

Bài giải này có hữu ích với bạn không?

Bấm vào một ngôi sao để đánh giá!

Đánh giá trung bình 4 / 5. Số lượt đánh giá: 916

Chưa có ai đánh giá! Hãy là người đầu tiên đánh giá bài này.

--Chọn Bài--

Tài liệu trên trang là MIỄN PHÍ, các bạn vui lòng KHÔNG trả phí dưới BẤT KỲ hình thức nào!

Tải xuống