Hướng dẫn giải bài tập SGK Tin học 10 Kết nối tri thức Chủ đề 5 Bài 23 Một số lệnh làm việc với dữ liệu danh sách giúp các em có thể hiểu bài nhanh hơn và phương pháp học tốt hơn.
-
Khởi động trang 115 SGK Tin học 10 Kết nối tri thức - KNTT
Trong bài trước chúng ta đã biết dùng lệnh append để thêm phần tử vào cuối một danh sách.
Vậy Python có lệnh nào dùng để:
- Xóa nhanh một danh sách
- Chèn thêm một phần tử vào đầu hay giữa danh sách?
- Kiểm tra một phần tử có nằm trong một danh sách không?
-
Hoạt động 1 trang 115 SGK Tin học 10 Kết nối tri thức - KNTT
Quan sát ví dụ sau để biết cách dùng toán tử in để duyệt một danh sách.
-
Câu hỏi mục 1 trang 116 SGK Tin học 10 Kết nối tri thức - KNTT
1. Giả sử A = [“0”, “1”, “01”, “10”]. Các biểu thức sau trả về giá trị đúng hay sai?
a) 1 in A
b) “01” in A
2. Hãy giải thích ý nghĩa của từ khoá in trong câu lệnh sau:
-
Hoạt động 2 trang 116 SGK Tin học 10 Kết nối tri thức - KNTT
Quan sát ví dụ sau để tìm hiểu một số lệnh làm việc với dữ liệu kiểu danh sách.
- VIDEOYOMEDIA
-
Câu hỏi mục 2 trang 117 SGK Tin học 10 Kết nối tri thức - KNTT
1. Khi nào thì lệnh A.append(1) và A. insert(0,1) có tác dụng giống nhau?
2. Danh sách A trước và sau lệnh insert( ) là [1, 4, 10, 0] và [1, 4, 10, 5, 0]. Lệnh đã dùng là gì?
-
Luyện tập trang 118 SGK Tin học 10 Kết nối tri thức - KNTT
1. Cho dãy số [1, 2, 2, 3, 4, 5, 5]. Viết lệnh thực hiện:
a) Chèn số 1 vào ngay sau giá trị 1 của dãy
b) Chèn số 3 và số 4 vào danh sách để dãy có số 3 và số 4 liền nhau hai lần
2. Cho trước dãy số A. Viết chương trình thực hiện công việc sau:
- Xóa đi một phần tử ở chính giữa dãy nếu số phần tử của dãy là số lẻ.
- Xóa đi hai phần tử ở chính giữa của dãy nếu số phần tử là số chẵn.
-
Vận dụng trang 118 SGK Tin học 10 Kết nối tri thức - KNTT
1. Viết chương trình nhập n từ bàn phím, tạo và in ra màn hình dãy số A bao gồm n số tự nhiên chẵn đầu tiên.
2. Dãy số Fibonacci được xác định như sau:
F0 = 0
F1 = 1
Fn = Fn−1 + Fn−2 (với n≥2).
Viết chương trình nhập n từ bàn phím, tạo và in ra màn hình dãy số A bao gồm n số hạng đầu của dãy Fibonacci.
-
Giải bài tập 23.1 trang 47 SBT Tin học 10 Kết nối tri thức - KNTT
Giả sử A = [2, 4, ‘5’, ‘Hà Nội’, ‘Việt Nam’, 9]. Hãy cho biết kết quả các câu lệnh sau:
a) 4 in A
b) 5 in A
c) ‘Hà’ in A
d) "Việt Nam" in A
e) ‘9’ in A
-
Giải bài tập 23.2 trang 48 SBT Tin học 10 Kết nối tri thức - KNTT
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 xác định và in ra số các phần tử lớn hơn 0 của A.
-
Giải bài tập 23.3 trang 48 SBT Tin học 10 Kết nối tri thức - KNTT
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 tạo và in ra danh sách B chỉ gồm các số chẵn có trong A.
-
Giải bài tập 23.4 trang 48 SBT Tin học 10 Kết nối tri thức - KNTT
Dãy Fibonacci. Dãy số Fibonacci được xác định như sau: Fo = 0, F1 = 1, ..., Fn = Fn-1 + Fn-2 (với n lớn hơn hoặc bằng 2). Điều thú vị là dãy số này nảy sinh từ một bài toán thực tế - bài toán đếm thỏ. Một cặp thỏ (gồm một thỏ đực và một thỏ cái) cứ mỗi tháng đẻ được một cặp thỏ con (cũng gồm một thỏ đực và thỏ cái); một cặp thỏ con, khi tròn 2 tháng tuổi, sau mỗi tháng đẻ ra một cặp thỏ con, và quá trình sinh nở cứ thế tiếp diễn. Hỏi sau n tháng có bao nhiêu cặp thỏ, nếu đầu năm (tháng Giêng) có một cặp thỏ sơ sinh?
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 nhận 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.
-
Giải bài tập 23.5 trang 49 SBT Tin học 10 Kết nối tri thức - KNTT
Mã hoá. Để bảo mật nội dung một văn bản khỏi những người không có thẩm quyền tình cờ nhìn thấy người ta thường mã hoá văn bản đó theo một cách nào đó. Một trong những cách đơn giản nhất là "tịnh tiến kí tự": thay thế mỗi kí tự trong văn bản bằng kí tự đứng cách nó k đơn vị trong bảng mã ASCII. Ví dụ, nếu chọn cách mã hoá các kí tự bằng kí tự đứng cách nó 3 đơn vị trong bảng mã ASCII thì bản rõ LONG sẽ trở thành ORQJ. Trong lĩnh vực mã hoá, văn bản ban đầu được gọi là bản rõ, văn bản thu được sau khi mã hoá được gọi là bản mã, số tự nhiên k được gọi là khoá.
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(<n>) để 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.
-
Giải bài tập 23.6 trang 50 SBT Tin học 10 Kết nối tri thức - KNTT
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.
-
Giải bài tập 23.7 trang 50 SBT Tin học 10 Kết nối tri thức - KNTT
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 xóa 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.
-
Giải bài tập 23.8 trang 50 SBT Tin học 10 Kết nối tri thức - KNTT
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.
-
Giải bài tập 23.9 trang 50 SBT Tin học 10 Kết nối tri thức - KNTT
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.
-
Giải bài tập 23.10 trang 50 SBT Tin học 10 Kết nối tri thức - KNTT
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 để xóa 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.