1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| #include <iostream>
#include <cmath>
using namespace std;
class Par {
private:
double left;
double right;
public:
Par() { left = 0; right = 0; }
Par(double l, double r)
{ left = l; right = r; }
virtual void set_left(double n) { left = n; }
virtual void set_right(double n) { right = n; }
virtual void set_pair(double n, double m) { set_left(n); set_right(m); }
virtual double get_left() const { return left; }
virtual double get_right() const { return right; }
virtual void print() {
cout << " ( " << get_left() << " , " << get_right() << " ) " << endl;
}
};
class Ponto : public Par {
public:
Ponto() : Par() {};
Ponto(double x, double y) : Par(x,y) {};
virtual double distance(Ponto p)
{
return sqrt(((get_left() - p.get_left()) * (get_left() - p.get_left())) +
((get_right() - p.get_right()) * (get_right() - p.get_right())));
}
};
class Poligono {
private:
int num_points;
protected:
Ponto p[100];
public:
Poligono() { num_points = 0; }
Poligono(int n)
{
num_points = n;
}
virtual double Perimeter()
{
int i;
double pm;
for (i=0,pm=0; i<num_points-1; i=i+1)
pm = pm + p[i].distance(p[i+1]);
pm = pm + p[num_points-1].distance(p[0]);
return pm;
}
};
class Quadrilatero : public Poligono {
private:
public:
Quadrilatero(): Poligono(4) {};
Quadrilatero(Ponto a, Ponto b, Ponto c, Ponto d): Poligono(4)
{
p[0] = a;
p[1] = b;
p[2] = d;
p[3] = c;
}
};
int main()
{ Ponto a(0,0); Ponto b(1,0); Ponto c(0,1); Ponto d(1,1);
Quadrilatero q(a,b,c,d);
cout << " O perímetro deste quadrilátero é " << q.Perimeter() << "." << endl;
cout << " Os pontos deste quadrilátero são: " << endl;
Ponto x;
x=q.Ponto(1);
x.print();
x=q.Ponto(2);
x.print();
x=q.Ponto(3);
x.print();
x=q.Ponto(4);
x.print();
} |
Partager