Kuis Teknik Kompilasi – Code Generator

Soal

Tentukan apakah dari sebuah titik sembarang ada didalam, bersinggungan atau diluar lingkaran yang dihasilkan dari sebuah titik sembarang dengan jari-jari R.

Jawab
Misalkan:
Titik pertama berkoordinat x1, y1
Titik kedua berkoordinat x2, y2
Jari-jari untuk titik pertama adalah R

PseudoCode:
//inisialisasi variabel
float selisihx
float selisihy
float totalselisih
input x1,y1,x2,y2,R

//perhitungan jarak antar 2 titik
selisihx=(x1-x2)^2
selisihy=(y1-y2)^2
totalselisih=selisihx + selisihy

//syarat titik dalam bersinggungan atau di luar lingkaran
if(R>totalselisih)then
print”Titik didalam lingkaran”
else if (R<totalselisih) then
print”Titik diluar lingkaran”
else
print”Titik bersinggungan dengan lingkaran”

Code Generator untuk soal diatas:
1.    Mov x1, r0
2.    Mov x2, r1
3.    Sub r1, r0
4.    Mul r0, r0
5.    Mov r0, selisihx
6.    Mov y1, r2
7.    Mov y2, r3
8.    Sub r3, r2
9.    Mul r2, r2
10.    Mov r2, selisihy
11.    Add selisihy, selisihx
12.    Mov selisihx, totalselisih
13.    Mov R, r4
14.    Mul r4, r4
15.    Gt totalselisih, r4
16.    Jmpf totalselisih, 19
17.    Prt “Titik di dalam lingkaran”
18.    Jmp , 24
19.    Lt totalselisih, r4
20.    Jmpf , 23
21.    Prt “Titik di luar lingkaran”
22.    Jmp 24
23.    Prt “Titik bersinggungan dengan lingkaran”
24.    ……

www.binus.ac.id

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *