[ poWer011 @ 12.07.2005. 23:03 ] @
Ako neko moze da startuje program// odsnosno da vidi gde je greska/e napravio sam tacka.h , pravougaonik.h , tacka.cpp , pravougaonik.cpp- c++ source file, i zadatak.cpp KOD: class Tacka{ double m_x, m_y; public: Tacka(); Tacka(double, double); Tacka(const Tacka*); Tacka(const Tacka&); void postavi (double,double); double osax () const; double osay () const; double rastojanje (); double rastojanje (const Tacka&); Tacka najbliza(Tacka*, int); void citaj(); void pisi(); }; *************************************** class Pravougaonik { Tacka m_A, m_B; public: Pravougaonik(); Pravougaonik (const Tacka&, const Tacka&); Pravougaonik(const Pravougaonik*); Pravougaonik(const Pravougaonik&); Tacka tA(); Tacka tB(); Tacka tC(); Tacka tD(); void postavi (const Tacka&, const Tacka&); double obim(); double povrsina(); bool unutra(const Tacka&); void citaj(); void pisi(); }; ******************************** #include <iostream> #include "tacka.h" #include <cmath> using namespace std; Tacka::Tacka(double x, double y):m_x(0), m_y(0) {} Tacka::Tacka(double x, double y):m_x(x), m_y(y) {} Tacka::Tacka(double x, double y):m_x(a->m_x), m_y(a->m_y) {} Tacka::Tacka(double x, double y):m_x(a.m_x), m_y(a.m_y) {} double Tacka::rastojanje() {return sqrt(m_x*m_x+m_y*m_y);} //odstojanje od koordinatnog pocetka void Tacka::postavi(double x, double y){m_x=x; m_y=y;} //promena x,y koordinate double Tacka::osax() const {return m_x;} //Dohvatanje x koordinate double Tacka::osay() const {return m_y;} //Dohvatanje y koordinate double Tacka::rastojanje(const Tacka &a) {return sqrt(pow(m_x-a.m_x,2) + pow(m_y-a.m_y,2));} //Rastojanje od druge tacke double Tacka::najbilza(const Tacka &a, int n){ Tacka t=a[0]; double r.m=rastojanje(t); for(int i=1; i<n;i++) { if(m>(r=rastojanje(a))) {m=r; t=a;} } } // Najbliza tacka void Tacka::citaj(){cin>>m_x>>m_y;} // Citanje koordinata tacke void Tacka::pisi(){cout<<"("<<m_x<<","<<m_y<<")"<<endl;} // Pisanje koordinata tacke ****************************** #include <iostream> #include "tacka.h" #include <cmath> #include "pravougaonik.h" using namespace std; Pravougaonik::Pravougaonik() {} Pravougaonik::Pravougaonik(const Tacka&A, const Tacka&B):m_A(A), m_B(B) {} Pravougaonik::Pravougaonik(const Pravougaonik *P): m_A(P->m_A), m_A(P->m_B){} Pravougaonik::Pravougaonik(const Pravougaonik &P): m_A(P.m_A), m_B(P.m_B){} Tacka Pravougaonik::tA(){return m_A;} // DOhvatanje tacke A Tacka Pravougaonik::tB(){return m_B;} // Dohvatanje tacke B Tacka Pravougaonik::tC(){ Tacka C; C.postavi(m_A.osax(), m_B.osay()); return C; } // Dohvatanje tacke C Tacka Pravougaonik::tD(){ Tacka D; D.postavi(m_B.osax(), m_A.osay()); return D; } // Dohvatanje tacke D void Pravougaonik::postavi(const Tacka &A, const Tacka &B){m_A=A, m_B=B;} // Promena tacaka double Pravougaonik::obim(){ return 2*((m_A.osax()-m_B.osax())+(m_A.osay()-m_B.osay()); } // Izracunavnje obima pravogaonika double Pravougaonik::povrsina(){ return ((m_A.osax()-m_B.osax())*(m_A.osay()-m_B.osay()); } //Izracunavnje povrsine pravogaonika bool Pravougaonik::unutra(const Tacka &T){ bool a= (m_A.osax()<m_B.osax())? (T.osax()>m_A.osax())&&(T.osax()<m_B.osax()); (T.osax()<m_A.osax())&&(T.osax()>m_B.osax()); bool b= (m_A.osay()<m_B.osay())? (T.osay()>m_A.osay())&&(T.osay()<m_B.osay()); (T.osay()<m_A.osay())&&(T.osay()>m_B.osay()); return a&&b; } //Da li je tacka unutar pravougaonika void Pravougaonik::citaj(){ cout<<"Upisite koordinate dve dijagonale tacke pravougaonika: "<<endl; m_A.citaj(); m_B.citaj(); } void Pravougaonik::pisi(){ cout<<"Koordinate dve zadate tacke pravougaonika: "<<endl;<<"A";m_A.pisi(); cout<<endl<<"B"; m_B.pisi(); cout<<endl; } ********************************* #include <iostream> #include "tacka.h" #include "pravougaonik.h" #include <stdafx.h> using namespace std; int main(int argc, char* argv[]){ Pravougaonik ABCD; Tacka niz[5]; ABCD.citaj(); ABCD.pisi(); // Ucitavanje i ispisivanje pravougaonika cout<<"Upisite Koordinate 5 tackaka: "<<endl; for(int =0; i<5;i++) niz.citaj(); // Ucitavanje niza tacaka cout<<"Tacke koje su u pravougaoniku: "<<endl; for(int i=0; i<5;i++){ if(ABCD.unutra(niz)) { cout<<"T"<<i; niz.pisi(); } cout<<"Temena pravougaonika i njihove najblize tacke: "<<endl; cout<<"A"; Tacka X=ABCD.tA(); X.pisi(); cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi(); cout<<"B"; X=ABCD.tB(); X.pisi(); cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi(); cout<<"C"; X=ABCD.tC(); X.pisi(); cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi(); cout<<"D"; X=ABCD.tD(); X.pisi(); cout<<"Najbliza "; T=X.najbliza(niz, 5); T.pisi(); return 0; } [Ovu poruku je menjao poWer011 dana 18.07.2005. u 00:39 GMT+1] |