Soal dan Pembahasan OSK Komputer 2014

  1. Perhatikan potongan program berikut.

    var data : array[1..10] of integer = (3,9,2,6,1,4,7,8,5,10);
    procedure piring(n : integer);
    begin
    	if (n≤10) then
    	begin
    		piring(n*2);
    		piring(n*2+1);
    		write(data[n],’ ’);
    	end;
    end;
    

    Jika statement pada baris ke 8 yaitu “write(data[n],’ ‘)” dipindahkan pada sebelum
    statement baris ke 6, maka untuk menghasilkan output yang terurut menaik setelah
    pemanggilan piring(1) adalah ….

      1. (3,9,2,6,1,4,7,8,5,10)
      2. (1,2,8,3,6,9,10,4,5,7)
      3. (10,6,9,3,5,7,8,1,2,4)
      4. (7,4,2,1,3,6,5,9,8,10)
      5. (1,2,3,4,5,6,7,8,9,10)

    Jika perintah write dipindah sebelum rekursi, maka
    program menjadi
    data[1], piring(2), piring(3)
    piring(2) = data[2], piring(4), piring(5)
    piring(4) = data[4], piring(8), piring(9)
    = data[4], data[8], data[9]
    piring(5) = data[5], piring(10)
    = data[5], data[10]
    piring(3) = data[3], piring(6), piring(7)
    = data[3], data[6], data[7]

    Sehingga urutan cetak adalah
    data[1], data[2], data[4], data[8], data[9], data[5], data[10],
    data[3], data[6], data[7]
    Sehingga agar terurut menaik, array harus diposisikan
    sesuai urutan cetak
    (1,2,8,3,6,9,10,4,5,7) (B).

Share Now:

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!