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.
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.
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ử.
Thảo luận (1)Hướng dẫn giảiHướ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)
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ÙÚỦŨỤƯ ỪỨỬỮỰVXYỲÝỶỸỴ.
Thảo luận (1)Hướng dẫn giải
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 \(\sqrt{n}\) . Viết chương trì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, …,\(\sqrt{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ố
Thảo luận (1)Hướng dẫn giảidef 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)
(Trả lời bởi Time line)