-->

Friday 27 March 2009

PEMBAHASAN SOAL OLIMPIADE KOMPUTER KABUPATEN 2007 BAGIAN 1

August 22nd, 2008 | by rosihanari | 658 Views

Photobucket

Berikut ini adalah pertanyaan dan pembahasan dari soal yang diambil dari “Seleksi Olimpiade Komputer Tingkat Kabupaten/Kota 2007″. Insya Allah pembahasan ini direncanakan akan ditulis secara berseri.

Pertanyaan :

Jika M(x, y) adalah pernyataan “x lebih besar dari y”, dan terdapat deretan perintah dalam pseudo Pascal berikut:

while M(x, y) do
begin
x := x - 10;
y := y + 2;
end;

dengan harga mula-mula x = 70 dan y = 5, berapakah harga y setelah deretan keluar dari loop while?

A. 11
B. 15
C. 17
D. 21
E. 25

Jawab:

OK… akan kita bahasa pertanyaan di atas. Perhatikan bahwa loop while memiliki syarat “x lebih besar dari y”. Sehingga selama syarat tersebut terpenuhi (syarat bernilai TRUE) maka looping akan terus dijalankan. Dan proses looping akan berhenti apabila syarat sudah tidak terpenuhi (bernilai FALSE) Perhatikan jalannya proses berikut ini:

x = 70, y = 5
Cek (x > y) -> (70 > 5) -> TRUE
x = x - 10 = 70 - 10 = 60
y = y + 2 = 5 + 2 = 7
Cek (x > y) -> (60 > 7) -> TRUE
x = x - 10 = 60 - 10 = 50
y = y + 2 = 7 + 2 = 9
Cek (x > y) -> (50 > 9) -> TRUE
x = x - 10 = 50 - 10 = 40
y = y + 2 = 9 + 2 = 11
Cek (x > y) -> (40 > 11) -> TRUE
x = x - 10 = 40 - 10 = 30
y = y + 2 = 11 + 2 = 13
Cek (x > y) -> (30 > 13) -> TRUE
x = x - 10 = 30 - 10 = 20
y = y + 2 = 13 + 2 = 15
Cek (x > y) -> (20 > 15) -> TRUE
x = x - 10 = 20 - 10 = 10
y = y + 2 = 15 + 2 = 17
Cek (x > y) -> (10 > 17) -> FALSE
STOP

Setelah proses looping while selesai, nilai y terakhir adalah 17 (Jawaban yang benar C).
Pertanyaan :

Untuk menukar isi dua variabel integer (keduanya bernama a dan b) tanpa bantuan variabel lain adalah…

A. a := b - a; b := b - a; a := b + a;
B. b := b - a; a := b + a; a := b - a;
C. a := b + a; a := b - a; b := b - a;
D. a := b - a; b := b - a; a := b - a;
E. a := b + a; b := b + a; a := b + a;

Jawab :

Untuk menjawab pertanyaan di atas, kita akan cek terlebih dahulu semua alternatif jawaban. Kita coba untuk pemisalan awal nilai a = 5 dan b = 3. Kita akan mencari jawaban sedemikian hingga hasil akhir dari proses perhitungan menghasilkan a = 3 dan b = 5.

Option A.

a = b - a = 3 - 5 = -2
b = b - a = 3 - (-2) = 5
a = b + a = 5 + (-2) = 3
Jadi a = 3 dan b = 5 (BENAR)

Option B.

b = b - a = 3 - 5 = -2
a = b + a = -2 + 5 = 3
a = b - a = -2 - 3 = -5
Jadi a = -5 dan b = -2 (SALAH)

Option C.

a = b + a = 3 + 5 = 8
a = b - a = 3 - 8 = -5
b = b - a = 3 - (-5) = 8
Jadi a = -5 dan b = 8 (SALAH)

Demikian seterusnya kita cek untuk option D dan E. Untuk option D dan E juga diperoleh hasil yang salah, sehingga jawaban yang benar adalah A.


http://blog.rosihanari.net/pembahasan-soal-olimpiade-komputer-kabupaten-1/

0 comments:

Post a Comment

For You

Guest