Forum grupy T2 I Roku EiT


#1 2008-05-27 19:06:24

Mateusz_Frąckowiak

UÂżytkownik

Zarejestrowany: 2007-10-04
Posty: 52
Punktów :   

Dzisiejsze zalicznie

Jakby sie komuś chciało analizować to prosze bardzo :

Kod:

#include <iostream>

using namespace std;

class zesp
{
private:
    double re;
    double im;
public:
    zesp(double a=0, double b=0):re(a),im(b)
        {
            
        };
    zesp operator*(zesp a)
        {
        zesp wynik;
        wynik.re=(re*a.re-im*a.im);
        wynik.im=(re*a.im+im*a.re);    
        return(wynik);   
        };
    zesp operator+(zesp a)
        {
        zesp wyn;
        wyn.re=re+a.re;
        wyn.im=im+a.im;    
        return(wyn);    
        };    
    void druk()
        {
        cout<<"("<<re<<"+i"<<im<<")";        
        };    
    
};

class wektor
{
private:
    zesp *el;
    int dl;    
public:
    wektor (wektor &a):dl(a.dl)
        {
        el=new zesp[dl];
        for(int i=0;i<dl;i++)
            {
            el[i]=a.el[i];    
            }    
        };
    wektor(int a): dl(a)
        {
        el= new zesp[dl];  
        double w,e; 
        for (int i=0;i<dl;i++)
            {
            cout<<"element "<<i+1<<" czesc re: ";
            cin>>w;
            cout<<"                im: ";
            cin>>e;
            zesp a(w,e);
            el[i]=a;    
            }       
        };
    ~wektor()
        {
        delete []el;    
        };
        
    int dlu()
        {
        return(dl);    
        };
            
    zesp operator* (wektor a)
        {
        zesp wynik=0;
        int il;
        if (dl<a.dl) 
            {
            il=dl;
            cout<<"wektor drugi zostal skrocony\n"; 
            }   
        if (dl>a.dl)
            {
            il=a.dl;
            cout<<"wektor pierwszy zostal skrocony\n"; 
            }
        if (dl==a.dl)
            {
            il=dl;    
            }
        for (int i=0;i<il;i++)
            {
            wynik=wynik+(el[i]*a.el[i]);    
            }
        return(wynik);    
        };  
    void zmiana(int a)
        {
        zesp *pom=new zesp[a];
        if (a<=dl)
            {
            dl=a;
            for (int i=0;i<a;i++)
                {
                pom[i]=el[i];    
                }    
            }
        else
            {
            int i=0;
            double w,e;
            for (i;i<dl;i++)
                {
                pom[i]=el[i];    
                } 
            cout<<"nowy wektor ma wieksza dlugosc wiec, musisz podac nowe elementy\nelementy przepisane: "<<dl;
            cout<<"\nbrakujace elementy: "<<a-dl<<"\n";
            for(i;i<a;i++)
                {
                cout<<"element "<<i+1<<" czesc re: ";
                cin>>w;
                cout<<"                im: ";
                cin>>e;
                zesp a(w,e);
                pom[i]=a;
                }
            dl=a;
            }
        delete []el;
        el=new zesp[dl];
        for (int k=0;k<a;k++)
            {    
            el[k]=pom[k];    
            }
        delete []pom; 
        }; 
         
    void druk()
        {
        for(int i=0;i<dl;i++)
            {
            el[i].druk();    
            }        
        }; 
    
};

int main()
{
char zg;
do
{
int wyb;
cout<<"1 --> zamiana dlugosci\n";
cout<<"2 --> mnozenie wektorow\n";
cout<<"3 --> konstruktor kopiujacy\n";
cout<<"wybierz funkcje: ";
cin>>wyb;
switch(wyb)
    {
    case(1):
        {
            cout<<"podaj dlugosc: ";
        int ww;
        cin>>ww;
        wektor a(ww);
        a.druk();
        int za;
        cout<<" na ile zmieniamy? ";
        cin>>za;
        cout<<"\n";
        a.zmiana(za);
        a.druk();   
        break; 
        }
     case (2):
        {
        int d,q;
        cout<<"podaj dlugosc pierwszego wektora ";
        cin>>d;
        cout<<"podaj dlugosc drugiego wektora ";
        cin>>q;
        cout<<"pierwszy wektor: \n";
        wektor a(d);
        cout<<"drugi wektor: \n";
        wektor b(q);
        (a*b).druk();
        break;        
        }
     case (3):
        {    
        int ww;
        cout<<"podaj dlugosc wektora wzorcowego: ";
        cin>>ww;
        cout<<"wektor wzorcowy: \n";
        wektor a(ww);
        wektor q(a);
        cout<<"wektor skopiowany: ";
        q.druk();
        break;
        }
     default:
        {
        cout<<"podaj liczbe od 1 do 3\n";    
        }
        
    }
cout<<"Pracujemy dajlej? t/n ";
cin>>zg;
}while(zg=='t');

}

>> http://img80.imageshack.us/img80/5980/palylm4.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.plwww.rilko.pl www.piesku.pl www.zarazenipodroza.pl