Anda di halaman 1dari 5

Kode di bawah ini untuk nomor 1 - 2

function tukar(a,b:integer):integer;
begin
if(b=0) then tukar:=a else tukar:=tukar(b,a mod b);
end;
function tambah(x,y:integer):integer;
begin
tambah:=x*y div tukar(x,y);
end;
function kali(a,b,c,d:integer):integer;
begin
kali:=( (a*(tambah(b,d) div b)+(c*(tambah(b,d) div d)) *
(tambah(b,d));
end;

1. Berapakah keluaran dari tambah(27,39)?


2. Berapakah keluaran dari kali(2,9,5,15)?

Kode di bawah untuk nomor 3-4


3. Berapakah nilai ans setelah pemanggilan?
4.
ans := 0;
for i:=1 to 10 do begin
for j:=1 to i do begin
ans:=ans+j;
end;
end;

Apabila baris ke-2 program diganti menjadi for i:=1 to 2017 do, maka nilai ans setelah
pemanggilan adalah ...
5. Perhatikan potongan kode di bawah ini!
Berapakah hasil pemanggilan dari ayam(911,113)?
function ketoprak(ketupat : integer):integer;
function ayam(kecap,kremes : integer):integer;
begin
begin
if (ketupat<0) then ketoprak:=ketoprak(ketupat*-1) else
ayam := kecap+kremes-(ketoprak(kecap-kremes)) div 2;
ketoprak := ketupat;
end;
end;
Kode di bawah ini untuk nomor 6-7

var
i,dimobil,j:integer;
goreng : array[1..10]of integer = {13,27,19,24,11,61,27,97,21,11};
dadakan : array[1..100]of integer;
Procedure tahubulat();
begin
for i:=1 to 10 do begin
inc(dadakan[goreng[i]]);
end;
dimobil := 1;
for i:=1 to 100 do begin
if(dadakan[i]<>0) then begin
for j:=dimobil to dimobil+dadakan[i]-1 do begin
goreng[j] := dadakan[i];
end; inc(dimobil,dadakan[i]);
end;
end;
end;
begin
tahubulat;
for i:=1 to 10 do begin if(i<>1) write( ); write(goreng[i]); end; writeln();
end.

6. Berapakah keluaran dari program?


7. Ada berapa banyak isi array dadakan[] yang tidak 0?
Potongan kode di bawah ini untuk nomor 8 9

ember := 0;
for i:=1 to N do begin
ember:=ember+(i*i*i);
end;
8. Berapakah nilai variable ember setelah eksekusi apabila N = 5?
9. Berapakah nilai variable ember setelah eksekusi apabila N = 38?

Potongan kode di bawah ini untuk nomor 10-11

function waifu(ku,mu:integer):integer;
var i,k : longint;
begin
while mu >= 1 do begin
for i:=1 to mu do begin
ku:=ku*i;
end;
mu := mu div 2;
end;
waifu := ku;
end;

10.
Berapakah hasil pemanggilan waifu(3,4) ?
11. Berapakah hasil pemanggilan waifu(8,25) ?
12. Perhatikan kode di bawah ini!
Apabila awalnya nilai ada = 2017 dan nilai tiada = 3819, maka berapakah nilai (ada-tiada)

ada := ada xor tiada;


tiada := ada xor tiada;
ada := ada xor tiada;

pada akhir program?

Kode di bawah ini untuk nomor 13 14


var
asd : array[1..10] of integer;
hihihi,haha,hehe,hoho : integer;
procedure tralala(var lala,lili,lolo:integer);
var lele : integer;
begin
lele := (lala+lili) div 2;
if (lolo = asd[lele]) then hihihi = lele else
if (lolo < asd[lele]) then tralala(lala,lele,lolo) else
if (lolo > asd[lele]) then tralala(lele+1,lili,lolo);
end;
begin
hihihi := -1;
asd[1] = 1; asd[2] = 7; asd[10] = 3; asd[5] = 4; asd[4] = 9;
asd[3] = 2; asd[6] = 5; asd[8] = 8; asd[7] = 2; asd[9] = 11;
readln(haha,hehe,hoho);
tralala(haha,hehe,hoho);
if (hihihi = -1) then writeln(Nope) else writeln(hihihi);
end.

13. Berapakah keluaran program apabila masukan adalah 1 10 7 ?


14. Berapakah keluaran program apabila masukan adalah 3 7 2 ?
Kode di bawah ini untuk nomor 15 16

function isThis(the, realLife : integer):integer;


begin
if(the < 0) or (realLife <0) then
isThis := max(the, realLife) + 1
else if the = realLife then
isThis := isThis(the+1, realLife-1)
else
isThis := isThis(the-2, realLife-1)+ isThis(the-1, realLife-2);
end;

Fungsi max(a,b) akan mengeluarkan nilai terbesar dari a dan b


15. Keluaran dari isThis(4,3) adalah ...
16. Keluaran dari isThis(12,10) adalah...
17. Jika variabel a dan b memiliki nilai kebenaran yang sama, maka keluaran dari potongan
program berikut ini adalah ...

if not((not a and b) or (a and not b)) then


writeln(Boom)
else writeln(Baam);

18. Perhatikan kode program di bawah ini

function mmr(x:integer):integer;
begin
if(x < 5) then mmr:=x
else mmr :=mmr(x mod 5) * mmr(x div 5) * 5;
end;

begin
writeln(mmr(77));
end;

Keluaran dari program di atas adalah ...

Kode di bawah ini untuk nomor 19 -20


function duadua(duo:integer):integer;
begin
if(duo=1) then duadua := 1
else duadua:=2*duadua(duo-1)+1;
end;
19. Nilai keluaran dari duadua(18) adalah ...
20. Untuk semua duo 1, nilai keluaran duadua(duo) ekuivalen dengan ...
21.