Cho đoạn chương trình sau: n:=1; While i<10 do Begin n:=n+1; writeln('xin chao'); end; Khi thực hiện đoạn chương trình sau thì xin chao được viết ra màn hình mấy lần. +) Giá trị của S khi thực hiện đoạn chương trình sau, sẽ là: S:=0; i:=0; While i<5 do begin i:=i+1; s:=s+i; end;
2 câu trả lời
n:=1;
While i<10 do
Begin n:=n+1; writeln('xin chao'); end;
Đoạn chương trình này rơi vào vòng lặp vô hạn vì giá trị của i không đổi.
S:=0; i:=0;
While i<5 do begin i:=i+1; s:=s+i; end;
$S=15$
Giải thích:
i=0 ; s=0
i=1; s=1
i=2; s=3
i=3; s=6
i=4; s=10
i=5; s=15
- Đoạn chương trình 1 :
n := 1; While i < 10 do Begin n := n + 1; writeln('xin chao'); end;
⇒ Xin chào được in ra số lần vô hạn
⇒ Giá trị biến i không được thay đổi trong vòng lặp
⇒ Điều kiện luôn đúng, gây ra lỗi vòng lặp vô hạn
- Đoạn chương trình 2 :
S := 0; i := 0; While i < 5 do begin i := i + 1; s := s + i; end;
+ i = 0 ⇒ i = i + 1 = 0 + 1 = 1 ⇒ S = S + i = 0 + 1 = 1
+ i = 1 ⇒ i = i + 1 = 1 + 1 = 2 ⇒ S = S + i = 1 + 2 = 3
+ i = 2 ⇒ i = i + 1 = 2 + 1 = 3 ⇒ S = S + i = 3 + 3 = 6
+ i = 3 ⇒ i = i + 1 = 3 + 1 = 4 ⇒ S = S + i = 6 + 4 = 10
+ i = 4 ⇒ i = i + 1 = 4 + 1 = 5 ⇒ S = S + i = 10 + 5 = 15
+ i = 5 ⇒ 5 < 5, kết thúc vòng lặp
⇒ Giá trị S = 15