Giải Tin 10 Bài 15: Thực hành với dữ liệu kiểu danh sách CD

Giải Tin 10 Bài 15: Thực hành với dữ liệu kiểu danh sách CD được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn học sinh cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

Gii Tin 10 Bài 15: Thc hành vi d liu kiu danh sách
CD
Bài 1 trang 107 SGK Tin 10 CD
Cp nht danh sách
Viết chương trình nhập vào t bàn phím mt danh sách các s nguyên, sau đó thực
hin:
- Thay thế các phn t âm bng -1, phn t dương bằng 1, gi nguyên các phn t
giá tr 0.
- Đưa ra màn hình danh sách nhận đưc
Li gii
- To danh sách a t d liu nhp vào.
- Duyt các phn 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 ("Nhp 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 trang 108 SGK Tin 10 CD
Các s đặc bit ca dãy s
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 ng các phn t lớn hơn phần t đứng trước và phn t đứng sau nó.
Li gii
- To danh sách a t d liu nhập vào, sau đó duyệt các phn t trong danh sách
tho mãn điều kin lớn hơn phần t đứng trước và phn t đứng sau nó.
- Chương trình:
print("Nhp mt 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 trang 108 SGK Tin 10 CD
Trò chơi với các chiếc giày
n đôi giày cùng loi ch khác nhau v kích thước được xếp thành mt hàng th
tu ngu nhiên. Ch trò mt rút mt chiếc giày giấu đi, sau đó yêu cầu người
chơi cho biết chiếc giày được giu là chiếc giày trái hay phi 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 đi ghép các đôi giày, tuy
nhiên cách làm này s mt nhiu thi gian. Một cách làm đơn giản da trên nhn
xét: Nếu dãy không thiếu chiếc giày nào thì tng s bng 0, nên th xác định
chiếc giày còn thiếu khi biết tng các s trong dãy. Hình 4 là chương trình
My viết theo cách m trên, tuy nhiên chương trình vn li. Em hãy giúp My
sa li đ nhận được chương trình chạy được và cho ra kết qu đúng.
Li gii
- Li sai ng pháp
- Sa: thay ngoc tròn bng ngoc vuông
- Chương trình
print("Nhp vào mt 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 phi, kích c", sum)
Vn dng trang 109 SGK Tin 10 CD
Qun lí tiền điện
Viết chương trình nhp vào 12 s nguyên ơng tương ng tiền điện ca 12
tháng trong năm va ri ca nhà em, đưa ra màn hình các thông tin sau:
- Tng s tiền điện ca c năm, trung bình mỗi tháng.
- Lit kê các tháng dùng nhiều hơn trung bình mỗi tháng
Li gii
- Chương trình gợi ý như sau:
ds= [float(i) for i in input("Nhp tiền điện hng tháng ").split()]
t = 0
for i in range(0, len(ds)):
t = t + ds[i]
tb = t/12
print("Tng tiền đin là: ", t)
print("Tiền điện trung bình mi 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:
| 1/4

Preview text:

Giải Tin 10 Bài 15: Thực hành với dữ liệu kiểu danh sách CD
Bài 1 trang 107 SGK Tin 10 CD Cập nhật danh sách
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 Lời giả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 trang 108 SGK Tin 10 CD
Các số đặc biệt của dãy số
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 trước và phần tử đứng sau nó. Lời giả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 trang 108 SGK Tin 10 CD
Trò chơi với các chiếc giày
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. Lời giả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 SGK Tin 10 CD Quản lí tiền điện
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 Lời giả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ử: