Contoh Olimpiade Sains Komputer dan Pembahasan

1. Sebuah tangki air memiliki enam buah kran air di bagian dasarnya. Jika semua kran dibuka maka tangki yang terisi penuh akan habis isinya dalam 8 jam. Berapa jamkah yang dibutuhkan untuk menghabiskan isi tangki bila hanya 4 buah kran yang dibuka? (OSK 2010) A. 9 B. 10 C. 11 D. 12 E. 14 2. Robi sekarang 15 tahun lebih tua dari pada adiknya Soni. Pada y tahun yang lalu umur Robi adalah dua kali dari umur Soni. Jika Soni sekarang berumur b tahun dan b > y, berapakah nilai b-y? (OSK 2010) A. 13 B. 14 C. 15 D. 16 E. 17 Jawaban : D Pembahasan : Air dalam tangki akan habis dalam waktu 8 jam jika dibuka dengan 6 kran, sehingga jika 4 buah kran yang dibuka maka akan menghabiskan waktu : 6.8 = 4x 48 = 4x x = 48/4 x = 12 Jawaban : C Pembahasan : Misalkan umur Robi = r dan dari soal diketahui umur Soni = b. Persamaan umur sekarang : r = 15 + b Persamaan umur pada y tahun yang lalu: r-y = 2 (b-y) b-y = (r-y) / 2 b-y = (15 + b - y) / 2 2 (b-y) = 15 + b – y 2b-2y-b+y = 15 b-y = 15 Jawaban : D Pembahasan : W.Y = 32 X.Z = 50 W<X<Y<Z Misalkan dengan menggunakan logika didapatkan: W=4, X=5, Y=8, Z=10 4<5<8<10 , sehingga X.Y = 5.8 = 40 Jawaban : B Pembahasan : x = 20 , y = 35 x = 20 + 35 x = 55 y = 55 – 35 y = 20 x = 55 – 20 x = 35 Jadi, x = 35 dan y = 20

ARlTMATIKA DAN LOGIKA

3. Diketabui 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. Berapakah nilai X dikali Y? (OSK 2010) A. 20 B. 25 C. 36 D. 40 E. 44

4. Perhatikan algoritma berikut ini:
/ / x dan y bertipe integer x := 20; y := 35; x:= x + y; y:= x ~ y; x:= x - y;

ALGORITMlKA

Nilai variable x dan y setelah eksekusi operasi- operasi tersebut: (OSK 2010) A. x = 35, dan y =55 B. x = 35, ·dan y = 20 C. x = 15, dan y = 5 D. x = 15, dan y = -20 E. x = -35, dan y = 15

Suatu algoritma bekerja pada array tersebut sbb. j. kemudian 125 dibagi 2 menjadi 62. kemudian 3 dibagi 2 menjadi 1. menuliskan tanda *.d. kemudian 1000 dibagi 2 menjadi 500. abcdefghij B. Pemanggilan Bintang(1000) sebanyak? (OSK 2010) A. Perhatikan algoritma berikut ini: procedure Bintang(t: integer). 2000 baris B. maka t>0 untuk kondisi : i = 1. / / t dibagi 2 dan dibulatkan ke bawah end.d.X[10-i+1]). . menuliskan tanda *. kemudian 7 dibagi 2 menjadi 3. i = 6. begin if (t > 0) then begin for i := 1 to t do writeln(‘*’). kemudian 1 dibagi 2 menjadi 0. Sehingga urutan nilainya : abcdefghij Jawaban : E Pembahasan : Diketahui Bintang(1000). cdefghijab 6.d. 10 merupakan runtutan dengan nilai a s. Bintang(t div 2). i = 8. menuliskan tanda *. Suatu array X berindeks dari 1 s. i = 9. 500 baris E. kemudian 250 dibagi 2 menjadi 125. kemudian 62 dibagi 2 menjadi 31. i = 2. Dari program diketahui t = integer. Dari program yang dituliskan yang perlu dicermati adalah listing program yang paling bawah. i = 10. karena 1000 adalah integer. dst. kemudian 500 dibagi 2 menjadi 250. fghijabcde E. Artinya : Untuk urutan 1 maka akan menuliskan X[1] = a. ebacdhfgij D. end. i = 3. (prosedur swap(a. for i:= 1 to 10 do write(X[i]).5. jihgfedcba C. For i:= 1 to 10 do write(X[i]). 10 baris menghasilkan pencetakan "*" Jawaban : A Pembahasan : Diketahui indeks 1 s. kemudian 31 dibagi 2 menjadi 15. kemudian 15 dibagi 2 menjadi 7. 1994 baris C. i = 4.b) adalah menukarkan harga a dan b) for i:= 1 to 10 do swap(X[i]. i = 7. 10 dan setiap elemennya berisi huruf-huruf berurutan dari 'a' sampai 'j'. 1000 baris D. Hasil yang dicetak adalah: (OSK 2010) A. (karena dibulatkan ke bawah) i = 5. urutan 2 maka akan menuliskan X[2] = b.

Sign up to vote on this title
UsefulNot useful