Составить описание класса многочлена вида ах^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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д