#include #include #include #define PI 3,141592 using namespace std; class Prostokat; class Punkt { public: Punkt(); ~Punkt(); void wyswietl(); bool czyWspolne(Prostokat *prostokat); void setX(double); void setY(double); double getX(); double getY(); friend void ustawXY(Punkt*, double, double); private: double x; double y; }; class Prostokat { public: Prostokat(); Prostokat(double, double, double, double); ~Prostokat(); double getSzer(); double getWys(); void setSzer(double); void setWys(double); private: Punkt lewy_dolny; double szerokosc; double wysokosc; }; class Kolo { public: Kolo(); ~Kolo(); bool czyStyczne(Kolo*); void setR(int); int getR(); private: Punkt srodek; int promien; }; void ustawXY(Punkt*, double, double); void pokazInfo(Prostokat*); void pokazInfo(Kolo*); double odlegloscPunktow(Punkt*, Punkt*); int main() { Punkt p1; Punkt p2; Punkt p3; ustawXY(&p1, 5, 2); ustawXY(&p2, -7, -7); ustawXY(&p3, 1.25, 2.5); p1.wyswietl(); p2.wyswietl(); p3.wyswietl(); Prostokat prost1(13, 10, -8, -6); system("pause"); return 0; } Kolo::Kolo() { srodek.setX(0); srodek.setY(0); setR(2); } Kolo::~Kolo() { } bool Kolo::czyStyczne(Kolo* kolo) { //styczne wewnetrznie if (odlegloscPunktow(&this->srodek, &kolo->srodek) == abs(this->getR - kolo->getR)) return true; //styczne zewnetrznie else if (odlegloscPunktow(&this->srodek, &kolo->srodek) == (this->getR + kolo->getR())) return true; else return false; } void Kolo::setR(int promien) { this->promien = promien; } int Kolo::getR() { return promien; } Prostokat::Prostokat() { lewy_dolny.setX(0); lewy_dolny.setY(0); setSzer(5.0); setWys(5.0); } Prostokat::Prostokat(double szer, double wys, double x, double y) { this->lewy_dolny.setX(x); this->lewy_dolny.setY(y); setSzer(szer); setWys(wys); } Prostokat::~Prostokat() { } double Prostokat::getSzer() { return szerokosc; } double Prostokat::getWys() { return wysokosc; } void Prostokat::setSzer(double szerokosc) { this->szerokosc = szerokosc; } void Prostokat::setWys(double wysokosc) { this->wysokosc = wysokosc; } Punkt::Punkt() { setX(0); setY(0); } Punkt::~Punkt() { } void Punkt::wyswietl() { cout << "X: " << getX() << endl; cout << "Y: " << getY() << endl; } bool Punkt::czyWspolne(Prostokat *prostokat) { return false; } void Punkt::setX(double x) { this->x = x; } void Punkt::setY(double y) { this->y = y; } double Punkt::getX() { return x; } double Punkt::getY() { return y; } void ustawXY(Punkt* punkt, double x, double y) { punkt->setX(x); punkt->setY(y); } void pokazInfo(Prostokat* prostokat) { cout << "X: "; cout << "Y: "; cout << "Pole: " << prostokat->getSzer() * prostokat->getWys() << endl; } void pokazInfo(Kolo* kolo) { cout << "X :"; cout << "Y: "; cout << "R: " << kolo->getR() << endl; cout << "Pole: " << PI * (kolo->getR() * kolo->getR()); cout << endl; } double odlegloscPunktow(Punkt* p1, Punkt* p2) { double d; double x1 = p2->getX() - p1->getX(); double y1 = p2->getY() - p1->getY(); d = sqrt((x1 * x1) + (y1 * y1)); return d; }