real Check(real x) //Funkcja zaokrąglająca błędy wynikające z konwersji liczb { real _x; x = modf(x, &_x); if (fabs(x) <= 1e-5) x = 0; return x + _x; } Zespolona& Zespolona::operator^(int q) { real z = sqrt(Re*Re+Im*Im); real sin_z = Im / z; real angle = asin(sin_z); angle *= q; z = pow(z, q); Re = cos(angle) * z; Im = sin(angle) * z; Re = Check(Re); Im = Check(Im); return *this; }