Составить описание класса многочлена вида ах^2 +Ьх + с - C#

Узнай цену своей работы

Формулировка задачи:

Предусмотреть методы,реализующие: • вычисление значения многочлена для заданного аргумента; • операцию сложения, вычитания и умножения многочленов с получением нового объекта-многочлена; • вывод на экран описания многочлена. Написать программу, демонстрирующую все разработанные элементы класса

Решение задачи: «Составить описание класса многочлена вида ах^2 +Ьх + с»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication17
{
    class Program
    {
        class Mnogochlen
        {
            private double[] A;//единственное поле класса(массив коэффициэнтов)
            
 
            public Mnogochlen (double[] VvodA)//конструктор класса, вызывается при создании нового элемента класса, для поддержки инкапсуляции, если она будет нужна
            {
                A=VvodA;                
            }
            
            public void VivodMnogochlena()
            {
                for (int i=0;i<A.Length-1;i++)
                    Console.Write("{0}x^{1} + ",A[i],A.Length-i-1);
                Console.Write(A[A.Length-1]+"\n");
            }
            public double ZnachenieMnogochlena(double x)/// возвращает значение многочлена в точке х
            {
                double rezalt=0;
                for (int i=0; i<A.Length; i++)
                {
                    double StepenX=1;
                    for(int j=0;j<A.Length-i-1;j++)
                        StepenX*=x;
                    rezalt+=StepenX*A[i];
                }
                return rezalt;            
            }
 
            public static Mnogochlen SlogitMnogochleni(Mnogochlen mn1, Mnogochlen mn2)
            {
                Mnogochlen mnRezalt = new Mnogochlen(new double [Math.Max(mn1.A.Length, mn2.A.Length)]); // создание массива, в который будет сложен результат. его размер будет соответсвовать большему из исходных.
                for(int i=mnRezalt.A.Length-1;i>=0;i--)
                {
                    if (i<mn1.A.Length)
                        mnRezalt.A[i]+=mn1.A[i];
                    if (i<mn2.A.Length)
                        mnRezalt.A[i]+=mn2.A[i];
                }
                return mnRezalt;
            }
 
            public static Mnogochlen UmnogitMnogochleni(Mnogochlen mn1, Mnogochlen mn2)
            {
                Mnogochlen mnRezult = new Mnogochlen (new double[mn1.A.Length+mn2.A.Length-1]);
                    for (int i1=0; i1<mn1.A.Length;i1++)
                    {
                        for (int i2=0; i2<mn2.A.Length;i2++)
                        mnRezult.A[i1+i2]+=mn1.A[i1]*mn2.A[i2];
                    }        
                return mnRezult;
            }
        }
        static void Main(string[] args)
        {
            Mnogochlen testMnogochlen1 = new Mnogochlen(new double[] {1,2,3,4,5}); //создание представителя класса с именем testMnogochlen и массивом таким-то.
            Mnogochlen testMnogochlen2 = new Mnogochlen(new double[] {1,1,1,1,1});
            testMnogochlen1.VivodMnogochlena();
            testMnogochlen2.VivodMnogochlena();
            Console.WriteLine("введите переменную для нахождения значения первого многочлена");
            double x= double.Parse(Console.ReadLine()); //ввод с клавиатуры переменной X;
            Console.WriteLine("значение многочлена в точке x= {0} будет {1}", x, testMnogochlen1.ZnachenieMnogochlena(x));
            Mnogochlen summa = Mnogochlen.SlogitMnogochleni(testMnogochlen1,testMnogochlen2);
            Mnogochlen proizvedenie = Mnogochlen.UmnogitMnogochleni(testMnogochlen1,testMnogochlen2);
            Console.WriteLine("сумма многочленов равна:");
            summa.VivodMnogochlena();
            Console.WriteLine("произведение моногочленов равно:");
            proizvedenie.VivodMnogochlena();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы