Hay kawan-kawan "Jamane Komputer" pada kesempatan kali ini saya ingin membagi tentang soal-soal untuk berlatih menghadapi OSN bidang Komputer. Pada kesempatan sebelumnya saya telah membagi Contoh Soal Pascal Untuk OSN Jilid 1, nah pada kesempatan ini saya memberi judulnya Contoh Soal Pascal untuk OSN Jilid 2. Maaf ya kawan-kawan jika pada kesempatan kali ini apa yang sudah saya bagi masih terdapat kekurangan dari sana sini (namanya juga masih bekajar :D), dan semoga yang saya bagi ini dapat membantu dan menambah wawasan bagi kawan-kawan semua yang akan mengikuti OSN khususnya bidang komputer.
Ini contoh soal-soal ya....
Potongan program berikut untuk mengerjakan nomor 1-2 | |
function lanjutkan(x:integer):integer; begin if x <= 1 then lanjutkan := 1 else lanjutkan := lanjutkan(x-1) + lanjutkan(x-2) + lanjutkan(x-3); end; |
|
1. | Berapakah nilai yang dihasilkan jika pemanggilan lanjutkan(7)? |
a. 9 | |
b. 17 | |
c. 31 | |
d. 57 | |
e. 105 | |
2. | Apabila lanjutkan(x-3) diganti dengan lanjutkan(x-2), maka nilai yang dihasilkan dengan pemanggilan lanjutkan(6) adalah… |
a. 21 | |
b. 43 | |
c. 85 | |
d. 171 | |
e. 345 | |
Potongan program berikut untuk mengerjakan nomor 3-5 | |
function lanjutkan(m,n:integer):longint; var i : integer; h : longint; begin h := 1; for i := m downto (n+1) do h := h*i; lanjutkan := h; end; | |
3. | Nilai lanjutkan(5,3) pada program di atas adalah…. |
a. 20 | |
b. 30 | |
c. 40 | |
d. 50 | |
e. 60 | |
4. | Nilai lanjutkan(6,4) pada program di atas adalah…. |
a. 10 | |
b. 30 | |
c. 50 | |
d. 70 | |
e. 90 | |
5. | Nilai 336 pada program di atas adalah pemanggilan dari…. |
a. lanjutkan(5,4) | |
b. lanjutkan(6,4) | |
c. lanjutkan(7,4) | |
d. lanjutkan(8,4) | |
e. lanjutkan(9,4) | |
Perhatikan Potongan Program berikut ini: | |
function xyz(x,y:integer):integer; begin if y = 0 then xyz := 2 else xyz := x * xyz(x,y-1); end; | |
6. | Apabila program di atas dipanggil dengan xyz(6,2), maka outputnya adalah… |
a. 72 | |
b. 50 | |
c. 32 | |
d. 18 | |
e. 8 | |
Potongan program berikut untuk mengerjakan nomor 7-8 | |
function bersama(x:integer):integer; var y : integer; begin y := 0; repeat y := y + 2; x := x div 3; until (x mod 2 = 1); bersama := y; end; | |
7. | Pada potongan program di atas jika dipanggil dengan bersama(75), berapakah nilai bersama yang dihasilkan pada akhir pemanggilan? |
a. 1 | |
b. 2 | |
c. 3 | |
d. 4 | |
e. 5 | |
8. | Pada potongan program di atas, manakah di antara nilai-nilai x berikut ini yang jika dipanggil bersama(x) akan menghasilkan bersama=4? |
a. 51 | |
b. 56 | |
c. 60 | |
d. 66 | |
e. 69 | |
Potongan program berikut untuk mengerjakan nomor 9-10 | |
var
i,n,c : longint; begin n :=10; c := 10; for i:= 1 to n do begin inc(c,4); end; writeln(c); | |
9. |
Berapakah output dari potongan program di atas?
|
a. 10 | |
b. 20 | |
c. 30 | |
d. 40 | |
e. 50 | |
10. | Berapakah output program di atas jika nilai n diganti menjadi 100? |
a. 410 | |
b. 550 | |
c. 750 | |
d. 800 | |
e. 930 |