#include <iostream>
#include<cmath>
class Krug{
double poluprecnik;
static constexpr double pi = 4 * atan(1);
public:
explicit Krug (double poluprecnik) { Postavi(poluprecnik);};
Krug &Postavi (double poluprecnik) {
if(poluprecnik <= 0) throw std::domain_error("Neispravan poluprecnik");
Krug::poluprecnik = poluprecnik;
return *this;
}
double DajPoluprecnik() const{ return poluprecnik; }
double DajObim() const{ return 2 * pi * poluprecnik;}
double DajPovrsinu() const { return poluprecnik * poluprecnik * pi; }
Krug &Skaliraj(double faktor){
if(faktor <= 0) throw std::domain_error("Neispravan faktor skaliranja");
poluprecnik *= faktor;
return *this;
}
void Ispisi() const {
std::cout << "R=" << DajPoluprecnik() <<" O=" << DajObim() << " P=" << DajPovrsinu();
}
};
class Valjak {
Krug baza;
double visina;
void PostaviVisinu(double visina){
if(visina <= 0) throw std::domain_error("Neispravna visina");
Valjak::visina = visina;
}
public:
Valjak (const Krug &baza, double visina) : baza(baza) {PostaviVisinu(visina);}
Valjak (double poluprecnik, double visina) : baza(poluprecnik) {PostaviVisinu(visina);}
Valjak &Postavi(const Krug &baza, double visina){
Valjak::baza = baza;
PostaviVisinu(visina);
return *this;
}
Valjak &Postavi(double poluprecnik, double visina){
baza.Postavi(poluprecnik);
PostaviVisinu(visina);
return *this;
}
Krug DajBazu() const {return baza;}
double DajPoluprecnikBaze() const { return baza.DajPoluprecnik();}
double DajVisinu() const {return visina;}
double DajPovrsinu() const { return 2 * baza.DajPovrsinu() + baza.DajObim() * DajVisinu();}
double DajZapreminu () const { return baza.DajPovrsinu() * visina; }
Valjak &Skaliraj (double faktor) {
baza.Skaliraj(faktor);
return *this;
}
void Ispisi() const {
std::cout << "R=" << DajPoluprecnikBaze() <<" O=" << DajVisinu() << " P=" << DajPovrsinu() <<" V=" << DajZapreminu();
}
};
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: