//
you're reading...
00 - Chủ đề chung

Câu lệnh lặp REPEAT … UNTIL

1.Cú pháp

REPEAT <lệnh> UNTIL <điều kiện>;

2.Lưu đồ

repeat until loop in Pascal

3.Ghi chú

(1) Không giống cấu lệnh FOR hay WHILE kiểm tra điều kiện ở đầu vòng lặp, câu lệnh REPEAT … UNTIL  của Pascal kiểm tra điều kiện ở cuối vòng lặp.

(2) Không giống câu lệnh WHILE kiểm tra điều kiện trước, do đó có khi không thực hiện khối lệnh, câu lệnh REPEAT … UNTIL bảo đảm thực hiện khối lệnh ít nhất một lần rồi mới kiểm tra điều kiện.

(3) Nếu điều kiện là false, quyền kiểm soát của khối trở về đầu vòng lặp repeat, khối lệnh được thực hiện một lần nữa. Nếu điều kiện là true thì thoát khỏi vòng lặp REPEAT … UNTIL.

(4) Giống như câu lệnh WHILE, trong thân vòng lặp bạn phải thiết kế lệnh điều khiển để thoát (làm cho điều kiện trở thành true), thông thường là tăng giảm biến đếm, hỏi và trả lời hoặc sử dụng phím đặc biệt.

5.Các ví dụ

5.1.Ví dụ : Nhập vào một số nguyên dương, tính tổng tất cả các số chẵn nhỏ hơn hay bằng N.

var
    N, sum, number: Longint;
begin
     repeat
           write('Nhap vao so nguyen duong N= ');
           readln(N);
     until (N>0);
     sum:=0;
     if (N mod 2 =0) then number:= N else number :=N-1 ;
     repeat
           sum := sum + number;
           number := number - 2;  {lệnh thay đổi biến đếm}
      until number = 0;
    writeln('Tong cac so chan nho hon ', N , ' la: ', sum);
    readln;
end.

5.2. Ví dụ: In các số từ 10 đến 20 dùng câu lệnh REPEAT … UNTIL

program repeatUntilLoop;
var
   a: integer;

begin
   a := 10;
   (* repeat until loop execution *)
   repeat
      writeln('value of a: ', a);
      a := a + 1
   until a = 20;
end.

Khi chạy chương trình cho kết quả như sau:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

6. Câu lệnh repeat … until dùng kiểm tra điều kiện nhập:

6.1. Ví dụ: Nhập vào số nguyên dương N, có kiểm tra điều kiện nhập.

Chương trình này kiểm tra nếu N<0 thì thông báo nhập lại.

program Nhap_so_co_kiem_tra;
var N: integer;

begin
     repeat
          write('Nhap vao so nguyen duong N: ')
          readln(N);
          if (N<=0) then writeln('Nhap sai ! Lam on nhap so nguyen duong.');
     until (N>0);
end;

6.2. Ví dụ: Kiểm tra giá trị nhập là “K” để thoát khỏi vòng lặp REPEAT … UNTIL:

Ví dụ này dùng hàm ReadKey() của unit CRT để bẫy phím nhập. Nếu nhập giá trị “K” (trả lời không) thì dừng chương trình.

uses crt; 
var 
      i: byte;
begin
      i:=0;
     repeat
           writeln('i= ', i);
           i:= i+1;
           write('Co in tiep nua khong [C/K] ? ');
     until upcase(ReadKey)='K';
end. 
Advertisements

About pascalteacher

Trang thông tin Toán học và Tin học

Thảo luận

Không có bình luận

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

Các tác giả

Chuyên mục

Tháng Tám 2015
H B T N S B C
« Th1   Th9 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

NCT Computer

Flickr Photos

Staithes

Reflecting Pool

Golden Hour

More Photos

Thống kê

  • 115,384 lượt xem

pascalteacher.nct@gmail.com


Trang huấn luyện học sinh giỏi Tin học

%d bloggers like this: