Giải SBT Tin học 10 trang 50 Kết nối tri thức
Haylamdo sưu tầm và biên soạn Giải SBT Tin học 10 trang 50 trong 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 10 Kết nối tri thức hay nhất, ngắn gọn sẽ giúp học sinh dễ dàng trả lời các câu hỏi & làm bài tập Tin học 10 trang 50.
Giải SBT Tin học 10 trang 50 Kết nối tri thức
Câu 23.6 trang 50 SBT Tin học 10: 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 < 5 (xem Câu 23.5). Khi đó để giải mã (xác định bản rõ) ta chỉ việc đổi các kí tự tương ứng của bản mã thành kí tự đứng trước nó trong bảng mã ASCII k vị trí. Em hãy viết chương trình nhập khoá k và in ra bản rõ từ bản mã là một danh sách, trong đó mỗi phần tử là một kí tự trong bảng mã ASCII.
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)
Câu 23.7 trang 50 SBT Tin học 10: Cho A là một danh sách gồm các số nguyên. Em hãy viết các câu lệnh xoá tất cả các phần tử nhỏ hơn 0 trong A và in danh sách nhận được ra màn hình.
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)
Câu 23.8 trang 50 SBT Tin học 10: Cho dãy số [1, 2, -5, 5, 8, -8]. Em hãy viết chương trình chèn xâu "Số âm" vào sau phân tử nhỏ hơn 0 đầu tiên của dãy đã cho.
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").
Câu 23.9 trang 50 SBT Tin học 10: Cho danh sách A gồm tên một số địa danh du lịch của Việt Nam, ví dụ "Hồ Gươm", "Mù Cang Chải", "Sapa", "Lũng Cú", "Sầm Sơn", "Cửa Lò", "Hội An", "Phú Yên", "Nha Trang", "Mũi Né", "Bến Nhà Rồng", "Phú Quốc", … Em hãy viết chương trình nhập vào tên một địa danh nào đó, xác định địa danh đó có trong danh sách hay chưa, nếu có thì in ra số thứ tự của địa danh ấy trong danh sách, nếu chưa có thì chèn thêm tên địa danh đó vào cuối danh sách.
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.
Câu 23.10 trang 50 SBT Tin học 10: Trong danh sách các địa danh du lịch có thể có địa danh xuất hiện nhiều lần. Viết chương trình để xoá bớt các trường hợp trùng lặp, sao cho mỗi địa danh trong danh sách chỉ có 1 lần.
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)
Lời giải sách bài tập Tin 10 Bài 23: Một số lệnh làm việc với dữ liệu danh sách Kết nối tri thức hay khác: