TopStudy

Đáp án và lời giải

Giải SBT Tin 10 KNTT Bài 20. Câu lệnh lặp For có đáp án

Về trang đề

Câu 1

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

a) range(12)

Câu 2

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

b) range(-2,9)

Câu 3

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

c) range(5, 21)

Câu 4

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Dãy 0, 1, 4, 9, ..., 81 (bình phương các số 0, 1, 2, ...,9).

Hình minh hoạ

Câu 5

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

a) Giá trị trong sum là tổng các bình phương của 1, 2, 3, ..., 10 (= 385).

Hình minh hoạ

Câu 6

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

b) Kết quả không thay đổi. Vì giá trị i khi đó sẽ bắt đầu từ 0, tổng các bình phương của các số 0, 1, 2, ..., 10 vẫn chính là tổng các bình phương của các số 1, 2, ..., 10.

Câu 7

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Chương trình có thể viết như sau:

S = 0

n = int(input("Nhập số tự nhiên n: "))

for i in range(1, n + 1):

S = S + 1/i

print("Tổng nghịch đảo các số từ 1 tới ",n," là: ", S)

Câu 8

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Chương trình có thể viết như sau:

S = 0

n = int(input("Nhập số tự nhiên n: "))

for i in range(2, n + 1):

S = S + (i - 1)*i

print("Với n = ", n, "tổng cần tìm là: ", S)

Câu 9

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Chương trình có thể viết như sau:

#Tổng các số lẻ và tổng các số chẵn không lớn hơn n

tong_sole = 0

tong_sochan = 0

n = int(input("Nhập số tự nhiên n:"))

for i in range(1, n + 1):

if i%2==0: # i là số chẵn: thêm i vào tong_sochan

tong_sochan=tong_sochan + i

else: #i là số lẻ: thêm i vào tong_sole

tong_sole=tong_sole + i

print("Tổng các số chẵn và các số lẻ không lớn hơn", n, "tương ứng là", tong_sochan, "và", tong_sole)

Câu 10

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Có thể thấy rằng các ước số thật sự của n không vượt quá giá trị n//2.

Chương trình có thể viết như sau:

#Tổng và tích các ước số thật sự của n

tong_uocso = 0

tich_uocso = 1

n = int(input("Nhập số tự nhiên n: "))

k = n//2+1

for i in range(1,k):

if n%i==0: # i là ước số của n

tong_uocso = tong_uoc so + i

tich_uocso = tich_uocso*i

print("Tổng và tích các ước số thực

Câu 11

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Chương trình có thể viết như sau:

tong_diem = 0

tong_heso = 0

n = int(input("Nhập số môn học: "))

for i in range(1, n + 1):

diem = float(input("Điểm môn thứ " + str(i) + ": "))

heso = float(input("Hệ số môn thứ " + str(i) + ": "))

tong_diem = tong_diem + diem*heso

tong_he so = tong_heso + heso

print("Điểm trung bình cả năm học của em là:", tong_diem/tong_heso)

Câu 12

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Nếu kí hiệu k là số con gà thì số con chó sẽ là 36 – k và tổng số chân sẽ là:

so_chan = k × 2 + (36 – k) × 4

Rõ ràng k < 36. Như vậy, ta chỉ việc cho k nhận các giá trị lần lượt từ 0 tới 36 và kiểm tra nếu so_chan = 100 thì k và 36 – k chính là số gà và số chó cần tìm.

Chương trình có thể viết như sau:

print("GIẢI BÀI TOÁN GÀ VÀ CHÓ")

print("Vừa gà vừa chó")

print("Bó lại cho tròn")

print("Ba mươi sáu (36) con")

print("Một trăm (100) chân chẵn")

print("Hỏi có mấy gà, mấy chó?")

for k in range(37) :

if ((k * 2 + (36 - k) * 4) == 100):

print("Số gà là: ", k)

print("Số chó là: ", 36 - k)

Câu 13

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Bài toán có thể phát biểu lại như sau: Có một trăm con trâu ăn hết một trăm bó cỏ. Mỗi con trâu đứng ăn được 5 bó. Mỗi con trâu nằm ăn được 3 bó. Ba con trâu già ăn cùng nhau hết 1 bó. Hỏi có bao nhiêu con trâu đứng, bao nhiêu con trâu nằm và bao nhiêu con trâu già?

Mỗi trâu đứng ăn 5 bó cỏ nên tối đa số trâu đứng chỉ có thể là 100/5 tức là 20 con.

Mỗi trâu nằm ăn 3 bó cỏ nên số trâu nằm nhỏ hơn hoặc bằng 100/3 tức là 33 con.

Số trâu già = 100 – Số trâu đứng - Số trâu nằm

Chương trình có thể viết như sau:

#Trăm trâu, trăm cỏ

for i in range(1, 21):

for j in range(1, 34):

k = 100 – I - j

if 5*i + 3*j + k/3 == 100 :

print("Trâu đứng ",i," trâu nằm ",j," trâu già " ,k)

Câu 14

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Nếu kí hiệu k là số gà thì số chó sẽ là m – k. Lời giải của bài toán chính là giá trị k thoả mãn điều kiện k × 2 + (m – k) × 4 = n. Trong chương trình, ta sẽ sử dụng biến co_nghiem để ghi nhận việc xác định được lời giải. Giá trị ban đầu của co_nghiệm được gán bằng False, khi tìm ra nghiệm thì giá trị của nó được đổi thành True.

Chương trình có thể viết như sau:

print("GIẢI BÀI TOÁN GÀ VÀ CHÓ TỔNG QUÁT")

print("Vừa gà vừa chó")

print("Bó lại cho tròn")

print("Có đúng m con")

print("Tròn n chân chẵn")

print("Hỏi có mấy gà, mấy chó?")

co_nghiem=False

m = int(input("Tổng số gà và chó là: "))

n = int(input("Tổng số chân là: "))

for k in range(m + 1) :

if ((k * 2 + m - k) * 4) == n):

print("Số gà là: ", k)

print("Số chó là: ", m - k)

co_nghiem = True

if co_nghiem==False:

print("Bài toán có " , m, "gà và chó với ", n, " chân vô nghiệm!")

Câu 15

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Tương tự Câu 20.10, cần sử dụng một biến để ghi nhận tình huống tìm ra nghiệm.

Chương trình có thể viết như sau:

#Bài toán trăm trâu, trăm cỏ tổng quát

m = int(input("Số trâu: "))

n = int(input("Số bó cỏ: "))

k1 = int(input("Số bó cỏ 1 trâu đứng ăn: "))

k2 = int(input("Số bó cỏ 1 trâu nằm ăn: "))

k3 = int(input("Số trâu già ăn chung 1 bó cỏ: "))

co_nghiem = False

max_traudung = m // k1 + 1

max_traunam = m // k2 + 1

for i in range(1, max_traudung) :

for j in range(1, max_traunam) :

k = m – i – j

if k1*i + k2*j + k/k3 == n :

print("Trâu đứng ",i," trâu nằm ",j," trâu già " , k)

co_nghiem = True

if co_nghiem==False:

print("Bài toán vô nghiệm")