zdenekpetrzd

Untitled

May 7th, 2021
725
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace SeminarniPrace
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             ConsoleHandling.PrintHeadline();
  10.             while (true)
  11.             {
  12.                 ConsoleHandling.SelectionInput("Vybraný režim: ");
  13.             }
  14.         }
  15.     }
  16.  
  17.     class ConsoleHandling
  18.     {
  19.         static int a = -1, b = -1;
  20.  
  21.         public static void ClearCurrentConsoleLine()
  22.         {
  23.             Console.SetCursorPosition(0, Console.CursorTop);
  24.             Console.Write(new string(' ', Console.WindowWidth));
  25.             Console.SetCursorPosition(0, Console.CursorTop);
  26.         }
  27.         public static void PrintHeadline()
  28.         {
  29.             Console.Clear();
  30.             Console.WriteLine("1) zadání nezáporného celého čísla a");
  31.             Console.WriteLine("2) zadání nezáporné celočíselné mocniny n");
  32.             Console.WriteLine("3) výpis binomické věty(x + a)^n");
  33.             Console.WriteLine("4) výpis binomické věty (x - a)^n");
  34.             Console.WriteLine("------------------------------------------------------");
  35.             Console.WriteLine("0) ukončení programu");
  36.             Console.WriteLine();
  37.  
  38.             if (a != -1)
  39.             {
  40.                 Console.SetCursorPosition(0, 0);
  41.                 ClearCurrentConsoleLine();
  42.                 Console.WriteLine("1) úprava nezáporného celého čísla a = " + a);
  43.             }
  44.             if (b != -1)
  45.             {
  46.                 Console.SetCursorPosition(0, 1);
  47.                 ClearCurrentConsoleLine();
  48.                 Console.WriteLine("2) úprava nezáporné celočíselné mocniny n = " + b);
  49.             }
  50.             Console.SetCursorPosition(0, 7);
  51.         }
  52.  
  53.         public static void SelectionInput(string lineToPrint)
  54.         {
  55.  
  56.             int caseIn = 5;
  57.             Console.Write(lineToPrint);
  58.             try
  59.             {
  60.                 caseIn = int.Parse(Console.ReadLine());
  61.             }
  62.             catch (Exception ex)
  63.             {
  64.                 if (ex is System.FormatException) { }
  65.                 else if (ex is System.OverflowException) { }
  66.                 else throw;
  67.             }
  68.            
  69.             switch (caseIn)
  70.             {
  71.                 case 0:
  72.                     Console.Clear();
  73.                     Console.WriteLine("Ukončuji program...");
  74.                     System.Environment.Exit(1);
  75.                     break;
  76.                 case 1:
  77.                     a = InputNumberValid('a');
  78.                     PrintHeadline();
  79.                     break;
  80.                 case 2:
  81.                     b = InputNumberValid('b');
  82.                     PrintHeadline();
  83.                     break;
  84.                 case 3:
  85.                     Console.WriteLine(Computing.BinSentence(a, b, false));
  86.                     break;
  87.                 case 4:
  88.                     Console.WriteLine(Computing.BinSentence(a, b, true));
  89.                     break;
  90.                 default:
  91.                     Console.WriteLine("Zadána neplatná volba!");
  92.                     break;
  93.             }
  94.         }
  95.         static int InputNumberValid(char selectArg)
  96.         {
  97.             int userInput = -1;
  98.             while (userInput < 0)
  99.             {
  100.                 Console.Write("Zadejte hodnotu čísla " + selectArg + ": ");
  101.                 try
  102.                 {
  103.                     userInput = int.Parse(Console.ReadLine());
  104.                     if (userInput < 0) Console.WriteLine("Číslo nesmí být záporné, zkus to znovu!");
  105.                 }
  106.                 catch (Exception ex)
  107.                 {
  108.                     if (ex is System.FormatException) Console.WriteLine("Číslo nesmí obsahovat nečíselné znaky, zkus to znova!");
  109.                     else if (ex is System.OverflowException) Console.WriteLine("Zadáno neplatné číslo!");
  110.                     else throw;
  111.                 }
  112.             }
  113.             return userInput;
  114.         }
  115.     }
  116.  
  117.     class Computing
  118.     {
  119.         static int Factorial(int n)
  120.         {
  121.             int fn = 1;
  122.             for(int i=1; i<n+1; i++)
  123.             {
  124.                 fn *= i;
  125.             }
  126.             return fn;
  127.         }  
  128.         static int ComNum(int n, int k)
  129.         {
  130.             int nk = Factorial(n) / (Factorial(n - k) * Factorial(k));
  131.             return nk;
  132.         }
  133.         public static string BinSentence(int a, int n, bool negative)
  134.         {
  135.             if (a != -1 && n != -1)
  136.             {
  137.                 char sign;
  138.                 if (negative == true) sign = '-';
  139.                 else sign = '+';
  140.  
  141.                 string message = String.Format("(x {0} {1})^{2} = ", sign, a, n);
  142.                 string message2 = "";
  143.  
  144.                 if (n == 0) message2 = "1";
  145.                 else if (a == 0 && n == 1) message2 = "x";
  146.                 else if (n == 1) message2 = String.Format("x {0} {1}", sign, a);
  147.                 else if (a == 0) message2 = String.Format("x^{0}", n);
  148.                 else
  149.                 {
  150.                     for (int i = 0; i < n + 1; i++)
  151.                     {
  152.                         if (i == 0) message2 += String.Format("x^{0}", n);
  153.                         if (negative == true && i % 2 == 1 && i != 0) message2 += (" - ");
  154.                         else if (i != 0) message2 += (" + ");
  155.                         if (i != n && i != 0 && (n - i) != 1) message2 += String.Format("{0}x^{1}", (ComNum(n, i) * Math.Pow(a, i)), n - i);
  156.                         else if (i != n && i != 0) message2 += String.Format("{0}x", (ComNum(n, i) * Math.Pow(a, i)));
  157.                         if (i == n) message2 += Math.Pow(a, n);
  158.                     }
  159.                 }
  160.                 return message + message2 + "\n";
  161.             }
  162.             else if (a == -1) return "Chybí hodnota čísla a. Bez jejího zadání nelze pokračovat!";
  163.             else if (n == -1) return "Chybí hodnota mocniny n. Bez jejího zadání nelze pokračovat!";
  164.             else return "Nejprve je nutné zadat hodnoty pro výpočet!";
  165.            
  166.         }
  167.     }
  168. }
RAW Paste Data