Giao diện mới của VnDoc Pro: Dễ sử dụng hơn - chỉ tập trung vào lớp bạn quan tâm. Vui lòng chọn lớp mà bạn quan tâm: Lưu và trải nghiệm

Giải Tin 10 Bài 32: Ôn tập lập trình Python KNTT

VnDoc.com xin gửi tới bạn đọc bài viết Giải Tin 10 Bài 32: Ôn tập lập trình Python KNTT. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

Luyện tập trang 155 SGK Tin 10 KNTT

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.

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 SGK Tin 10 KNTT

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 từ ngày 1-1-1990. Viết chương trình:

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

Giải Tin 10 Bài 32

Vận dụng 2 trang 155 SGK Tin 10 KNTT

Mở rộng bài tập trong phần luyện tập như sau:

- 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 SGK Tin 10 KNTT

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 . Viết chương tình tối ưu hoá hơn nhiệm vụ 1, bài 31 theo cách sau: để tìm ước số nguyên tố nhỏ nhất thì chỉ cần tìm trong các số 2, 3, ..., √n. Nếu trong dãy trên không tìm thấy ước của n thì kết luận ngay n là số nguyên tố.

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)

Giải Tin 10 Bài 32

VnDoc.com vừa gửi tới bạn đọc bài viết Giải Tin 10 Bài 32: Ôn tập lập trình Python KNTT. Hi vọng qua bài viết này bạn đọc có thêm nhiều tài liệu để học tập tốt hơn môn Tin 10 KNTT. Mời các bạn cùng tham khảo thêm tài liệu học tập các môn Toán 10 KNTT, Tiếng Anh 10 KNTT...

Đánh giá bài viết
1 258
Sắp xếp theo

    Tin học 10 Kết nối tri thức

    Xem thêm