Тип данных как структура с функциями - C#
Формулировка задачи:
Тип многочлен от одной переменной, задаваемый степенью многочлена и массивом коэффициентов. Предусмотреть операцию
вычитания .
Как описать/реализовать структурой многочлен?
Решение задачи: «Тип данных как структура с функциями»
textual
Листинг программы
- class Program
- {
- struct Polynomial
- {
- private readonly double[] _coefficients;
- // Создание полинома на основе коэффициентов.
- //<param name = "coefficients">Коэффициенты*полинома.</param>
- public Polynomial(params double[] coefficients)
- {
- _coefficients = coefficients;
- }
- // Получение или установка значения коэффициента полинома.
- //<param name = "n">Номер коэффициента.</param>
- //<returns>Значение коэффициента.</returns>
- public double this[int n]
- {
- get { return _coefficients[n]; }
- set { _coefficients[n] = value; }
- }
- // Степень*полинома.
- public int Order
- {
- get { return _coefficients.Length; }
- }
- public override string ToString()
- {
- return string.Format("Coefficients:*" + string.Join(";*", _coefficients));
- }
- // Быстрый расчет значения полинома по схеме Горнера.
- //<param name = "x">Аргумент полинома.</param>
- //<returns>Значение полинома.</returns>
- public double Calculate(double x)
- {
- int n = _coefficients.Length - 1;
- double result = _coefficients[n];
- for (int i = n - 1; i >= 0; i--)
- {
- result = x * result + _coefficients[i];
- }
- return result;
- }
- // Вычитание полиномов.
- public static Polynomial operator -(Polynomial pFirst, Polynomial pSecond)
- {
- int itemsCount = Math.Max(pFirst._coefficients.Length, pSecond._coefficients.Length);
- var result = new double[itemsCount];
- for (int i = 0; i < itemsCount; i++)
- {
- double a = 0;
- double b = 0;
- if (i < pFirst._coefficients.Length)
- {
- a = pFirst[i];
- }
- if (i < pSecond._coefficients.Length)
- {
- b = pSecond[i];
- }
- result[i] = a - b;
- }
- return new Polynomial(result);
- }
- }
- static void Main(string[] args)
- {
- Polynomial p1 = new Polynomial(2, 1);
- Polynomial p2 = new Polynomial(4, 3, 2, 1);
- Console.WriteLine(p1 - p2);
- Console.ReadLine();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д