Tugas Teknik Kompilasi Code Generator – Menentukan Jarak Dari Titik Ke Lingkaran
Soal Kuis 20 Mei 2014 :
Tentukan apakah dari sebuah titik sembarangan ada didalam, bersinggungan atau diluar lingkaran yang dihasilkan dari sebuah titik sembarang dengan jari-jari R
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 :
- Mov x1, r0
- Mov x2, r1
- Sub r1, r0
- Mul r0, r0
- Mov r0, selisihx
- Mov y1, r2
- Mov y2, r3
- Sub r3, r2
- Mul r2, r2
- Mov r2, selisihy
- Add selisihy, selisihx
- Mov selisihx, totalselisih
- Mov R, r4
- Mul r4, r4
- Gt totalselisih, r4
- Jmpf totalselisih, 19
- Prt “Titik di dalam lingkaran”
- Jmp , 24
- Lt totalselisih, r4
- Jmpf , 23
- Prt “Titik di luar lingkaran”
- Jmp 24
- Prt “Titik bersinggungan dengan lingkaran”
- ……