Bài tập  /  Bài đang cần trả lời

Lấy 6 ví dụ về dạng lặp tiến và lặp lùi

2 Xem trả lời
Hỏi chi tiết
9.641
2
0
Vua Hai Tac
27/10/2020 19:55:04
+5đ tặng

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.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
4
4
My Sunshine
27/10/2020 19:57:07
+4đ tặng

 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.

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×