Chào Mừng Ngày Thành Lập Đoàn Thanh Niên 26-03-2024 !

Email
Mật khẩu
Nhớ mật khẩu

Quên mật khẩu | Đăng ký

Đang truy cập: 58
Trong ngày: 656
Trong tuần: 3319
Lượt truy cập: 5722987


Lượt xem: 3735


CÁCH CHUYỂN ĐỔI TỪ FOR – DO SANG WHILE – DO

 

Ở bài 9 sách giáo khoa Tin học 11, học sinh đã được tìm hiểu câu lệnh lặp với số lần biết trước (For – do) và lặp với số lần chưa biết trước (While – do). Bài viết xin chia sẻ với các em cách chuyển đổi từ câu lệnh For – do sang While – do (cách chuyển đổi ngược lại không phải lúc nào cũng thực hiện được)

1/ Cách chuyển đổi từ For – do sang While – do:

- Câu lệnh For – do:

+ Dạng tiến:

For   <biến điếm>:= <giá trị đầu>  to <giá trị cuối>  do  <câu lệnh>;

+ Dạng lùi:

For   <biến điếm>:= <giá trị cuối>  downto <giá trị cuối>  do  <câu lệnh>;

 

- Câu lệnh While – do:

While  <điều kiện>    do   <câu lệnh>;

 

- Chuyển For – do thành While – do:


+ Cách 1:

 <Biến đếm> := <giá trị đầu>;

While (<Biến đếm> <= <giá trị cuối>) do

Begin

   <câu lệnh>;

   <tăng biến đếm 1 đơn vị>;

End;

+ Cách 2:

<Biến đếm> := <giá trị cuối>;

While (<Biến đếm> >= <giá trị đầu>) do

Begin

   <câu lệnh>;

   <giảm biến đếm 1 đơn vị>;

End;


 

2/ Ví dụ minh họa:

a/ Ví dụ 1: Tính và đưa ra tổng các số từ 1 đến n? (n là số nguyên dương được nhập vào từ bàn phím)


Sử dụng For – do:

Var   i, n: integer;

s: word;

Begin

Readln(n);

For  i:=1 to n do s:= s+i;

Write(s);

End.

Chuyển thành While – do:


+ Dạng 1:

Var   i, n: integer;

        s: word;

Begin

   Readln(n);

i:=1;

While (i <= n) do

Begin

s:= s+i;

i:=i+1;

   end;

   Write(s);

End.

+ Dạng 2:

Var   i, n: integer;

        s: word;

Begin

       Readln(n);

i:=n;

While (i >= 1) do

Begin

s:= s+i;

i:=i-1;

       end;

       Write(s);

End.


 


 


b/ Ví dụ 2: Lập trình để giải bài toán cổ sau:

“Vừa gà vừa chó.

Bó lại cho tròn.

Ba mươi sáu con,

Một trăm chân chẵn.

Hỏi có bao nhiêu con mỗi loại?”


Sử dụng For – do:

  Var   ga: byte;

  Begin

  For  ga:=1 to 24 do

    If (2*ga + (100-ga)*4 = 100) then

    Write(‘so ga la:’,ga,’ so cho la:’, 36-ga);

End.

Chuyển thành While – do:


+ Dạng 1:

Var   ga: byte;

Begin

ga:=1;

While (i<= 24) do

   Begin

             If (2*ga + (100-ga)*4 = 100) then

    Write(‘so ga la:’,ga,’ so cho la:’, 36-ga);

            ga:=ga+1;

       End;

    End.

+ Dạng 2:

Var   ga: byte;

Begin

ga:=24;

While (i>=1) do

   Begin

        If (2*ga + (100-ga)*4 = 100) then

           Write(‘so ga la:’,ga,’ so cho la:’, 36-ga);

        ga:=ga-1;

   End;

End.


 


“Chúc các em luôn vui vẻ, khỏe mạnh và thành công trong cuộc sống”


                                                                                                Người viết: Phạm Thu Hà       

 

ĐC Mail Ban Quản Trị: quantriwebdk@gmail.com
Quản Trị : Thầy Lê Quốc Hoàng - DĐ: 0903.830.245
Email: lequochoangtp@gmail.com Hoặc lehoang125tp@gmail.com
Phòng CNTT Trường THPT Đoàn Kết
Địa Chỉ: Khu 7, TT. Tân Phú - H.Tân Phú - Đồng Nai