Deskripsi Untuk Soal Nomor 37 dan 38
function apaini(a: integer; b: integer): integer; var x, y, r: integer; begin x := a; y := b; while (y <> 0) do begin r := x mod y; x := y; y := r; end; apaini := x; end;
Jika fungsi tsb dipanggil dengan “writeln(apaini(414, 662));” berapakah yang dicetaknya?
(A) 1
(B) 8
(C) 26
(D) 414
(E) 14
Jika fungsi tsb dipanggil dengan “writeln(apaini(12345, 54321));” berapakah yang dicetaknya?
(A) 2
(B) 3
(C) 13
(D) 7
(E) 11
Jika kita melihat potongan kode berikut, maka kita bisa menyimpulkan
1. X akan di Mod oleh Y
2. apabila X<Y, maka program akan menukar X dengan Y
37. Jawaban = 2 (Tidak ada)
apabila kita mengurangi 662 dengan 414 sampai dengan paling minimal dengan modulo akan menghasilkan 0
662 mod 414 = 248
414 mod 248 = 166
248 mod 166 = 82
166 mod 82 = 2
38. Jawaban = 3 (B)
dengan cara yang sama dengan 37:
54321 mod 12345 = 4941
12345 mod 4941 = 2463
4941 mod 2463 = 15
2463 mod 15 = 3 , disini 3 adalah R dan R dimasukkan ke dalam Y
15 mod 3 = 0, disini 0 adalah R, dan R dimasukkan ke dalam Y, dan nilai X masih 3 (X adalah Y sebelumnya) , dan di fungsi yan di cetak adalah nilai X sehingga jawaban adalah 3
37. 2 (tidak ada jawabannya)
38. B. 3
Masuk untuk menulis jawaban
I WANT TO BE A WINNER !
37.
r= 414 mod 662
x=662
y=414
r=662 mod 414
x=414
y=248
r=414mod 248
x=248
y=166
r=248 mod 166
x=166
y=82
r=166 mod 82
x= 82
y = 2
r=82 mod 2
x= 2
y = 0 //perulangan terakhir jadi
apaini:=x;
apaini:=2;
38.
r=12345 mod 54321
x=54321
y=12345
r=54321 mod 12345
x=12345
y=4941
r=12345 mod 4941
x=4941
y= 2463
r=4941 mod 2463
x= 2463
y=15
r=2463 mod 15
x= 15
y=3
r= 15 mod 3
x =3
y = 0 //
jawabanya B.3
apabila X<Y, maka hasilnya adalah X (bilangan itu sendiri). tidak pernah ditukar begitu mas.