Advertisement
Asinka

PolynomialsSum-and-Multiplication

Jan 26th, 2013
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.81 KB | None | 0 0
  1. using System;
  2.  
  3.  
  4.  
  5. class PolynomialsSumAndMultiplication
  6. {
  7.     static int lenghtofPolinomial = 0;
  8.     static int[] polinomialCoef = new int[lenghtofPolinomial];
  9.     static int[] result = new int [10];
  10.     static int[] firstPolinomial = AddPolinomial();
  11.     static int[] secondPolinomial = AddPolinomial();
  12.  
  13.  
  14.     static int[] AddPolinomial()
  15.     {
  16.         Console.WriteLine("Enter lenght of polinomial:");
  17.         lenghtofPolinomial = int.Parse(Console.ReadLine());
  18.         polinomialCoef = new int[lenghtofPolinomial];
  19.  
  20.         for (int i = lenghtofPolinomial - 1; i >=0 ; i--)
  21.         {
  22.             Console.Write("x^{0} =", i);
  23.             polinomialCoef[i] = int.Parse(Console.ReadLine());
  24.         }
  25.         return polinomialCoef;
  26.     }
  27.     static int[] PrintPolinomialsCoeficients(int[] polinomialCoef)
  28.     {
  29.         for (int i = polinomialCoef.Length - 1; i >=0 ; i--)
  30.         {
  31.             if (polinomialCoef[i] == 0)
  32.             {
  33.                 continue;
  34.             }
  35.             if (i == 0)
  36.             {
  37.                 Console.Write(polinomialCoef[i]);
  38.             }
  39.             else if (i == 1)
  40.             {
  41.                 Console.Write("{0} * x", polinomialCoef[i]);
  42.             }
  43.             else
  44.             {
  45.                 Console.Write("{0} * x^{1}", polinomialCoef[i], i);
  46.             }
  47.             if (i > 0)
  48.             {
  49.                 Console.Write(" + ");
  50.             }
  51.         }
  52.         Console.WriteLine("\n");
  53.  
  54.         return polinomialCoef;
  55.     }
  56.     static int[] SumPolinomials(int[] polinomialCoef)
  57.     {      
  58.         int minLength = Math.Min(firstPolinomial.Length, secondPolinomial.Length);
  59.         int maxLength = Math.Max(firstPolinomial.Length, secondPolinomial.Length);
  60.         result = new int [maxLength];
  61.  
  62.         for (int i = maxLength - 1; i >=0 ; i--)
  63.         {
  64.             if (i < minLength)
  65.             {
  66.                 result[i] = firstPolinomial[i] + secondPolinomial[i];
  67.             }
  68.             else if (i > firstPolinomial.Length - 1)
  69.             {
  70.                 result[i] = secondPolinomial[i];
  71.             }
  72.             else if (i > secondPolinomial.Length - 1)
  73.             {
  74.                 result[i] = firstPolinomial[i];
  75.             }
  76.         }
  77.  
  78.         return result;
  79.     }
  80.     static int[] SubtractionPolinomials(int[] polinomialCoef)
  81.     {
  82.         int minLength = Math.Min(firstPolinomial.Length, secondPolinomial.Length);
  83.         int maxLength = Math.Max(firstPolinomial.Length, secondPolinomial.Length);
  84.         result = new int[maxLength];
  85.  
  86.         for (int i = maxLength - 1; i >= 0 ; i--)
  87.         {
  88.             if (i < minLength)
  89.             {
  90.                 result[i] = firstPolinomial[i] - secondPolinomial[i];              
  91.             }
  92.             else if (i > firstPolinomial.Length - 1)
  93.             {
  94.                 result[i] = - secondPolinomial[i];
  95.             }
  96.             else if (i > secondPolinomial.Length - 1)
  97.             {
  98.                 result[i] = firstPolinomial[i];
  99.             }
  100.         }
  101.  
  102.         return result;
  103.     }
  104.     static int[] MultiplicationPolinomials(int[] polinomialCoef)
  105.     {
  106.         result = new int[firstPolinomial.Length + secondPolinomial.Length];
  107.  
  108.         for (int i = firstPolinomial.Length - 1; i >= 0; i--)
  109.         {
  110.             for (int j = secondPolinomial.Length - 1; j >= 0; j--)
  111.             {
  112.                 result[i + j] = firstPolinomial[i] * secondPolinomial[j];              
  113.  
  114.                 if (result[i + j] == 0)
  115.                 {
  116.                     continue;
  117.                 }
  118.                 if (i + j == 0)
  119.                 {
  120.                     Console.Write(result[i + j]);
  121.                 }
  122.                 else if (i + j == 1)
  123.                 {
  124.                     Console.Write("{0} * x", result[i + j]);
  125.                 }
  126.                 else
  127.                 {
  128.                     Console.Write("{0} * x^{1} ", result[i + j], i + j);
  129.                 }
  130.                 if (i + j > 0)
  131.                 {
  132.                     Console.Write(" + ");
  133.                 }
  134.             }
  135.         }
  136.         Console.WriteLine();
  137.  
  138.         return result;
  139.     }
  140.     static void Main()
  141.     {
  142.         Console.WriteLine("\nFirst polinomial is:\n");
  143.         PrintPolinomialsCoeficients(firstPolinomial);
  144.  
  145.         Console.WriteLine("\nSecond polinomial is:\n");
  146.         PrintPolinomialsCoeficients(secondPolinomial);
  147.  
  148.         Console.WriteLine("\nSum of polinomials:\n");
  149.         SumPolinomials(polinomialCoef);
  150.         PrintPolinomialsCoeficients(result);
  151.  
  152.         Console.WriteLine("\nSubtraction of polinomials:\n");
  153.         SubtractionPolinomials(polinomialCoef);
  154.         PrintPolinomialsCoeficients(result);
  155.  
  156.         Console.WriteLine("\nMultiplication of polinomials:\n");
  157.         MultiplicationPolinomials(polinomialCoef);
  158.        
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement