fojtasd

Untitled

Dec 18th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     string s1, s2, s3;
  10.     bool mazani_s1 = true;
  11.     bool mazani_s2 = true;
  12.     bool mazani_s3 = true;
  13.     bool add = false;
  14.  
  15.     cout << "Zadejte dve binarni cisla:" << endl;
  16.     cin >> s1;
  17.     cin >> s2;
  18.  
  19.     //osetreni vstupu proti jinym znakum, nez 1 nebo 0 a smazani prebytecnych nul na zacatku
  20.  
  21.     for (unsigned int i = 0; i < s1.length(); i++)
  22.     {
  23.         if ((s1[i] != '0') && (s1[i] != '1'))
  24.         {
  25.             cout << "Nespravny vstup." << endl;
  26.             return 0;
  27.         }
  28.  
  29.         if (s1[i] == 49)
  30.         {
  31.             mazani_s1 = false;
  32.         }
  33.  
  34.         if (s1[i] == 48 && mazani_s1 == true)
  35.         {
  36.             s1.erase(i, 1);
  37.             i = -1;
  38.         }
  39.        
  40.     }
  41.  
  42.     for (unsigned int i = 0; i < s2.length(); i++)
  43.     {
  44.         if ((s2[i] != '0') && (s2[i] != '1'))
  45.         {
  46.             cout << "Nespravny vstup." << endl;
  47.             return 0;
  48.         }
  49.  
  50.         if (s2[i] == 49)
  51.         {
  52.             mazani_s2 = false;
  53.         }
  54.  
  55.         if (s2[i] == 48 && mazani_s2 == true)
  56.         {
  57.             s2.erase(i, 1);
  58.             i = -1;
  59.         }
  60.     }
  61.    
  62.     while (s1.length() != s2.length())
  63.     {
  64.         if (s1.length() > s2.length())
  65.         {
  66.             s2 = "0" + s2;
  67.         }
  68.         else s1 = "0" + s1;
  69.     };
  70.  
  71.     s2 = "0" + s2;
  72.     s1 = "0" + s1;
  73.    
  74.     unsigned int i = s1.length();
  75.  
  76.     do
  77.         {
  78.             if (s1[i] == '1' && s2[i] == '1')
  79.             {
  80.                 if (add == true)
  81.                 {
  82.                     s3 = "1" + s3;
  83.                 }
  84.                 else
  85.                 {
  86.                     s3 = "0" + s3;
  87.                     add = true;
  88.                 }
  89.             }
  90.  
  91.             if (s1[i] == '0' && s2[i] == '0')
  92.             {
  93.                 if(add == true)
  94.                 {
  95.                     s3 = "1" + s3;
  96.                     add = false;
  97.                 }
  98.                 else
  99.                 {
  100.                     s3 = "0" + s3;
  101.                     add = false;
  102.                 }
  103.  
  104.             }
  105.  
  106.             if (s1[i] == '1' && s2[i] == '0')
  107.             {
  108.                
  109.                 if (add == true)
  110.                 {
  111.                     s3 = "0" + s3;
  112.                 }
  113.                 else
  114.                 {
  115.                     s3 = "1" + s3;
  116.                     add = false;
  117.                 }
  118.             }
  119.            
  120.  
  121.             if (s1[i] == '0' && s2[i] == '1')
  122.             {
  123.                 if (add == true)
  124.                 {
  125.                     s3 = "0" + s3;
  126.                 }
  127.                 else
  128.                 {
  129.                     s3 = "1" + s3;
  130.                     add = false;
  131.                 }
  132.             }
  133.     --i;
  134.     } while (i != 0);
  135.    
  136.    
  137.     if (add == true)
  138.     {
  139.         s3 = "1" + s3;
  140.     }
  141.  
  142.     for (unsigned int i = 0; i < s3.length(); i++)
  143.     {
  144.        
  145.         if (s3[i] == 49)
  146.         {
  147.             mazani_s3 = false;
  148.         }
  149.  
  150.         if (s3[i] == 48 && mazani_s3 == true)
  151.         {
  152.             s3.erase(i, 1);
  153.             i = -1;
  154.         }
  155.     }
  156.  
  157.  
  158.     cout << "Soucet: " << s3 << endl;
  159.    
  160.    
  161.     return 0;
  162.    
  163. }
Advertisement
Add Comment
Please, Sign In to add comment