OSP 2011

Untuk soal 26 dan 27 perhatikan potongan program berikut:
hitung:=0;
n:=10;
for i:=1 to n do
    if (i mod 2 = 0) then
        for j:=1 to 10 do
            if (j mod 2 = 0) then
                hitung := hitung + j
            else
                hitung := hitung + i;
writeln(hitung);
  1. Apakah output yang tampil di layar? Jawab: ……..

  2. Jika kode di baris ke 2 diganti dengan
    n:=1000
    
    Apakah output yang tampil di layar? Jawab: ……..

    Pada potongan program tersebut, perintah hanya dijalankan ketika i merupakan kelipatan 2. Kemudian setiap nilai i, terdapat perulangan sebanyak 10 kali yang mana ketika j merupakan bilangan genap, hitung akan ditambah sebanyak bilangan tersebut. Sedangkan ketika ganjil, hitung akan bertambah sebanyak i. Jadi hitung akan bertambah ketika j = 1, 3, 5, 7 dan 9.

    Berdasarkan hal tersebut, setiap i yang bernilai genap, hitung akan ditambahkan sebanyak 5*i dan ditambahkan 2, 4, 6, 8 dan 10 (merupakan j) = 30. Barisan perintah berjalan ketika i = 2, 4, 6,…, n. Jadi total i (belum dikali dengan 5) adalah (n/2)/2 * (2 + n) [rumus Sn, dengan banyaknya barisan adalah n/2].

    Jadi hitung akan bernilai (n/2)/2 * (2 + n) * 5 + 30 * (n/2), karena Sn ditambahkan sebanyak 5 kali dan hitung akan dijumlahkan 30 sebanyak n/2 kali.

  1. Karena n awal bernilai 10, maka hitung akan bernilai (10/2)/2 * (2+10)*5 + 30*(10/2)
    = 5*12*5/2 + 30*5
    = 300

  2. Jika n bernilai 1000, maka output menjadi
    (1000/2)/2 * (2 + 1000) * 5 + 30 * (1000/2)
    = 500/2 * (1002) * 5 + 30*500
    = 1267500.

Share Now:

5 1 vote
Article Rating
Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
kim
kim
3 years ago

⅓ x ⅔ = 2/9 bagian
kok bisa gitu kak?

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

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!