Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<math.h>
- using namespace std;
- class Punct {
- protected:
- float x;
- float y;
- public:
- Punct(float x=0, float y=0) {
- this->x=x;
- this->y=y;
- }
- void afisare() {
- //out<<"Punct ( "<<x<<","<< y<<" )"<<endl;
- }
- friend ostream& operator <<(ostream &out, const Punct &p);
- friend float distanta(Punct& a, Punct& b);
- };
- float distanta(Punct& a, Punct& b) {
- return sqrt((a.x-b.x)*(a.x-b.x)+ (a.y-b.y)*(a.y-b.y));
- }
- ostream& operator <<(ostream &out, const Punct &p) {
- out<<"Punct ( "<<p.x<<","<< p.y<<" )";
- return out;
- }
- class FiguraGeometrica {
- public:
- virtual float getPerimetrul()=0;
- virtual float getAria()=0;
- virtual void print();
- };
- void FiguraGeometrica:: print() {
- cout<<"Figura geometrica oarecare"<<endl;
- }
- class Triunghi: public FiguraGeometrica {
- Punct a,b,c;
- public:
- Triunghi(Punct a, Punct b,Punct c);
- float getPerimetrul();
- float getAria();
- void print();
- };
- Triunghi::Triunghi(Punct _a, Punct _b,Punct _c): a(_a), b(_b), c(_c) {
- }
- float Triunghi:: getPerimetrul() {
- return distanta(a,b)+distanta(b,c)+ distanta(a,c);
- }
- float Triunghi:: getAria() {
- ///sqrt(p*(p-a)*(p-b)*(p-c));
- float x=distanta(a,b);
- float y=distanta(a,c);
- float z=distanta(b,c);
- float p=(x+y+z)/2;
- return sqrt(p*(p-x)*(p-y)*(p-z));
- }
- void Triunghi:: print() {
- cout<<"Triunghi ("<<a<<" , "<<b<<" , "<<c<<")"<<endl;
- }
- class Cerc: public FiguraGeometrica {
- Punct centru;
- float raza;
- public:
- Cerc(Punct c, float r=0);
- float getPerimetrul();
- float getAria();
- void print();
- };
- Cerc::Cerc(Punct c, float r): centru(c), raza(r) {
- }
- float Cerc:: getPerimetrul(){
- return 2*3.14*raza;
- }
- float Cerc:: getAria(){
- return 3.14*raza*raza;
- }
- void Cerc::print(){
- cout<<"Cerc ("<<centru<<" , "<<raza<<")"<<endl;
- }
- int main() {
- Punct a(1,1);
- cout<<a<<endl;
- Triunghi t(Punct(0,0), Punct(0,3), Punct(4,0));
- t.print();
- cout<<"Perimetru: ";
- cout<<t.getPerimetrul()<<" "<<endl;
- cout<<"Aria: ";
- cout<<t.getAria()<<"";
- cout<<endl;
- Cerc c(a,1);
- c.print();
- cout<<"Perimetru: ";
- cout<<c.getPerimetrul()<<" "<<endl;
- cout<<"Aria: ";
- cout<<c.getAria()<<"";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement