CÂU LỆNH REPEAT potx - Pdf 14

CÂU LỆNH REPEAT
9.3.1. Cú pháp, lưu đồ, cách thức hoạt động :
Cú pháp:
REPEAT
LệnhP;
UNTIL Ðiềukiện ;
Ý nghĩa: Chừng nào Ðiềukiện còn sai thì cứ làm LệnhP, cho đến khi
Ðiềukiện đúng thì không làm LệnhP nữa mà chuyển sang lệnh kế tiếp ở phía
dưới.

Cách thức hoạt động của REPEAT:
Bước 1: Làm LệnhP, rồi kiểm tra Ðiềukiện, nếu Ðiềukiện đúng thì
chuyển sang lệnh tiếp theo ở phía dưới, ngược lại, nếu Ðiềukiện sai thì quay
lại bước 1.
LệnhP cũng được gọi là thân của vòng lặp REPEAT, nếu nó gồm nhiều
lệnh thì các lệnh đó không cần phải đặt trong khối begin va?end.
Nếu Ðiềukiện không bao giờ đúng thì LệnhP sẽ phải làm hoài, lúc đó ta
có vòng lặp vô hạn. Trong trường hợp này, muốn dừng chương trình, hãy gõ
đồng thời hai phím Ctrl và Pause (^Pause).
Ðể tránh các vòng lặp vô hạn, trong thân của lệnh REPEAT cần có ít
nhất một lệnh có tác dụng làm biến đổi các đại lượng tham gia trong
Ðiềukiện để đến một lúc nào đó thì Ðiềukiện sẽ đúng và do đó vòng lặp sẽ
kết thúc.
Các vòng lặp có số lần lặp biết trước đều có thể giải được bằng lệnh
REPEAT. Ðặc biệt, cũng như lệnh WHILE, lệnh REPEAT rất thích hợp với
các vòng lặp có số lần lặp không biết trước
9.3.2. Các ví dụ về lệnh Repeat :
Ví dụ 9.12: Ðảm bảo tính hợp lý của dữ liệu nhập từ bàn phím.
Khi giải phương trình bậc hai Ax
2
+Bx+C=0, ta thường giả thiết A 0, khi

{ Tìm BSCNN của M và N }
Var
M, N, Max, BSCNN : Integer;
Begin
Repeat
Write(‘ Nhập M và N dương :’);
Readln(M, N);
Until (M>0) and (N>0);
If N>M then Max:=N else Max:=M;
BSCNN:=0;
Repeat
BSCNN:=BSCNN + Max;
Until (BSCNN mod N=0) and (BSCNN mod M=0) ;
Writeln(‘ Bội số chung nhỏ nhất= ‘, BSCNN) ;
Readln;
End.
Chạy <VD913.EXE>
Chép file nguồn <VD913.PAS>
Ví dụ 9.14: Thiết kế để chạy nhiều lần một chương trình.
Trong Turbo Pascal, mỗi lần muốn chạy chương trình ta phải gõ cặp phím
Ctrl và F9 (viết tắt là ^F9), điều này sẽ bất tiện nếu cần chạy chương trình
nhiều lần ứng với các bộ dữ liệu thử khác nhau. Cấu trúc sau đây cho phép
ta chạy chương trình một số lần theo ý muốn:
REPEAT
{ Các lệnh của chương trình}
Write(‘ Tiếp tục nữa không (Y/N) ? :’);
Readln(Traloi); {5}
UNTIL (Traloi =‘N’) or ( Traloi=‘n’);
Ở đây, Traloi là một biến kiểu ký tự (Char);
Sau khi thực hiện xong {các lệnh của chương trình }, nếu muốn chạy tiếp

For j:=1 to 2*k+1 do Write(sao); { in 2k+1 dấu *}
Writeln;
end;
For k:=1 to 2*m-1 do Write(sao); {in cạnh đáy}
Writeln;
Write(‘ Tiếp tục nữa không (Y/N) ?: ‘);
Readln( Traloi);
UNTIL (Traloi=‘N’) or ( Traloi=‘n’); {28}
End.
Chạy<VD914.EXE>
Chép file nguồn <VD914.PAS>
Chương trình 9.14 là một ví dụ về hai câu lệnh Repeat lồng nhau, điều
này xảy ra khi thân của một lệnh Repat lại chứa một lệnh Repeat khác: lệnh
Repeat thứ nhất, từ dòng {9} đến dòng {28}, chứa lệnh Repeat thứ hai từ
dòng {11} đến dòng {15}.
9.3.3. So sánh các lệnh For, While và Repeat:
Lệnh For dùng cho các vòng lặp có số lần lặp đã biết trước
Lệnh While hay Repeat tổng quát hơn lệnh For, dùng được cho tất cả
các loại vòng lặp, nhưng thường dùng cho các vòng lặp có số lần lặp chưa
biết trước.
Lệnh While và Repeat khác nhau ở điểm sau: lệnh While kiểm tra điều
kiện trước, nếu đúng mới thực hiện các lệnh ghi trong thân của nó ( lệnhP ),
còn lệnh Repeat thực hiện lệnhP rồi mới kiểm tra điều kiện. Vì thế, lệnh
Repeat sẽ thực hiện các lệnh ghi trong thân của nó ít nhất được một lần.
Ngoài ra, lệnh While kết thúc khi điều kiện sai, lệnh Repeat kết thúc khi
điều kiện đúng.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status