Advertisement
rengetsu

Matricu_Pervedimas_EdgarasKaziukonis

Oct 23rd, 2017
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 13.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <iomanip>
  4. #include <cmath>
  5. #include <math.h>
  6. #include <sstream>
  7.  
  8.  
  9. using namespace std;
  10. long double DecimalToOctal(string c);
  11. string HEXToBinary(string c);
  12. string DecimalToHEX (string c);
  13. string BinaryToDecimal (string c );
  14. string OctalToDecimal(string c);
  15.  
  16. int main()
  17. {
  18.     begin:
  19.     int b1,b2;
  20.     long double a;
  21.     string binary, galutinis, result, HEX, c;
  22.     setlocale(LC_ALL, "Lithuanian");
  23.     cout << "Sveiki atvyke i skaiciavimo sistemu konvertoriu" << endl<<endl;
  24.     cout<<"Iveskite konvertuojamu funkciju pagrindus"<<endl;
  25.     cout<<"1: ";cin>>b1;
  26.     cout<<"2: ";cin>>b2;
  27.     if (b1==16&& b2==2)
  28.      {
  29.          cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  30.         cout<<"Iveskite sesioliktaini skaiciavimo sistemos skaiciu"<<endl<<endl;
  31.         cin>>c;
  32.         cout.precision(20);
  33.         cout<<"Rezultatas:"<<HEXToBinary(c)<<endl;
  34.         goto begin;
  35.     }
  36.  
  37.     if (b1==10&&b2==16)
  38.     {
  39.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  40.          cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu"<<endl<<endl;
  41.         cin>>c;
  42.         cout.precision(20);
  43.         cout<<"Rezultatas:"<<DecimalToHEX(c)<<endl;
  44.         goto begin;
  45.     }
  46.     if (b1==2&& b2==10)
  47.         {
  48.             cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  49.             cout<<"Iveskite dvejetaines skaiciavimo sistemos skaiciu"<<endl<<endl;
  50.         cin>>c;
  51.         cout.precision(20);
  52.         cout<<"Rezultatas:"<<fixed<<BinaryToDecimal(c)<<endl;
  53.         goto begin;
  54.  
  55.         }
  56.     if (b1==10&& b2==2)
  57.     {
  58.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  59.         cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  60.         cin>>c;
  61.         cout.precision(20);
  62.         cout<<"Rezultatas: "<<HEXToBinary(DecimalToHEX(c))<<endl;
  63.         goto begin;
  64.     }
  65.     if (b1==2&& b2==16)
  66.     {
  67.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  68.         cout<<"Iveskite dvejetaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  69.         cin>>c;
  70.         cout.precision(20);
  71.         cout<<"Rezultatas: "<<DecimalToHEX(BinaryToDecimal(c))<<endl;
  72.         goto begin;
  73.     }
  74.     if (b1==16&& b2==8)
  75.     {
  76.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  77.         cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  78.         cin>>c;
  79.         cout.precision(20);
  80.         cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(HEXToBinary(c)))<<endl;
  81.         goto begin;
  82.     }
  83.     if (b1==16&& b2==10)
  84.     {
  85.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  86.         cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  87.         cin>>c;
  88.         cout.precision(20);
  89.         cout<<"Rezultatas: "<<BinaryToDecimal(HEXToBinary(c))<<endl;
  90.         goto begin;
  91.     }
  92.     if (b1==10&& b2==8)
  93.     {
  94.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  95.         cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  96.         cin>>c;
  97.         cout.precision(20);
  98.         cout<<"Rezultatas:"<<DecimalToOctal(c)<<endl;
  99.         goto begin;
  100.     }
  101.     if (b1==16&& b2==8)
  102.     {
  103.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  104.         cout<<"Iveskite sesioliktaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  105.         cin>>c;
  106.         cout.precision(20);
  107.         cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(HEXToBinary(c)))<<endl;
  108.         goto begin;
  109.     }
  110.     if (b1==8&& b2==10)
  111.     {
  112.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  113.         cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  114.         cin>>c;
  115.         cout.precision(20);
  116.         cout<<"Rezultatas: "<<OctalToDecimal(c)<<endl;
  117.         goto begin;
  118.     }
  119.     if (b1==8&& b2==16)
  120.     {
  121.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  122.         cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  123.         cin>>c;
  124.         cout.precision(20);
  125.         cout<<"Rezultatas: "<<DecimalToHEX(OctalToDecimal(c))<<endl;
  126.         goto begin;
  127.     }
  128.     if (b1==8&& b2==2)
  129.     {
  130.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  131.         cout<<"Iveskite astuntaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  132.         cin>>c;
  133.         cout.precision(20);
  134.         cout<<"Rezultatas: "<<HEXToBinary(DecimalToHEX(OctalToDecimal(c)))<<endl;
  135.         goto begin;
  136.     }
  137.     if (b1==2&& b2==8)
  138.     {
  139.         cout<<"Konvertavimas "<<b1<<" ==> "<<b2<<endl;
  140.         cout<<"Iveskite desimtaines skaiciavimo sistemos skaiciu:"<<endl<<endl;
  141.         cin>>c;
  142.         cout.precision(20);
  143.         cout<<"Rezultatas: "<<DecimalToOctal(BinaryToDecimal(c))<<endl;
  144.         goto begin;
  145.     }
  146.     return 0;
  147. }
  148. long double DecimalToOctal(string c)
  149.  
  150. {
  151.     long long intbin=0, j=0, i = 0, rem=0, octal=0, intoctal1, k=0;
  152.     long double octal1=0, res=0, trupm=0;
  153.     string sskaic, ssveik,strupm,sres, sbinary,sdott;
  154.  
  155.     while(c[j]!=0)
  156.     {
  157.         sbinary=c[j];
  158.         ssveik=ssveik+sbinary;
  159.         j++;
  160.         if (sbinary==".")
  161.         {
  162.             sdott=sbinary;
  163.             while(c[j]!=0)
  164.             {
  165.                 sbinary=c[j];
  166.                 strupm=strupm+sbinary;
  167.                 j++;
  168.                 k=1;
  169.  
  170.             }
  171.         }
  172.         strupm=sdott+strupm;
  173.  
  174.     }
  175.      if(k=1)
  176.      {
  177.          stringstream str( strupm );
  178.      str>>trupm;
  179.      }
  180.      stringstream str1( ssveik );
  181.      str1>>intbin;
  182.     i=1;
  183.      while (intbin!= 0)
  184.     {
  185.         rem =intbin%8;
  186.         intbin /= 8;
  187.         octal += rem * i;
  188.         i *= 10;
  189.     }
  190.     i=1;
  191.  
  192.             while (trupm!=0&&i<25)
  193.         {
  194.             trupm=trupm*8;
  195.             intoctal1=trupm;
  196.             octal1+=(intoctal1)*pow(10,(-i));
  197.             trupm=trupm-intoctal1;
  198.             i++;
  199.         }
  200.     res=octal+octal1;
  201.     return res;
  202. }
  203. string HEXToBinary(string c)
  204. {
  205.     int sveik, n=0, i=0, h;
  206.     string HEX,binary, galutinis, result;
  207.     n=0;
  208.     while (c[n]!=0)
  209.     {
  210.         HEX = c[n];
  211.         n++;
  212.         if (HEX=="0")
  213.        {
  214.            string binary="0000";
  215.            result=binary;
  216.  
  217.        }
  218.  
  219.        if (HEX=="1")
  220.        {
  221.            string binary="0001";
  222.            result=binary;
  223.  
  224.        }
  225.        if (HEX=="2")
  226.        {
  227.            string binary="0010";
  228.            result=binary;
  229.        }
  230.        if (HEX=="3")
  231.        {
  232.            string binary="0011";
  233.            result=binary;
  234.        }
  235.        if (HEX=="4")
  236.        {
  237.            string binary="0100";
  238.            result=binary;
  239.        }
  240.        if (HEX=="5")
  241.        {
  242.            string binary="0101";
  243.            result=binary;
  244.        }
  245.        if (HEX=="6")
  246.        {
  247.            string binary="0110";
  248.            result=binary;
  249.        }
  250.        if (HEX=="7")
  251.        {
  252.            string binary="0111";
  253.            result=binary;
  254.        }
  255.         if (HEX=="8")
  256.        {
  257.            string binary="1000";
  258.            result=binary;
  259.        }
  260.         if (HEX=="9")
  261.        {
  262.            string binary="1001";
  263.            result=binary;
  264.        }
  265.         if (HEX=="A")
  266.        {
  267.            string binary="1010";
  268.            result=binary;
  269.        }
  270.        if (HEX=="B")
  271.        {
  272.            string binary="1011";
  273.            result=binary;
  274.        }
  275.         if (HEX=="C")
  276.        {
  277.            string binary="1100";
  278.            result=binary;
  279.        }
  280.         if (HEX=="D")
  281.        {
  282.            string binary="1101";
  283.            result=binary;
  284.        }
  285.         if (HEX=="E")
  286.        {
  287.            string binary="1110";
  288.            result=binary;
  289.        }
  290.         if (HEX=="F")
  291.        {
  292.            string binary="1111";
  293.            result=binary;
  294.        }
  295.         if (HEX==",")
  296.         {
  297.            string binary=".";
  298.             result=binary;
  299.         }
  300.          if (HEX==".")
  301.         {
  302.  
  303.            string binary=".";
  304.             result=binary;
  305.         }
  306.        galutinis=galutinis+result;
  307.     }
  308.         return galutinis;
  309.  
  310. }
  311. string DecimalToHEX (string c )
  312. {
  313.     long double trupm, a;
  314.     int sveik, liek, n;
  315.     string result, binary, galutinis;
  316.  
  317.     stringstream s_str( c );
  318.     s_str>>setprecision(20)>>a;
  319.  
  320.  
  321.  
  322.  
  323.     sveik=a;
  324.     trupm=a-sveik;
  325.     while (sveik!=0)
  326.     {   liek=sveik;
  327.         sveik=sveik/16;
  328.         liek=liek%16;
  329.     if (liek>=0)
  330.        if (liek==0)
  331.        {
  332.            string binary="0";
  333.            result=binary;
  334.  
  335.        }
  336.  
  337.        if (liek==1)
  338.        {
  339.            string binary="1";
  340.            result=binary;
  341.  
  342.        }
  343.        if (liek==2)
  344.        {
  345.            string binary="2";
  346.            result=binary;
  347.        }
  348.        if (liek==3)
  349.        {
  350.            string binary="3";
  351.            result=binary;
  352.        }
  353.        if (liek==4)
  354.        {
  355.            string binary="4";
  356.            result=binary;
  357.        }
  358.        if (liek==5)
  359.        {
  360.            string binary="5";
  361.            result=binary;
  362.        }
  363.        if (liek==6)
  364.        {
  365.            string binary="6";
  366.            result=binary;
  367.        }
  368.        if (liek==7)
  369.        {
  370.            string binary="7";
  371.            result=binary;
  372.        }
  373.         if (liek==8)
  374.        {
  375.            string binary="8";
  376.            result=binary;
  377.        }
  378.         if (liek==9)
  379.        {
  380.            string binary="9";
  381.            result=binary;
  382.        }
  383.         if (liek==10)
  384.        {
  385.            string binary="A";
  386.            result=binary;
  387.        }
  388.        if (liek==11)
  389.        {
  390.            string binary="B";
  391.            result=binary;
  392.        }
  393.         if (liek==12)
  394.        {
  395.            string binary="C";
  396.            result=binary;
  397.        }
  398.         if (liek==13)
  399.        {
  400.            string binary="D";
  401.            result=binary;
  402.        }
  403.         if (liek==14)
  404.        {
  405.            string binary="E";
  406.            result=binary;
  407.        }
  408.         if (liek==15)
  409.        {
  410.            string binary="F";
  411.            result=binary;
  412.        }
  413.  
  414.        galutinis=result+galutinis;
  415.  
  416.     }
  417.     if (trupm!=0)
  418.     {
  419.         string kablelis=".";
  420.         galutinis=galutinis+kablelis;
  421.         while (trupm!=0)
  422.         {
  423.             trupm=trupm*16;
  424.             sveik=trupm;
  425.         if (sveik==0)
  426.         {
  427.             binary="0";
  428.             result=binary;
  429.  
  430.         }
  431.         if (sveik==1)
  432.        {
  433.            string binary="1";
  434.            result=binary;
  435.  
  436.        }
  437.        if (sveik==2)
  438.        {
  439.            string binary="2";
  440.            result=binary;
  441.        }
  442.        if (sveik==3)
  443.        {
  444.            string binary="3";
  445.            result=binary;
  446.        }
  447.        if (sveik==4)
  448.        {
  449.            string binary="4";
  450.            result=binary;
  451.        }
  452.        if (sveik==5)
  453.        {
  454.            string binary="5";
  455.            result=binary;
  456.        }
  457.        if (sveik==6)
  458.        {
  459.            string binary="6";
  460.            result=binary;
  461.        }
  462.        if (sveik==7)
  463.        {
  464.            string binary="7";
  465.            result=binary;
  466.        }
  467.         if (sveik==8)
  468.        {
  469.            string binary="8";
  470.            result=binary;
  471.        }
  472.         if (sveik==9)
  473.        {
  474.            string binary="9";
  475.            result=binary;
  476.        }
  477.         if (sveik==10)
  478.        {
  479.            string binary="A";
  480.            result=binary;
  481.        }
  482.        if (sveik==11)
  483.        {
  484.            string binary="B";
  485.            result=binary;
  486.        }
  487.         if (sveik==12)
  488.        {
  489.            string binary="C";
  490.            result=binary;
  491.        }
  492.         if (sveik==13)
  493.        {
  494.            string binary="D";
  495.            result=binary;
  496.        }
  497.         if (sveik==14)
  498.        {
  499.            string binary="E";
  500.            result=binary;
  501.        }
  502.         if (sveik==15)
  503.        {
  504.            string binary="F";
  505.            result=binary;
  506.        }
  507.        galutinis=galutinis+result;
  508.        trupm=trupm-sveik;
  509.         }
  510.     }
  511.     return galutinis;
  512. }
  513.  
  514. string BinaryToDecimal (string c )
  515. {
  516.     long long intbin=1, j=0, rem=0, galutinis=0,lyginti=0, trupm=1, i=0;
  517.     long double decimal=0, decimal1=0, res=0, trupm2=1, fracpart, intpart;
  518.     string ssveik, sbinary, strupm, sres, ssv, st;
  519.     while(c[j]!=0)
  520.     {
  521.         sbinary=c[j];
  522.         ssveik=ssveik+sbinary;
  523.         j++;
  524.         if (sbinary==".")
  525.         {
  526.             while(c[j]!=0)
  527.             {
  528.                 sbinary=c[j];
  529.                 strupm=strupm+sbinary;
  530.                 j++;
  531.             }
  532.         }
  533.  
  534.     }
  535.     i=1;
  536.     j=0;
  537.     while (strupm[i]!=0)
  538.     {
  539.         st=strupm[j];
  540.         stringstream s_str( st );
  541.         trupm=0;
  542.         s_str>>trupm;
  543.         rem = trupm%10;
  544.         decimal1= decimal1 + rem*pow(0.5,i);
  545.         ++i;
  546.         j++;
  547.     }
  548.     i=0;
  549.         stringstream s_str1( ssveik );
  550.         s_str1>>setprecision(20)>>intbin;
  551.     //intbin=bin;
  552.     while (intbin!=0)
  553.     {
  554.         rem = intbin%10;
  555.         intbin=intbin/10;
  556.         decimal= decimal + rem*pow(2,i);
  557.         ++i;
  558.     }
  559.     cout.precision(20);
  560.     res=decimal+decimal1;
  561.     ostringstream ss;
  562.      ss <<setprecision(20)<<res;
  563.      sres=ss.str();
  564.  
  565.    return sres;
  566. }
  567. string OctalToDecimal(string c)
  568. {
  569.     int decimal = 0, i = 0,j=0, rem=0, k=0, octal=0, octal1=0, inta;
  570.     string sdecimal, ssveik, strupm, sbinary, sdott, sres;
  571.     long double trupm=0, decimal1=0, res;
  572.     while(c[j]!=0)
  573.     {
  574.         sbinary=c[j];
  575.         ssveik=ssveik+sbinary;
  576.         j++;
  577.         if (sbinary==".")
  578.         {
  579.             while(c[j]!=0)
  580.             {
  581.                 sbinary=c[j];
  582.                 strupm=sbinary+strupm;
  583.                 j++;
  584.                 k=1;
  585.  
  586.             }
  587.         }
  588.  
  589.     }
  590.      if(k=1)
  591.      {
  592.          stringstream str( strupm );
  593.      str>>octal1;
  594.  
  595.      }
  596.      stringstream str1( ssveik );
  597.      str1>>octal;
  598.     while (octal != 0)
  599.     {
  600.         rem = octal % 10;
  601.         octal /= 10;
  602.         decimal += rem * pow(8, i);
  603.         ++i;
  604.     }
  605.     rem=0;
  606.     i=1;
  607.     if (k=1)
  608.     {
  609.             while (octal1 != 0)
  610.         {
  611.             rem = octal1 % 10;
  612.             octal1 /= 10;
  613.             decimal1 += rem * pow((0.125), i);
  614.             ++i;
  615.  
  616.         }
  617.     }
  618.     res=decimal+decimal1;
  619.     ostringstream ss;
  620.     ss <<setprecision(20)<< res;
  621.      sres=ss.str();
  622.  
  623.     return sres;
  624. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement