JavaScript is required

Cho B = {1, 0, 1, 0, 1, 0, 1, 1, 1, 0}, n=10. Kết quả nào đúng trong số những kết quả dưới đây sau khi thực hiện thuật toán:

Type Mang= array[1..10] of Integer;

Function Test(B:mang; n:integer): mang;

Var i:integer;

Begin

i:=n-1;

While (i>=0) and (B[i]=1) do

Begin B[i]:=0; i:=i-1; End;

B[i]:= 1;

End;

A.

Test(B,n) = { 1, 0, 1, 0, 1, 1, 0, 0, 0, 1(0)}

B.

Test(B,n) = { 1, 0, 1, 0, 1, 0, 1, 1, 1, 1}

C.

Test(B,n) = { 0, 1, 1, 0, 1, 0, 1, 1, 1, 0}

D.

Test(B,n) = { 1, 1, 1, 0, 1, 0, 1, 1, 1, 0}

Trả lời:

Đáp án đúng: A


Đề bài cho mảng B gồm 10 phần tử {1, 0, 1, 0, 1, 0, 1, 1, 1, 0} và yêu cầu tìm kết quả sau khi thực hiện đoạn code Pascal. Đoạn code này thực hiện tăng giá trị của mảng B lên 1 đơn vị, coi mảng B như một số nhị phân. Cụ thể: 1. `i:=n-1;` Khởi tạo i = 9 (vị trí cuối cùng của mảng). 2. `While (i>=0) and (B[i]=1) do` Lặp từ cuối mảng về đầu mảng, nếu gặp phần tử có giá trị 1 thì gán thành 0. 3. `Begin B[i]:=0; i:=i-1; End;` Thực hiện gán B[i] = 0 và giảm i. 4. `B[i]:= 1;` Sau khi vòng lặp kết thúc (do gặp phần tử 0 hoặc đã duyệt hết mảng), gán B[i] = 1. Áp dụng vào mảng B = {1, 0, 1, 0, 1, 0, 1, 1, 1, 0}: * B[9] = 0, vòng lặp `while` không thực hiện. * B[9] = 1. Vậy mảng B sau khi thực hiện thuật toán là: {1, 0, 1, 0, 1, 0, 1, 1, 1, 1}. Vậy đáp án đúng là B.

Câu hỏi liên quan