Lặp có số lần lặp biết trước và câu lệnh lặp for

Một phần của tài liệu SGK tin học 11 using python3 (Trang 36 - 38)

Bài 10 Cấu trúc lặp

2. Lặp có số lần lặp biết trước và câu lệnh lặp for

Có hai thuật tốn Tong_1a và Tong_1b để giải bài toán 1 như sau:

Thuật toán Tong_1a

Bước 1. S  1/a; N  0; {Khởi tạo S và N} Bước 2. N  N + 1;

Bước 3. Nếu N > 100 thì chuyển đến bước 5; Bước 4. S  S + 1/(a + N) rồi quay lại bước 2; Bước 5. Đưa S ra màn hình, rồi kết thúc.

Thuật tốn Tong_1b

Bước 1. S  1/a; N  101; {Khởi tạo S và N} Bước 2. N  N – 1;

Bước 3. Nếu N < 1 thì chuyển đến bước 5;

Bước 4. S  S + 1/(a + N) rồi quay lại bước 2; Bước 5. Đưa S ra màn hình rồi kết thúc.

Lưu ý, số lần lặp của cả hai thuật toán trên là biết trước và như nhau (100 lần).

Trong thuật toán Tong_1a, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N > 100 (N = 101) thì kết thúc lặp (thực hiện đủ 100 lần). Trong thuật tốn Tong_1b, giá trị N bắt đầu tham gia vịng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N <

1 (N = 0) thì kết thúc lặp (thực hiện đủ 100 lần). Ta nói cách lặp trong thuật tốn Tong_1a là dạng tiến và trong thuật toán Tong_1b là dạng lùi.

Để mô tả cấu trúc lặp với số lần biết trước, Python dùng câu lệnh for cú pháp sau kết hợp với phép toán in và hàm range() (một số cú pháp for khác sẽ được nêu trong bài 11, 12).

for <biến đếm> in range([giá trị đầu], <giá trị cuối>, [bước nhảy]):

<lệnh> Trong đó:

biến đếm là biến đơn, thường có kiểu ngun;

giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm;

• Nếu bước nhảy > 0 thì giá trị đầu phải nhỏ hơn giá trị cuối. Nếu giá trị đầu không nhỏ hơn giá

trị cuối thì vịng lặp khơng được thực hiện. Nếu bước nhảy < 0 thì giá trị đầu phải lớn hơn giá trị cuối. Nếu giá trị đầu không lớn hơn giá trị cuối thì vịng lặp khơng được thực hiện.

Hoạt động của lệnh lặp for trong cú pháp trên:

• Câu lệnh sau for được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị trong phạm vi [giá

trị đầu, giá trị cuối) (tức là từ giá trị đầu đến giá trị cuối -1)

• Sau mỗi lên thực hiện lệnh thì biến đếm được cộng thêm một giá trị là bước nhảy.

• Nếu bước nhảy < 0 thì ta hiểu là lặp lùi, nếu bước nhảy > 0 thì hiểu là lặp tiến.

• Mặc định nếu khơng nêu tham số bước nhảy thì bước nhảy là 1, và nếu khơng có tham số giá

trị đầu thì giá trị đầu bằng 0. Ví dụ 1.

Sau đây là hai chương trình cài đặt các thuật tốn Tong_1a và Tong_1b. 1. # Thuật toán tổng a #

2.

3. a = int(input('Hay nhap gia tri a vao!')) 4. s = 1.0/a # Buoc 1

6. s = s + 1.0/(a + n) # Buoc 4 7. print('Tong S la: %8.4f' % s) # Buoc 5

1. # Thuật toán tổng b # 2.

3. a = int(input('Hay nhap gia tri a vao!')) 4. s = 1.0/a # Buoc 1

5. for n in range(100, 0, -1): # Buoc 2, Buoc 3

6. s = s + 1.0/(a + n) # Buoc 4 7. print('Tong S la: %8.4f' % s) # Buoc 5

Ví dụ 2.

Chương trình sau thực hiện việc nhập từ bàn phím hai số nguyên dương M và N ( M < N ), tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N.

1. # Ví dụ 2 # 2. 3. print("Nhập số M nhỏ hơn số N") 4. m = int(input('M = ')) 5. n = int(input('N = ')) 6. t = 0 7. for i in range(m, n+1): 8. if (i % 3 == 0)or(i % 5 == 0): 9. t += i 10. print('Kết quả: ',t)

Một phần của tài liệu SGK tin học 11 using python3 (Trang 36 - 38)

Tải bản đầy đủ (PDF)

(87 trang)