Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sprawdzanie czy punkt należy do figury

Ostatnio zmodyfikowano 2017-06-25 15:23
Autor Wiadomość
mitreandir
Temat założony przez niniejszego użytkownika
Sprawdzanie czy punkt należy do figury
» 2017-06-25 12:52:57
Witam,
natknąłem się na problem, napisałem program, który ma za zadanie sprawdzić, czy punkt znajduje się wewnątrz prostokąta w układzie kartezjańskim, jednak mimo wielokrotnego sprawdzania kodu nie mogę znaleźć przyczyny. Wszystko kompiluje się poprawnie, jednak nie pokazuje, że punkt należy do prostokąta, gdy powinien.
Oto kod:

#include <iostream>
#include <string>

using namespace std;

class Punkt
{
public:

    string nazwa;
    float x,y;
    Punkt(string n="A", float xx=1, float yy=1)
    {
        n=nazwa;
        xx=x;
        yy=y;
    }
};
class Prostokat:public Punkt
{
    public:
    string nazwa;
    float wys,szer;
    Prostokat(string naz="x", float xx=0, float yy=0, float sz=10, float w=10)
   :Punkt(naz,xx,yy)
    {
        sz=szer;
        w=wys;
    }
};
void sprawdzanie(Prostokat pros, Punkt pu)
{
    if (((pu.x>=pros.x)&&(pu.x <= pros.x+pros.szer))&&((pu.y>=pros.y)&&(pu.y <= pros.y+pros.wys)))
    {
        cout<<"wewnatrz!";
    }
}
int main()
{
    Prostokat pr("x",0,0,100,100);
    Punkt px("a", 1, 2);
    sprawdzanie(pr,px);

    return 0;
}
P-162817
Monika90
» 2017-06-25 14:23:25
C/C++
n = nazwa;
xx = x;
yy = y;
Przypisanie zrobiłeś w odwrotną stronę niż chciałeś, w konstruktorze klasy Prostokat - ten sam błąd. Najlepiej jednak było by użyć listy inicjalizacyjnej.

Klasa Prostokat dziedziczy z Punkt, to jest dziwne, chyba to wziąłeś z kursu Zelenta.
P-162818
mitreandir
Temat założony przez niniejszego użytkownika
» 2017-06-25 14:34:42
Tak, owszem, wziąłem to właśnie z tego kursu, a program napisałem po części, żeby sobie przećwiczyć zdobytą wiedzę,
nie miałem jednak pojęcia, że kolejność przypisywania ma znaczenie, teraz będę na to uważał, dziękuję za pomoc :)
P-162819
Saran
» 2017-06-25 15:23:31
No i w klasie prostokąt masz składnik nazwę, po co, skoro dziedziczysz z klasy punkt? :)
P-162820
« 1 »
  Strona 1 z 1