witam
nie wiem czy to nie zbyt powazne forum na moj problem jednak zawsze warto sprobowac.
tak wiec mam do napisania programi ktory ma za zadanie sczytac wspolrzedne 2 punktow, nastepnie zrobic z nich odcinek i obliczyc dlugosc tego odcinka. nastepnie uzywajac tych odcinkow zbudowac kwadrat i obliczyc pole i obwod tego kwadratu. w sumie to zatrzymalem sie juz na koncowce a przynajmniej tak mi sie wydaje. problem polega na tym ze funckja obow i pole zwracaja mi 0...
oto moje wypociny:
#include <cstdlib>
#include <iostream>
#include<math.h>
using namespace std;
class Punkt
{
float x,y,z;
public:
Punkt(){x=0; y=0; z=0;}
Punkt(float a, float b, float c)
{
x=a;
y=b;
z=c;
}
float Odleglosc(Punkt p);
void Pobierz_wspolrzedne(){cin>>x>>y>>z;}
~Punkt(){;}
};
class Odcinek:public Punkt
{
Punkt poczatkowy, koncowy;
public:
Odcinek(){poczatkowy, koncowy;}
Odcinek(Punkt p1, Punkt p2)
{
poczatkowy = p1;
koncowy = p2;
}
float Dlugosc();
};
class Kwadrat:public Odcinek
{
Odcinek pierwszy,drugi,trzeci,czwarty;
public:
Kwadrat(){pierwszy, drugi, trzeci, czwarty;}
Kwadrat(Odcinek a1, Odcinek a2, Odcinek a3, Odcinek a4)
{
pierwszy = a1;
drugi = a2;
trzeci = a3;
czwarty = a4;
}
float Obwod();
float Pole();
};
float Punkt::Odleglosc(Punkt p)
{
return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)+(p.z-z)*(p.z-z));
}
float Odcinek::Dlugosc()
{
return poczatkowy.Odleglosc(koncowy);
}
float Kwadrat::Obwod()
{
float bok = Dlugosc();
return 4*bok;
}
float Kwadrat::Pole()
{
float bok = Dlugosc();
return Dlugosc()*Dlugosc();
}
int main()
{
Punkt *p1, *p2;
Odcinek *a1, *a2, *a3, *a4;
Kwadrat *k1;
p1=new Punkt();
p2=new Punkt();
cout<<"wspolrzedne punktu pierwszego: "<<endl;
p1->Pobierz_wspolrzedne();
cout<<"wspolrzedne punktu drugiego: "<<endl;
p2->Pobierz_wspolrzedne();
a1 = new Odcinek(*p1, *p2);
a2 = new Odcinek(*p1, *p2);
a3 = new Odcinek(*p1, *p2);
a4 = new Odcinek(*p1, *p2);
cout<<"dlugosc boku 1 "<<a1->Dlugosc()<<endl;
cout<<"dlugosc boku 2 "<<a2->Dlugosc()<<endl;
cout<<"dlugosc boku 3 "<<a3->Dlugosc()<<endl;
cout<<"dlugosc boku 4 "<<a4->Dlugosc()<<endl;
k1 = new Kwadrat(*a1, *a2, *a3, *a4);
cout<<"Obwod kwadratu wynosi: "<<k1->Obwod()<<endl;
cout<<"Pole kwadratu wynosi: "<<k1->Pole()<<endl;
system("PAUSE");
getchar();
}
z gory dziekuje za zainteresowanie
Pozdrawiam