Bài tập về vòng lặp Repeat trong Pascal

thầy ơi, xem bài 4 em làm vậy được không?

program bai4;

uses crt;

var a,b,c,gia,du:integer;

begin

        clrscr;

        writeln['Nhap vao gia tien: ']; readln[gia];

        writeln;

        for a:=0 to gia div 2 do

             for b:=0 to [gia-a*2] div 5 do

                  begin

                          c:=[gia-a*2-b*5] div 4;

                          du:=n-a*2-b*5-c*4;

                          writeln['Voi ',gia,'k ban se mua duoc ',a,' but bi ',b,' but chi ',c,' quyen tap va con du ',du,'k'];

                  end;

          readln;

end.


Vào 10:31:48 UTC+7 Thứ tư, ngày 18 tháng mười một năm 2009, Đinh.Pháp đã viết:

Dạng REPEAT

Dạng WHILE

REPEAT

khối_lệnh;

UNTILđiều_kiện;

WHILEđiều_kiện DO

khối_lệnh;

Ý nghĩa:

  • Dạng REPEAT: Lặp lại khối_lệnhcho đến khi điều_kiện=TRUE thì dừng. Trước REPEATcó thể khối_lệnh chưa được xác định nhưng khi thực hiện điều_kiệnthì khối_lệnh xác định.
  • Dạng WHILE: Trong khi điều_kiện=TRUE thì tiếp tục thực hiện khối_lệnh. Trước WHILE cần có các lệnh để khối_lệnhđược xác định.

Yêu cầu quan trọng: Trong khối_lệnhphải có một lệnh làm thay đổi dữ liệu liên quan đến điều_kiện.

Ví dụ 1: Viết chương trình nhập vào lần lượt các số nguyên, quá trình nhập kết thúc khi nhập số nguyên là 0. Sau đó cho biết tổng các số nguyên đã nhập là bao nhiêu?

     Var  n, s : integer;

     Begin

          s := 0;

          repeat

              write[’Nhập vào 1 số nguyên bất kỳ :‘];

              readln[n];

              s := s + n;

          until  n = 0;

          writeln[‘Tổng các số nguyên đã nhập là : ‘, s];

          readln;

     End.

Ví dụ 2: Viết chương trình nhập vào số nguyên dương N, kiểm tra xem N có phải là số nguyên tố không?

     Var  n, i : integer;

     Begin

          write[‘Nhập số n = ‘];

          readln[n];

          i := 1;

          repeat

              i := i + 1;

          until  [n  mod  i = 0] or [i = n] ;

          if  i = n  then  write[n, ‘ là số nguyên tố.’]

          else  write[n, ‘ là hợp.’]

          readln;

     End.

² Các Lưu ý:

     - Trong vòng lặp phải có ít nhất 1 câu lệnh có khả năng làm thay đổi Điều kiện sau từ khóa UNTIL để đến 1 lúc nào đó thì Điều kiện trở thành đúng và vòng lặp kết thúc.

     - Trong công việc có nhiều hơn 1 câu lệnh nhưng ta vẫn không cần đặt chúng trong cặp từ khóa BEGIN và END [lệnh hợp thành].

     - Số lần lặp ít nhất là 1 chính là lần thực hiện Công việc đầu tiên trước khi kiểm tra Điều kiện.

     - Người ta thường sử dụng REPEAT … UNTIL … để kiểm tra dữ liệu nhập cũng như để cho chương trình có thể thực hiện nhiều lần mà không cần chạy lại chương trình.

Ví dụ: Viết chương trình tính n!, với n>=0 và được nhập từ bàn phím.

     Uses crt;

     Var  n, i : integer;

              gt : longint; tl : char;

     Begin

          repeat

              clrscr;

              repeat

                   write[‘Nhập n = ‘];

                   readln[n];

              until  n >= 0;

              gt := 1;

              for  i := 2  to  n  do

                   gt := gt * i;

              writeln[n , ‘ ! = ’, gt];

              write[‘Bạn muốn tiếp tục không?’];

              readln[tl];

          until  [tl = ‘k’] or [tl = ‘K’];

          readln;

            End.

I. BÀI TẬP LÀM QUEN PASCAL DẠNG CƠ BẢN

Bài 1: Sử dụng cấu trúc điều kiện kiểm tra số chẳn hay lẻ

Program chanle;

var so:integer;

begin

writeln['nhap so kiem tra'];readln[so];

if so mod 2 =0 then writeln['so chan']

else writeln['so le'];

readln;

end.

Bài 2: Sử dụng cấu trúc lặp for …do viết chương trình in ra 10 dòng chữ “CAU TRUC LAP FOR … DO

program bai2;

var i: integer;

begin

for i:=1 to 10 do

writeln['CAU TRUC LAP FOR ..DO'];

readln;

Bài 3: Sử dụng cấu trúc lặp while …  do viết chương trình in ra 10 dòng chữ “CAU TRUC LAP WHILE…DO

program bai3;

var i:integer;

begin

i:=0;

    while i

Chủ Đề