0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 7
1

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов

13.01.2011, 19:52. Показов 24410. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Нужна помощь в решении следующей задачи: "Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена, вывод на экран описания многочлена. Предусмотреть меню, позволяющее проверить все методы класса."
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2011, 19:52
Ответы с готовыми решениями:

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов
На дом была дана задача. Условие задачи: "Составить описание класса многочленов от одной...

Составить описание класса многочленов от одной переменной, задаваемых степенью и массивом коэффицентов
Всем доброе время пожалуйста чуть чуть подделать задачу, выдает ошибку, что нет Main для точки...

Составить описание класса многочленов от одной переменной ,задаваемых степенью многочлена и массивом коэффициентов
Столкнулся с такой проблемой!Никак не могу поянть с чего надо начинать, я так понял что это...

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов
Помогите, пожалуйста. Есть следующая задача Составить описание класса многочлена от одной...

6
339 / 285 / 62
Регистрация: 02.09.2010
Сообщений: 547
13.01.2011, 20:12 2
что подразумевается под многочленом?, просто учиться давно закончил.
0
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 7
13.01.2011, 20:24  [ТС] 3
Примерно так: F(x)=C0+C1*X+...+Cn*X^n - где Сi - фиксированные коэффициенты, а X-переменная.
0
339 / 285 / 62
Регистрация: 02.09.2010
Сообщений: 547
13.01.2011, 21:09 4
В общем сейчас не особо по зубам мне задача, потому что действия над многочленами я к сожалению не помню. Но вот класс и вывод на экран многочлена есть.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Lab8
{
    class Mnogoch
    {
        public int[] koef;
        public int step;
        public Mnogoch()
        {
        }
        public Mnogoch(int[] koef, int step)
        {
            this.koef = koef;
            this.step = step;
        }
        public void Pokaz(Mnogoch mn)
        {
            StringBuilder sb = new StringBuilder();
            for(int i=0;i<=step;i++)
              
                    sb.Append("+"+koef[i] + "x^" + (step-i));
       
            
            Console.WriteLine(sb);
        }
 
    }
    class Program
    {
 
        static void Main(string[] args)
        {
            int[] mass = {3,2,5};
            int step = 2;
            Mnogoch mn1 = new Mnogoch(mass,step);
            mn1.Pokaz(mn1);
            Console.ReadKey();
        }
        
    }
 
 
}
чем смог

Добавлено через 1 минуту
Ввод массива коэффициентов при x можно еще сделать с консоли.
2
822 / 713 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
13.01.2011, 23:06 5
Прям недавно тут отвечал на такой же вопрос:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#region*using
 
using System;
 
#endregion
 
namespace ConsoleApplicationTest {
    public static class Program {
        private static void Main() {
            Polynomial p1 = new Polynomial( 1, 2 );
            Polynomial p2 = new Polynomial( 10, 20, 30, 40 );
            Console.WriteLine( p1 + p2 );
            Console.WriteLine( p1 - p2 );
            Console.WriteLine( p1 * p2 );
            Console.WriteLine( p1 == p2 );
            Console.WriteLine( (p1 * p2).Calculate( 1.2d ) );
            Console.ReadKey();
        }
    }
 
    internal class Polynomial {
        private readonly double[] _coefficients;
 
        ///<summary>
        ///  Создание*полинома*на*основе*коэффициентов.
        ///</summary>
        ///<param name = "coefficients">Коэффициенты*полинома.</param>
        public Polynomial( params double[] coefficients ) {
            _coefficients = coefficients;
        }
 
        ///<summary>
        ///  Получение*или*установка*значения*коэффициента*полинома.
        ///</summary>
        ///<param name = "n">Номер*коэффициента.</param>
        ///<returns>Значение*коэффициента.</returns>
        public double this[ int n ] {
            get { return _coefficients[ n ]; }
            set { _coefficients[ n ] = value; }
        }
 
        ///<summary>
        ///  Степень*полинома.
        ///</summary>
        public int Order {
            get { return _coefficients.Length; }
        }
 
        public override string ToString() {
            return string.Format( "Coefficients:*" + string.Join( ";*", _coefficients ) );
        }
 
        ///<summary>
        ///  Быстрый*расчет*значения*полинома*по*схеме*Горнера.
        ///</summary>
        ///<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;
        }
 
        ///<summary>
        ///  Сложение*полиномов.
        ///</summary>
        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 );
        }
 
        ///<summary>
        ///  Вычитание*полиномов.
        ///</summary>
        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 );
        }
 
        ///<summary>
        ///  Умножение*полиномов.
        ///</summary>
        public static Polynomial operator *( Polynomial pFirst, Polynomial pSecond ) {
            int itemsCount = pFirst._coefficients.Length + pSecond._coefficients.Length - 1;
            var result = new double[itemsCount];
            for ( int i = 0; i < pFirst._coefficients.Length; i++ ) {
                for ( int j = 0; j < pSecond._coefficients.Length; j++ ) {
                    result[ i + j ] += pFirst[ i ] * pSecond[ j ];
                }
            }
 
            return new Polynomial( result );
        }
 
        ///<summary>
        ///  Равенство*полиномов.
        ///</summary>
        public static bool operator ==( Polynomial pFirst, Polynomial pSecond ) {
            if ( pFirst._coefficients.Length != pSecond._coefficients.Length ) {
                return false;
            }
            for ( int i = 0; i < pFirst._coefficients.Length; i++ ) {
                if ( pFirst[ i ] != pSecond[ i ] ) {
                    return false;
                }
            }
            return true;
        }
 
        public static bool operator !=( Polynomial pFirst, Polynomial pSecond ) {
            return !(pFirst == pSecond);
        }
    }
}
(Полином, это то же, что многочлен)
2
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
16.03.2014, 09:52 6
Unril,
Просто в познавательных целях спрашиваю, что это за код такой в комментах? Тэги какие-то, регион в директивах О_о
0
Заблокирован
16.03.2014, 10:33 7
SrgKord, запустите программу и сразу поймете, что делает #region - #endregion.

Эти метки скрывают часть кода - для удобства и большей читабельности.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2014, 10:33
Помогаю со студенческими работами здесь

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов
Здравствуйте,есть задание : Составить описание класса многочленов от одной переменной, задаваемых...

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов.
Нужна программа на Java. Задание звучит так: Составить описание класса многочленов от одной...

Составить описание классов многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов
Помогите решить задачу, заранее спасибо) Составить описание классов многочленов от одной...

Составить описание класса многочленов от одной переменной
Составить описание класса многочленов от одной переменной, задаваемых степе- нью многочлена и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru