Chủ đề F. Bài 8. Câu lệnh lặp

Câu lệnh lặp sách bài tập Tin Học lớp 10Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 8. Câu lệnh lặp.

Câu F35

In ra các số lẻ. Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương lẻ không lớn hơn n theo thứ tự tăng dần.

Đáp án:

Bài này có thể có nhiều cách viết vòng lặp.

Cách 1: Sử dụng vòng lặp while: Khởi tạo x = 1 là số nguyên dương lẻ nhỏ nhất, cho đến khi x ≤ n ta in ra x sau đó tăng x lên 2 đơn vị. Tham khảo chương trình sau:

n = int(input('n= '))
x = 1
while (x <= n):
   print(x)
   x = x + 2

Cách 2: Sử dụng vòng lặp for: Dãy số lẻ cần in ra là 0 × 2 + 1, 1 × 2 + 1, 2 × 2 + 1, …, k × 2+ 1, trong đó k là giá trị số nguyên lớn nhất thoả mãn: k × 2 + 1 ≤ n, tức là k=[n – 12]. Tham khảo chương trình sau:

n = int(input('n= '))
for k in range ((n-1)//2 +1)
   print(k * 2 + 1)

Cách 3: Sử dụng vòng lặp for nhưng sửa lại khai báo range (..) để mỗi bước giá trị số in ra được tăng lên 2 đơn vị. Tham khảo chương trình sau:

n = int(input('n= '))
for k in range (1, n +1, 2)
   print(k)

Câu F36

In ra các số chẵn. Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương chẵn không lớn hơn n theo thứ tự giảm dần.

Đáp án:

Tương tự như bài F35, có thể có nhiều cách viết vòng lặp. Số nguyên dương chẵn lớn nhất không vượt quá n là hiệu của n với số dư của phép chia n cho 2. Số nguyên dương chẵn nhỏ nhất là số 2.

Cách 1: Sử dụng vòng lặp whi1e: Khởi tạo x = n -n % 2 cho đến khi x > 0 ta in ra x sau đó giảm x đi 2 đơn vị. Tham khảo chương trình sau:

n = int(input('n= '))
x = n - n%2
while x > 0:
   print(x)
   x = x - 2

Cách 2: Sử dụng vòng lặp for. Tham khảo chương trình sau:

n = int(input('n= '))
k = n//2
for i in range(k):
   print((k-i) * 2)

Cách 3: Ta cũng có thể sử dụng vòng lặp for nhưng sửa lại khai báo range để mỗi bước giá trị số in ra được giảm đi 2 đơn vị. Tham khảo chương trình sau:

n = int(input('n= '))
for k in range (n - n%2, 0, -2):
   print(k)

Câu F37

In ra tổng các số chia hết cho 3 hoặc chia hết cho 5. Với n nhập từ bàn phím, viết chương trình đưa ra màn hình tổng các số tự nhiên nhỏ hơn n và chia hết cho 3 hoặc chia hết cho 5.

Đáp án:

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

print("n= ",end =" ")
n = int(input())
sum = 0
for i in range (1,n):
   if i%3 == 0 or i%5 == 0:
      sum = sum + i
print("Sum= ", sum)

Câu F38

In ra tổng các số chỉ chia hết cho 3 hoặc 5. Viết chương trình đưa ra màn hình tổng các số nguyên chỉ chia hết cho 3 hoặc 5 nhưng không đồng thời chia hết cho cả 3 và 5 trong phạm vi các số nguyên từ m đến n-1. Ngừng tính tổng khi nhận được tổng lớn hơn hoặc bằng b cho trước. Các số nguyên m, n, b được nhập vào từ bàn phím với m < n.

Đáp án:

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

print("Nhập lần lượt các số m,n (m < n) và b, mỗi số trên một dòng:")
m = int(input())
n = int(input())
b = int(input())
sum = 0
for i in range (m,n):
   if i%3 == 0 or i%5 == 0:
      if i%15 != 0: sum = sum + i
   if sum >= b: break
print("Sum = ", sum)

Một số ví dụ kết quả chạy chương trình

Câu F39

Đọc hiểu chương trình. Virus X có khả năng lây nhiễm mạnh, sau mỗi ngày số lượng người nhiễm tăng lên gấp đôi. Cụ thể, nếu ngày hôm nay có p người bị nhiễm thì sang ngày tiếp theo sẽ có 2p người bị nhiễm. Chương trình sau đây cho nhập vào số lượng người bị nhiễm và đưa ra sau bao nhiêu ngày thì số lượng người bị nhiễm sẽ vượt quá 1 triệu người. Em hãy hoàn thiện câu lệnh còn khuyết để nhận được chương trình đúng.

p = int(input())
d = 0
while (...):
   d = d + 1
   p = p * 2
print("Số ngày:", d)

Đáp án:

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

p = int(input())
d = 0
while (p <= 10**6):
   d = d + 1
   p = p * 2
print("Số ngày:", d)

Xem thêm các bài khác tại Giải Sách bài tập Tin học Lớp 10 – Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x