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

Câu hỏi trong lớp Xem thêm