XxBurzaxX Napisano Maj 14, 2013 Zgłoś Share Napisano Maj 14, 2013 Dopisz metodę która pozwala sprawdzić czy z podanych współrzędnych da się utworzyć prostokąt zakładamy że przekątne są sobie równe oraz odcinki AB=CD też są równe należy wykorzystać metodę odległości #include <cstdlib> #include <iostream> #include <math.h> using namespace std; class punkt { public: double x; double y; punkt() {x=0;y=0;}; //konstruktor domyslny punkt(double xx,double yy) //konstruktor parametryczny {x=xx;y=yy;}; punkt(punkt &p1) //konstruyktor kopiujacy {x=p1.x; y=p1.y; }; double odloglosc(punkt &p1) //metoda { return sqrt(pow((p1.x-x),2)+pow((p1.y-y),2));}; void wyswietl() //metody dostepowe {cout<<x<<", "<<y<<", "<<endl;}; }; class prostokat { punkt *tab; bool sprawdz(punkt t[3]) { if(0) return true; else return false; }; public: prostokat(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy) { tab = new punkt[3]; tab[0].x=ax; tab[2].x=cx; tab[0].y=ay; tab[2].y=cy; tab[1].x=bx; tab[3].x=dx; tab[1].y=by; tab[3].y=dy; }; prostokat(punkt tab1[3]) { tab = new punkt[3]; tab[0].x=tab[0].x; tab[2].x=tab[2].x; tab[0].y=tab[0].y; tab[2].y=tab[2].y; tab[1].x=tab[1].x; tab[3].x=tab[3].x; tab[1].y=tab[1].y; tab[3].y=tab[3].y; }; prostokat(punkt p1, punkt p2,punkt p3, punkt p4) { tab = new punkt[3]; tab[0].x=p1.x; tab[2].x=p3.x; tab[0].y=p1.y; tab[2].y=p3.y; tab[1].x=p2.x; tab[3].x=p4.x; tab[1].y=p2.y; tab[3].y=p4.y; }; ~prostokat() { delete tab;}; }; int main(int argc, char *argv[]) { punkt p1; //0.0 punkt p2(1,3); //1.3 punkt p3(p1); //0.0 punkt p4(p2); //1.3 prostokat(0,1,1,2,2,0,0,0); cout<<p1.odloglosc(p2)<<endl; //wywolanie funkcji z obiektem jako parametr wejsciowy p1.wyswietl(); p2.wyswietl(); p3.wyswietl(); p4.wyswietl(); system("PAUSE"); return EXIT_SUCCESS; } Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Maj 14, 2013 Zgłoś Share Napisano Maj 14, 2013 No fajne zadanie. A jak brzmi Twoje pytanie do niego? Jeśli chcesz mieć zrobione całe, to napisz ile płacisz. Jak oczekujesz pomocy, to zadaj mądre pytania - to nic nie kosztuje! Link do komentarza Udostępnij na innych stronach More sharing options...
XxBurzaxX Napisano Maj 14, 2013 Autor Zgłoś Share Napisano Maj 14, 2013 To jak zrobić to zadanie ? Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Maj 14, 2013 Zgłoś Share Napisano Maj 14, 2013 Wydaje mi się, że skoro zakładamy, że AB=CD i przekątne są sobie równe, to wystarczy sprawdzić, czy odcinki AC i BD są sobie równe. Odległość między dwoma punktami w przestrzeni obliczasz z twierdzenia pitagorasa. Pamiętaj, że współrzędne są typu double, więc nie porównuj długości operatorem ==, tylko sprawdzaj, czy wartość bezwzględna z różnicy długości jest mniejsza niż jakiś mały epsylon (dopuszczalny błąd). --------------- edit: widzę, że nawet w kodzie masz już metodę na obliczenie odległości między dwoma punktami. Link do komentarza Udostępnij na innych stronach More sharing options...
XxBurzaxX Napisano Maj 14, 2013 Autor Zgłoś Share Napisano Maj 14, 2013 Dobra coś tam zrozumiałem może coś stworze Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.