Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _12.SumMultPolinoms
- {
- class Program
- {
- // Extend the program to support also subtraction and multiplication of polynomials.
- static decimal[] addArraysOfDigits(decimal[] arr1, decimal[] arr2)
- {
- int maxLen = arr1.Length > arr2.Length ? arr1.Length : arr2.Length;
- decimal[] tempArr = new decimal[maxLen];
- decimal[] sum = new decimal[maxLen];
- if (arr1.Length > arr2.Length)
- {
- for (int i = 0; i < maxLen; i++)
- {
- if (i < arr2.Length)
- {
- tempArr[i] = arr2[i];
- }
- else
- {
- tempArr[i] = 0;
- }
- }
- for (int i = 0; i < sum.Length; i++)
- {
- if (i < arr1.Length)
- {
- sum[i] = (arr1[i] + tempArr[i]);
- }
- }
- }
- else
- {
- for (int i = 0; i < maxLen; i++)
- {
- if (i < arr1.Length)
- {
- tempArr[i] = arr1[i];
- }
- else
- {
- tempArr[i] = 0;
- }
- }
- for (int i = 0; i < sum.Length; i++)
- {
- if (i < arr2.Length)
- {
- sum[i] = (arr2[i] + tempArr[i]);
- }
- }
- }
- return sum;
- }
- static decimal[] substractArraysOfDigits(decimal[] arr1, decimal[] arr2)
- {
- int len = arr1.Length > arr2.Length ? arr1.Length : arr2.Length;
- int shortLen = arr1.Length < arr2.Length ? arr1.Length : arr2.Length;
- decimal[] sum = new decimal[len];
- for (int i = 0; i < shortLen; i++)
- {
- sum[i] = (arr1[i] - arr2[i]);
- }
- if (arr2.Length > arr1.Length)
- {
- for (int i = shortLen; i < len; i++)
- {
- sum[i] = -arr2[i];
- }
- }
- else
- {
- for (int i = shortLen; i < len; i++)
- {
- sum[i] = arr1[i];
- }
- }
- return sum;
- }
- static decimal[] multiplyArraysOfDigits(decimal[] arr1, decimal[] arr2)
- {
- int len = arr1.Length + arr2.Length;
- decimal[] sum = new decimal[len];
- for (int i = 0; i < arr1.Length; i++)
- {
- for (int j = 0; j < arr2.Length; j++)
- {
- if (arr1[i] != 0 && arr2[j] != 0)
- {
- sum[i + j] += arr1[i] * arr2[j];
- }
- }
- }
- return sum;
- }
- static void PrintPolinomial(decimal[] polinomial)
- {
- bool begining = false;
- for (int i = polinomial.Length - 1; i >= 0; i--)
- {
- if (polinomial[i] > 0)
- {
- if (begining == false)
- {
- Console.Write("{1}x^{0}", i, polinomial[i]);
- begining = true;
- }
- else
- {
- Console.Write(" +{1}x^{0}", i, polinomial[i]);
- }
- }
- else if (polinomial[i] < 0)
- {
- Console.Write(" {1}x^{0}", i, polinomial[i]);
- if (begining == false)
- {
- begining = true;
- }
- }
- }
- Console.WriteLine();
- Console.WriteLine();
- }
- static void Main(string[] args)
- {
- decimal[] arr1 = { 0, 2, 3, 0 };
- Console.WriteLine("Array 1: " + string.Join("\t", arr1));
- decimal[] arr2 = { 0, 4, 0 ,2 };
- Console.WriteLine("Array 2: " + string.Join("\t", arr2));
- Console.WriteLine();
- // add
- Console.WriteLine("Add\n");
- decimal[] sum = addArraysOfDigits(arr1, arr2);
- Console.WriteLine("Array 3: " + string.Join("\t", sum));
- PrintPolinomial(sum);
- // substract
- Console.WriteLine("Substracting...\n");
- decimal[] substract = substractArraysOfDigits(arr1, arr2);
- Console.WriteLine("Array 4: " + string.Join("\t", substract));
- PrintPolinomial(substract);
- decimal[] substract2 = substractArraysOfDigits(arr2, arr1);
- Console.WriteLine("Array 5: " + string.Join("\t", substract2));
- PrintPolinomial(substract2);
- // multiply
- Console.WriteLine("Multiply...\n");
- decimal[] multiply = multiplyArraysOfDigits(arr1, arr2);
- Console.WriteLine("Array 6: " + string.Join("\t", multiply));
- PrintPolinomial(multiply);
- decimal[] multiply2 = multiplyArraysOfDigits(arr2, arr1);
- Console.WriteLine("Array 7: " + string.Join("\t", multiply2));
- PrintPolinomial(multiply2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement