Anda di halaman 1dari 7

AKADEMI OLIMPIADE SMAN 1 SEWON

AOS SEWON
BIDANG KOMPUTER

GENERAL MANAGER

NAMA : WITRI WINDARTI, S.Si


NIP. : 19781228 200903 2 005

DIREKTUR TEKNIK
NAMA : AGUS RIYANTO, S.Kom
NIP. : 19810521 200903 1 007

LABORATORIUM KOMPUTER

SMA NEGERI 1 SEWON


Jl. Parangtritis Km. 5 Yogyakarta 55187 Telp./Fax. 374459
Website : www.sman1sewon.sch.id E-mail : surat@sman1sewon.sch.id
http://agusriyantodf.blogspot.com
1. Diberikan procedure pseudopascal berikut

repeat
if ((i mod 4)=0) then
i:=i div 4
else if ((i mod 4)=1) then
i:=i + 3
else if ((i mod 4)=2) then
i:=i div 2
else
i:=i+5;
n:=n+1;
until (i=1);

Jika nilai awal n adalah 0 dan nilai i adalah 686, nilai n pada akhir algoritma adalah…
A. 12 D. 14
B. 11 E. 15
C. 13

2. Diberikan potongan psuedopascal berikut:

function coba(i,j,k:integer):longint;
begin
if (i=j) then coba:=k
else if (j=k) then coba:=i
else if (i=k) then coba:=j
else coba:=i+j+k+coba(i-2,j+1,k-3);
End;

Jika dipanggil dengan coba(19, 4, 15) yang tercetak adalah…


A. 150 D. 22
B. 112 E. 18
C. 78

3. Diberikan data array berikut:

var a : array[1..10,1..3] of integer=((4,0,0),(12,1,9), (9,0,0),


(4,2,6),(8,0,0),(5,8,7),(18,0,3),(11,5,10),(7,0,0),
(9,0,0))

Diberikan potongan psuedopascal berikut:

function hitung(i:integer):integer;
begin
if (a[i,2]=0) and (a[i,3]=0)) then hitung:=a[i,1]
else if (a[i,2]=0) then hitung:=a[i,1]+hitung(a[i,3])
else if (a[i,3]=0) then hitung:=a[i,1]+hitung(a[i,2])
else hitung:=a[i,1]+hitung(a[i,2])+ hitung(a[i,3])
end;

Hasil pemanggilan hitung(4) adalah…


A. 87
B. 66
C. 72
D. 82
E. 79

4. Diberikan potongan psuedopascal berikut:

for i:=1 to 10 do
if (a<i) then a:=b+1
else if(b<a) then b:=b+a
else if (c<d) then c:=c+d
else if (d<b+10) then d:=d*2;

writeln(a+b+c+d);

Nilai yang akan dicetak dilayar jika a, b, c, d masing-masing 1, 2, 3, 4 adalah:…?


A. 66 D. 28
B. 58 E. 82
C. 32

5. Diberikan sebuah array berikut:

A:array[1..10] of integer =(1,1,1,1,1,1,1,1,1,1);

Diberikan potongan psuedopascal berikut:

For i:=1 to 10 do
Begin
For j:=10 downto 1 do
A[j]:=j+i;
A[i]:=A[i]+i;
End;

Saat A[6] bernilai 18, maka A[8] bernilai:…?


A. 14 D. 12
B. 13 E 10
C. 11

6. Diberikan potongan psuedopascal berikut:

function f(m,n:integer):integer;
begin
if (m=0) or (n=0) then f:=1
else f:=f(m-1 n-1) + f(m-1n);
end;

Maka keluaran dengan pemanggilan f(10,6) adalah?


A. 848 D. 6000
B. 60 E. 1012
C. 160
7. Diberikan potongan psuedopascal berikut:

For i:= 1 to n do Begin


d:=(a+b+c);
a:=b; b:=c; c:=d;
End;

Jika diberikan a, b, c, ketiganya adalah 1, maka jika nilai n adalah 20 nilai satuan dari d
pada akhir algoritma adalah…
A. 9 D. 6
B. 8 E. 10
C. 4

8. Diberika array berikut:


a:array[1..10] of integer =(3,4,6,7,2,3,4,5,6,8)
Diberikan potongan psuedopascal berikut:

repeat
d:=true;
for i:=1 to 9 do
if (a[i]>a[i+1]) then
begin
tmp:=a[i];
a[i]:=a[i+1];
a[i+1]:=tmp;
d:=false;
end;
until (d);

Nilai elemen ke 9 dari array tersebut (atau a[9]) adalah…?


A. 7 D. 6
B. 8 E. 5
C. 4

9. Diberikan potongan psuedopascal berikut:

for i:=1 to 20 do
begin
j:=0;
while (j<13) do
begin
j:=j+(I mod 5) + 1;
write(‘*’);
end;
end;

Banyaknya karakter ‘*’ yang dicetak pada layar adalah …?


A. 128 D. 118
B. 121 E. 102
C. 149

10. Diberikan potongan psuedopascal berikut:

While ((x<=300) and (y<=300)) do


Begin
x:=x+y;
y:=x-y;
z:=z+x+y;
End;
Jika nilai awal x, y, z ketiganya adalah 1, nilai z pada akhir algoritma adalah …?
A. 1593 D. 2580
B. 983 E. 140
C. 606

11. Diberikan potongan psuedopascal berikut:

If ((x>4) or (y<6) then


If (z>3) then
Writeln(x-y+z)
Else
Writeln (x+y-z)
Else
If (z<10) then
Writeln(x+y-z)
Else if(z>=20) then
Writeln(x-y+z)
Else
Writeln(x-y-z)

Jika nilai x, y, z diberikan masing-masing 2, 6, 21, nilai yang tercetak adalah …?


A. 17 D. 25
B. 13 E. -17
C. -25

12. Diberikan potongan psuedopascal berikut:

Procedure cetak(a:byte);
Begin
While a>0 do
Begin
Write(a mod 2);
a:=a shr 1;
end;
end;

pemanggilan cetak(13); maka keluarannya adalah …?


A. 123 D. 1111011
B. 321 E. 1101111
C. 123613015731

13. Suatu array X berindeks dari 1 s.d. 10 dan setiap elemennya berisi huruf-huruf berurutan
dari ‘a’ sampai ‘j’. Suatu algoritma bekerja pada array tersebut sbb: (prosedur swap(a,b)
adalah menukar harga a dan b)

for i:=1 to 10 do
swap(X[i],X[10-i+1])
for i:=1 to 10 do write(X[i]);

Hasil yang dicetak adalah …?


A. abcdefghij D. fghijabcde
B. jihgfedcba E. cdefghijab
C. ebacdhfgij

14. Dari soal nomor 15, potongan psuedopascal diganti berikut:

for i:=2 to 9 do
swap(X[i-1],X[i+1])
for i:=1 to 10 do write(X[i]);

Hasil yang dicetak adalah …?


A. ebacdhfgij D. cdefghijab
B. abcdefghij E. fghijabcde
C. jihgfedcba

15. Dari soal nomor 15, potongan psuedopascal diganti berikut:

Procedure lagi(a:integer; b:integer);


Var t:integer;
Begin
t:=(a+b) div 2;
if (a<=b) then begin
write(X[t]);
lagi(a,t-1);
lagi(t+1, b);
end;
end;

Hasil yang dicetak dari pemanggilan lagi(1,10) adalah …?


A. ebacdhfgij D. fghijabcde
B. abcdefghij E. cdefghijab
C. jihgfedcba

Diberikan psuedopascal berikut:

If (a and not(not c and not b)) or not ((c and b) or not a)


Then writeln(‘ding’)
Else write(‘dong’);

16. Pemeriksaan ekspresi logika (dari struktur if-then) tersebut bisa digantikan dengan …?
A. ((a< >c ) or (a=b) or b) D. ((a and c) or b)or ((not c or not b) and a)
B. ((a=c) and (a< >b) and not b) E. a and not b and not c
C. (a and ( c or b)) or (not (c and b) and a)

17. Agar algoritma selalu mencetak ‘dong’ maka kondisi yang tepat adalah…
A. Variabel a dan c keduanya harus true sementara b tidak penting
B. Variabel b harus true sementara yang lain tidak penting
C. Variabel a dan b keduanya harus true sementara c tidak penting
D. Variabel b harus false sementara yang lain harus true
E. Variabel b dan c keduanya harus true sementara a tidak penting

18. Jika variabel a berharga false maka…


A. Algoritma selalu menulis ‘dong’ jika salah satu lainnya true
B. Algoritma selalu menulis ‘ding’ apapun harga b dan c
C. Algoritma selalu menuliskan ‘dong’ apapun harga b dan c
D. Algoritma selalu menuliskan ‘dong’ jika b dan c berharga true
E. Algoritma selalu menuliskan ‘dong’ jika b dan c berharga false
Disebuah daerah, ada tepat 5 buah suangai bernama A,B,C,D,E dan tepat 5 kota, bernama
F,G,H,I,J. Kota F,H dan J masing-masing dialiri 3 suangai. Sungai B,C, dan D masing-
masing mengaliri 2 buah kota. Kota I hanya dialiri oleh sungai B dan E, dan kota G hanya
dialiri oleh D dan A. Jika sebuah suangai yang mengaliri sebuah kota meluap maka kota
tersebut akan kebanjiran.

19. Pernyataan manakah yang pasti salah?


A. Ada tepat 3 sungai yang meluap tetapi kota H tidak kebanjiran
B. Ada tepat 1 sungai yang meluap dan 4 kota kebanjiran
C. Ada tepat 2 sungai yang meluap dan 4 kota kebanjiran
D. Kota F,G dan H kebanjiran tetapi sungai A,B, dan C tidak meluap
E. Sungai A dan E meluap dan semua kota kebanjiran

20. Jika ada tepat 4 kota yang kebanjiran berapa minimal jumlah sungai yang meluap?
A. 1 D. 4
B. 2 E. 5
C. 3

21. Jika semua sungai yang mengalir di kota F meluap berapa banyak minimal kota yang
kebanjiran?
A. 1 D. 4
B. 2 E. 5
C. 3

22. Jika kota H dialiri oleh sungai A,C, dan E sungai manakah yang tidak mungkin mengaliri
F dan J sekaligus?
A. C D. D
B. A E. E
C. B

23. Dua kota manakah yang pasti dialiri sungai yang sama?
A. F dan H D. G dan I
B. F dan I E. H dan I
C. G dan H

24. Jika sungai A mengaliri tepat 4 kota di daerah tersebut berapa kota kah yang dialiri oleh
sungai E?
A. 3 D. 4
B. 2 E. 5
C. 1

25. Diketahui empat bilangan bulat positif W, X , Y, dan Z yang juga memenuhi
W<X<Y<Z. Jika hasil kali W dan Y adalah 32, dan hasil kali X dan Z adalah 50 . Berapa
nilai X dikali Z?
A. 20 D. 40
B. 25 E. 44
C. 36

Anda mungkin juga menyukai