All pastes #46150 Raw Edit

Someone

public cpp v1 · immutable
#46150 ·published 2006-03-18 18:54 UTC
rendered paste body
#include <iostream>#include <list>using namespace std;//dodawanievoid dodaj(list<int> a,list<int> b);//czzesc wspolnavoid iloczyn(list<int> a,list<int> b);//odejmowanievoid odejmij(list<int> a,list<int> b);//iloczyn kartezjanskivoid ik(list<int> a,list<int> b);//wyswietlanievoid wyswietl(list<int> a);int main(){	int T,X,Y,Z;	int i,j,k,l,m,n,tmp;	list<int> lstA,lstB;	char dzialanie[3],ch;	cin>>T;	for(i=0;i<T;i++)	{	    cin>>X>>Y>>Z;	    for(j=0;j<X;j++)	    {         cin>>tmp;         lstA.push_back(tmp);        }        for(k=0;k<Y;k++)        {         cin>>tmp;         lstB.push_back(tmp);        }       cout<<"A=";wyswietl(lstA);       cout<<"B=";wyswietl(lstB);        for(l=0;l<Z;l++)       {        for(m=0;m<3;m++)        {         cin>>ch;         dzialanie[m]=ch;        }//        for(m=0;m<3;m++) cout<<dzialanie[m];  //      cout<<endl;        switch(dzialanie[1])        {          case '*':{                    if((dzialanie[0]=='A')&&(dzialanie[2]=='B'))                    {                     cout<<"A*B=";                     iloczyn(lstA,lstB);                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='A'))                    {                     cout<<"B*A=";                     iloczyn(lstB,lstA);                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='B'))                    {                     cout<<"B*B=";                     wyswietl(lstB);                     break;                    }                    if((dzialanie[0]=='A')&&(dzialanie[2]=='A'))                    {                     cout<<"A*A=";                     wyswietl(lstA);                     break;                    }                    break;                   }           case '+':{                    if((dzialanie[0]=='A')&&(dzialanie[2]=='B'))                    {                     cout<<"A+B=";                     dodaj(lstA,lstB);                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='A'))                    {                     cout<<"B+A=";                     dodaj(lstA,lstB);                     break;                    }                    if((dzialanie[0]=='A')&&(dzialanie[2]=='A'))                    {                     cout<<"A+A=";                     wyswietl(lstA);                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='B'))                    {                     cout<<"B+B=";                     wyswietl(lstB);                     break;                    }                    break;                   }           case '-':{                    if((dzialanie[0]=='A')&&(dzialanie[2]=='B'))                    {                     cout<<"A-B=";                     odejmij(lstA,lstB);                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='A'))                    {                     cout<<"B-A=";                     odejmij(lstB,lstA); break;                    }                    if((dzialanie[0]=='A')&&(dzialanie[2]=='A'))                    {                     cout<<"A-A={0}"<<endl; break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='B'))                    {                     cout<<"B-B={0}"<<endl; break;                    }                    break;                   }          case 'x':{                    if((dzialanie[0]=='A')&&(dzialanie[2]=='B'))                    {                     cout<<"AxB={";                     ik(lstA,lstB);                     cout<<"}"<<endl;                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='A'))                    {                     cout<<"BxA={";                     ik(lstB,lstA);                     cout<<"}"<<endl;                     break;                    }                    if((dzialanie[0]=='B')&&(dzialanie[2]=='B'))                    {                     cout<<"BxB={";                    ik(lstB,lstB);                     cout<<"}"<<endl;                     break;                    }                    if((dzialanie[0]=='A')&&(dzialanie[2]=='A'))                    {                     cout<<"AxA={";                     ik(lstA,lstA);                     cout<<"}"<<endl;                     break;                    }                    break;                   }        }       }       lstA.clear();       lstB.clear();	}	return 0;}void dodaj(list<int> a,list<int> b){ list<int> lstC; list<int>::iterator k; for(k=a.begin();k!=a.end();k++)  lstC.push_back(*k); for(k=b.begin();k!=b.end();k++)  lstC.push_back(*k); //sortowanie elementow lstC.sort(); //szukanie duplikatow i usuwanie lstC.unique(); wyswietl(lstC); lstC.clear();}//czzesc wspolnavoid iloczyn(list<int> a,list<int> b){ list<int> lstC; list<int>::iterator k,l; for(k=a.begin();k!=a.end();k++)  for(l=b.begin();l!=b.end();l++)  {   if((*k)==(*l)) lstC.push_back(*k);  }  lstC.sort();  lstC.unique();  wyswietl(lstC);  lstC.clear();}void odejmij(list<int> a,list<int> b){ list<int> lstC; list<int>::iterator k,l;  for(k=a.begin();k!=a.end();k++)   lstC.push_back(*k);  for(k=b.begin();k!=b.end();k++)   {    l=lstC.begin();    while(l!=lstC.end())    {     if((*k)==(*l)) l=lstC.erase(l);     l++;    }    lstC.sort();    lstC.unique();   }   wyswietl(lstC);   lstC.clear();}void wyswietl(list<int> a){ int tmp=1; list<int>::iterator i; cout<<"{"; if(a.size()!=0) {  for(i=a.begin();i!=a.end();i++)  {   if(tmp<a.size()) cout<<(*i)<<",";    else cout<<(*i);   tmp++;  }  cout<<"}"<<endl; } else cout<<"0}"<<endl;}void ik(list<int> a,list<int> b){ list<int> lstC; list<int>::iterator i,j; int temp1=1,temp2=a.size()*b.size(); for(i=a.begin();i!=a.end();i++)  for(j=b.begin();j!=b.end();j++)  {   cout<<"{"<<*i<<","<<*j<<"}";   if(temp1<temp2) cout<<",";   temp1++;  }}