Câu 1: Cho đoạn chương trình sau:
S:=0;
While S<5 do Write (S);
Hãy chỉ ra các lỗi khi thực hiện chương trình trên? Giải thích tại sao?
Câu 2: Hãy viết chương trình thế hiển thuật toán sau :
Bước 1: nhập vào n
Bước 2: A <- 0 ; i<-0
Bước 3: i<- i +1
Bước 4: Nếu i <= n thì A<- A +1/ i*(i+2) và quay lại bước 3
Bước 5: thông báo A và kết thúc
Mấy Anh chị giúp em bài này với ạ!
Câu 1:
Vòng lặp sẽ lặp vô hạn vì biến S không bị tác động -> S luôn bằng 0, thoả mãn S<5 ==> lặp mãi mãi
Câu 2:
var i, n: word;
A: real;
Begin
Write(‘n = ‘); readln(n);
i:=0; a:=0;
i:=i+1;
While i<=n do
Begin
A:=a + 1/(i*(i+2));
i:=i+1;
End;
Write(a);
Readln
End.
Câu 1: Lỗi nằm ở chỗ là chương trình sẽ không thể kết thúc được. Vì S = 0 mà 0 < 5 nên S < 5. Vì vậy Nó sẽ luôn in ra màn hình giá trị của S mà không dừng
Câu 2:
Var n, i: integer; A: real;
Begin
Readln(n);
A:=0; i:=0;
while i + 1 < n do begin
A := A + 1/i*(i+2);
i := i + 1;
end;
writeln(A:0:2);
End.