[ tommyldo @ 04.07.2015. 12:40 ] @
Ispod je klasa za kompleksne brojeve. Nije mi jasno zasto mi ocitava vrijednost realnih parametara, a imaginarni ostaju 0 kada kompajliram. Moze li neko da vidi gdje sam gresku napravio ? Hvala. #include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <iostream> #include <math.h> #define Pi 3.1415 #include <iomanip> using namespace std; class Kompleks { public: Kompleks (double r=0, double i=0) : _Re(r),_Im(i) {} double Re() const { return _Re; } double Im() const { return _Im; } double Ro() const {return this->Moduo();} double Fi() const { if (Re()) return atan(Im()/Re()); else return Im()<0 ? -Pi/2 : Pi/2; } double Moduo () const { return sqrt(Re()*Re()+Im()*Im()); } Kompleks operator +(const Kompleks& c) const { return Kompleks(Re() + c.Re(), Im() + c.Im()); } Kompleks operator -(const Kompleks& c) const { return Kompleks( Re() - c.Re(), Im() - c.Im() ); } Kompleks operator *(const Kompleks& c) const { return Kompleks( Re() * c.Re() - Im() * c.Im(), Re() * c.Im() + Im() * c.Re()); } Kompleks operator * (const double d) const { return Kompleks (Re()*d,Im()*d); } Kompleks operator /(const Kompleks& c) const { return Kompleks( (Re() * c.Re() + Im() * c.Im())/(c.Re() * c.Re() + c.Im() * c.Im()) ,(Im() * c.Re() - Re() * c.Im())/(c.Re() * c.Re() + c.Im() * c.Im())); } Kompleks operator ~() const { return Kompleks(Re() , -Im()); } istream& Citaj (istream &ul) { char c, i; ul >> _Re >> c >> _Im >> i; if (c=='-') _Im=-_Im; return ul; } ostream& Pisi (ostream &izl) const { char c = Im()<0 ? '-' : '+'; return izl <<Re() << c << abs(Im()) << 'i'; } private: double _Re; double _Im; }; istream& operator >> (istream& str, Kompleks& c) { return c.Citaj(str);} ostream& operator << (ostream& str, const Kompleks& c) { return c.Pisi(str); } |