Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 16:23   #1
Sined121
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 26
По умолчанию

вот задание:
составить описание классов многочленов от одной переменной,задаваемых степенью многочлена и массивом коэффициентов. предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта - многочлена, печать (вывод на экран) описания многочлена.

а вот прога:
Код:
#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]; }
не понял а как мне умножение и вычитание сделать. или я правильно сделал по заданию? многочлен выводится...

Последний раз редактировалось Stilet; 03.12.2009 в 17:07.
Sined121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание диаграммы классов Krechet Общие вопросы Delphi 4 07.05.2009 13:53
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
Массив классов nns2009 Общие вопросы C/C++ 15 03.02.2009 00:47
Регистрация классов. Nytlec Помощь студентам 1 18.01.2009 14:05
деление многочленов oleiiika Паскаль, Turbo Pascal, PascalABC.NET 1 21.06.2008 16:30