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; } |
|
Monika90 |
» 2017-06-25 14:23:25 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. |
|
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 :) |
|
Saran |
» 2017-06-25 15:23:31 No i w klasie prostokąt masz składnik nazwę, po co, skoro dziedziczysz z klasy punkt? :) |
|
« 1 » |