Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- class punkt
- {
- double X,Y;
- public:
- punkt() : X(0), Y(0) {}
- punkt(const double & x, const double & y) : X(x), Y(y) {}
- double &x()
- {
- return X;
- }
- const double x() const
- {
- return X;
- }
- double &y()
- {
- return Y;
- }
- const double y() const
- {
- return Y;
- }
- const double odleglosc(const punkt &p) const
- {
- return(sqrt( (X-p.x())*(X-p.x()) + (Y-p.y())*(Y-p.y()) ));
- }
- };
- class wielobok
- {
- unsigned roz;
- punkt * wsk;
- public:
- wielobok() : wsk(0), roz(0) {}
- wielobok(const punkt * a, const punkt * b) :
- roz(b-a), wsk(roz ? new punkt[roz] : 0)
- {
- for (unsigned i=0; i<roz; i++)
- wsk[i]=a[i];
- }
- punkt & Punkt(const unsigned & a)
- {
- return(wsk[a]);
- }
- const double obwod() const
- {
- double wynik = 0;
- for(unsigned i=0; i<roz-1; i++)
- wynik += wsk[i].odleglosc(wsk[i+1]);
- wynik += wsk[roz-1].odleglosc(wsk[0]);
- return(wynik);
- }
- wielobok Punkty(const punkt * a, const punkt * b)
- {
- roz = b-a;
- wsk=(roz ? new punkt[roz] : 0);
- for(unsigned i=0; i<roz; i++)
- wsk[i] = a[i];
- }
- unsigned ilosc()
- {
- return roz;
- }
- ~wielobok()
- {
- delete [] wsk;
- }
- };
- int main()
- {
- punkt p(2, 3);
- cout << p.x() << ' ' << p.y() << '\n';
- p.x() = 1;
- p.y() = 1;
- cout << p.x() << ' ' << p.y() << '\n';
- cout << p.odleglosc(punkt()) << '\n';
- punkt t[] = { punkt(0, 2), punkt(0, 0), punkt(2, 0), punkt(2, 2) };
- wielobok w1(t, t+4);
- cout << w1.obwod() << '\n';
- w1.Punkt(0) = punkt(0,1);
- w1.Punkt(2) = punkt(1,0);
- w1.Punkt(3) = punkt(1,1);
- cout << w1.obwod() << '\n';
- wielobok w2;
- w2.Punkty(t, t+3);
- cout << w2.obwod() << '\n';
- for (int i = 0; i < w2.ilosc(); ++i)
- cout << w2.Punkt(i).x() << ' ' << w2.Punkt(i).y() << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement