Cách tính số lần lặp của lệnh while..do trong pascal. Giải thích kĩ giúp mình!????????????????

Cách tính số lần lặp của lệnh while..do
trong pascal.
Giải thích kĩ giúp mình!????????????????

0 bình luận về “Cách tính số lần lặp của lệnh while..do trong pascal. Giải thích kĩ giúp mình!????????????????”

  1. Không có cách tính số vòng lặp của câu lệnh lặp chưa biết trước (while..do).

    While..do chỉ lặp đến khi điều kiện sai.

    Chúng ta có ví dụ chương trình như sau:

    uses crt;
    var s,i:integer;
    begin
          clrscr;
          s:=0;i:=1
          while i<=3 do 
                begin
                      s:=s+i;
                      i:=i+1;
                end;
          write(s,’ ‘,i);
          readln;
    end.

    ———–

    Chú ý đến đoạn tô đậm ta biết được:

    – Biến s=0; i=1.

    – Điều kiện là i<=3 (i bé hơn hoặc bằng 3).

    – Mỗi vòng lặp sẽ s:=s+i trước sau đó i:=i+1 sau.

    Chúng ta giải quyết như sau:

    Lần 1 i<=3 (TM): s=s+i=0+1=1; i=i+1=1+1=2

    Lần 2 i<=3 (TM): s=s+i=1+2=3; i=i+1=2+1=3

    Lần 3 i<=3 (KTM): s=s+i=3+3=6; i=i+1=3+1=4

    Vậy từ đây số vòng lặp là 3 và giá trị của s=6; i=4.

    Không giống for..do, giá trị của một biến trong while..do sẽ luôn thay đổi, vì nó không biết trước vòng lặp của nó là bao nhiêu.

    Giống như việc bạn học bài và không biết khi nào bạn sẽ hiểu bài. Nhưng for..do thì lại khác, nó cho bạn biết trước số lần lặp tương đồng với số lần bạn học là bao nhiêu.

    *Lưu ý: cách tính số vòng lặp của while..do $\ne$ for..do.

    Bình luận
  2. While…do không có cách tính số lần lặp, ta chỉ có thể tính cho đến khi nào điều kiện sai để có thể biết được số lần lặp.

    VD:

    i:=1;  S:=0;

    while S<5 do

      begin

       S:=S+i;

       i:=i+1;

      end;

    Ban đầu ta nhận được giá trị: i=1;  S=0

    thực hiện vòng lặp while 

    S<5 (đúng): VL1:  S=S+i=0+1=1;  i=i+1=1+1=2;

    S<5 (đúng): VL2:  S=S+i=1+2=3;  i=i+1=2+1=3;

    S<5 (đúng): VL3:  S=S+i=3+3=6;  i=i+1=3+1=4;

    S<5 (sai): Kết thúc

    Vậy thực hiện 3 vòng lặp

    Dù ban đầu S=0, điều kiện là S<5, ta thường sẽ nghĩ có 5 lần nhưng trong vòng lặp while giá trị của S thay đổi không phải tăng 1 hay tăng 2 liên tục mà mỗi lần thay đổi là thay đổi 1 giá trị khác nhau. Nó không giống với công thức tính số vòng lặp của for…do

    Số vòng lặp=giá trị cuối-giá trị đầu+1

    Bình luận

Viết một bình luận