praca domowa - help

0

czesc wszystkim.

jestem nowicjusz z javy i musze napisac programik do szkoly.
zadanie polega na napisaniu kilku klas i metod , niestety utknąłem przy pisaniu jednej metody. juz tłumaczę od początku. mam napisac klasy Punkt, Okrąg, Protokąt no i Main. W klasie prostokąt mam napisać metodę typu boolean sprawdzającą czy zadany z parametrze metody punkt znajduje się w prostokącie. na razie męczę to tak aby w ogole metoda sprawdzała czy mój zadany punkt jest wierzchołkiem no i mam to tak:

w klasie Ptostokąt:

boolean sprawdz(Punkt p)
{
this.wierzcholek = p;
if (this.wierzcholek = p)
{
return true;
System.out.println("Punkt jest wierzcholkiem prostokata");
}
else
{
return false:
System.out.println("Punkt nie jest wierzcholkiem prostokata"):
}
}

po kompilacji mam mały błąd w linii z "if" : incompatible types

Mam juz klase Punkt napisana a "wierzcholek" i "p" pochodza wlasnie z tej klasy

ktoś pomoże ? :)

z góry dzięki

pozdrawiam

Maciek

0

if(this.wierzcholek = p)
Tak nie można napisać, bo to nie jest porównanie, tylko przypisanie. Poza tym, nie możesz też użyć operatora == w tej instrukcji. W klasie Punkt powinieneś nadpisać metodę equals. Kolejna sprawa, to po return nie możesz wypisać tekstu, to musi być w odwrotnej kolejności:

System.out.println("Punkt nie jest wierzcholkiem prostokata");
return false;
0

Bardzo przepraszam , ale ja nawet nie wiem co to equals ;)

Jak zatem mogę porównać czy zadany w metodzie jako parametr punkt jest wierzchołkiem tego prostokata ? Dodam ze ten prostokat jest juz utworzony wraz ze swoim wierzchołkiem. Metode porownania musze napisac w klasie Prostokat , tak jest sformułowane zadanie.

Dzięki za info o kolejności System.out.println(); a returnem ;)

Maciek

0

To jak nie chcesz mieć equals to może być:

if(p.x==this.wierzcholek.x && p.y==this.wierzcholek.y){
return true;
}else{
return false;
}

Zakładam, że w klasie punkt masz właśnie takie pola jak x i y.
No i jeszcze potem kwestia innych wierzchołków.

0

Dzięki ogromne !

Myślałem nad tym właśnie czy mogę "dostać" się do tych pól w klasie Punkt jakoś od razu przy pisaniu warunku , ale ja raczej jestem teoretykiem , programista ze mnie żaden ;)

Teraz muszę jakoś pomyśleć , jak sprawdzać czy zadany w parametrze punkt znajduje się w całym prostokącie :D

Jeszcze raz dzięki serdeczne !

pozdrawiam

Maciek

0

aby mieć prostokąt potrzebujesz 2 punkty (których połączenie stanowi przekątna) A={x,y} i B={x,y}. Dajmy prosty przykład. Mamy prostokąt taki: A={0,5} i B={0,6}.

Punkt C={Ax,By} D={Ay,Bx} czyli C={0,6} i D={5,0}

Twoim zadaniem jest stwierdzić czy np. punkt Z={10,2} należy to tego prostokątu.

Na osi x przedział do których może należeć {Ax,Bx}
Na osi y przedział do których może należeć {Ay,By}

Po takiej podpowiedzi powinieneś sobie poradzić z zadaniem.

0

Bardzo często w szkołach/na uczelniach masz zadania które polegaja raczej na algorytmicznym myśleniu, jeżeli znasz algorytm danego problemu to już w 90% masz gotowe zadanie.
Bardzo dużo pomocnych algorytmów masz w necie.

http://algorytm.org/index.php?option=com_content&task=view&id=72&Itemid=28

  • algotytm dla ciebie ;)
0
impos89 napisał(a)

aby mieć prostokąt potrzebujesz 2 punkty (których połączenie stanowi przekątna) A={x,y} i B={x,y}. Dajmy prosty przykład. Mamy prostokąt taki: A={0,5} i B={0,6}.

Punkt C={Ax,By} D={Ay,Bx} czyli C={0,6} i D={5,0}

Twoim zadaniem jest stwierdzić czy np. punkt Z={10,2} należy to tego prostokątu.

Na osi x przedział do których może należeć {Ax,Bx}
Na osi y przedział do których może należeć {Ay,By}

Po takiej podpowiedzi powinieneś sobie poradzić z zadaniem.

prawda, ale pod warunkiem, że prostokąt ma boki równoległe do osi X i osi Y

aby zdefiniować prostokąt potrzeba 3 punktów z których dopiero można wyprowadzić 4 punkt,
algorytm? google mówi:
http://www.algorytm.org/index.php?option=com_content&task=view&id=72&Itemid=28

1 użytkowników online, w tym zalogowanych: 0, gości: 1