Sách bài tập Tin học 10 Bài 14, 15 (Cánh diều): Kiểu dữ liệu danh sách - xử lí danh sách - Thực hành với kiểu dữ liệu danh sách

3.6 K

Với giải sách bài tập Tin học 10 Bài 14, 15: Kiểu dữ liệu danh sách - xử lí danh sách - Thực hành với kiểu dữ liệu danh sách sách Cánh diều hay, chi tiết giúp học sinh dễ dàng xem và so sánh lời giải từ đó biết cách làm bài tập trong SBT Tin học 10. Mời các bạn đón xem:

Giải SBT Tin học lớp 10 Bài 14, 15: Kiểu dữ liệu danh sách - xử lí danh sách - Thực hành với kiểu dữ liệu danh sách

Câu F69 trang 43 SBT Tin 10Danh sách loài hoa

Đọc chương trình sau đây và cho biết kết quả in ra màn hình với dữ liệu input đã cho. Em hãy soạn thảo chương trình để kiểm tra dự đoán của mình.

Trả lời:

Kết quả sẽ là:

Câu F70 trang 44 SBT Tin 10Danh sách và xâu

Python không cho phép thay đổi kí tự trong xâu. Để có thể thực hiện các phép biến đổi thay kí tự trong xâu s, người ta phải biểu diễn s dưới đạng danh sách kí tự ds. Em hãy chỉ ra cách biến đổi s thành ds.

Trả lời:

Sử dụng hàm list (s) để tạo danh sách kí tự từ xâu s.

Ví dụ:

Kết quả

Câu F71 trang 44 SBT Tin 10Tạo bản sao

Xét a là một danh sách. Phép gán b = a không tạo ra một danh sách mới mà chỉ tạo ra tên khác để truy cập tới a. Em hãy chỉ ra một số cách tạo b là danh sách bản sao của a.

Trả lời:

Có thể tạo danh sách b là bản sao của danh sách a bằng một trong hai cách:

Cách 1. Dùng phép gán: b = a[:]

Cách 2. Dùng phép gán: b = a. copy ()

Câu F72 trang 44 SBT Tin 10Danh sách con

Trong Python, việc xử lí xâu và danh sách có nhiều điểm tương đồng. Cách tạo danh sách con được viết giống như tạo xâu con. Em hãy đọc lại cách tạo xâu con và nêu cách viết câu lệnh đưa ra danh sách con của a như sau:

- Gồm m phần tử đầu tiên của danh sách a.

- Gồm các phần tử từ vị trí p đến trước vị trí q, của danh sách a.

- Gồm các phần tử từ vị trí m đến cuối danh sách a.

Trả lời:

Việc tạo danh sách con giống như tạo xâu con:

a[:m] - câu lệnh đưa ra danh sách m phần tử đầu tiên của a.

a[p:q] - câu lệnh đưa ra danh sách con tử phần tử ở vị trí p đến phần tử ở vị trí q - 1

a[m: ] - câu lệnh đưa ra danh sách các phần tử cuối của a bắt đầu từ vị trí m.

Câu F73 trang 44 SBT Tin 10Các số chẵn

Lập trình nhập dãy số nguyên từ thiết bị vào chuẩn, các số trên một dòng, cách nhau một dấu cách và đưa ra thiết bị ra chuẩn trên một dòng các số chẵn, cách nhau một dấu cách.

Ví dụ:

Input

Output

5        10      6        3        9        2        4

10      6        2        4

 

Trả lời:

Tham khảo chương trình sau

Câu F74 trang 44 SBT Tin 10Các số dương

Lập trình nhập dãy số nguyên từ thiết bị vào chuẩn, các số trên một dòng, cách nhau một dấu cách và đưa ra thiết bị ra chuẩn trên một dòng các số dương, các số ghi cách nhau, một dấu cách.

Ví dụ:

Input

Output

-8      6        -7      -2      1        4        -3      10

6        1        4        10

Trả lời:

Tham khảo chương trình sau

Câu F75 trang 45 SBT Tin 10Số lớn hơn

Lập trình nhập dãy số nguyên từ thiết bị vào chuẩn, các số trên một dòng, cách nhau một dấu cách và đưa ra thiết bị ra chuẩn trên một dòng các số lớn hơn số đứng trước nó, các số ghi cách nhau một dấu cách.

Ví dụ:

Input

Output

6        -5      3        -9      -8      1        -2      0

3        -8      1        0

 

Trả lời:

Tham khảo chương trình sau

Câu F76 trang 45 SBT Tin 10Số lớn nhất

Cho một dãy số nguyên. Hãy lập trình đưa ra số có giá trị lớn nhất của dãy và vị trí của số đó trong dãy. Vị trí các số được đánh số bắt đầu từ 1. Nếu trong dãy có nhiều số cùng là lớn nhất, hãy đưa ra thứ tự vị trí nhỏ nhất của số lớn nhất.

Dữ liệu: Gồm một dòng chứa các số của dãy được nhập vào từ bàn phím, các số cách nhau một dấu cách.

Kết quả: Đưa ra thiết bị ra chuẩn giá trị số lớn nhất và vị trí của nó, hai kết quả này cách nhau một dấu cách.

Ví dụ:

Input

Output

4        2        6        3        5        6        2        0        -1      3

6        3

 

Trả lời:

Tham khảo chương trình sau

Câu F77 trang 45 SBT Tin 10Phân lớp

Cho dãy các số nguyên a1a2, …, an, Hãy lập trình đưa các số khác 0 lên đầu dãy, giữ nguyên thứ tự xuất hiện, các số 0 đưa về vị trí cuối dãy. Trong chương trình không dùng thêm dãy phụ làm trung gian.

Dữ liệu: Nhập vào từ bàn phím một dòng chứa các số của dãy, mỗi số cách nhau một dấu cách.

Kết quả: Đưa ra màn hình, các số trên một dòng, cách nhau một dấu cách.

Ví dụ:

Input

Output

5  0  8  1  0  0  6  0  3   

5  8  1  6  3  0  0  0  0

 

Trả lời:

Tham khảo chương trình sau

Câu F78 trang 46 SBT Tin 10Kiểm tra sắp xếp

Mảng a1a2,…, an, đã được sắp xếp không giảm nếu ai ≤ ai+1, i = 1, 2,…, n-1. Lập trình nhập mảng số nguyên, kiểm tra và đưa ra thông báo 'Yes” nếu mảng đó đã được sắp xếp không giảm hoặc “No” trong trường hợp ngược lại.

Dữ liệu: Nhập vào từ thiết bị vào chuẩn, gồm một dòng chứa các phần tử của mảng, các số cách nhau một dấu cách.

Kết quả: Đưa ra thiết bị ra chuẩn thông báo xác định được.

Ví dụ:

Input

Output

2  4  6  6  22  8

Yes

Trả lời:

Tham khảo chương trình sau

Câu F79 trang 46 SBT Tin 10Hoàn thiện chương trình

Chương trình ở hình sau thực hiện nhập từ thiết bị vào chuẩn một danh sách số nguyên A = (a1, a2, …, an); Các số ghi trên cùng một dòng, mỗi số cách nhau một dấu cách. Tính và đưa ra thiết bị ra chuẩn các giá trị b1, b2, …, bn, trong đó bi, (với i từ 1 đến n) là ước số chung lớn nhất của các số a1, a2, …, aiCác số đưa ra trên một dòng, cách nhau một dấu cách. Tuy nhiên chương trình vẫn có lỗi, em hãy tìm lỗi và nêu các phương pháp khắc phục các lỗi đó.

Trả lời:

Câu lệnh sai: b[i] = gcd(b[i-1], a[i]).

Chưa nêu rõ gcd ở thư viện nào. Trường hợp này có hai cách sửa:

Cách 1. Sửa câu lệnh sai thành: b[i] = math.gcd(b[i-1],a[i]).

Cách 2. Chỉ rõ nạp gcd từ thư viện math bằng cách viết lại câu lệnh đầu tiên như sau: from math import gcd.

Câu F80 trang 46 SBT Tin 10Tìm và sửa lỗi

Chương trình ở hình sau thực hiện nhập từ thiết bị vào chuẩn một danh sách số nguyên A = (a1, a2,…, an), các số ghi trên cùng một dòng, mỗi số cách nhau một dấu cách. Tính và đưa ra thiết bị ra chuẩn các giá trị là b1, b2,…, bn, trong đó bi (với i từ 1 đến n) là tổng của các số a1, a2,…, an.. Các số đưa. ra trên một dòng, mỗi số cách nhau một dấu cách. Tuy nhiên, chương trình vẫn có lỗi, em hãy tìm lỗi và nêu các phương pháp khắc phục các lỗi đó.

Trả lời:

Các câu lệnh đưa ra không đáp ứng yêu cầu các số phải được đưa ra trên cùng một dòng. Tham khảo chương trình sau:

Đánh giá

0

0 đánh giá