Abstract Data Type Point Header Stable Release Ver. 2.0


  1. /* file     : point.h */
  2. /* ADT point          */
  3.  
  4. #ifndef point_h
  5. #define point_h
  6. #include "BOOLEAN.H"
  7. /* definisi ADT point */
  8. typedef struct
  9. {
  10.     int x;      /* absis */
  11.     int y;      /* ordinat */
  12. } point;
  13.  
  14. /* definisi prototipe primitif */
  15. /*** konstruktor membentuk point ***/
  16. point makepoint(int x,int y);
  17. /* membentuk sebuah point dari komponen-komponennya */
  18.  
  19. /*** selektor point ***/
  20. int getabsis (point p);
  21. /* mengirimkan komponen absis dari p */
  22.  
  23. int getordinat(point p);
  24. /* mengirimkan komponen ordinat dari p */
  25.  
  26. /*** destruktor/dealokator:tidak perlu ***/
  27. /*** set nilai komponen point ***/
  28. void setabsis(point *p,int newx);
  29. /* men-set komponen absis dari p */
  30.  
  31. void setordinat(point *p,int newy);
  32. /* men-set komponen ordinat dari p */
  33.  
  34. /* kelompok interaksi dengan I/O device, baca/tulis */
  35. void bacapoint(point *p);
  36. /* bacapoint(p) membentuk p dari x dan y yang dibaca dari keyboard*/
  37.  
  38. void tulispoint(point p);
  39. /* nilai p ditulis ke layar dg format (X,Y) */
  40.  
  41. /* kelompok operasi aritmatika terhadap byte */
  42. point pluspoint(point p1,point p2);
  43. /* menghasilkan salinan p yang berisi p1+p2 */
  44. /* melakukan operasi penjumlahan vektor */
  45.  
  46. point minuspoint(point p1,point p2);
  47. /* menghasilkan p1-p2 */
  48.  
  49. /*** kelompok operasi relasional terhadap point ***/
  50. boolean EQ(point p1,point p2);
  51. /* mengirimkan true jika p1=p2 */
  52.  
  53. boolean NEQ(point p1,point p2);
  54. /* mengirimkan true jika p1 tidak sama dengan p2 */
  55.  
  56. boolean LT(point p1,point p2);
  57. /* mengirimkan true jika p1<p2 */
  58. /* definisi lebih kecil:lebih "kiri-bawah" dalam bidang kartesian */
  59.  
  60. boolean GT(point p1,point p2);
  61. /* mengirimkan true jika p1>p2 */
  62. /* definisi lebih besar:lebih "kanan-atas" dalam bidang kartesian */
  63.  
  64. /* kelompok menentukan dimana p berada */
  65. boolean isorigin(point p);
  66. /* menghasilkan true jika p adalah titik origin */
  67.  
  68. boolean isonsbx(point p);
  69. /* menghasilkan true jika p terletak pada sumbu x */
  70.  
  71. boolean isonsby(point p);
  72. /* menghasilkan true jika p terletak pada sumbu y */
  73.  
  74. int kuadran(point p);
  75. /* menghasilkan kuadran dari p: 1,2,3,atau 4 */
  76. /* precondition: p bukan titik origin dan p tdk terletak pd slh satu sumbu */
  77.  
  78. /* kelompok operasi lain terhadap type */
  79. point nextx(point p);
  80. /* mengirim salinan p dengan absis ditambah satu */
  81.  
  82. point nexty(point p);
  83. /* mengirim salinan p dengan ordinat ditambah satu */
  84.  
  85. point plusdelta(point p,int deltax,int deltay);
  86. /* mengirim salinan p yang absisnya = absis(p)+deltax dan */
  87. /* ordinatnya = ordinat(p)+deltay */
  88.  
  89. point mirrorofpoint(point p,boolean sbx,boolean sby);
  90. /* menghasilkan salinan p yang dicerminkan */
  91. /* tergantung nilai sbx dan sby */
  92. /* jika sbx bernilai true, maka dicerminkan terhadap sb x */
  93. /* jika sby bernilai true, maka dicerminkan terhadap sb y */
  94.  
  95. float jarak0(point p);
  96. /* menghitung jarak p ke (0,0) */
  97.  
  98. void geserpoint(point *p,int deltax,int deltay);
  99. /*I.S : p terdefinisi */
  100. /*F.S : p digeser sebesar deltax dan ordinatnya sebesar delta y*/
  101.  
  102. void geserpointkesbx(point *p);
  103. /* I.S : p terdefinisi */
  104. /* F.S : p di sumbu x dg absis = absis semula */
  105. /* proses : tergeser ke sumbu x */
  106. /* contoh : jika koordinat semula(9,9) menjadi (9,0)*/
  107.  
  108. void geserpointkesby(point *p);
  109. /* I.S : p terdefinisi */
  110. /* F.S : p di sumbu y dg absis = absis semula */
  111. /* proses : tergeser ke sumbu y */
  112. /* contoh : jika koordinat semula(9,9) menjadi (0,9)*/
  113.  
  114.  
  115. void mirrorpoint(point *p,boolean sbx,boolean sby);
  116. /* I.S : p terdefinisi */
  117. /* F.S : p dicerminkan tergantung nilai sbx atau sby */
  118. /* jika sbx true maka dicerminkan thd sumbu x */
  119. /* jika sby true maka dicerminkan thd sumbu y */
  120.  
  121.  
  122. void putarpoint(point *p,float sudut);
  123. /* I.S : p terdefinisi */
  124. /* F.S : p diputar sebesar sudut derajat */
  125.  
  126. #endif
  127.  

1 thought on “Abstract Data Type Point Header Stable Release Ver. 2.0

  1. Pingback: Panduan Mengcompile Tugas ADT Point « Essential Technique in Computer Engineering

Leave a comment