2010-12-09

DDP-Teori (program point)

ini, materi tentang point rekan-rekaan mari kita belajar bersama-sama:

#ifndef point_h
#define point_h

#include "Boolean.h"
/***************************/
/* Type data */
/***************************/
/* Kamus */
typedef struct { int x; int y;}Point;


/***************************/
/* S P E S I F I K A S I */
/***************************/

/*********** Operasi Primitif ************/
void CreatePoint (Point * P);
/* Constructor Membentuk sebuah POINT, dengan nilai default adalah (0,0) */

void CopyPoint (Point PIn, Point * POut);
/* Copy Constructor, mengcopy satu Point menjadi Point lain */

/******* Selector komponen **********/
int GetAbsis (Point P);
/* Mengambil bagian x dari Point */

int GetOrdinat (Point P);
/* Mengambil bagian y dari Point */

/****** Pengubah komponen ******/
void SetAbsis (int NewX, Point * P);
/* Memberi nilai untuk Absis */

void SetOrdinat (int NewY, Point * P);
/* Memberi nilai untuk Ordinat */

/****** Kelompok Interaksi dengan I/O device, BACA/TULIS ******/
void BacaPoint (Point *P);
/* Membentuk POINT dari iX dan iY yang dibaca dari keyboard */

void PrintObj (Point P, char simbol[]);
/* Print nilai P dengan format (X,Y) */

/***** Kelompok Operasi Aritmatika terhadap Type Point *****/
Point Plus (Point P1, Point P2);
/* Menghasilkan salinan P yang berisi P1+P2
Melakukan operasi penjumlahan vektor */

Point Minus (Point P1, Point P2);
/* Menghasilkan salinan P yang berisi P1-P2
Melakukan operasi pengurangan vektor */

Point Kali (Point P1, Point P2);
/* Operasi perkalian P1 x P2, Melakukan operasi CrossProduct */

/****** Operator Relasional ******/
boolean EQ (Point P1, Point P2);
/* Memeriksa kesamaan dari dua buah Point, Asumsi : 1 jika P1 = P2 */

boolean NEQ (Point P1, Point P2);
/* Memeriksa ketidaksamaan dari dua buah Point, Asumsi:true jika P1 <> P2 */

boolean LT (Point P1, Point P2);
/* Memeriksa apakah P1 < P2 Asumsi : true jika P1 < P2 : absis dan ordinat lebih kecil */ boolean MT (Point P1, Point P2); /* Memeriksa apakah P1 > P2
Asumsi : true jika P1 > P2 : absis dan ordinat lebih besar */

/***** Predikat lain *******/
boolean IsOrigin (Point P);
/* Apakah P di (0,0), Asumsi : true jika P adalah (0,0) */

boolean IsOnSbX (Point P);
/* Memeriksa apakah P ada di sumbu X,
Asumsi : true jika P terletak pada sb. X (y = 0) */

boolean IsOnSbY (Point P);
/* Memeriksa apakah P ada di sumbu Y,
Asumsi : true jika P terletak pada sb. Y (x = 0) */

int Kuadran (Point P);
/* Menghasilkan kuadran dari P (1,2,3 atau 4)
Precondition Current_object tidak di Titik Origin & tdk di sumbu */

void Geser (Point * P, int deltaX, int deltaY);
/* Operasi penggeseran Point */
/* Mengirimkan P yang absis dan ordinatnya ditambah delta */

void GeserkeSbX (Point * P);
/* IS. P terdefinisi
FS. P di sumbu X dgn absis sama dengan absis semula dan ordinat = 0
Proses : tergeser ke Sumbu X, cth : semula (9,9) menjadi (9,0) */

void GeserkeSbY (Point * P);
/* IS. P terdefinisi
FS. P di sumbu Y dgn ordinat sama dengan ordinat semula dan absis = 0
Proses : tergeser ke Sumbu Y, cth : semula (9,9) menjadi (0,9) */

Point MirrorOf (Point Pin, int SbX, int SbY);
/* Mengirimkan salinan PIn yang dicerminkan ke salah satu sumbu
Jika SbX bernilai 1, maka dicerminkan thd sb X
Jika SbY bernilai 1, maka dicerminkan thd sb Y */

void Mirror (Point * P, int SbX, int SbY);
/* Mengirimkan P yang dicerminkan ke salah satu sumbu
Jika SbX bernilai 1, maka dicerminkan thd sb X
Jika SbY bernilai 1, maka dicerminkan thd sb Y */

Point midPoint(Point T1, Point T2);
/* menghasilkan titik tengah T1, T2 berupa titik */

#endif

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger