Archive for May, 2014
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”
 - ……