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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

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

нашел такую программу:
Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена, вывод на экран описания многочлена. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Sined121 вне форума Ответить с цитированием
Старый 22.12.2009, 19:34   #2
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]; }                 
}

Последний раз редактировалось Sazary; 23.12.2009 в 18:02.
Sined121 вне форума Ответить с цитированием
Старый 22.12.2009, 19:36   #3
Sined121
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 26
По умолчанию

не могу получить вывод для сразу трех случаев: сложение, умножение ивычитание
Sined121 вне форума Ответить с цитированием
Старый 22.12.2009, 20:29   #4
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Вообще лучше операции перегружай
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
классы elenSV Общие вопросы C/C++ 0 31.05.2009 09:48
Классы Sasuke-sama Общие вопросы C/C++ 8 30.05.2009 15:15
Классы StudentPolitech Общие вопросы C/C++ 2 27.05.2009 22:44
Классы TeleSky Помощь студентам 11 05.01.2009 13:43