SHARE
TWEET

Untitled

a guest Oct 21st, 2019 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Calculator
  5. {
  6.     class Control
  7.     {
  8.         /**
  9.          * If input is not int, then throws error. Else returns it.
  10.          *
  11.          * @return int output
  12.          */
  13.         public int Int()
  14.         {
  15.             int output;
  16.             while (!int.TryParse(Console.ReadLine(), out output))
  17.             {
  18.                 Render.Error();
  19.             }
  20.             return output;
  21.         }
  22.  
  23.         /**
  24.          * If input is not float, then throws error. Else returns it.
  25.          *
  26.          * @return float output
  27.          */
  28.         public float Float()
  29.         {
  30.             float output;
  31.             while (!float.TryParse(Console.ReadLine(), out output))
  32.             {
  33.                 Render.Error();
  34.             }
  35.             return output;
  36.         }
  37.     }
  38.  
  39.     class Render : Program
  40.     {
  41.         /**
  42.          * Writes menu.
  43.          */
  44.         public static void Menu()
  45.         {
  46.             Console.WriteLine("1 - Sčítat");
  47.             Console.WriteLine("2 - Odčítat");
  48.             Console.WriteLine("3 - Násobit");
  49.             Console.WriteLine("4 - Dělit");
  50.             Console.WriteLine("5 - Umocnit");
  51.             Console.WriteLine("6 - Odmocnit");
  52.             Console.WriteLine("7 - Historie výsledků");
  53.             Console.WriteLine("Jiné číslo - Konec");
  54.         }
  55.  
  56.         /**
  57.          * Writes result and gives it to array.
  58.          *
  59.          * @param float result, float[] results
  60.          */
  61.         public static void Result(float result, float[] results)
  62.         {
  63.             Console.WriteLine("Výsledek se rovná {0}.", result);
  64.  
  65.             for (int i = 0; i < results.Length; i++)
  66.             {
  67.                 // Pokud je prázdný, tak se zaplní
  68.                 if (results[i] == 0)
  69.                 {
  70.                     results[i] = result;
  71.                     break;
  72.                 }
  73.                 else if (i == results.Length - 1)
  74.                 {
  75.                     Console.WriteLine("dd");
  76.                     results = results.Skip(1).ToArray();
  77.                     for (int b = 0; b < results.Length; b++)
  78.                     {
  79.                         Console.Write("{0}; ", results[b]);
  80.                     }
  81.                     break;
  82.                 }
  83.             }
  84.         }
  85.  
  86.         /**
  87.          * Writes error.
  88.          */
  89.         public static void Error()
  90.         {
  91.             Console.WriteLine("Zadejte správnou hodnotu!");
  92.         }
  93.  
  94.         /**
  95.          * Writes history of results.
  96.          *
  97.          * @param float[] results
  98.          */
  99.         public static void Results(float[] results)
  100.         {
  101.             Console.WriteLine("\n");
  102.             Console.WriteLine("------------------------------");
  103.             for (int i = 0; i < results.Length; i++)
  104.             {
  105.                 Console.Write("{0}; ", results[i]);
  106.             }
  107.             Console.WriteLine("\n------------------------------");
  108.             Console.WriteLine("\n");
  109.         }
  110.  
  111.         /**
  112.          * Writes last message.
  113.          */
  114.         public static void End()
  115.         {
  116.             Console.WriteLine("Ukončil jste program.");
  117.         }
  118.  
  119.         /**
  120.          * Renders input for number.
  121.          *
  122.          * @return float firstNumber
  123.          */
  124.         public static float Number()
  125.         {
  126.             Control control = new Control();
  127.             Console.WriteLine("Zadejte číslo:\n");
  128.             float number = control.Float();
  129.             return number;
  130.         }
  131.     }
  132.  
  133.     class Math : Program
  134.     {
  135.         /**
  136.          * Adds inputs.
  137.          *
  138.          * @param float firstNumber, float secondNumber, float[] results
  139.          */
  140.         public static void AddUp(float firstNumber, float secondNumber, float[] results)
  141.         {
  142.             float output = firstNumber + secondNumber;
  143.             Render.Result(output, results);
  144.         }
  145.  
  146.         /**
  147.          * Subtracts inputs.
  148.          *
  149.          * @param float firstNumber, float secondNumber, float[] results
  150.          */
  151.         public static void Subtract(float firstNumber, float secondNumber, float[] results)
  152.         {
  153.             float output = firstNumber - secondNumber;
  154.             Render.Result(output, results);
  155.         }
  156.  
  157.         /**
  158.         * Multiplies inputs.
  159.         *
  160.         * @param float firstNumber, float secondNumber, float[] results
  161.         */
  162.         public static void Multiply(float firstNumber, float secondNumber, float[] results)
  163.         {
  164.             float output = firstNumber * secondNumber;
  165.             Render.Result(output, results);
  166.         }
  167.  
  168.         /**
  169.         * Divides inputs.
  170.         *
  171.         * @param float firstNumber, float secondNumber, float[] results
  172.         */
  173.         public static void Divide(float firstNumber, float secondNumber, float[] results)
  174.         {
  175.             if (secondNumber == 0)
  176.             {
  177.                 Render.Error();
  178.             }
  179.             else
  180.             {
  181.                 float output = firstNumber / secondNumber;
  182.                 Render.Result(output, results);
  183.             }
  184.         }
  185.  
  186.         /**
  187.         * Roots inputs.
  188.         *
  189.         * @param float firstNumber, float[] results
  190.         */
  191.         public static void Sqrt(float firstNumber, float[] results)
  192.         {
  193.             float output = (float)System.Math.Sqrt(firstNumber);
  194.             Render.Result(output, results);
  195.         }
  196.  
  197.         /**
  198.         * Raises input.
  199.         *
  200.         * @param float firstNumber, float[] results
  201.         */
  202.         public static void Power(float firstNumber, float[] results)
  203.         {
  204.             float output = (float)System.Math.Pow(firstNumber, 2);
  205.             Render.Result(output, results);
  206.         }
  207.     }
  208.  
  209.     class Program
  210.     {
  211.         public float[] Results { get; set; } = new float[10];
  212.  
  213.         /**
  214.         * Runs program and triggers actions.
  215.         *
  216.         * @param string[] args
  217.         */
  218.         public static void Main(string[] args)
  219.         {
  220.             Control control = new Control();
  221.             bool again = true;
  222.  
  223.             while (again is true)
  224.             {
  225.                 Render.Menu();
  226.                 Console.WriteLine("Co chcete udělat?:\n");
  227.                 int action = control.Int();
  228.  
  229.                 switch (action)
  230.                 {
  231.                     case 1:
  232.                         Math.AddUp(Render.Number(), Render.Number(), Results);
  233.                         break;
  234.                     case 2:
  235.                         Math.Subtract(Render.Number(), Render.Number(), Results);
  236.                         break;
  237.                     case 3:
  238.                         Math.Multiply(Render.Number(), Render.Number(), Results);
  239.                         break;
  240.                     case 4:
  241.                         Math.Divide(Render.Number(), Render.Number(), Results);
  242.                         break;
  243.                     case 5:
  244.                         Math.Power(Render.Number(), Results);
  245.                         break;
  246.                     case  6:
  247.                         Math.Sqrt(Render.Number(), Results);
  248.                         break;
  249.                     case 7:
  250.                         Render.Results(Results);
  251.                         break;
  252.                     default:
  253.                         Render.End();
  254.                         again = false;
  255.                         break;
  256.                 }
  257.             }
  258.         }
  259.     }
  260. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top