Witam, mam Takie zadania
1. Utwórz klasę opisującą punkt w układzie kartezjańskim. Klasa ta powinna mieć funkcje składowe, które umożliwiają: (a) przypisanie współrzędnych punktu, (b) wypisanie współrzędnych punktu, (c) obliczenie odległości punktu od innego punktu (tej samej klasy), (d) przesunięcie punktu o wektor [x,y]
2. Utwórz klasę opisującą okrąg w układzie kartezjańskim. Klasa powinna umieć zainicjować wartości opisujące okrąg (zarówno postaci punktu środka i dł. promienia, jak i wsp. środka i dł promienia), wypisać informacje o sobie (środek, długość promienia), policzyć swoje pole, określić liczbę punktów wspólnych z obiektem takiej samej klasy. Skorzystaj z klasy punkt stworzonej w poprzednim zadaniu.
Napisałem taki kod, mógłby go ktoś sprawdzić pod względem błędów popełnionych w kodzie?
main.cpp:
#include <iostream>
#include "pkt.h"
using namespace std;
int main()
{
Punkt A(2,2);
Punkt B(8,6);
Punkt wektor(-8,6);
A.wypisz();
cout << "odleglosc punktu a i b to: "<< A.odl(B) << endl;
A.przesun(wektor);
Punkt okrag(5,5,8);
okrag.wypiszOkrag();
okrag.poleKola();
Punkt okrag2(5,5,8);
okrag.stycznePunkty(okrag2, okrag.odl(okrag2));
return 0;
}
pkt.h
class Punkt
{
double x;
double y;
double r;
public:
Punkt(double ax, double ay); //konstruktor
Punkt(double ax, double ay, double ar);
void wypisz();
double odl(Punkt &P);
void przesun(Punkt &v);
void wypiszOkrag();
void poleKola();
void stycznePunkty(Punkt &o2, double s);
};
pkt.cpp:
#include <math.h>
#include <iostream>
#include "pkt.h"
using namespace std;
Punkt::Punkt(double ax, double ay, double ar) :x(ax), y(ay), r(ar) {} //konstruktor
Punkt::Punkt(double ax, double ay) :x(ax), y(ay) {} //konstruktor
void Punkt::wypisz()
{
cout << "Punkt A "<<"("<< x << ","<< y <<")" <<endl;
}
double Punkt::odl(Punkt &P)
{
return sqrt(pow(x-P.x, 2)+pow(y-P.y, 2));
}
void Punkt::przesun(Punkt &v)
{
cout << "Punkt A("<<x<<","<<y<<")"<< " po przesunieciu o wektor v["<<v.x<<","<<v.y<<"] = "<<"A'("<<x+v.x<<","<<y+v.x<<"]"<<endl<<endl<<endl;
}
void Punkt::wypiszOkrag()
{
cout << "srodek okregu: "<< x <<","<<y<< " dl promienia: " << r<<endl;
}
void Punkt::poleKola()
{
cout << "Pole kola= " << M_PI*pow(r,2)<<endl;
}
void Punkt::stycznePunkty(Punkt &o2, double s)
{
if(s<abs(r-o2.r)||s>r+o2.r)
{
cout << "zero";
}
else if(x==o2.x && y==o2.y && r==o2.r)
{
cout << "nieskonczenie wiele";
}
else if(abs(r-o2.r)<s && s<r+o2.r)
{
cout << "dwa punkty";
}
else if(s==abs(r-o2.r)||s==r+o2.r)
{
cout << "jeden";
}
}
z góry dziękuję