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.
*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 0 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