Deskripsi Untuk Soal Nomor 43 dan 44
Perhatikan potongan program berikut:
b = 0
while c > 1 do
b = b + (a mod 2) * c
a = a/2
c = c/2
b = b + (a mod 2) * cNilai variabel a hanya dapat berada di antara 0..255 dan nilai variabel c hanya dapat berada di antara 0..65535. Jika c diinisialisasi dengan 512 dan nilai akhir b adalah 20, berapa nilai awal a?
A. 5
B. 10
C. 192
D. 160
E. 96
Jika nilai awal a adalah 107 dan nilai akhir b adalah 13, berapa nilai awal c?
A. 2
B. 4
C. 8
D. 16
E. 32
43. nilai b akhir = 20
nilai c awal = 512
program akan berjalan terus jika nilai c > 1
kita lihat pernyataan ini
c = c/2
maka nilai c akan dibagi 2 berturut2 dari:
512 -> 256 -> 128 -> 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
agar nilai b akhir menjadi 20 maka kita cari nilai c yang memungkinkan
untuk c>20 udah ga bisa karena program ini akan membuat nilai b dari perkalian a mod b yang kemungkinan hanya 0 dan 1 dengan nilai c
Tersisa:
16 -> 8 -> 4 -> 2-> 1
terlihat dua angka yang dijumahkan akan bernilai 20 yaitu 16 dan 4
sekarang kita tinjau semua pilihan
a = a/2
a. 5
nilai a yang berurut : 5 -> 2 -> 1
kita masuk di pernyataan ini
b = b + (a mod 2) * c
5 mod 2 akan bernilai 1 dan hasilnya akan menjadi 0+1*512 = 512
sudah pasti pilihan ini salah
b. 10
10 -> 5 -> 2 -> 1
10 salah karena nilai b akan berjumlah 0+1*256 = 256
c. 192
192 -> 94 -> 47 -> 23 -> 11 -> 5 -> 2 -> 1
kita lihat b akan dijumlahkan saat a bernilai 47 (192 telah dibagi 2 kali) bersamaan juga nilai c dibagi 2 kali yaitu 128 dan nilai b menjadi 128 sehingga otomatis salah
d. 160
kita lihat nilai a secara berurut :
160 -> 80 ->40 -> 20 -> 10 -> 5 -> 2 -> 1
kita lihat b akan mulai dijumlahkan saat a bernilai 5 (nilai a telah dibagi 5 kali) bersamaan juga nilai c dibagi juga 5 kali yaitu 16 maka sementara nilai b menjadi 16
nilai b kembali ditambah saat nilai a menjadi 1 (nilai a telah dibagi 7 kali) bersamaan juga nilai c telah dibagi 7 kali yaitu 4 maka nilai b akan menjadi 20
maka jawaban : D.
44. untuk menghasilkan nilai b ganjil maka nilai c tidak boleh genap atau pernyataan b= 0 harus diganti dengan b= 1
mungkin jawaban dari pertanyaan ini adalah C. 8 (jika nilai b awal 1)
maap kalo penjelasannya agak asal2 an
masih newbie soalnya
Masuk untuk menulis jawaban