Witam.
Niestety nie mogę dojść czemu funkcja obs zwraca mi 0 zamiast konkretnej liczby. Funkcja ppc działa tak jak należy.
Z góry dziękuje za pomoc.
Kod:
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
#include <cmath>
using namespace std;
class Stozek
{
float h, r, l; // h - wysokosc, r - promien podstawy, l - tworzaca
float oblicz_tworzaca(float h, float r)
{
l = sqrt((h*h) + (r*r));
return l;
}
public:
// konstruktor bez parametrow
Stozek()
{
h = 0;
r = 0;
l = 0; // na pewno tu?
}
// konstruktor z parametrami
Stozek(float h, float r)
{
this->h = h;
this->r = r;
this->l = oblicz_tworzaca(h, r);
}
// 1 metoda publiczna
double ppc(float h, float r)
{
float l = oblicz_tworzaca(h, r);
double pp, pb, ppc;
pp = M_PI*(r*r);
pb = M_PI*r*l;
ppc = pp + pb;
return ppc;
}
// 2 metoda publiczna
double obs(float h, float r)
{
double obs = (1 / 3)*(M_PI*((r*r)*h));
return obs;
}
};
int main()
{
float h, r;
cout << "Podaj wartosc wysokosci H: "; cin >> h;
cout << "Podaj wartosc promienia podstawy r: "; cin >> r;
Stozek tmp(h, r);
cout << "Pole powierzchni calkowitej stozka: " << tmp.ppc(h, r) << endl;
cout << "Pole objetosci stozka: " << tmp.obs(h, r) << endl; // dlaczego tu wychodzi 0?
system("pause");
}