Perhatikan potongan program berikut, dan str(v:integer) mengembalikan v dalam type
string
var hasil:string; bil,a:integer;
procedure terjemahan (x:integer, var y:integer)
begin
if (x<=y) then
begin
terjemahan(x*3,y);
hasil:=str(y div x)+hasil;
y:=y mod x;
end;
end;
begin
hasil:=’’; {strinng kosong}
terjemahan(a,bil);
writeln(hasil);
end.
Apabila nilai a adalah 1 dan nilai bil adalah 80, apakah output program di atas apabila prosedur terjemahan dijalankan?
A. 1111
B. 2222
C. 1212
D. 1221
E. 2121
Hanya seorang penyapu jalan kebodohan
terjemahan(1,80) --> terjemahan (3,80) --> terjemahan(9,80) --> terjemahan (27,80)
terjemahan(27,80)
hasil = 80 div 27 = 2
y = 80 mod 27 = 26
terjemahan(9,80)
hasil = 26 div 9 + hasil
= '2' + '2' = '22'
y = 26 mod 9 = 8
terjemahan(3,80)
hasil = 8 mod 3 + hasil
= '2' +'22' = '222'
y = 8 div 3 = 2
terjemahan(1,80)
hasil = 2 div 1 + hasil
= '2' + '222' = '2222'
jawaban B. 2222
Masuk untuk menulis jawaban