#ifndef boolean_H
#define boolean_H
#define true 1
#define false 0
#define boolean unsigned char
#endif
Program 2 point.h
/* Program : Point.h */
/* Deskripsi : Spesifikasi ADT Point*/
/* Author : */
/* Tanggal/Versi : */
#ifndef POINT_H
#define POINT_H
/* definisi type data POINT */
typedef struct {
int x;
int y;
} POINT;
/* PROTOTYPE */
/*KELOMPOK CREATOR */
void MakePoint(POINT *P, int XX, int YY);
/*Prosedur untuk membuat POINT dengan nilai dari user*/
POINT CreatePoint(int XX, int YY);
/*Fungsi untuk menghasilkan sebuah POINT berdasarkan nilai-nilai dari user*/
/*KELOMPOK VALIDASI*/
/* Tidak ada Validasi, Asumsi : koordinat Point tidak terbatas*/
/*KELOMPOK GET/SET */
int GetX(POINT P);
/*mengembalikan nilai X dari sebuah Point P */
int GetY(POINT P);
/*mengembalikan nilai Y dari sebuah Point P */
void SetX(POINT *P);
/*memberikan/mengubah nilai X dari sebuah Point P */
void SetY(POINT *P);
/*memberikan/mengubah nilai Y dari sebuah Point P */
/*KELOMPOK PRINT/CETAK*/
void PrintPoint(POINT P);
/* Menampilkan POINT dengan format (x,y) */
/*KELOMPOK LAIN */
boolean IsEqual(POINT P1, POINT P2);
/*Mengembalikan True jika P1 = P2, dan False jika sebaliknya */
int Kuadran(POINT P);
/* menghasilkan kuadran dari POINT P*/
boolean IsOnSumbuX(POINT P);
/* Mengirimkan True jika P ada di sumbu X */
boolean IsOnSumbuY(POINT P);
/* Mengirimkan True jika P ada di sumbu Y */
boolean IsOrigin(POINT P);
/* Mengirimkan True jika P ada di titik pusat */
void NextX(POINT *P);
/* Menggeser P 1 koordinat ke kanan*/
void PrevX(POINT *P);
/* Menggeser P 1 koordinat ke kiri*/
void NextY(POINT *P);
/* Menggeser P 1 koordinat ke atas*/
void PrevY(POINT *P);
/* Menggeser P 1 koordinat ke bawah*/
void NextX_N(POINT *P, int N);
/* Menggeser P, sejauh N koordinat ke kanan*/
void PrevX_N(POINT *P, int N);
/* Menggeser P, sejauh N koordinat ke kiri*/
void NextY_N(POINT *P, int N);
/* Menggeser P, sejauh N koordinat ke atas*/
void PrevY_N(POINT *P, int N);
/* Menggeser P, sejauh N koordinat ke bawah*/
/*MENGHITUNG JARAK DUA POINT */
float Jarak (POINT P1, POINT P2);
/*Menghasilkan jarak P1 dan P2 */
#include
#include
Program 3 posisi_p.cpp
/*File : posisi_p.cpp
Deskripsi : Membuat menu untuk operasi POINT
IS : Point belum diberi Opersi dengan menggunakan prosedur dan function
FS : Point sudah diberi Opersi dengan menggunakan prosedur dan function
Author : Trisna A.R
Tanggal : 26 Nov 2012
*/
#include
#include
#include "boolean.h"
#include "point.h"
main(){
POINT A,B;
int n,m,pil,xk,re;
float jarak;
printf("---TITIK UTAMA---\n");
printf("Masukkan titik X :");
scanf("%d",&n);
printf("Masukkan titik Y :");
scanf("%d",&m);
A=CreatePoint(n,m);
do{
clrscr();
printf("\n\nTIITK UTAMA X : %d",A.x);
printf("\n\nTIITK UTAMA Y : %d",A.y);
printf("\n\n---POSISI TITIK UTAMA---\n");
if(IsOrigin(A)){
printf("\nIS ORIGIN");
}
else if(IsOnSumbuX(A)){
printf("\nIS ON SUMBU X");
}
else if(IsOnSumbuY(A)){
printf("\nIS ON SUMBU Y");
}
else{
switch(Kuadran(A)){
case 1: {
printf("\nKUADRAN 1");break;
}
case 2: {
printf("\nKUADRAN 2");break;
}
case 3: {
printf("\nKUADRAN 3");break;
}
case 4: {
printf("\nKUADRAN 4");break;
}
}
}
printf("\n\n---PILIHAN UNTUK TITIK UTAMA---\n");
printf("\n1. Geser Titik Utama ke Kanan sejauh n ");
printf("\n2. Geser Titik Utama ke Kiri sejauh n ");
printf("\n3. Geser Titik Utama ke Atas sejauh n ");
printf("\n4. Geser Titik Utama ke Bawah sejauh n ");
printf("\n5. Geser Titik Utama ke Kanan sejauh 1 ");
printf("\n6. Geser Titik Utama ke Kiri sejauh 1 ");
printf("\n7. Geser Titik Utama ke Atas sejauh 1 ");
printf("\n8. Geser Titik Utama ke Bawah sejauh 1 ");
printf("\n9. Set X Titik Utama ");
printf("\n10. Set Y Titik Utama ");
printf("\n11. Hitung Jarak Titik Utama ke Titik Masukan");
printf("\n12. Mencocokan Titik Utama ke Titik Masukan");
printf("\n\nMasukkan pilihan : ");
scanf("%d",&pil);
printf("\n\n");
if(pil==1){
do{
printf("Geser Titik Utama ke Kanan sejauh X: ");
scanf("%d",&xk);
}while(xk<0 br="br"> NextX_N(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==2){
do{
printf("Geser Titik Utama ke Kiri sejauh X: ");
scanf("%d",&xk);
}while(xk<0 br="br"> PrevX_N(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==3){
do{
printf("Geser Titik Utama ke Atas sejauh Y: ");
scanf("%d",&xk);
}while(xk<0 br="br"> NextY_N(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==4){
do{
printf("Geser Titik Utama ke Bawah sejauh Y: ");
scanf("%d",&xk);
}while(xk<0 br="br"> PrevY_N(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==5){
printf("Geser Titik Utama ke Kanan sejauh 1");
NextX(&A);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==6){
printf("Geser Titik Utama ke Kiri sejauh 1");
PrevX(&A);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==7){
printf("Geser Titik Utama ke Atas sejauh 1");
NextY(&A);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==8){
printf("Geser Titik Utama ke Bawah sejauh 1");
PrevY(&A);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==9){
printf("Ubah Titik Utama X menjadi : ");
scanf("%d",&xk);
SetX(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==10){
printf("Ubah Titik Utama Y menjadi : ");
scanf("%d",&xk);
SetY(&A,xk);
printf("\nPosisi Titik Utama X : %d dan Y: %d ", A.x,A.y);
}
else if(pil==11){
printf("\nTitik Anda :");
printf("\nMasukkan titik X2 :");
scanf("%d",&n);
printf("\nMasukkan titik Y2 :");
scanf("%d",&m);
B=CreatePoint(n,m);
jarak=Jarak(A,B);
printf("\nJarak Titik Utama dengan Titik Anda %.2f : ",jarak);
}
else if(pil==12){
printf("\nTitik Anda :");
printf("\nMasukkan Titik X2 :");
scanf("%d",&n);
printf("\nMasukkan Titik Y2 :");
scanf("%d",&m);
B=CreatePoint(n,m);
if(IsEqual(A,B)){
printf("\nTitik Utama EQUAL Titik Anda");
}
else{
printf("\nTitik Utama NOT EQUAL Titik Anda");
}
}
else{
printf("Masukkan Anda Salah");
}
printf("\n\nOperasi Point Lagi ? 1(yes) atau 0(no) : ");
scanf("%d",&re);
}while(re==1);
}
0>0>0>0>
Tidak ada komentar:
Posting Komentar