-điều kiện thường là một phép so sánh; -câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép;. b.[r]
(1)KiĨm tra bµi cị
? Hãy nêu cú pháp câu lệnh lặp For…Do Cho vÝ dô:
Cú pháp:
For <biến đếm>:=<giỏ trị đầu> to <giỏ trị cuối> <cõu lệnh>; đáp án
VÝ dụ
A:= i+1;
(2)KiÓm tra bµi cị
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; (1)
A:= i+1;
For i := 1 to 10 do
? Em hÃy cho biết số vòng lặp câu lệnh lặp (1) Tính số vòng lặp giá trị cđa biÕn A vÝ dơ trªn
Số vịng lặp = giá trị cuối – giá trị đầu + 1 ỏp ỏn
Số vòng lặp = 10 + = 10 Ví d
Giá trị cđa biÕn A -Vßng 1: i=1; A=1+1=2
-Vßng 2: i=2; A=2+1=3 -Vßng 3: i=3; A=3+1=4 -Vßng 4: i=4; A=4+1=5 -Vßng 5: i=1; A=5+1=6
-Vßng 6: i=1; A=6+1=7 -Vßng 7: i=7; A=7+1=8 -Vßng 8: i=8; A=8+1=9
(3)Ví dụ 1: Điều kiện để kết thúc hoạt động lặp có ng ời nhấc máy.
Ví dụ 2: Điều kiện để kết thúc hoạt động lặp Tổng Tn nhỏ lớn 1000.
Kí hiệu S tổng Tn cần tìm Ta có tht to¸n sau:
B íc 1: S , n 0
B íc 2: NÕu S 1000 , n ≤ n + 1; Ng ỵc l¹i, chun tíi b íc 4.
B íc 3: S S + n quay lại b ớc 2.
B íc 4: In kÕt qu¶, kÕt thóc thuật toán ã Việc thực phép cộng
thuật toán đ ợc lặp lại với số lần ch a biết tr ớc, phụ thuộc vào điều kiện (S ≤ 1000) dừng điều kiện sai.
Điều kiện?
Câu lệnh Đúng
Sai
(4)Điều kiện?
Câu lệnh Đúng
Sai
Kết thúc While <điều kiện> <câu lệnh>;
Trong đó
a Cú pháp câu lệnh lặp với số
lần chưa biết trước:
-điều kiện thường phép so sánh; -câu lệnh câu lệnh đơn hay câu lệnh ghép;
b Hoạt động câu lệnh
-Bước 1: Máy tính kiểm tra điều kiện
+Nếu điều kiện sai, câu lệnh bỏ qua việc thực lặp kết thúc
(5)uses crt;
Var x:real; n:integer;
Const sai_so=0.003;
Begin
Clrscr;
X:=1; n:=1;
While x>= sai_so do begin n:=n+1; x:=1/n end; writeln(‘so n nho nhat de 1/n < ‘,sai_so:6:4,’la’,n); readln
End
So n nho nhat de 1/n < 0.003 la 334
Ctrl + F9 Sai_so=0.003 , n = 334
(6)uses crt;
Var x:real; n:integer;
Const sai_so=0.002;
Begin
Clrscr;
X:=1; n:=1;
While x>= sai_so do begin n:=n+1; x:=1/n end; writeln(‘so n nho nhat de 1/n < ‘,sai_so:6:4,’la’,n); readln
End
So n nho nhat de 1/n < 0.002 la 501
Ctrl + F9 Sai_so=0.002 , n = 501
(7)uses crt;
Var x:real; n:integer;
Const sai_so=0.001;
Begin
Clrscr;
X:=1; n:=1;
While x>= sai_so do begin n:=n+1; x:=1/n end; writeln(‘so n nho nhat de 1/n < ‘,sai_so:6:4,’la’,n); readln
End
So n nho nhat de 1/n < 0.001 la 1001
Ctrl + F9 Sai_so=0.001 , n = 1001
(8)Var S, n: integer;
Begin
S:=0; n:=1;
While S<= 1000 do
begin n:=n+1; S:= S + n; end;
writeln(‘so n nho nhat de tong > 1000 la ‘, n); writeln( Tong dau tien > 1000 la , S);‘ ‘
readln
End
So n nho nhat de tong > 1000 la 45 Tong dau tien > 1000 la 1034
Ctrl + F9 n = 45 , S = 1034
(9)Var i: integer; T: real;
Begin
T:=0;
While i<= 100 do
begin i:=i+1; T:= T + 1/i; end;
writeln( Tong T la , T:4:2);‘ ‘
readln
End
VÝ dô 5:
Var i: integer; T: real;
Begin
T:=0;
For i:=1 to 100 T:= T + 1/i;
writeln( Tong T la , T:4:2);‘ ‘
readln
End
(10)Var a: integer;
Begin
a:=5;
while a<6 writeln(‘A’);
End
Trong ch ơng trình trên, giá trị biến a ln ln 5, điều kiện a<6 luôn nên lệnh Writeln(‘A’) thực