SHARE
TWEET

Untitled

a guest Oct 21st, 2019 72 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
  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.             int i = 0;
  66.  
  67.             // Pokud je index v poli prázdný, vložím do něj hodnotu a dám break.
  68.             // Pokud není prázdný, jedu dál.
  69.                 // Pokud jsem na posledním indexu a poslední index není prázdný.
  70.                     // Tak první slot pole se dá na 0
  71.                     // A všechno v poli posunu doleva k 0, aby byl poslední slot prázdný.
  72.  
  73.             while (i <= results.Length)
  74.             {
  75.                 // Pokud je index v poli prázdný
  76.                 if (results[i] == 0)
  77.                 {
  78.                     // Vložím do něj hodnotu a vypnu to
  79.                     results[i] = result;
  80.                     break;
  81.                 }
  82.                 // Pokud není prázdný, tak to jede dál
  83.                 else
  84.                 {
  85.                     // Pokud jsem na posledním místě a index není prázdný
  86.                     if (i == results.Length && results[i] != 0)
  87.                     {
  88.                         results = results.RemoveAt(0).ToArray();
  89.                     }
  90.                 }
  91.             }
  92.  
  93.         }
  94.  
  95.         /**
  96.          * Writes error.
  97.          */
  98.         public static void Error()
  99.         {
  100.             Console.WriteLine("Zadejte správnou hodnotu!");
  101.         }
  102.  
  103.         /**
  104.          * Writes history of results.
  105.          *
  106.          * @param float[] results
  107.          */
  108.         public static void Results(float[] results)
  109.         {
  110.             Console.WriteLine("\n");
  111.             Console.WriteLine("------------------------------");
  112.             for (int i = 0; i < results.Length; i++)
  113.             {
  114.                 Console.Write("{0}; ", results[i]);
  115.             }
  116.             Console.WriteLine("\n------------------------------");
  117.             Console.WriteLine("\n");
  118.         }
  119.  
  120.         /**
  121.          * Writes last message.
  122.          */
  123.         public static void End()
  124.         {
  125.             Console.WriteLine("Ukončil jste program.");
  126.         }
  127.  
  128.         /**
  129.          * Renders input for number.
  130.          *
  131.          * @return float firstNumber
  132.          */
  133.         public static float Number()
  134.         {
  135.             Control control = new Control();
  136.             Console.WriteLine("Zadejte číslo:\n");
  137.             float number = control.Float();
  138.             return number;
  139.         }
  140.     }
  141.  
  142.     class Math
  143.     {
  144.         /**
  145.          * Adds inputs.
  146.          *
  147.          * @param float firstNumber, float secondNumber, float[] results
  148.          */
  149.         public static void AddUp(float firstNumber, float secondNumber, float[] results)
  150.         {
  151.             float output = firstNumber + secondNumber;
  152.             Render.Result(output, results);
  153.         }
  154.  
  155.         /**
  156.          * Subtracts inputs.
  157.          *
  158.          * @param float firstNumber, float secondNumber, float[] results
  159.          */
  160.         public static void Subtract(float firstNumber, float secondNumber, float[] results)
  161.         {
  162.             float output = firstNumber - secondNumber;
  163.             Render.Result(output, results);
  164.         }
  165.  
  166.         /**
  167.         * Multiplies inputs.
  168.         *
  169.         * @param float firstNumber, float secondNumber, float[] results
  170.         */
  171.         public static void Multiply(float firstNumber, float secondNumber, float[] results)
  172.         {
  173.             float output = firstNumber * secondNumber;
  174.             Render.Result(output, results);
  175.         }
  176.  
  177.         /**
  178.         * Divides inputs.
  179.         *
  180.         * @param float firstNumber, float secondNumber, float[] results
  181.         */
  182.         public static void Divide(float firstNumber, float secondNumber, float[] results)
  183.         {
  184.             if (secondNumber == 0)
  185.             {
  186.                 Render.Error();
  187.             }
  188.             else
  189.             {
  190.                 float output = firstNumber / secondNumber;
  191.                 Render.Result(output, results);
  192.             }
  193.         }
  194.  
  195.         /**
  196.         * Roots inputs.
  197.         *
  198.         * @param float firstNumber, float[] results
  199.         */
  200.         public static void Sqrt(float firstNumber, float[] results)
  201.         {
  202.             float output = (float)System.Math.Sqrt(firstNumber);
  203.             Render.Result(output, results);
  204.         }
  205.  
  206.         /**
  207.         * Raises input.
  208.         *
  209.         * @param float firstNumber, float[] results
  210.         */
  211.         public static void Power(float firstNumber, float[] results)
  212.         {
  213.             float output = (float)System.Math.Pow(firstNumber, 2);
  214.             Render.Result(output, results);
  215.         }
  216.     }
  217.  
  218.     class Program
  219.     {
  220.         /**
  221.         * Runs program and triggers actions.
  222.         *
  223.         * @param string[] args
  224.         */
  225.         public static void Main(string[] args)
  226.         {
  227.             Control control = new Control();
  228.             float[] results = new float[2];
  229.             bool again = true;
  230.  
  231.             while (again is true)
  232.             {
  233.                 Render.Menu();
  234.  
  235.                 Console.WriteLine("Co chcete udělat?:\n");
  236.                 int action = control.Int();
  237.  
  238.                 switch (action)
  239.                 {
  240.                     case 1:
  241.                         Math.AddUp(Render.Number(), Render.Number(), results);
  242.                         break;
  243.                     case 2:
  244.                         Math.Subtract(Render.Number(), Render.Number(), results);
  245.                         break;
  246.                     case 3:
  247.                         Math.Multiply(Render.Number(), Render.Number(), results);
  248.                         break;
  249.                     case 4:
  250.                         Math.Divide(Render.Number(), Render.Number(), results);
  251.                         break;
  252.                     case 5:
  253.                         Math.Power(Render.Number(), results);
  254.                         break;
  255.                     case  6:
  256.                         Math.Sqrt(Render.Number(), results);
  257.                         break;
  258.                     case 7:
  259.                         Render.Results(results);
  260.                         break;
  261.                     default:
  262.                         Render.End();
  263.                         again = false;
  264.                         break;
  265.                 }
  266.             }
  267.         }
  268.     }
  269. }
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