Deskripsi Untuk Soal Nomor 29 dan 30
Perhatikan potongan program berikut:
function jeruk(x:longint):string;
var y:longint;
begin
y := 1 shl 30;
jeruk := ‘’;
while (y>0) do
begin
if x >= y then
begin
jeruk := jeruk + ‘a’;
x := x-y;
end else if length(jeruk) > 0 then jeruk := jeruk + ‘b’;
y := y shr 1;
end;
end;Apakah hasil dari pemanggilan jeruk(13)?
Berapakah nilai x agar hasil dari pemanggilan jeruk(x) adalah “abbaaba”?
30. 77, anggap a itu '1' dan 'b' itu 0, bilangan basis 2
29. Pertama, y= 1 shl 30 = 100000000.... (30 digit) = 2^30
Kedua, y tidak akan masuk kedalam if x>=0 jadi akan terus di ulang " y = y shr 1" sampai akhirnya y bernilai 2^3(8)
Lalu, akan masuk ke dalam if x>=0 sehingga akan diperoleh data
| x | y | Hasil |
| 13 | 8 | a |
| 5 | 4 | a |
| 1 | 2 | b |
| 1 | 1 | a |
Jadi hasil yg diperoleh adalah aaba.
Sehingga dapat disimpulkan bahwa ini adalah program untuk menerjemahkan angka dalam bentuk biner.
30. abbaaba (dalam bentuk biner 1001101) = 77
Siswa SMA Negeri 68 Jakarta
29. aaba
Masuk untuk menulis jawaban
Ini maksdusnya bentuk biner dari N dgn representasi a=1 b =0
29 = 10101 = ababa
30 = 1001101= 77