Deskripsi untuk soal nomor 48 - 50
Diberikan kode program berikut ini:
var
zzz: integer;
junk: integer;
function ab(a, b: integer):integer;
begin
inc(zzz);
if (b<a) then
begin
ab:=a*b
end else
begin
ab:=ab(a+1, b-1);
end;
end;
function xyz(x, y, z: integer):integer;
var
t: integer;
begin
inc(zzz);
t:=ab(x, z);
xyz:=ab(t, y);
end;Soal Bidang Informatika Halaman 13 OSK 2008
{ program utama }
begin
writeln(xyz(10, 20, 30));
end.
Keluaran program adalah:
a. 7980
b. 6000
c. 9060
d. 4680
e. 1370
Manakah dari pemanggilan berikut yang akan menghasilkan nilai 2?
a. writeln(xyz(1, 1, 2));
b. writeln(xyz(2, 4, 2));
c. writeln(xyz(1, 3, 1));
d. Ada lebih dari satu jawaban benar
e. Tidak ada jawaban benar
Apabila program utama diganti menjadi:
begin
zzz:=0;
junk := xyz(10, 20, 30);
writeln(zzz);
end.
maka, keluaran program adalah...
a. 15
b. 12
c. 13
d. 16
e. 14