Toptailieu biên soạn và giới thiệu giải sách bài tập Tin học 10 trang 47,48,49,50 Bài 23: Một số lệnh làm việc với dữ liệu danh sách Sách bài tập Tin học 10 Kết nối tri thức hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm các bài tập từ đó nâng cao kiến thức và biết cách vận dụng phương pháp giải vào các bài tập trong SBT Tin học 10 Bài 23.
Tin học 10 Kết nối tri thức Bài 23: Một số lệnh làm việc với dữ liệu danh sách
a) 4 in A b) 5 in A c) 'Hà' in A
d) "Việt Nam" in A e) '9' in A
Lời giải:
a) True.
b) False.
c) False.
d) True.
e) False.
Lời giải:
Các câu lệnh đó có thể viết như sau:
dem = 0
for k in A:
if k > 0:
dem = dem + 1
print("Số các phần tử lớn hơn 0 của A = ", dem)
Lời giải:
Các câu lệnh đó có thể viết như sau:
B = []
for k in A:
if k % 2 == 0:
B.append(k)
print("Danh sách các số chẵn có trong A là: ", B)
Trong hình vẽ trên, quy ước:
Cặp thỏ nhỏ là cặp thỏ có độ tuổi 1 tháng.
Cặp thỏ to hơn là cặp thỏ có khả năng sinh sản.
Quan sát hình vẽ trên ta thấy:
Tháng giêng và tháng hai: Chỉ có 1 cặp thỏ.
Tháng Ba: Cặp thỏ này sẽ đẻ ra một cặp thỏ con, do đó trong tháng này có 2 cặp thỏ.
Tháng Tư: Chỉ có cặp thỏ ban đầu sinh con nên đến thời điểm này có 3 cặp thỏ.
Tháng Năm: Có hai cặp thỏ (cặp thỏ đầu và cặp thỏ được sinh ra ở tháng Ba) cùng sinh con nên ở tháng này có 2 + 3 = 5 cặp thỏ.
Tháng Sáu: Có ba cặp thỏ (2 cặp thỏ đầu và cặp thỏ được sinh ra ở tháng Tư) cùng sinh con ở thời điểm này nên đến đây có 3 + 5 = 8 cặp thỏ.
…
Quá trình này có thể được khái quát như sau:
Nếu n là số tự nhiên khác 0, gọi f(n) là số cặp thỏ có ở tháng thứ n, ta có:
Với n = 1 ta được f(1) = 1.
Với n = 2 ta được f(2) = 1.
Với n = 3 ta được f(3) = 2.
Do đó với n > 3 ta được: f(n) = f(n - 1) + f(n – 2).
Điều đó có thể được giải thích như sau: Các cặp thỏ sinh ra ở tháng n - 1 không thể sinh con ở tháng thứ n, và ở tháng này cặp thỏ tháng thứ n–2 sinh ra một cặp thỏ con nên số cặp thỏ được sinh ra ở tháng thứ n chính là giá trị của f(n – 2).
Viết chương trình nhập n từ bàn phím, tạo và in ra dãy số A bao gồm n số hạng đầu của dãy Fibonacci.
Lời giải:
Chương trình có thể viết như sau:
# Dãy Fibonacci
Fibonacci = [0, 1]
n = int(input("Nhập số tự nhiên n >= 2: "))
i = 2
while i <= n:
Fibonacci.append(Fibonacci[i -1] + Fibonacci[i - 2])
i = i + 1
print (Fibonacci)
Giả sử bản rõ là một danh sách, mỗi phần tử là một kí tự trong bảng chữ cái tiếng Anh in hoa và các dấu cách, dấu phẩy, dấu chấm, dấu hai chấm, dấu nháy. Viết chương trình nhập khoá k là số tự nhiên nhỏ hơn 5, thực hiện mã hoá danh sách đó bằng phương pháp tịnh tiến kí tự và in bản mã ra màn hình.
Gợi ý: sử dụng hàm chr() để xác định kí tự có thứ tự là n và hàm ord(<kí tự>) để nhận số thứ tự của <kí tự> trong bảng mã ASCII. Ví dụ chr(65) sẽ cho kí tự A, ord(C) sẽ cho giá trị là số nguyên 67.
Lưu ý: Việc yêu cầu k < 5 chỉ nhằm mục đích tất cả các kí tự trong bản mã đều hiển thị được trên màn hình.
Lời giải:
Chương trình có thể viết như sau:
# Mã hoá
ban_ro = ['M', 'Y', ' ', 'N', 'A', 'M', 'E', ':', ' ', 'L', 'O', 'N', 'G']
# Ví dụ minh hoạ bản rõ
khoa = int(input(' Nhập số tự nhiên k < 5: '))
ban_ma = []
for kitu in ban_ro:
ban_ma.append(chr(ord(kitu) + khoa))
print(ban_ma)
Lời giải:
Tham khảo chương trình mã hoá ở Câu 23.5, chương trình giải mã có thể viết như sau:
# Giải mã
ban_ma = ['Q', ']', '$', 'R', 'E', 'Q', 'I', '>', '$', 'P', 'S', 'R', 'K'] # Bản mã nhận được trong câu 23.5 với k = 4
khoa = int(input(' Nhập số tự nhiên k < 5: '))
ban_ro = []
for kitu in ban_ma:
ban_ro.append(chr(ord(kitu) - khoa))
print(ban_ro)
Giải mã. Giả sử một bản rõ được mã hoá theo phương pháp tịnh tiến kí tự với khoá k
Lời giải:
Các câu lệnh đó có thể viết như sau:
for k in A:
if k < 0:
A.remove(k)
print("Danh sách các số >= 0 của A = ", A)
Lời giải:
Chương trình có thể viết như sau:
A = [1, 2, -5, 5, 8, -8]
i = 0
while i < len(A):
if A[i] < 0:
A.insert(i + 1,"Số âm")
break
i = i + 1
print(A)
Lưu ý: Hãy suy nghĩ tại sao khi tìm thấy phần tử < 0 ở vị trí i thì lại dùng câu lệnh A.insert(i + 1, "Số âm") mà không phải là A.insert(i, "Số âm").
Lời giải:
Vì phải xác định thứ tự trong danh sách nếu tìm thấy tên địa danh nên em cần duyệt danh sách đã cho theo chỉ số tương ứng của từng phần tử.
Chương trình có thể viết như sau:
dia_danh = ["Hồ Gươm", "Hạ Long", "Mù Cang Chải", "Lũng Cú", "Hội An", "Nha Trang", "Mũi Né", "Bến Nhà Rồng", "Phú Quốc", "Mũi Cà Mau"]
i = 0
ten = input("Địa danh cần tìm: ")
da_co = False
while i < len(dia_danh):
if ten == dia_danh[i]:
da_co = True
thu_tu_diadanh = i + 1
break
i = i + 1
if da_co == False:
dia_danh.append(ten)
print("Địa danh ", ten, " chưa có. Đã được thêm vào danh sách")
else:
print("Địa danh ", ten, "đã có ở vị trí thứ ", thu_tu_diadanh, " trong danh sách")
Lưu ý: Có thể thêm câu lệnh print(dia danh) vào cuối cùng để in ra toàn bộ danh sách.
Lời giải:
Chương trình có thể được viết như sau:
# Xoá địa danh trùng lặp
dia_danh=["Hồ Gươm", "Hồ Gươm","Hồ Gươm", "Hạ Long", "Hồ Gươm", "Mù Cang Chải", "Hồ Gươm", "Mù Cang Chải", "Mù Cang Chải", "Mù Cang Chải"]
i = 0
while i < len (dia_danh):
ten = dia_danh[i]
j = i + 1
while j < len (dia_danh):
tentieptheo = dia_danh[j]
if ten == tentieptheo:
dia_danh.remove(tentieptheo)
else:
j = j + 1
i = i + 1
print(dia_danh)
Xem thêm lời giải SBT Tin học 10 Kết nối tri thức hay, chi tiết khác:
Bài 22: Kiểu dữ liệu danh sách
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.