#include #include #include #include #include using namespace std; class Punkt{ public: double x, y; double kaugusNullist(){ return sqrt(x*x+y*y); } double kaugusPunktist(Punkt p){ //eukleidiline double dx=p.x-x; double dy=p.y-y; return sqrt(dx*dx+dy*dy); } double manchesteriKaugus(Punkt p){ //mööda risti olevaid tänavaid double dx=p.x-x; double dy=p.y-y; if(dx<0){dx=-dx;} if(dy<0){dy=-dy;} return dx+dy; } string tekstina(){ ostringstream vastus; vastus << "(" << x << "," << y << ")"; return vastus.str(); } void nihuta(double dx, double dy){ //suurenda x-koordinaati dx võrra ning y-koordinaati dy võrra. Katseta main-is x=x+dx; y=y+dy; } void muudaKaugustNullist(double koef){ x*=koef; y*=koef; } }; class Kujund{ vector punktid; public: void muudaKaugustNullist(double koef){ for(int i=0; i suurimDiameeter(){ pair vastus; vastus.first.x=11; cout << punktid[0].y << " " << punktid.size() << endl; //Tagastage paar kahe teinetesest kõige kaugemal asuva punktiga double suurimKaugus=0; int kust, kuhu; for(int i=0; isuurimKaugus){ suurimKaugus=kaugus; kust=i; kuhu=j; } } } vastus.first=punktid[kust]; vastus.second=punktid[kuhu]; return vastus; } }; int main(void){ Punkt p1; p1.x=6; p1.y=10; cout << p1.tekstina() << endl; p1.nihuta(2, 3); cout << p1.tekstina() << endl; Kujund k; k.lisaPunkt(2, 2); k.lisaPunkt(4, 2); k.lisaPunkt(2, 6); k.lisaPunkt(5, 7); cout << k.tekstina() << endl; k.nihuta(1, -1); cout << k.tekstina() << endl; k.muudaKaugustNullist(2); cout << k.tekstina() << endl; p1.x=6; p1.y=10; k.muudaKaugustPunktist(p1, 2); cout << k.tekstina() << endl; pair v=k.suurimDiameeter(); cout << v.first.x << " " << v.first.y << " - " << v.second.x << " " << v.second.y << endl; return 0; }