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

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

16.05.2011, 16:01. Показов 4017. Ответов 7
Метки нет (Все метки)

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

Не могу написать, нашел 2 программы на С и на C#, с идентичным заданием.
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);
        }
    }
}

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
#include <iostream.h>
#include <stdlib.h>
#include <time.h>                 
class Mnogochlen
{               
int a[100], n;
public: void vvod();                
void vichisl();             
void slozh(Mnogochlen mA, Mnogochlen mB);                
void vichit(Mnogochlen mA, Mnogochlen mB);                
void umnozh(Mnogochlen mA, Mnogochlen mB);                
void vivod();                
};                
void main()                
{               
Mnogochlen a,b,c;                
a.vvod();               
//a.vivod();                
//a.vichisl();                 
//a.vvod();                 
b.vvod();                 
c.umnozh(a,b);
cout<<"C(x) = ";
c.vivod();}                 
void Mnogochlen::vvod()                
{
cout<<endl;
cout<<"vvedite stepen' mnogochlena: "; cin>>n;
//cout<<endl;
cout<<"vvedite koefficienti\n";
for (int k=0;k<=99;k++) {a[k]=0;}
for (int i=0;i<=n;i++) {cout<<" a"<<i<<" = "; cin>>a[i];}
//cout<<endl;           
}         
void Mnogochlen::vivod()               
{                
int f;                
f=0;
//cout<<endl;
for (int i=n;i>=0;i--)                
if (a[i]!=0)
{ if(f==0){if(i!=0)cout<<a[i]<<"*x^"<<i; else cout<<a[i];                 
f++;}                 
else {if(i!=0)
if(a[i]>0) cout<<"+"<<a[i]<<"*x^"<<i;
else cout<<a[i]<<"*x^"<<i;                
else
if(a[i]>0) cout<<"+"<<a[i];
else cout<<a[i];
f++;} }
if (f==0) {cout<<0;}
cout<<endl;                 
}          
void Mnogochlen::vichisl()                 
{
cout<<endl;                 
int x,v,vx;                
v=0;
cout<<"vvedite X: "; cin>>x;                
vx=1;
for (int i=0;i<=n;i++) { v=v+a[i]*vx; vx=vx*x;}
cout<<"f("<<x<<") = "<<v;
cout<<endl;                 
}                 
void Mnogochlen::slozh(Mnogochlen mA, Mnogochlen mB)                 
{
for (int k=0;k<=99;k++) {a[k]=0;}
if (mA.n>mB.n) n=mA.n; else n=mB.n;
for (int i=0;i<=n;i++) {a[i]=mA.a[i]+mB.a[i]; }                
}                
void Mnogochlen::vichit(Mnogochlen mA, Mnogochlen mB)                
{
for (int k=0;k<=99;k++) {a[k]=0;}
if (mA.n>mB.n) n=mA.n; else n=mB.n;
for (int i=0;i<=n;i++) {a[i]=mA.a[i]-mB.a[i]; }                
}                
void Mnogochlen::umnozh(Mnogochlen mA, Mnogochlen mB)                 
{
for (int k=0;k<=99;k++) {a[k]=0;}                 
n=mA.n+mB.n;
for (int i=0;i<=mA.n;i++) for (int j=0;j<=mB.n;j++) {a[i+j]=a[i+j]+mA.a[i]*mB.a[j]; }                 
}
Буду очень благодарен за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2011, 16:01
Ответы с готовыми решениями:

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

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

Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов
Доброго времени суток. Нужна помощь в решении следующей задачи: &quot;Составить описание класса...

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

7
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
16.05.2011, 16:17 2
Интересно, вы думаете кто то будет делать за вас всю работу? За больше спасибо?
Порой такие студенты меня забавляют
1
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 8
16.05.2011, 16:36  [ТС] 3
Цитата Сообщение от Золотце Посмотреть сообщение
Интересно, вы думаете кто то будет делать за вас всю работу? За больше спасибо?
Порой такие студенты меня забавляют
Я написал

Цитата Сообщение от felya9
Буду очень благодарен за помощь.
Я не просил все делать, я просил помощи. А вы уже в обеих моих темах написали абсолютно бесполезные посты о том, какие вы умные все знаете, а все остальные "Студенты" только и хотят, что бы им все написали и почтой отправили.
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
16.05.2011, 17:27 4
Окей, я готов оказать помощь. Что надо?
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
17.05.2011, 10:41 5
Цитата Сообщение от Золотце Посмотреть сообщение
Окей, я готов оказать помощь. Что надо?
Судя по самому первому сообщению - надо написать программу.
0
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
17.05.2011, 23:01 6
Ну так у Вас всё проще чем я думал) В чём сложность первый код на C# переписать на Java?
И всех делов-то
Ну ещё интерфейс какой-нибудь прикрутить
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
18.05.2011, 00:54 7
Разве не понятно? Товарищ надеется что за него все перепишут
0
33 / 33 / 7
Регистрация: 09.04.2011
Сообщений: 119
18.05.2011, 01:09 8
Так что там переписывать то? Час работы.
Он здесь ждёт ответа гораздо дольше уже)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2011, 01:09
Помогаю со студенческими работами здесь

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

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

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

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


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

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

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