Toptailieu biên soạn và giới thiệu giải sách bài tập Tin học 10 trang 43,44,45 Bài 21: Câu lệnh lặp while Sách bài tập Tin học 10 Kết nối tri thức hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm các bài tập từ đó nâng cao kiến thức và biết cách vận dụng phương pháp giải vào các bài tập trong SBT Tin học 10 Bài 21.
Tin học 10 Kết nối tri thức Bài 21: Câu lệnh lặp while
a)
i = 1
while i < 5:
print(1/(i + 2), end = " ")
i = i + 1
b)
i = 5
while i < 5 :
print(1/(i + 2), end = " ")
i = i + 1
Lời giải:
a) Lần lượt in ra trên cùng một dòng các giá trị bằng (gần đúng) của 1/3, 1/4, 1/5, 1/6. Chương trình dừng khi giá trị = 5.
b) Chương trình không in gì mà kết thúc luôn, do điều kiện thực hiện vòng lặp (i < 5) không được thoả mãn.
x = 1
while x > 0:
x = int(input("Thu nhập của hộ tiếp theo: "))
Lời giải:
Đoạn chương trình đã cho thực hiện việc nhập dữ liệu thu nhập của hộ gia đình từ bàn phím. Khi giá trị được nhập vào nhỏ hơn hoặc bằng 0 thì quá trình nhập dữ liệu kết thúc.
Câu 21.3 trang 44 SBT Tin học 10: Em hãy cho biết kết quả thực hiện hai đoạn chương trình sau:
a)
s = 0
for i in range(1, 11):
s = s + i
print(s)
b)
s = 0
i = 1
while i < 11:
s = s + i
i = i + 1
print(s)
Lời giải:
Cả hai đoạn chương trình đều tính và in ra tổng các số tự nhiên từ 1 đến 10.
a)
b)
s = 0
for i in range(5,11):
s = s + i*i
print(s)
Lời giải:
Đoạn chương trình thực hiện việc tính tổng bình phương các số tự nhiên từ 5 đến 10. Em có thể dùng câu lệnh while để thay thế câu lệnh for như sau:
s = 0
i = 5
while i < 11:
s = s + i*i
i = i + 1
print(s)
for <biến> in range(gia_tri1, gia_tri2):
<khối lệnh>
Lời giải:
Em có thể thay câu lệnh for đã cho bằng nhóm các câu lệnh có sử dụng while tương ứng như sau:
<biến> = gia_tri1
while <biến> < gia_tri2:
<khối lệnh>
<biến> = <biến> + 1
Câu 21.6 trang 45 SBT Tin học 10: Em hãy cho biết đoạn chương trình sau thực hiện công việc gì:
s = 0
i = 0
while s < 2:
i = i + 1
s = s + 1/i
print("Giá trị i cần tìm = ", i)
Lời giải:
Đoạn chương trình thực hiện việc in ra số tự nhiên i nhỏ nhất sao cho tổng:
Lời giải:
Chương trình có thể viết như sau:
dem = 0
i = 1
while i < 101:
if (i%5 == 0) or (i%3 == 1):
dem = dem + 1
i = i + 1
print("Số các số cần tìm = ", dem)
Ghi chú: Có thể dùng câu lệnh for để giải bài toán trên như sau:
dem = 0
for i in range(1, 101):
if (i%5 == 0) or (i%3 == 1):
dem = dem + 1
print("Số các số cần tìm = ", dem)
Câu 21.8 trang 45 SBT Tin học 10: Sử dụng câu lệnh while để giải bài toán "Gà và Chó" (Câu 20.9).
Lời giải:
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ó?");
k = 1
while k < 37:
if((k * 2 + (36 - k) * 4) == 100):
print("Số gà là: ", k)
print("Số chó là: ", 36-k)
k = k + 1
Lưu ý: Hoàn toàn tương tự, có thể thay thế các câu lệnh for trong các bài Gà và Chó tổng quát cũng như "Trăm trâu, trăm cỏ" ở Bài 20.
Lời giải:
Chương trình có thể viết như sau:
# Tổng các chữ số của số n
n = int(input("Nhập số nguyên dương n = "))
tong = 0
luu = n
while n > 0:
tong = tong + n % 10
n = n // 10
print("Tổng các chữ số của ", luu , " là ", tong)
Lời giải:
Chương trình có thể viết như sau:
# Bảng số 100
i = 0
while i <10:
j = 1
while j < 11:
print(i*10+j, end = " ")
j = j + 1
print("")
i = i + 1
Lời giải:
Chương trình có thể viết như sau:
so_ho_gd = 0
So_ho_ngheo = 0
so_ho_khagia = 0
tongthunhap_ngheo = 0
tongthunhap = 0
thunhap = 1 #Có thể gán 1 số bất kì > 0 để thực hiện vòng lặp
while thunhap > 0 :
thunhap = float(input("Thu nhập của hệ tiếp theo (đơn vị tính triệu đồng): "))
if thunhap > 0: #Xem lưu ý ở dưới.
tongthunhap = tongthunhap + thunhap
so_ho_gd = so_ho_gd + 1
if thunhap < 20:
tongthunhap_ngheo = tongthunhap_ngheo + thunhap
so_ho_ngheo = so_ho_ngheo + 1
print("Số các hộ gia đình được khảo sát = ", so_ho_gd, "Thu nhập bình quân 1 hộ = ", tongthunhap/so_ho_gd)
if so_ho_ngheo > 0:
print("Số các hộ gia đình nghèo được khảo sát = ", so_ho_ngheo, "Thu nhập bình quân 1 hộ = ", tongthunhap_ngheo/so_ho_ngheo)
else:
print("Không có các hộ gia đình nghèo")
Lưu ý: Cần có câu lệnh kiểm tra để tránh trường hợp giá trị nhập vào cho biến thunhap ≤ 0 (dấu hiệu kết thúc nhập dữ liệu) nhưng vẫn tính thêm một hộ gia đình được khảo sát.
Lời giải:
Lời giải:
Chương trình có thể viết như sau:
# Xác định palindrom
so_bandau = int(input("Nhập số tự nhiên bất kì: "))
so_nghichdao = 0
k = so_bandau
while k > 0:
so_nghichdao = so_nghichdao*10 + k % 10 # Từng bước tạo số nghịch đảo
k = k // 10
if so_nghichdao == so_bandau:
print("Số đã cho ", so_bandau, "là palindrom")
else:
print("Số đã cho ", so_bandau, "không phải là palindrom")
6: 1 + 2 + 3 = 6
28: 1 + 2 + 4 + 7 + 14 = 28
496: 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 = 496
8128: 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064 = 8128
Em hãy viết chương trình xác định số hoàn hảo đầu tiên lớn hơn số tự nhiên n được nhập vào từ bàn phím.
Lời giải:
Chương trình có thể viết như sau:
# Số hoàn hảo > n cho trước
n = int(input("Nhập giá trị của n: "))
so_hoanhao = n + 1
tim_ra = False
while tim_ra == False:
tong_uocso = 0
for i in range(1, so_hoanhao):
if so_hoanhao%i==0: # i là ước số
tong_uocso = tong_uocso+i
if tong_uocso == so_hoanhao :
tim_ra = True
print("Số hoàn hảo đầu tiên lớn hơn ", n, " là ", so_hoanhao)
else:
so_hoanhao = so_hoanhao + 1
Xem thêm lời giải SBT Tin học 10 Kết nối tri thức hay, chi tiết khác:
Bài 22: Kiểu dữ liệu danh sách
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.