Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.29 KB | None | 0 0
  1. #include<windows.h>
  2. #include<conio.h>
  3. #include<stdio.h>
  4. #include <cstdlib>
  5. #include <ctime>
  6.  
  7. char intr;
  8. int A[1000];
  9. int B[1000];
  10. int C[1000];
  11. int D[1000];
  12. int Rez[1000];
  13. int Rez1[1000];
  14. int exit3=0;
  15. int sum, gran, dif, multi, m, b;
  16. int doping=0;
  17. int first=0;
  18. int exit4=0;
  19. int second=0;
  20. int i=0;
  21. int a=0;
  22. int end1=0;
  23. int end2=0;
  24. int nul1=0;
  25. int nul2=0;
  26. bool exit1=false;
  27. bool exit2=false;
  28. int minus1=0;
  29. int minus2=0;
  30. void comp()
  31. {
  32.     if (end1>end2)
  33.     {
  34.         first=1;
  35.     }
  36.     if (end2>end1)
  37.     {
  38.         second=1;
  39.     }
  40.     if (end1==end2)
  41.     {
  42.         for (int i=0; i<1000; i=i+1)
  43.         {
  44.             if (C[i]>D[i])
  45.             {
  46.                 first=1;
  47.                 break;
  48.             }
  49.             if (C[i]<D[i])
  50.             {
  51.                 second=1;
  52.                 break;
  53.             }
  54.         }
  55.     }
  56. }
  57. void plus_a_b()
  58. {
  59.     for (int i=999; i>-1; i=i-1)
  60.         {
  61.             sum=C[i]+D[i];
  62.             if (sum>9)
  63.             {
  64.                 Rez[i]=sum % 10;
  65.                 C[i-1]=C[i-1]+1;
  66.             }
  67.             else
  68.             {
  69.                 Rez[i]=sum;
  70.             }
  71.         }
  72.         for (int i=0; i<1000; i=i+1)
  73.         {
  74.             if (Rez[i]!=0)
  75.             {
  76.                 gran=i;
  77.                 break;
  78.             }
  79.         }
  80.         for (int j=gran; j<1000; j=j+1)
  81.         {
  82.             printf("%d", Rez[j]);
  83.         }
  84. }
  85.  
  86. void minus_a_b()
  87. {
  88.     for (int i=999; i>-1; i=i-1)
  89.              {
  90.                  if (C[i]>D[i])
  91.                  {
  92.                      dif=C[i]-D[i];
  93.                      Rez[i]=dif;
  94.                  }
  95.                  if (C[i]==D[i])
  96.                  {
  97.                      dif=C[i]-D[i];
  98.                      Rez[i]=dif;
  99.                  }
  100.                  if (C[i]<D[i])
  101.                  {
  102.                      C[i]=C[i]+10;
  103.                      dif=C[i]-D[i];
  104.                      Rez[i]=dif;
  105.                      C[i-1]=C[i-1]-1;
  106.                  }
  107.              }
  108.             for (int i=0; i<1000; i=i+1)
  109.                {
  110.                  if (Rez[i]!=0)
  111.                  {
  112.                 gran=i;
  113.                 break;
  114.                  }
  115.                }
  116.             for (int j=gran; j<1000; j=j+1)
  117.             {
  118.                 printf("%d", Rez[j]);
  119.             }
  120. }
  121.  
  122. void minus_b_a()
  123. {
  124.     for (int i=999; i>-1; i=i-1)
  125.              {
  126.                  if (D[i]>C[i])
  127.                  {
  128.                      dif=D[i]-C[i];
  129.                      Rez[i]=dif;
  130.                  }
  131.                  if (D[i]==C[i])
  132.                  {
  133.                      dif=D[i]-C[i];
  134.                      Rez[i]=dif;
  135.                  }
  136.                  if (D[i]<C[i])
  137.                  {
  138.                      D[i]=D[i]+10;
  139.                      dif=D[i]-C[i];
  140.                      Rez[i]=dif;
  141.                      D[i-1]=D[i-1]-1;
  142.                  }
  143.              }
  144.             for (int i=0; i<1000; i=i+1)
  145.                {
  146.                  if (Rez[i]!=0)
  147.                  {
  148.                 gran=i;
  149.                 break;
  150.                  }
  151.                }
  152.             for (int j=gran; j<1000; j=j+1)
  153.             {
  154.                 printf("%d", Rez[j]);
  155.             }
  156. }
  157. void summa()
  158. {
  159.     if (minus1==1 && minus2==0)
  160.     {
  161.         if (first==0 && second==0)
  162.         {
  163.             printf("0");
  164.         }
  165.     }
  166.     if (minus1==0 && minus2==1)
  167.     {
  168.         if (first==0 && second==0)
  169.         {
  170.             printf("0");
  171.         }
  172.     }
  173.     if (minus1==0 && minus2==0)
  174.     {
  175.         plus_a_b();
  176.     }
  177.  
  178.     if (minus1==1 && minus2==1)
  179.     {
  180.         printf("-");
  181.         plus_a_b();
  182.     }
  183.  
  184.     if (minus1==1 && minus2==0)
  185.     {
  186.         if (first==1)
  187.         {
  188.             printf("-");
  189.             minus_a_b();
  190.         }
  191.     }
  192.     if (minus1==1 && minus2==0)
  193.     {
  194.         if (second==1 )
  195.         {
  196.             minus_b_a();
  197.         }
  198.     }
  199.     if (minus1==0 && minus2==1)
  200.     {
  201.         if (first==1)
  202.         {
  203.             minus_a_b();
  204.         }
  205.     }
  206.     if (minus1==0 && minus2==1)
  207.     {
  208.         if (second==1)
  209.         {
  210.             printf("-");
  211.             minus_b_a();
  212.         }
  213.     }
  214.  
  215. }
  216. void diff()
  217. {
  218.     if (minus1==0 && minus2==0)
  219.     {
  220.         if (first==0 && second==0)
  221.         {
  222.             printf("0");
  223.         }
  224.     }
  225.     if (minus1==1 && minus2==1)
  226.     {
  227.         if (first==0 && second==0)
  228.         {
  229.             printf("0");
  230.         }
  231.     }
  232.     if (minus1==1 && minus2==0)
  233.     {
  234.         printf("-");
  235.         plus_a_b();
  236.     }
  237.  
  238.     if (minus1==0 && minus2==1)
  239.     {
  240.         plus_a_b();
  241.     }
  242.  
  243.     if (minus1==1 && minus2==1)
  244.     {
  245.         if (first==1)
  246.         {
  247.             printf("-");
  248.             minus_a_b();
  249.         }
  250.     }
  251.     if (minus1==1 && minus2==1)
  252.     {
  253.         if (second==1 )
  254.         {
  255.             minus_b_a();
  256.         }
  257.     }
  258.     if (minus1==0 && minus2==0)
  259.     {
  260.         if (first==1)
  261.         {
  262.             minus_a_b();
  263.         }
  264.     }
  265.     if (minus1==0 && minus2==0)
  266.     {
  267.         if (second==1)
  268.         {
  269.             printf("-");
  270.             minus_b_a();
  271.         }
  272.     }
  273. }
  274.  
  275. void mult()
  276. {
  277.     a=999;
  278.     b=0;
  279.     for (int h=0; h<1000; h=h+1)
  280.     {
  281.         Rez[h]=0;
  282.     }
  283.     if (first==1)
  284.     {
  285.         for (int j=999; j>-1; j=j-1)
  286.         {
  287.             for (int i=999; i>-1; i=i-1)
  288.             {
  289.                 multi=C[i]*D[j]+doping;
  290.                 doping=0;
  291.                 Rez1[a]=multi % 10;
  292.                 doping=multi / 10;
  293.                 a=a-1;
  294.  
  295.             }
  296.             for (int g=999; g>-1; g=g-1)
  297.             {
  298.                 m=Rez1[g]+Rez[g];
  299.                 Rez[g]=(Rez1[g]+Rez[g]) % 10;
  300.                 m=m/10;
  301.                 Rez[g-1]=Rez[g-1]+m;
  302.                
  303.             }
  304.             /*for (int u=0;u<1000;u++)
  305.             {
  306.                 printf("%d", Rez[u]);
  307.             }
  308.             printf("\n");
  309.             exit4=exit4+1;
  310.             if (exit4==7)
  311.             {
  312.                 break;
  313.                 break;
  314.             }*/
  315.             a=j-1;
  316.             doping=0;
  317.  
  318.             for (int y=0; y<1000; y=y+1)
  319.                 {
  320.                     Rez1[y]=0;
  321.                 }
  322.         }
  323.         for (int p=0; p<1000; p=p+1)
  324.                {
  325.                  if (Rez[p]!=0)
  326.                  {
  327.                     gran=p;
  328.                     break;
  329.                  }
  330.                }
  331.             for (int t=gran; t<1000; t=t+1)
  332.             {
  333.                 printf("%d", Rez[t]);
  334.             }
  335.     }
  336.  
  337. }
  338. void main()
  339. {
  340.     printf("Enter number:");
  341.  
  342.     while (!exit1)
  343.     {
  344.         if (_kbhit())
  345.         {
  346.             switch(_getch())
  347.             {
  348.             case '-':
  349.                 minus1=1;
  350.                 printf("-");
  351.                 break;
  352.             case '0':
  353.                 A[i]=0;
  354.                 i=i+1;
  355.                 end1=end1+1;
  356.                 printf("0");
  357.                 break;
  358.             case '1':
  359.                 A[i]=1;
  360.                 i=i+1;
  361.                 end1=end1+1;
  362.                 printf("1");
  363.                 break;
  364.             case '2':
  365.                 A[i]=2;
  366.                 i=i+1;
  367.                 end1=end1+1;
  368.                 printf("2");
  369.                 break;
  370.             case '3':
  371.                 A[i]=3;
  372.                 i=i+1;
  373.                 end1=end1+1;
  374.                 printf("3");
  375.                 break;
  376.             case '4':
  377.                 A[i]=4;
  378.                 i=i+1;
  379.                 end1=end1+1;
  380.                 printf("4");
  381.                 break;
  382.             case '5':
  383.                 A[i]=5;
  384.                 i=i+1;
  385.                 end1=end1+1;
  386.                 printf("5");
  387.                 break;
  388.             case '6':
  389.                 A[i]=6;
  390.                 i=i+1;
  391.                 end1=end1+1;
  392.                 printf("6");
  393.                 break;
  394.             case '7':
  395.                 A[i]=7;
  396.                 i=i+1;
  397.                 end1=end1+1;
  398.                 printf("7");
  399.                 break;
  400.             case '8':
  401.                 A[i]=8;
  402.                 i=i+1;
  403.                 end1=end1+1;
  404.                 printf("8");
  405.                 break;
  406.             case '9':
  407.                 A[i]=9;
  408.                 i=i+1;
  409.                 end1=end1+1;
  410.                 printf("9");
  411.                 break;
  412.             case 'x':
  413.                 exit1=true;
  414.                 break;
  415.             }
  416.         }
  417.     }
  418.     printf("  ");
  419.     i=0;
  420.     while (!exit2)
  421.     {
  422.         if (_kbhit())
  423.         {
  424.             switch(_getch())
  425.             {
  426.             case '-':
  427.                 minus2=1;
  428.                 printf("-");
  429.                 break;
  430.             case '0':
  431.                 B[i]=0;
  432.                 i=i+1;
  433.                 end2=end2+1;
  434.                 printf("0");
  435.                 break;
  436.             case '1':
  437.                 B[i]=1;
  438.                 i=i+1;
  439.                 end2=end2+1;
  440.                 printf("1");
  441.                 break;
  442.             case '2':
  443.                 B[i]=2;
  444.                 i=i+1;
  445.                 end2=end2+1;
  446.                 printf("2");
  447.                 break;
  448.             case '3':
  449.                 B[i]=3;
  450.                 i=i+1;
  451.                 end2=end2+1;
  452.                 printf("3");
  453.                 break;
  454.             case '4':
  455.                 B[i]=4;
  456.                 i=i+1;
  457.                 end2=end2+1;
  458.                 printf("4");
  459.                 break;
  460.             case '5':
  461.                 B[i]=5;
  462.                 i=i+1;
  463.                 end2=end2+1;
  464.                 printf("5");
  465.                 break;
  466.             case '6':
  467.                 B[i]=6;
  468.                 i=i+1;
  469.                 end2=end2+1;
  470.                 printf("6");
  471.                 break;
  472.             case '7':
  473.                 B[i]=7;
  474.                 i=i+1;
  475.                 end2=end2+1;
  476.                 printf("7");
  477.                 break;
  478.             case '8':
  479.                 B[i]=8;
  480.                 i=i+1;
  481.                 end2=end2+1;
  482.                 printf("8");
  483.                 break;
  484.             case '9':
  485.                 B[i]=9;
  486.                 i=i+1;
  487.                 end2=end2+1;
  488.                 printf("9");
  489.                 break;
  490.             case 'x':
  491.                 exit2=true;
  492.                 break;
  493.             }
  494.         }
  495.     }
  496.     for (int i=0; i<1000; i++)
  497.     {
  498.         if (i>end1-1)
  499.         {
  500.             A[i]=0;
  501.             nul1=nul1+1;
  502.         }
  503.         if (i>end2-1)
  504.         {
  505.             B[i]=0;
  506.             nul2=nul2+1;
  507.         }
  508.     }
  509.     for (int i=0; i<1000; i=i+1)
  510.     {
  511.         if (i<nul1)
  512.         {
  513.             C[i]=0;
  514.         }
  515.         else
  516.         {
  517.             C[i]=A[a];
  518.             a=a+1;
  519.         }
  520.     }
  521.     a=0;
  522.     for (int i=0; i<1000; i=i+1)
  523.     {
  524.         if (i<nul2)
  525.         {
  526.             D[i]=0;
  527.         }
  528.         else
  529.         {
  530.             D[i]=B[a];
  531.             a=a+1;
  532.         }
  533.     }
  534.     comp();
  535.     printf("\n");
  536.     printf("choose (s - sum, d - diff, m - multiply, p - pow, f - factorial, r - sum between a and b):");
  537.     scanf("%c", &intr);
  538.     printf("\n");
  539.     switch(intr)
  540.     {
  541.          case 's':
  542.              summa();
  543.              break;
  544.          case 'd':
  545.              diff();
  546.              break;
  547.          case 'm':
  548.              printf(":-)");
  549.              mult();
  550.              break;
  551.     }
  552.    
  553.     _getch();
  554.    
  555. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement