Forum grupy T2 I Roku EiT


#1 2008-03-11 14:20:52

Mateusz Buczkowski

UÂżytkownik

1965860
Zarejestrowany: 2007-10-04
Posty: 23
Punktów :   

Informatyka 11 marca

No... jeśli ktoś ma sensownie zrobione przeładowanie operatora = to niech się podzieli, bo ja mam to zrobione dosyć brutalnie

Kod:

//
//  Liczby zespolone
//

#include <iostream>
#include <conio.h>

using namespace std;

//                      Predefinicje

class cComplex;

double absq(cComplex &newC);
cComplex conj(cComplex &newC);

//                     Deklaracja klasy

class cComplex
{     
      private:
              double re, im;
      public:
             //                         Konstruktory
             
             cComplex() {};
             cComplex(double newRe, double newIm = 0.0):
                             re(newRe), im(newIm) {};
             
             
             //                          Przeładowanie operatorów
             
             cComplex operator+ (cComplex &newC)       // Dodawanie dwóch zespolonych
             {
                      return cComplex(re + newC.re, im + newC.im);
             }
             cComplex operator- (cComplex &newC)       // Odejmowanie dwóch zespolonych
             {
                      return cComplex(re - newC.re, im - newC.im);
             }
             cComplex operator* (cComplex &newC)       // Mnożenie dwóch zespolonych
             {
                      return cComplex(re * newC.re + im * newC.im, re * newC.im - im * newC.re);
             }
             cComplex operator* (double newD)        // Mnożenie zespolonej przez rzeczywistą
             {
                      return cComplex(re * newD, im * newD);
             }
             
             cComplex operator= (cComplex newC)     // Przypisanie
             {
                      (*this).re = newC.re;
                      (*this).im = newC.im;
                      return cComplex(re = newC.re, im = newC.im);
             }

             
             //                          Metody
             void vDisplay()
             {
                  cout << "re : " << re << ", im : " << im << endl;
             }
             
             //                         Funkcje zaprzyjaźnione
             
             friend cComplex operator/ (cComplex &newC1, cComplex &newC2);
             friend cComplex conj(cComplex &newC);
             friend double absq(cComplex &newC);
};

//                     Funkcje

double absq(cComplex &newC)
{
       return newC.re * newC.re + newC.im * newC.im;
}

cComplex conj(cComplex &newC)
{
         return cComplex(newC.re, -newC.im);
}

cComplex operator/ (cComplex &newC1, cComplex &newC2)
{
        return (newC1 * newC2) * (1 / absq(newC2));
}

//              Program główny

int main()
{
    
    cComplex JB(3,5);
    cComplex KG(4,2);
    cComplex result;
    
    result = JB + KG;
    result.vDisplay();
    
    result = JB - KG;
    result.vDisplay();
    
    result = JB * KG;
    result.vDisplay();    
    
    result = JB / KG;
    result.vDisplay();    
    
    getch();
    return 0;
}

Aaa... no i mogą być błędy w działaniach matematycznych, ale to nie jest akurat najważniejsze

Ostatnio edytowany przez Mateusz Buczkowski (2008-03-11 14:23:26)

Offline

 

#2 2008-03-11 18:07:56

SzalonyKombajn

UÂżytkownik

2843521
Zarejestrowany: 2007-10-08
Posty: 48
Punktów :   

Re: Informatyka 11 marca

mam to troszku i inszej ale to jest lepszejsze


http://img265.imageshack.us/img265/8332/kombajnowaszgcopyss8.jpg

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.plwodomierze wrocław biuro rachunkowe www.otokot.pl