Witam mam taki oto programik do napisania:
Zdefiniować klasę punkt zawierające prywatne składowe x, y (współrzędne w układzie
kartezjańskim) oraz publiczne metody:
- konstruktor inicjujący wartości x i y;
- wyswietl wyświetlający x i y;
Zdefiniować klasę trojkat, która zawiera: prywatne składowe: punkty a, b, c klasy punkt oraz
publiczne metody:
– konstruktor inicjujący wartości trzech punktów, argumentami trzy punkty;
– konstruktor inicjujący wartości trzech punktów, argumentami 6 liczb rzeczywistych; - dlugosc, zwracającą długość odcinka dla dwóch punktów;
- suma_kr, zwracającą sumę boków trójkąta;
- pole, zwracającą pole trójkąta;
– wyswietl, wyświetlającą: współrzędne 3 punktów, sumę krawędzi i pole trójkąta.
Doszedlem do tego momentu i wszystko sie sypie. Napisalem kilka funkcji skladowych klasy bez kompilacji i potem gdy wlaczylem to wyskoczylo duzo bledow. Zmienilem potem zeby klasa trojkat dziedziczyla po klasie punkt to wyskakiwalo cos ze zle zdefiniowane konstruktory probowalem lista inicjalizacyjna i normalnym sposobem w ciele konstruktora. Ale tak czy owak te funkcje nie maja byc z tego co pamiętam spokrewnione. Liczę na jakieś wskazówki
#include <iostream>
using namespace std;
class punkt
{
private:
float x,y;
public:
punkt(float a,float b);
void wyswietl();
};
//*************************
class trojkat
{
private:
punkt a,b,c;
public:
trojkat(punkt,punkt,punkt);
trojkat(float,float,float,float,float,float);
float dlugosc(punkt, punkt);
float suma();
float pole();
void wyswietl();
};
//klasa punkt
punkt::punkt(float a,float b): x(a), y(b){}
void punkt::wyswietl()
{
cout<<"Punkt ma wspolrzedne: ("<<x<<","<<y<<")"<<endl;
}
//klasa trojkat
trojkat::trojkat(punkt x,punkt y,punkt z): a(x),b(y),c(z)
{
}
trojkat::trojkat(float a,float b,float c,float d, float e,float f):a(a,b),b(c,d),c(d,e)
{
}
float trojkat::dlugosc(punkt q,punkt w)
{
return sqrt((q.x-q.y)*(q.x-q.y)+(w.x-w.y)*(w.x-w.y));
}
float trojkat::suma()
{
return dlugosc(a,b)+dlugosc(b,c)+dlugosc(c,a);
}
float trojkat::pole()
{
int p;
p=suma()/2;
return sqrt(p*(p-a)*(p-b)*(p-c))
}
void trojkat::wyswietl()
{
cout<<"Wspolrzedne punktow: A("<<a.x<<","<<b.x<<"), B("<<a.y<<","<<b.y<<"), C("<<a.z<<","<<b.z<<")"<<endl;
cout<<"Suma krawedzi: "<<suma();
cout<<"Pole trojkata: "<<pole();
}
int main()
{
punkt p1(1,0);
p1.wyswietl();
return 0;
}