Advertisement
Jordimario

Esercizio c++

Jan 30th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.63 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. ///codice che fa la somma di due numeri espressi in base 3.
  7.  
  8. int main()
  9. {
  10.   int a[4], b[4], c[4], i=0, r, num, s=0;
  11.  
  12.  
  13.   cout<<"carico l'array a, partendo dalla cifra piu' significativa"<<endl; ///max valore: 1 2 2 2 (53 in base 10)  per evitare un overflow.
  14.   while(i<4)
  15.    {
  16.      cout<<"inserisci una cifra"<<endl;
  17.      cin>>num;
  18.      if(num>=0 && num<3)
  19.       {
  20.        a[i]=num;
  21.        i++;
  22.       }
  23.      else
  24.       {
  25.         cout<<"valore non valido"<<endl;
  26.       }
  27.    }
  28.   cout<<endl;
  29.    s=0;
  30.   for(i=0; i<4; i++)   ///conversione da base 3 a base 10
  31.     {
  32.       cout<<a[i]<<" ";
  33.       s=s+a[i]*pow((float) 3,3-i);
  34.     }
  35.   cout<<endl;
  36.  cout<<s<<" in base 10"<<endl;
  37.  cout<<endl;
  38.   cout<<"carico l'array b, partendo dalla cifra piu' significativa"<<endl;  ///max valore: 0 2 2 2 (26 in base 10) per evitare un overflow.
  39.   i=0;
  40.   while(i<4)
  41.    {
  42.      cout<<"inserisci una cifra"<<endl;
  43.      cin>>num;
  44.      if(num>=0 && num<=2)
  45.       {
  46.        b[i]=num;
  47.        i++;
  48.       }
  49.      else
  50.       {
  51.          cout<<"valore non valido"<<endl;
  52.       }
  53.    }
  54.   cout<<endl;
  55.     s=0;
  56.    for(i=0; i<4; i++)
  57.    {
  58.       cout<<b[i]<<" ";
  59.       s=s+b[i]*pow((float) 3,3-i);
  60.    }
  61.   cout<<endl;
  62.   cout<<s<<" in base 10"<<endl;
  63.   ///calcolo la somma delle due cifre meno significative col relativo riporto.
  64.   if(a[3]==0 && b[3]==0)
  65.    {
  66.        c[3]=0;
  67.        r=0;
  68.    }
  69.   if((a[3]==1 && b[3]==0) || (a[3]==0 && b[3]==1))
  70.    {
  71.        c[3]=1;
  72.        r=0;
  73.    }
  74.   if(a[3]==1 && b[3]==1)
  75.    {
  76.       c[3]=2;
  77.       r=0;
  78.    }
  79.   if((a[3]==2 && b[3]==0) || (a[3]==0 && b[3]==2))
  80.    {
  81.        c[3]=2;
  82.        r=0;
  83.    }
  84.   if((a[3]==2 && b[3]==1) || (a[3]==1 && b[3]==2))
  85.    {
  86.        c[3]=0;
  87.        r=1;
  88.    }
  89.   if((a[3]==2 && b[3]==2))
  90.    {
  91.        c[3]=1;
  92.        r=1;
  93.    }
  94.  cout<<endl;
  95.  for(i=2; i>=0; i--)
  96.   {
  97.       if((a[i]==0 && b[i]==0) && r==0)
  98.        {
  99.            c[i]=0;
  100.            r=0;
  101.        }
  102.       if((a[i]==0 && b[i]==0) && r==1)
  103.        {
  104.          c[i]=1;
  105.          r=0;
  106.        }
  107.       if(((a[i]==1 && b[i]==0) || (a[i]==0 && b[i]==1) && r==0))
  108.        {
  109.            c[i]=1;
  110.            r=0;
  111.        }
  112.       if(((a[i]==1 && b[i]==0) || (a[i]==0 && b[i]==1) && r==1))
  113.        {
  114.            c[i]=2;
  115.            r=0;
  116.        }
  117.       if((a[i]==1 && b[i]==1) && r==0)
  118.        {
  119.            c[i]=2;
  120.            r=0;
  121.        }
  122.       if((a[i]==1 && b[i]==1) && r==1)
  123.        {
  124.            c[i]=0;
  125.            r=1;
  126.        }
  127.       if(((a[i]==2 && b[i]==0) || (a[i]==0 && b[i]==2) && r==0))
  128.        {
  129.            c[i]=2;
  130.            r=0;
  131.        }
  132.       if(((a[i]==2 && b[i]==0) || (a[i]==0 && b[i]==2) && r==1))
  133.        {
  134.            c[i]=0;
  135.            r=1;
  136.        }
  137.       if(((a[i]==2 && b[i]==1) || (a[i]==1 && b[i]==2) && r==0))
  138.        {
  139.            c[i]=0;
  140.            r=1;
  141.        }
  142.       if(((a[i]==2 && b[i]==1) || (a[i]==1 && b[i]==2) && r==1))
  143.        {
  144.            c[i]=1;
  145.            r=1;
  146.        }
  147.       if((a[i]==2 && b[i]==2) && r==0)
  148.        {
  149.            c[i]=1;
  150.            r=1;
  151.        }
  152.       if(a[i]==2 && b[i]==2 && r==1)
  153.        {
  154.            c[i]=2;
  155.            r=1;
  156.        }
  157.   }
  158.    cout<<endl;
  159.     s=0;
  160.     for(i=0; i<4; i++)
  161.      {
  162.       cout<<a[i]<<" ";
  163.      }
  164.    cout<<endl;
  165.     s=0;
  166.    for(i=0; i<4; i++)
  167.    {
  168.       cout<<b[i]<<" ";
  169.    }
  170.   cout<<endl;
  171.  
  172.       for(i=0; i<4; i++)
  173.        {
  174.            cout<<c[i]<<" ";
  175.        }
  176.       cout<<endl;
  177.       s=0;
  178.   for(i=0; i<4; i++)
  179.   {
  180.       s=s+c[i]*pow((float) 3,3-i);
  181.   }
  182.  cout<<endl;
  183.  cout<<s<<" in base 10"<<endl;
  184.  
  185.  
  186.  
  187.  
  188.  
  189.   system("PAUSE");
  190.   return 0;
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement