Kh«ng thÓ v× kh«ng biÕt sè lÇn lÆp... Vòng Lặp tt.[r]
Trang 1Vũng Lặp (tt)
Vòng lặp không xác định
While Do Repeat Until
Trang 2Vòng Lặp (tt)
Repeat
<C«ng viÖc>
until BiÓu_thøc_Boolean;
Begin
End
C«ng viÖc
BiÓu thøc Boolean
TRUE FALSE
Trang 3Vòng Lặp (tt)
While BiÓu_thøc_Boolean DO
<C«ng viÖc>
Begin
End C«ng viÖc
BiÓu thøc Boolean
TRUE
FALSE
Trang 4Vòng Lặp (tt)
Begin
End
C«ng viÖc
BiÓu thøc Boolean
TRUE FALSE
Begin
End C«ng viÖc
BiÓu thøc Boolean
TRUE
FALSE
REPEAT UNTIL WHILE DO
So s¸nh hai vßng lÆp
Trang 5Vũng Lặp (tt)
Tính tổng sau: A = 1 + 2+3+….+N;
Dựng vũng Repeat
PROGRAM TINH_TONG;
VAR
I, N: integer; A: Real;
BEGIN
Write(' N = '); Readln(N);
A := 0; I:=1;
REPEAT
A := A + I;
I := I+1; (* thay đổi giá trị biểu thức Boolean *)
UNTIL I > N;
Writeln(' TONG = ', A :10:2);
END.
Dựng vũng Repeat ở đõy ?
Trang 6Vũng Lặp (tt)
Dùng vòng While
VAR
N, I: integer; A: Real;
BEGIN
Write(' N = '); Readln(N);
A := 0; I:=1;
WHILE I <= N DO
BEGIN
A := A + I;
I := I+1;(*thay đổi giá trị biểu thức Boolean*) END;
Writeln(' TONG = ', A :10:2);
End.
Dựng vũng While ở đõy?
Trang 7Vòng Lặp (tt)
Cã thÓ dïng For ® îc kh«ng?
VAR
N, I: integer; A: Real;
BEGIN
Write(' N = '); Readln(N);
A := 0;
FOR I:=1 TO N DO A:= A + I
Writeln(' TONG = ', A :10:2); End.
Trang 8Vòng Lặp (tt)
T×m UCLN(a,b)
Chó ý:
NÕu a=b th× UCLN(a,b) = a
NÕu a>b th× UCLN(a,b) = UCLN(a-b,b) NÕu a<b th× UCLN(a,b) = UCLN(a,b-a)
Trang 9
Vòng Lặp (tt)
Dïng vßng While
VAR
a, b: integer;
BEGIN
Write(' a = '); Readln(a);
Write(' b = '); Readln(b);
WHILE a<>b DO
BEGIN
If a>b then a:= a-b;
If a<b then b:= b-a;
END;
Writeln(‘UCLN(a,b)= ', a);
End.
Dùng vòng While ở đây?
Trang 10Vòng Lặp (tt)
Dïng vßng Repeat
VAR
a, b: integer;
BEGIN
Write(' a = '); Readln(a);
Write(' b = '); Readln(b);
Repeat
If a>b then a:= a-b;
If a<b then b:= b-a;
Until a=b;
Writeln(‘UCLN(a,b)= ', a);
End.
Dùng vòng Repeat ở đây?
Trang 11Vòng Lặp (tt)
Cã thÓ dïng vßng For ® îc kh«ng?
Kh«ng thÓ v× kh«ng biÕt sè lÇn lÆp
Trang 12Vũng Lặp (tt)
Vòng chờ từ bàn phím
VAR
TraLoi : Char;
BEGIN
REPEAT
.
(* Thay đổi điều kiện thử *)
Write(' Có tiep tuc nua không ?(C/K) '); Readln(TraLoi);
UNTIL (TraLoi = 'K') OR (TraLoi = 'k'); END.