Contoh Soal & Pembahasan

Nilai elemen array z masingmasing tersebut juga

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 4 5 d 0 4 8 12 16 20 Keterangan Kondisi awal, a>b a>b a>b a>b a>b Loop berhenti karena a<=b Jadi, keluaran dari algoritma tersebut adalah 5, 20 (OSP 2007) 25. Perhatikan potongan algoritma berikut: procedure panjang (p: integer); var z : array[0..9] of integer; a, b, c, d : integer; Tim Olimpiade Komputer Indonesia halaman 21 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan x : integer; begin for a:= 0 to 9 do case (a mod 5) of 0 : z[a] := 3; 1 : z[a] := 1; 2 : z[a] := 4; 3 : z[a] := 2; 4 : z[a] := 0; end; for b:= 9 downto 0 do begin x:= 3*z[b]; z[b]:= a - b; end; for c:= 0 to 9 do if (c mod 2 = 0) then z[c]:= z[c] + 5; for d:= 9 downto 0 do if (z[d] < 0) then z[d] := z[d] * -1; writeln(z[p]); end; Apakah keluaran yang dihasilkan algoritma di atas dalam pemanggilan panjang(9)? (A) 8 (B) 6 (C) 4 (D) 2 (E) 0 Pada perulangan baris ke‐7, nilai elemen array z diisi oleh nilai‐nilai dalam case of berdasarkan nilai a mod 5. Nilai a pada akhir perulangan adalah 9. a z[a] 0 3 1 1 2 4 3 2 4 0 5 3 6 1 7 4 8 2 9 0 Pada perulangan baris ke‐15, nilai x diisi oleh hasil 3*nilai elemen array z pada masing‐masing indeks b. Nilai elemen array z masing‐masing tersebut juga berubah dan diisi nilai a – b, yaitu 9 – indeks b. a z[a] 0 9 1 8 2 7 3 6 4 5 5 4 6 3 7 2 8 1 9 0 Pada perulangan baris ke‐19, nilai elemen array z berubah menjadi 5 lebihnya dari nilai elemen array z sebelumnya jika indeks c dapat habis dibagi 2. a z[a] 0 14 1 8 Tim Olimpiade Komputer Indonesia 2 12 3 6 4 10 5 4 6 8 7 2 8 6 9 0 halaman 22 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan Pada perulangan baris ke‐22, nilai elemen array z tidak berubah karena masing‐ masing nilainya >=0. Berdasarkan penjelasan di atas, keluaran pemanggilan panjang(9) adalah 0 (OSP 2007) 26. Perhatikan prosedur coba(n) berikut. procedure coba(var n: integer); begin if n > 0 then begin n := n div 3; write(n mod 3); coba(n); end; end; Apa yang akan dicetak saat pemanggilan coba(z) dengan z sebelumnya sudah memiliki harga 49? (A) 0001 (B) 1211 (C) 0121 (D) 1120 (E) 1210 Pemrosesan potongan algoritma tersebut dengan n=49 dapat direalisasikan dalam tabel berikut ini. Pemanggilan coba(49) coba(16) coba(5) coba(1) coba(0) n=n div 3 16 5 1 0 write(n mod 3) 1 2 1 0 Selesai coba(n) coba(16) coba(5) coba(1) coba(0) Jadi, yang akan tercetak adalah 1210 (OSP 2007) Tim Olimpiade Komputer Indonesia halaman 23 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan 27. Perhatikan potongan algoritma berikut: procedure jalan(n: integer); begin if n > 0 then begin jalan(n div 5); write(n mod 5 + 1); end; end; Pada pemanggilan jalan(49) pada procedure di atas ini apa yang akan dicetaknya kemudian? (A) 222 (B) 52 (C) 49 (D) 255 (E) 5 jalan(49) : - jalan(9) ‐ jalan(1) ‐ jalan(0) ‐ write(2) ‐ write(5) - write(5) Jadi, yang akan tercetak adalah 255 (OSP 2007) 28. Perhatikan potongan algoritma berikut: procedure call(x:integer); begin if x<>0 then begin write(‘*’); x := x – 1; call(x); Tim Olimpiade Komputer Indonesia halaman 24 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan x := x + 1; end; end; Apakah output dari pemanggilan call(3) ? (A) *** (B) * (C) ** (D) ******** ... (banyak tak terhingga) (E) ****** call(3): - write(‘*’) x = 2 call(2) ‐ write(‘*’) ‐ x = 1 ‐ call(1) ‐ write(‘*’) ‐ x = 0 ‐ call(0) ‐ x = 1 ‐ x = 2 - x = 3 Jadi, output...
View Full Document

Ask a homework question - tutors are online