Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
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.
VD1: Tí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.
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
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 |