Olimpiade Sains Komputer

download Olimpiade Sains Komputer

of 2

Transcript of Olimpiade Sains Komputer

  • 8/6/2019 Olimpiade Sains Komputer

    1/2

    Contoh Olimpiade Sains Komputer dan Pembahasan

    ARlTMATIKAD

    ANLOGIKA

    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 untukmenghabiskan isi tangki bila hanya 4 buah kran yang dibuka?

    (OSK 2010)A.9

    B.10

    C.11

    D.12

    E. 14

    Jawaban : D

    Pembahasan :

    Air dalam tangki akan habis dalamwaktu 8 jam jika dibuka dengan 6

    kran, sehingga jika 4 buah kran yangdibuka maka akan menghabiskan

    waktu :

    6.8 = 4x

    48 = 4x

    x = 48/4x = 12

    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 : 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 y2b-2y-b+y = 15

    b-y = 15

    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. 25C. 36D. 40

    E. 44

    Jawaban : D

    Pembahasan :

    W.Y = 32

    X.Z = 50

    W

  • 8/6/2019 Olimpiade Sains Komputer

    2/2

    5. 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 menukarkan

    harga a dan b)

    Hasil yang dicetak adalah: (OSK 2010)A. abcdefghij

    B. jihgfedcba

    C. ebacdhfgij

    D. fghijabcde

    E. cdefghijab

    Jawaban : A

    Pembahasan :

    Diketahui indeks 1 s.d. 10 merupakan

    runtutan dengan nilai a s.d. j. Dari

    program yang dituliskan yang perlu

    dicermati adalah listing program yang

    paling bawah,For i:= 1 to 10 do write(X[i]);

    Artinya :

    Untuk urutan 1 maka akan menuliskanX[1] = a, urutan 2 maka akan

    menuliskan X[2] = b, dst.

    Sehingga urutan nilainya :

    abcdefghij

    6.Perhatikan algoritma berikut ini:

    Pemanggilan Bintang(1000) menghasilkan pencetakan "*"

    sebanyak? (OSK 2010)

    A.2000 baris

    B.1994 barisC.1000 baris

    D.500 baris

    E. 10 baris

    Jawaban : E

    Pembahasan :Diketahui Bintang(1000),

    Dari program diketahui t = integer,

    karena 1000 adalah integer, makat > 0

    untuk kondisi :

    i = 1, menuliskan tanda *, kemudian

    1000 dibagi 2 menjadi 500,

    i = 2, menuliskan tanda *, kemudian

    500 dibagi 2 menjadi 250,

    i = 3, menuliskan tanda *, kemudian

    250 dibagi 2 menjadi 125,

    i = 4, kemudian 125 dibagi 2 menjadi

    62, (karena dibulatkan ke bawah)i = 5, kemudian 62 dibagi 2 menjadi

    31,

    i = 6, kemudian 31 dibagi 2 menjadi15,

    i = 7, kemudian 15 dibagi 2 menjadi 7,i = 8, kemudian 7 dibagi 2 menjadi 3,

    i = 9, kemudian 3 dibagi 2 menjadi 1,

    i = 10, kemudian 1 dibagi 2 menjadi 0.

    procedure Bintang(t: integer);

    begin

    if (t > 0) thenbegin

    for i := 1 to t do writeln(*);

    Bintang(t div 2); / / t dibagi 2 dan dibulatkan ke bawah

    end;

    end;

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

    for i:= 1 to 10 do write(X[i]);