Cho đoạn lệnh sau : a := 5 ; i := 2 ; while a mod i <> 0 do begin i := i + 1 ; end ; if a = i then write(‘a la so …(1)…..’) else write(‘a la so …(2

Cho đoạn lệnh sau :
a := 5 ; i := 2 ;
while a mod i <> 0 do
begin
i := i + 1 ;
end ;
if a = i then write(‘a la so …(1)…..’) else write(‘a la so …(2)…..’) ;
Em hãy chạy đoạn lệnh trên bằng tay(phân tích đoạn lệnh) và trả lời các câu
hỏi sau :
1- Khi kết thúc đoạn lênh giá trị của i là bao nhiêu?
2- Nếu a = 6 thì khi kết thúc đoan lệnh giá trị của i là bao nhiêu ?
3- Dựa vào kết quả của câu 1 và 2. Em hãy điền vào chỗ trống 1 và 2 cho phù hợp(a là số gì ?). Từ đó cho biết công dụng của đoạn lệnh trên.

0 bình luận về “Cho đoạn lệnh sau : a := 5 ; i := 2 ; while a mod i <> 0 do begin i := i + 1 ; end ; if a = i then write(‘a la so …(1)…..’) else write(‘a la so …(2”

  1. *Chạy bằng tay:

    Gán a=5; Gán i=2;

    Điều kiện: a chia lấy phần dư cho i khác Gán i=i+1;

    Nếu a=i thì in ra màn hình ‘a la so …(1)…..’ ngược lại in ra màn hình ‘a la so …(2)…..’ ;

    *Mình đã chạy đã chạy đoạn lệnh trên máy:

    1- Khi kết thúc đoạn lệnh giá trị của i=5

    2- Nếu a=6 thì kết thúc đoạn lệnh giá trị của i=2

         vì điều kiện của chương trình là a mod i<>0 thì gán i=i+1;

         nhưng a=6 nên khi a mod i sẽ=0 (6 chia hết cho 2)=>i vẫn giữ nguyên giá trị ban đầu

    3- Công dụng của đoạn lệnh: Kiểm tra xem a là số 1 hay a là số 2

    Bình luận

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