Strona 1 z 1
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 19:17
autor: ewelisa
bardzo proszę o pomoc
Mam do napisania program na zliczenie, a przyznam, że jestem kiepska w programowaniu Moje zadanie to:
Zdefiniuj klasę kwadrat wraz z funkcjami obsługującymi klasę i jej prostego zastosowania w programie (chodzi chyba o obliczenie pola, obwodu, przesunięcia kwadratu o wektor,... - sama do końca nie wiem )
byłabym wdzięczna za jakąkolwiek pomoc
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 19:33
autor: Dedemonn
A na zajęciach przez cały semestr to się w kłejka pewnie grało, co?
Kod: Zaznacz cały
class Kwadrat
{
private:
double m_bok;
public:
Kwadrat(double dl)
{
m_bok = dl;
}
double obwod()
{
return 4 * m_bok;
}
double pole()
{
// bla bla
}
}
BTW: Całkiem precyzyjne polecenie. (do tego nie po polsku) ;] Jeśli mają być przesunięcia o wektor, to trzeba już pamiętać pozycję każdego wierzchołka w ukł. współrzędnych.
I czy metoda 'Jabłko' jest metodą obsługującą klasę? :7
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 19:39
autor: ewelisa
dziękuję za pomoc
a wie może ktoś jak napisać tę klasę korzystając ze współrzędnych punktów (wierzchołków kwadratu) które mają być podane przez użytkownika?
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 21:02
autor: adek05
Możesz zdefiniować sobie dodatkową klasę punkt, ale nie koniecznie. Ja bym to zrobił np. tak:
Kod: Zaznacz cały
class Kwadrat
{
private:
double a1,a2,b1,b2,c1,c2,d1,d2;
public:
Kwadrat(double a1, double a2, double b1, double b2, double c1, double c2, double d1, double d2)
{ \inicjalizacja zmiennych}
double Obwod()
{ return 4* sqrt( (a1-b1)(a1-b1) + (a2 - b2)(a2 - b2) ) ;}
double Pole()
{ return (a1-b1)(a1-b1) + (a2 - b2)(a2 - b2);}
void Wektor(double x, double y)
{ a1 = a1 - x;
a2 = a2 - y;
\itd. dla b, c, d}
};
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 21:15
autor: Dedemonn
W obliczaniu pola coś się chyba nie zgadza. (wygląda mi to na długość jednego boku bez pierwiastka)
Jeśli mogę jeszcze wtrącić swoje 3 grosze, to w programowaniu obiektowym właśnie chodzi o to, aby tworzyć klasy, które mogą wyręczać inne klasy swoimi metodami. Tak też jest ładniej/lepiej/optymalniej/wyraźniej, i cokolwiek tam jeszcze, zdefiniować klasę Punkt wraz z takimi metodami jak obliczanie odległości od innego punktu. Wtedy w dowolnym innym miejscu w programie nie będziemy dublować kodu (i ponownie nad nim myśleć) odpowiedzialnego za powyższe operacje. ;]
Pozdrawiam.
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 21:29
autor: ewelisa
dziękuję za pomoc
jeszcze jedno pytanie, jak w kodzie dedemonna wyświetlić wynik dla np. obwodu kwadratu A, dla którego wczytano już długość boku?? mi czas wyskakuje 0.
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 21:40
autor: Dedemonn
Kod: Zaznacz cały
Kwadrat *kw = new Kwadrat(4);
cout << kw->obwod();
Chyba jakoś tak to było w C++. ;|
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 21:57
autor: kadiii
Dedemonn pisze:Kod: Zaznacz cały
Kwadrat *kw = new Kwadrat(4);
cout << kw->obwod();
Chyba jakoś tak to było w C++. ;|
Tak odwołujemy się do wskaźników w klasie. Do obiektów stałych bardziej zwyczajnie:
Pozdrawiam
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 22:17
autor: Dedemonn
Coś kłamiesz. Tyle pamiętam zdaje się. Poprzez operator wyłuskania, znaczy kropeczkę, odwołujemy się do obiektów statycznych, tj. nie instancjowanych za pomocą operatora 'new'. Czy nie tak?
PS. Trzeba pamiętać jeszcze o zwolnieniu pamięci po pracy:
Kod: Zaznacz cały
Kwadrat *kw = new Kwadrat(4);
cout << kw->obwod();
delete kw;
Pzdr.
definicja klasy kwadrat w c/c++
: 29 maja 2009, o 22:42
autor: kadiii
Mea culpa. Najwyraźniej twoja pamięć ma się lepiej niż moja - nie ma to jak pozytywny wpływ nauki.
Pozdrawiam
P.S A, i oczywiście nie można zapomiec o nieocenionym wpływie programowania w javie .