Deskripsi untuk soal nomor 31 - 34
Perhatikan potongan program berikut:
for i := 0 to ((1 shl n) – 1 do
begin
for j := 0 to n - 1 do
begin
if((i and (1 shl j)) <> 0)then
write('1')
else
write('0');
end;
writeln;
end;
Jika kode di atas dijalankan dengan n = 3, maka banyak angka 0 yang dihasilkan oleh instruksi pada baris ke-5 adalah:
A. 5
B. 4
C. 3
D. 2
E. 1
Agar keluaran kode di atas sama dengan 1100, maka nilai n yang harus diinput adalah:
A. 5
B. 4
C. 3
D. 2
E. 1
Untuk setiap baris hasil keluaran, selisih jumlah angka 1 paling banyak adalah:
A. n*n
B. n*(n-1)/2
C. n
D. log(n)
E. log(n)/2
Agar keluaran kode di atas menjadi angka 0 semua pada baris ganjil dan hanya sebuah angka 1 pada baris genap paling kiri, maka baris kelima harus diganti menjadi:
A. if ((i and (1 shl j)) = 1) then
B. if ((i or (1 shl j)) = 0) then
C. if ((j and (1 shl i)) = 1) then
D. if ((j or (1 shl i) = 0) then
E. if ((j xor (1 shl i) = 0) then