Deskripsi Untuk Soal Nomor 49 dan 50
Perhatikan potongan program berikut:
if (a mod 3 = 0) then begin
if (b > c) then c := b + (c * 3) div 2
else b := c + (b * 3) div 2;
end else begin
if (b > c) then b := (a div 2) + c
else c := (a div 2) + b;
end;
d := a + b + c;Berapa nilai d jika a = 7, b = 8, c = 2?
Jika nilai a,b, dan c masing-masing adalah salah satu bilangan bulat positif kurang dari 10, berapa nilai terbesar d?
Siswa SMA Negeri 68 Jakarta
49. bila a= 7, b = 8, dan c = 2 maka nilai b akan diubah pada operasi
b := (a div 2) + c = (7 div 2) + 2 = 5
maka 7 + 5 + 2 = 14
50. jika ingin maksimal, maka harus masuk ke dalam operasi c := b+(c*3) div 2 yang mana syaratnya a harus bisa dibagi 3 dan b > c
maka ambil nilai bilangan yang bisa dibagi 3 terbesar namun <10 yaitu 9. untuk b dan c ambil dua bilangan terbesar lainnya yaitu 8 dan 7
maka a = 9, b = 8, dan c = 7.
nilai c akan diubah oleh operasi
c := b+(c*3) div 2 = 8+21 div 2 = 8 + 10 = 18
9 + 8 + 18 = 35

SMA Unggulan CT Arsa Foundation
50. Disitu tidak tercantum angkanya tidak boleh sama :
Jadi a := 9 b:= 9 dan c := 9
Jadi kita menggunakan
if (a mod 3 = 0) then begin
if (b > c) then c := b + (c * 3) div 2
else b := c + (b * 3) div 2;
b := 9 + (9*3) div 2
9 + 27 div 2
9 + 13 = 22
d := a + b + c;
d := 9 + 22 + 9
40
Masuk untuk menulis jawaban
Sebenernya kayaknya nomer 40 itu infinite loop, tapi nilai d sementara yg sy dapatkan adalah 14
Siswa SMA Negeri 68 Jakarta
maksudnya nomer 49 kali hehehe.. tidak kok, tidak infinite loop... dia kan bukan function yang rekursif...