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

Dạng 1: Biết trước số lần lặp for – in

Cú pháp:
for in :

Hoạt động: sẽ được lặp lại một cách tự động thông qua , sẽ nhận lần lượt các giá trị trong
Tập giá trị:
– Hàm range[[start],[step]]→Tạo tập danh sách liên tiếp bắt đầu từ start đến end – 1 thông qua step
+[start]: Giá trị bắt đầu, không bắt buộc, mặc định là 0
+: Giá trị kết thúc, bắt buộc phải có
+[step]: Bước nhảy, không bắt buộc, mặc định là 1
Ví dụ:
range[8] → Tạo ra danh sách các giá trị từ 0 tới7 :{0,1,2,3,4,5,6,7} [start=0; step=1]
range[1,8]→ Tạo ra danh sách các giá trị từ 1 tới 7 :{1,2,3,4,5,6,7} [step=1]
range[1,8,2] → Tạo ra danh sách các giá trị từ 1 tới 7 và có bước nhảy là 2 : {1,3,5,7}
range[8,1,-1] → Tạo ra danh sách các giá trị giảm dần từ 8 tới 2 và có bước nhảy là -1 : {8,7,6,5,4,3,2}
Chú ý:
Lặp tiến: Step là số dương và start + step < end
Lặp lùi: Step là số âm và start – step > end
– Kiểu List: a=[1, 5, 1, 6, 9]
– Kiểu Set: a={3, 5, 1, 6, 9}

Dạng 2: Chưa biết trước số lần lặp while

Cú pháp:
while :

Hoạt động: Chương trình kiểm tra trước, nếu đúng thì thực hiện rồi lặp đi lặp lại quá trình trên khi sai thì thoát khỏi vòng lặp while.
Ví dụ:

i=0
while i <=10:
    if i%3==0:
	    print[i,'chia hết cho 3']
	    break
    i=i+1
print['Kết thúc']

Chú ý: Lệnh break; dùng để ngắt vòng lặp gần nhất

cấu trúc lặp.

· Xét 2 bài toán như sau với a > 2 là số nguyên cho trước :

* Bài toán 1 : Tính tổng

S1=

* Bài toán 2 : Tính tổng

  S2 =

Với điều kiện

· Cách giải:

– Bắt đầu S được gán giá trị 1/a.

– Tiếp theo mỗi lần cộng thêm vào S là 1/[a+N] với N = 1, 2, 3, …

– Với bài toán 1, việc cộng thêm dừng khi N = 100 → số lần lặp biết trước.

– Với bài toán 2, việc cộng thêm dừng khi 1/[a+N] < 0.0001 → thỏa mãn điều kiện.

· Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp. Lặp thường có 2 loại:

– Lặp với số lần biết trước.

– Lặp kiểm tra điều kiện trước.

cấu trúc lặp với số lần biết trước và câu lệnh for-do.

· Lặp dạng tiến:

   for  := 

            to  do  ;

·Lặp dạng lùi:

   for  := 

       downto  do  ;

Trong đó:

+ Biến đếm thường là biến kiểu nguyên.

+ Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.

+ Ở dạng lặp tiến: biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.

+ Ở dạng lặp lùi: biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.

+ Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần.

viết chương trình dùng câu lệnh for-do.

VD1: Tính tổng S với a nhập từ bàn phím:

  S=

Sử dụng lệnh lặp dạng tiến:

program vi_du_1:

uses crt;

var a, N: integer;     S: real;

begin

   write[‘Nhap gia tri a: ’]; readln[a];

   S:=1/a;

   for N:=1 to 100 do S:=S+1/[a+N];

   writeln[‘Tong S la: ’, S:8:4];

   readln

end.

Sử dụng lệnh lặp dạng lùi:

Tương tự như trên, chỉ thay đổi lệnh lặp:

   for N:=100 downto 1 do S:=S+1/[a+N];

VD2:Nhập 2 số nguyên dương M và N [M

Chủ Đề