#include <iostream>
class Lik {
public:
virtual ~Lik() = default;
virtual void IspisiSpecificnosti () const = 0;
virtual double DajObim() const = 0;
virtual double DajPovrsinu() const = 0;
void Ispisi() const {
IspisiSpecificnosti();
std::cout<<"Obim: "<<DajObim()<<"Povrsina: "<<DajPovrsinu()<<std::endl;
}
};
class Krug : public Lik{
double r;
static constexpr double PI = 3.141592653589793;
public:
Krug(double r) : r(r){
if(r <= 0) throw std::domain_error("Neispravni parametri");
}
void IspisiSpecificnosti() const override{
std::cout<<"Krug poluprecnika: "<< r << std::endl;
}
double DajObim() const override { return 2 * r * PI;}
double DajPovrsinu() const override{return r * r * PI;}
};
class Pravougaonik : public Lik{
double a, b;
public:
Pravougaonik(double a, double b) : a(a), b(b) {
if(a <= 0 || b <= 0) throw std::domain_error("Neispravni parametri");
}
void IspisiSpecificnosti() const override {
std::cout<< "Pravougaonik stranica: "<< a <<", " << b <<std::endl;
}
double DajObim() const override {return 2 * a + 2 * b;}
double DajPovrsinu() const override {return a * b;}
};
class Trougao : public Lik {
double a, b, c;
public:
Trougao(double a, double b, double c) : a(a), b(b), c(c) {
if(a <= 0 || b <= 0 || c <= 0 || a + b <= c || b + c <= a || a + c <=b)
throw std::domain_error("Neispravni parametri");
}
void IspisiSpecificnosti() const override {
std::cout<< "Trougao stranica: "<< a <<", " << b <<", "<<c<<std::endl;
}
double DajObim() const override {return a + b + c;}
double DajPovrsinu() const override {
double s = DajObim()/2;
return std::sqrt(s * (s - a) * (s - b) * (s - c));
}
};
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: