#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
//Zad 1
//Zad 1a
class Przestrzen
{
protected:
int wymiar;
//Zad 1b
public:
void _wymiar (int wymiar)
{
this -> wymiar = wymiar;
}
int _wymiar (void)
{
return wymiar;
}
//Zad 1c
virtual void addPunkt(int *punkt) =0;
virtual int* returnPunkt (void) =0;
//Zad 1d
virtual float odleglosc (int *punkt) =0;
};
//Zad 2
//Zad 2a
class Punkt : public Przestrzen
{
private:
int x;
int y;
//Zad 2b
public:
void podaj (int x, int y)
{
this -> x = x;
this -> y = y;
}
void print (void)
{
cout << "wymiar = " << wymiar <<", x = "
<< x << ", y = " << y << endl;
}
//Zad 2c
Punkt ()
{
wymiar = 2;
x = 0;
y = 0;
}
//Zad 2d
Punkt (int x, int y)
{
wymiar = 2;
this -> x = x;
this -> y = y;
}
//Zad 2e
Punkt (int *punkt)
{
wymiar = 2;
x = punkt[0];
y = punkt[1];
}
//Zad 2f
void addPunkt (int *punkt)
{
x = punkt[0];
y = punkt[1];
}
int* returnPunkt (void)
{
int *punkt = new int [2];
punkt[0] = x;
punkt[1] = y;
return punkt;
}
//Zad 2g
float odleglosc (int *punkt)
{
float a = (float)x - (float)punkt[0];
float b = (float)y - (float)punkt[1];
return sqrt((a*a) + (b*b));
}
};
int main(int argc, char *argv[])
{
//Zad 3
Punkt punkt1;
Punkt punkt2(4,5);
Punkt *punkt3 = new Punkt(punkt2.returnPunkt());
//Zad 4
punkt1.print();
punkt2.print();
punkt3 -> print();
//Zad 5
cout << punkt1.odleglosc(punkt2.returnPunkt()) << endl;
cout << punkt1.odleglosc(punkt3 -> returnPunkt()) << endl;
cout << punkt2.odleglosc(punkt3 -> returnPunkt()) << endl;
system("PAUSE");
return EXIT_SUCCESS;
}