Teknik Kompilasi – Jarak Titik dan Lingkaran
Pseudocode dan Code Generator pada post kali ini untuk:
input titik pusat dari lingkaran beserta dengan jari-jarinya, input titik lain, lalu program akan mencari apakah titik lain tersebut terletak di luar, di dalam atau persis di titik jari-jari lingkaran.
Pseudocode:
float distance, distanceX, distanceY;
input Xa, Ya, Ra;
input Xb, Yb;
distanceX = Xa-Xb;
distanceY = Ya-Yb;
distance = sqrt(pow(distanceX,2) + pow(distanceY,2));
if(distance > Ra)
print ‘diluar lingkaran’;
else if (distance == Ra)
print ‘sama dengan jari-jari’;
else print ‘di dalam lingkaran’
Code Generator
Representatif Machine Language:
01. mov Xa, R0
02. mov Xb, R1
03. sub R1, R0
04. mov R0, distanceX
05. mov Ya, R2
06. mov Yb, R3
07. sub R3, R2
08. mov R2, distanceY
09. mov distanceX, R4
10. pow #2, R4
11. mov distanceY, R5
12. pow #2, R5
13. add R5, R4
14. sqrt #2, R4
15. mov Ra, R6
16. gt R6, R4
17. jmpF R4, (20)
18. prt , “diluar lingkaran”
19. jmp ,(25)
20. eq R6, R4
21. jmpF R4, (24)
22. prt , “sama dengan jari-jari”
23. jmp , (25)
24. prt , “di dalam lingkaran”
25. …