Deskripsi Untuk Soal Nomor 39 dan 41
function apaitu(a: integer; b: integer): integer; begin count := count + 1; if (a > b) then apaitu := apaitu(b, a) else if (a = 0) then apaitu := b else apaitu := apaitu (b mod a, a) end;
Jika fungsi tsb dipanggil dengan “writeln(apaitu(1001, 1331));” berapakah yang dicetaknya?
(A) 2
(B) 7
(C) 13
(D) 3
(E) 11
Jika fungsi tsb dipanggil dengan “writeln(apaitu(1000, 5040));” berapakah yang dicetaknya?
(A) 10
(B) 100
(C) 50
(D) 40
(E) 5
Jika variabel count bersifat global dan diinisialisasi 0, dan fungsi tsb dipanggil dengan perintah “writeln(apaitu(1234, 277));” berapakah harga count setelah pemanggilan itu?
(A) 1
(B) 5
(C) 9
(D) 10
(E) 13
Jika kita melihat Fungsi dari kode tersebut kta bisa menyimpulkan bahwa:
1. B di mod A
2. jika A>B , maka tukar A dengan B
3. jika A=0. Maka cetak nilai B
39. Jawaban = 11 (E)
dengan mengunakan cara yang sama dengan soal 37-38
1331 mod 1001 = 330
1001 mod 330 = 11
330 mod 11 = 0, nilai 0 saat ini adalah nilai A, dan yang diminta adalah nilai B yang mana adalah 11 dan karena A=0, maka Jawaban adalah B=11
40. Jawaban = 40 (D)
5040 mod 1000 = 40
1000 mod 40 = 0, nilai 0 saat ini adalah nilai A, dan yang diminta adalah nilai B yang mana adalah 40 dan karena A=0, maka Jawaban adalah B=40
41. Jawaban = 9 (C)
kita bisa mengerjakan nya dengan menghitung banyak langkah
1. Penukaran A dengan B
2. 1234 mod 277 = 126
3. Penukaran A dengan B
4. 277 mod 126 = 25
5. Penukaran A dengan B
6. 126 mod 25 = 1
7. Penukaran A dengan B
8. 25 mod 1 = 0
9. Mencetak nilai B, (Program looping sekali lagi untuk memeriksa apakah A>B, dan ternyata tidak, kemudian memeriksa apakah A=0, yang mana benar, sehingga mencetak B)
Nomor 41 hanya terjadi sekali penukaran A dengan B yaitu fungsi yang pertama saja bukan? jadi nilai count = 6 tetapi tidak ada di opsi
39. E. 11
40. D. 40
41. 6 (tidak ada jawabannya)
Masuk untuk menulis jawaban
I WANT TO BE A WINNER !
39.
a > b //pernyataan salah lanjut ke pernyataan 2
a=0 //pernyataan masih salah lanjut ke pernyataan 3
apaitu:=1001,1331 (1331 mood 1001, 1001)
apaitu:= 330,1001 (1001 mod 330 ,330)
apaitu:=11,330(330 mod 11)
apaitu:=0,11(11 mod 0)
karena a =0 maka cetak b
b= 11 (E)
40.sama seperti no 39
pakai persamaan yang ke 3
apaitu:=1000,5040(5040 mod 1000,1000)
apaitu:=40,1000(1000 mod 40,40)
apaitu:=0,40(40mod 0)
karena a=0 ,maka cetak b
b=40 (D)
41.menghitung perulangan
1. a=1234
b=277
2.a>b
apaitu:=apaitu (277,1234)
3.apaitu:=277,1234(1234mod 277,277)
4.apaitu:=126,277(227 mod 126,12,6)
5.apaitu101,126(126 mod 101,101)
6.apaitu:=25,101(101 mod 25,25)
7.apaitu:=1,25(25 mod 1,1)
8.apaitu:=0,1(1mod 0)
a=0
terjadi 8 kali perulangan
count:=8+1
count:=9(C)
Kenapa penukaraannya sampai 4 kali? Bukannya cukup 1 saja ya?