Perhatikan tahapan-tahapan berikut: Misalkan ada dua variable "x" dan "y", dan variable "hasil" yang nilai awalnya 0. Lakukan proses berikut selama nilai "x" lebih besar dari 0:
Jika nilai "x" ganjil maka nilai "hasil" := "hasil" + y.
nilai "x" selanjutnya adalah nilai "x" sebelumnya dibagi dua, bila ada hasil pecahan, maka pecahannya di buang. (contoh bila nilai "x" sebelumnya 1, maka nilai "x" selanjutnya 0)
Manakah program pseudo-pascal yang merupakan program dari tahapan-tahapan tersebut? (catatan: fungsi "mod" memberikan nilai sisa bagi, contoh: 13 mod 5 = 3 dan fungsi “div” membagi dan membulatkan ke bawah)
a.
var x,y : integer
x := 10;
y := 15;
hasil := 0;
while x > 0
begin
if (y mod 2 = 1) then begin hasil := hasil + y; end;
x := x * 2;
y := y div 2;
end
b.
var x,y : integer
x := 10;
y := 15;
hasil := 0;
while x > 0
begin
if (x mod 2 = 1) then begin hasil := hasil + y; end;
x := x div 2;
y := y * 2;
end
c.
var x,y : integer
x := 10;
y := 15;
hasil := 0;
while x > 0
begin
if (x mod 2 = 1) then begin hasil := hasil + x; end;
x := x * 2;
y := y div 2;
end
d.
var x,y : integer
x := 10;
y := 15;
hasil := 0;
while x > 0
begin
if (x mod 2 = 1) then begin hasil := hasil + x; end;
x := x div 2;
y := y * 2;
end
e.
var x,y : integer
x := 10;
y := 15;
hasil := 0;
while x > 0
begin
if (y mod 2 = 1) then begin hasil := hasil + y; end;
x := x div 2;
y := y * 2;
end