OSP 2013

  1. Perhatikan potongan program di bawah ini!
    var
        data1 : array[1..10] of integer = (3,9,2,2,1,5,7,5,5,8);
        data2,data3 : array[1..10] of integer;
        i : integer;
    begin
        for i:= 1 to 10 do
            data2[i] := 0;
        for i:= 1 to 10 do
            inc(data2[data1[i]]);
        for i:= 2 to 10 do
            data2[i] := data2[i] + data2[i-1];
        for i:= 10 downto 1 do
        begin
            data3[data2[data1[i]]] := data1[i];
            dec(data2[data1[i]]);
        end;
        for i:= 1 to 10 do
            write(data3[i]);
    end.
    
    Keluaran dari program di atas adalah ….

    Semua elemen data2 awalnya bernilai 0, kemudian bertambah setiap data2[data1[i]] yang mana pertambahan akan sesuai dengan jumlah setiap nilai pada data1. Sehingga data2 menjadi:
    (1,2,1,0,3,0,1,1,1,0)

    Setelah itu nilai data[2] akan ditambahkan dengan tepat di sebelah kirinya, sehingga menjadi:
    (1,3,4,4,7,7,8,9,10,10)
    Setiap elemen pada data1 akan menjadi index dari data2 untuk perulangan berikutnya.
    Jadi dimulai dari i = 10: data1[10] = 8, data2[8] = 9, data3[9] = 8.
    data2: (1,3,4,4,7,7,8,8,10,10)
    data3: (0,0,0,0,0,0,0,0,8,0)
    i = 9: data1[9] = 5, data2[5] = 7, data3[7] = 5.
    data2: (1,3,4,4,6,7,8,8,10,10)
    data3: (0,0,0,0,0,0,5,0,8,0)
    i = 8: data1[8] = 5, data2[5] = 6, data3[6] = 5.
    data2: (1,3,4,4,5,7,8,8,10,10)
    data3: (0,0,0,0,0,5,5,0,8,0)
    i = 7: data1[7] = 7, data2[7] = 8, data3[8] = 7.
    data2: (1,3,4,4,5,7,8,8,10,10)
    data3: (0,0,0,0,0,5,5,7,8,0)
    Jika diteruskan, data2 dengan index yang tidak terdapat pada data1 tidak akan berubah, sedangkan data3 akan bernilai data1 dimulai dari (1,3,4,4,7,7,8,9,10,10) [data2] dengan jumlah masing-masing (1,2,1,0,3,0,1,1,1,0) [data2] ke kiri.

    Dengan demikian data3 akan berisi:
    (1,2,2,3,5,5,5,7,8,9)
    Keluaran program = 1223555789.

Share Now:

5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Langganan

Subscribe To Our Newsletter

0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!