Giải bài tập Tin học lớp 10 Bài 15: Thực hành với kiểu dữ liệu danh sách
Bài 1. Cập nhật danh sách
Bài 1 trang 107 Tin học 10: Viết chương trình nhập vào từ bàn phím một danh sách các số nguyên, sau đó thực hiện:
– Thay thế các phần tử âm bằng -1, phần tử dương bằng 1, giữ nguyên các phần từ giá trị 0.
– Đưa ra màn hình danh sách nhận được.
Trả lời:
– Tạo danh sách a từ dữ liệu nhập vào.
– Duyệt các phần tử trong danh sách ai (với i = 0, 1, 2, …, len(a) – 1); và thay ai = 1 nếu ai > 0 và ai = -1 nếu ai < 0.
– Các em tham khảo chương trình:
print (“Nhập dãy số nguyên”)
a = [int(i) for i in input().split()]
n = len(a)
for i in range(n):
if a[i] > 0: a[i]=1
elif a[i] < 0: a[i]= -1
for i in a: print(i, end=’ ‘)
Bài 2. Các số đặc biệt của dãy số
Bài 2 trang 108 Tin học 10: Viết chương trình nhập vào từ bàn phím danh sách số nguyên a; đếm và đưa ra màn hình số lượng các phần tử lớn hơn phần tử đứng ngay trước và phần tử đứng ngay sau nó.
Trả lời:
– Tạo danh sách a từ dữ liệu nhập vào, sau đó duyệt các phần tử trong danh sách thoả mãn điều kiện lớn hơn phần tử đứng trước và phần tử đứng sau nó.
– Chương trình:
print(“Nhập một dãy số nguyên”)
a = [int(i) for i in input().split()]
count=0
for i in range (1, len(a)-1):
if a[i-1] < a[i] > a[i + 1]: count = count + 1
print(count)
Bài 3. Trò chơi với các chiếc giày
Bài 3 trang 108 Tin học 10: Có n đôi giày cùng loại chỉ khác nhau về kích thước được xếp thành một hàng thứ tựu ngẫu nhiên. Chủ trò bí mật rút một chiếc giày và giấu đi, sau đó yêu cầu người chơi cho biết chiếc giày được giấu là chiếc giày trái hay phải và có số là bao nhiêu?
Cách làm thông thường để tìm ra chiếc giày còn thiếu là đi ghép các đôi giày, tuy nhiên cách làm này sẽ mất nhiều thời gian. Một cách làm đơn giản là dựa trên nhận xét: Nếu dãy không thiếu chiếc giày nào thì tổng số bằng 0, nên có thể xác định chiếc giày còn thiếu khi biết tổng các số trong dãy. Hình 4 là chương trình mà Hà My viết theo cách làm trên, tuy nhiên chương trình vẫn có lỗi. Em hãy giúp Hà My sửa lỗi để nhận được chương trình chạy được và cho ra kết quả đúng.
Trả lời:
– Lỗi sai ngữ pháp
– Sửa: thay ngoặc tròn bằng ngoặc vuông
– Chương trình
print(“Nhập vào một dãy số size giày”)
shoes = [int(s) for s in input().split()]
sum = 0
for i in range(len(shoes)):
sum = sum + shoes[i]
if sum > 0:
print(“Chiếc giày bên trái, kích cỡ”, sum)
else:
print(“Chiếc giày bên phải, kích cỡ”, sum)
Vận dụng (trang 109)
Vận dụng trang 109 Tin học 10: Viết chương trình nhập vào 12 số nguyên dương tương ứng là tiền điện của 12 tháng trong năm vừa rồi của nhà em, đưa ra màn hình các thông tin sau:
– Tổng số tiền điện của cả năm, trung bình mỗi tháng.
– Liệt kê các tháng dùng nhiều hơn trung bình mỗi tháng
Trả lời:
– Chương trình gợi ý như sau:
ds= [float(i) for i in input(“Nhập tiền điện hằng tháng “).split()]
t = 0
for i in range(0, len(ds)):
t = t + ds[i]
tb = t/12
print(“Tổng tiền điện là: “, t)
print(“Tiền điện trung bình mỗi tháng là: “, tb)
print(“Các tháng dùng nhiều hơn trung bình mỗi tháng là: “)
for i in range(0, len(ds)):
if ds[i] > tb:
print(i+1)
– Kết quả chương trình chạy thử:
Xem thêm các bài giải SGK Tin học lớp 10 Cánh diều hay, chi tiết khác:
Bài 14: Kiểu dữ liệu danh sách – Xử lí danh sách
Bài 16: Kiểm thử và gỡ lỗi chương trình
Bài 17: Thực hành lập trình giải bài toán trên máy tính
Bài 18: Lập trình giải quyết bài toán trên máy tính