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

Read Time:4 Minute, 33 Second

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 <biến đếm> := <giá trị đầu>

            to <giá trị cuối> do <câu lệnh> ;

·Lặp dạng lùi:

   for <biến đếm> := <giá trị cuối>

       downto <giá trị đầu> do <câu lệnh> ;

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<N). Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N.

program vi_du_2:

uses crt;

var M, N, I: integer;   T: longint;

begin

   writeln(‘Nhap M va N sao cho M<N’);

   write(‘M = ’); readln(M);

   write(‘N = ’); readln(N);

   T:=0;

   for I:=M to N do

      if (I mod 3 = 0) or (I mod 5 = 0) then

           T:=T+I;

   writeln(‘Ket qua la: ’, T);

   readln

end.

Củng cố kiến thức + Kiểm tra 15 phút.

– Lặp thường có 2 loại là lặp với số lần biết trước và lặp kiểm tra điều kiện trước.

– Lặp với số lần biết trước dùng câu lệnh for-do, gồm 2 dạng là lặp dạng tiến và lặp dạng lùi.

– Cú pháp của lệnh lặp dạng tiến và lệnh lặp dạng lùi.

– Sự thực hiện của máy khi gặp câu lệnh for-do.

cấu trúc lặp kiểm tra điều kiện trước và câu lệnh while-do.

·Cú pháp:

       while <điều kiện> do <câu lệnh> ;

Trong đó:

– Điều kiện là biểu thức quan hệ hoặc logic.

– Câu lệnh là một câu lệnh trong Pascal.

– Ý nghĩa:Khi  điều kiện còn đúng thì còn thực hiện câu lệnh sau do, sau đó lại quay lại kiểm tra điều kiện.

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

VD1Tính tổng

  S2 =

với điều kiện

VD2: Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N.

Thuật toán:

B1: Nhập M, N;

B2: Nếu M=N thì ƯCLN←M rồi chuyển đến B5;

B3: Nếu M>N thì M←M–N, ngược lại N←N–M;

B4: Quay lại bước 2;B5: Đưa ra kết quả ƯCLN rồi kết thúc.

Củng cố kiến thức.

Định lí Bohn Jacopini: Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản là cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp.

– Lặp kiểm tra điều kiện trước dùng câu lệnh while-do.

– Sự thực hiện của máy khi gặp câu lệnh while-do.

– BTVN: bài 3, 5, 6, 7, 8 sgk trang 51.

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Trả lời

Previous post Bài 9: Cấu trúc rẽ nhánh
Next post Hướng dẫn cài đặt Python và IDE lập trình Python