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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 20:50   #1
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию Класси

Здраствуйте!!!!
Может кто то объяснить задания ???
Буду рад любой помощи.
Спасибо!!)))

Класс многочленов
Базовый класс (содержит одномерный динамический вектор коэффициентов многочлена anxn .. a0, а также размерность многочленными - n)
Конструкторы: по умолчанию, с параметрами и копирования.
Деструктор.
Функции:
Метод для вычисления значения многочлена в соответствующей точке x;
Метод для вычисления производной многочлена в соответствующей точке x;
перегрузки операции сложения многочленов;
перегрузки операции вычитания многочленов;
перегрузки операции умножения на число.
вывод многочлена на экран.
ВасяСВВ вне форума Ответить с цитированием
Старый 26.12.2010, 23:31   #2
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

задание объясняет само себя, с этим надо во фриланс идти, если уж совсем по 0, или, если не срочно - открываете учебник, параграф "классы", и читаете.
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 27.12.2010, 09:04   #3
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Я уже что то писал.
Выводит у меня ошибку. Щас пакажау.


Код:
#include<iostream.h>
#include<math.h>
class  Mnohocslen  {
   private:
     int S, x, y, a, c, b, n;
     int dobytoc;
   public:
     Mnohocslen (int x, int dobytoc, int S, int b, int n, int a);
     int obcuslenya();  // функция обчислення
};

Mnohocslen::Mnohocslen (int x, int dobytoc, int S, int b, int n, int a) {
      this->S=S;
      this->x=10;
      this->b=10;
      this->n=2;
      this->a=10;
};
Mnohocslen::obcuslenya() {
  int k;
  cin>>k;
  for (int i=0; i<k; i++ ) {
       S+=a*pow( x, n );
  }
  dobytoc=S+b;
  return dobytoc;
};

main () {
   int x_ , a_ , b_ , n_;
   cin>>x_>>a_>>b_>>n_;
   Mnohocslen* mnoho = new Mnohocslen  (x_, a_, b_, n_);   //здесь ощибка
   mnoho->obcuslenya();


   system("pause");
}

Может я чтото не так делаю??
ВасяСВВ вне форума Ответить с цитированием
Старый 27.12.2010, 10:28   #4
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Во-первых здесь
Код:
Mnohocslen::obcuslenya(){
//=====
}
надо указать тип возвращаемого значения
Код:
int Mnohocslen::obcuslenya(){
//============
}
Во-вторых у тебя объявлен конструктор с шестью параметрами
Код:
Mnohocslen (int x, int dobytoc, int S, int b, int n, int a);
А в основной проге ты пытаешься создать объект с четырьмя параметрами,
Код:
Mnohocslen* mnoho = new Mnohocslen  (x_, a_, b_, n_);
вот и вылезает ошибка.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 27.12.2010, 15:52   #5
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Спасибо большое!!!


перегрузки операции сложения многочленов;
перегрузки операции вычитания многочленов;
перегрузки операции умножения на число.


Это как понять???
И как имеется ввиду вычитания многочленов и сложения многочленов????
Спачибо!!
ВасяСВВ вне форума Ответить с цитированием
Старый 27.12.2010, 16:07   #6
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
Это как понять???
Так и понимать. Надо добавить в класс соответствующие методы. Например так:
Код:
Mnohocslen Mnohocslen::operator +(Mnohocslen M){
//======сложение=========
}
Цитата:
И как имеется ввиду вычитания многочленов и сложения многочленов????
Сложение(вычитание) многочленов это сложение(вычитание) их коэффициентов при соответствующих степенях.
Единственный способ стать умнее - играть с более умным противником.

Последний раз редактировалось Sam Gold; 27.12.2010 в 16:12.
Sam Gold вне форума Ответить с цитированием
Старый 27.12.2010, 22:00   #7
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

До меня дошло что надо делать )))
Вот код проги :

Код:
#include<iostream.h>
#include<math.h>
class  Mnohocslen  {
   private:
     int  Sx, Sp, n, x;
     int  a[10];

   public:
     void Vvid ();              // Ввід многочлена
     void Vuvid ();             // Вивід многочлена
     int Obcuslenya();        // Обчислення многочлена у точці х
     int ObcuslenyPoxidoi();  // Обчислення похідної многочлена у точці х
};

void Mnohocslen::Vvid () {    // Ввід многочлена
    cout<<"Vvedit stepeny mnohocslena n: "; cin>>n;
    cout<<"Vvedit koeficientu pru iksax : \n";
    for(int i=0; i<=n; i++) {
        cout<<"a"<<i<<"= ";
        cin>>a[i];
    }
    cout<<"\n\n";
}

void Mnohocslen::Vuvid () {   // Вивід многочлена
  int f=0;
  cout<<"Polinin : \n";
  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;
}

Mnohocslen::Obcuslenya() {   // обчислення многочлена у точці х
  cout<<"Vvedity X: ";
  cin>>x;
  Sx=0;
  int xn=1;
  for (int i=0; i<=n; i++ ) {
       Sx+=a[i]*xn; xn=xn*x;
  }
  return Sx;
};

Mnohocslen::ObcuslenyPoxidoi() {
  cout<<"Vvedity X: ";
  cin>>x;
  Sp=0;
  int xn=0;
  for (int i=0; i<=n; i++ ) {
       Sp+=a[i]*xn; xn=xn*x;
  }
  return Sp;


};
main () {


   Mnohocslen* polinom1 = new Mnohocslen ();
   polinom1->Vvid();
   polinom1->Vuvid();
   cout<<"Znacsenya polinona y t. x: "<<polinom1->Obcuslenya()<<endl;
   cout<<"Znacsenya poxidnoi polinona y t. x: "<<polinom1->ObcuslenyPoxidoi()<<endl;

   system("pause");
}


Прога что то неправильно обчисляет производную. В чем может быть проблема?? ??
Спасибо!!
ВасяСВВ вне форума Ответить с цитированием
Старый 28.12.2010, 17:29   #8
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Код:
#include<iostream.h>
#include<math.h>
class  Mnohocslen  {
   private:
     int n;
     int  x;
     int  a[10];

   public:
     Mnohocslen::Mnohocslen (Mnohocslen &pl ) {
     };
     void Vvid ();            // Ввід многочлена
     void Vuvid ();           // Вивід многочлена
     int Obcuslenya();        // Обчислення многочлена у точці х
     int ObcuslenyPoxidoi();  // Обчислення похідної многочлена у точці х
     Mnohocslen operator +(Mnohocslen &pl );  // перевантаження операції додавання многочленів
     Mnohocslen operator -(Mnohocslen &pl );  // перевантаження операції віднімання многочленів
     ~Mnohocslen() {

     }
};

void Mnohocslen::Vvid () {    // Ввід многочлена
    cout<<"Vvedit stepeny mnohocslena n: "; cin>>n;
    cout<<"Vvedit koeficientu pru iksax : \n";
    for(int i=0; i<=n; i++) {
        cout<<"a"<<i<<"= ";
        cin>>a[i];
    }
    cout<<"\n\n";
};

void Mnohocslen::Vuvid () {   // Вивід многочлена
  int f=0;
  cout<<"Polinin : \n";
  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;
};

Mnohocslen::Obcuslenya() {   // обчислення многочлена у точці х
  cout<<"Vvedity X: ";
  cin>>x;
  int Sx=0;
  int xn=1;
  for (int i=0; i<=n; i++ ) {
       Sx+=a[i]*xn; xn=xn*x;
  }
  return Sx;
};

Mnohocslen::ObcuslenyPoxidoi() {
  int Sp=0;
  int xn=1;
  for (int i=1; i<=n; i++ ) {
     xn=xn*x;  Sp+=i*a[i]*xn;
  }
  return Sp;
};

Mnohocslen Mnohocslen :: operator +( Mnohocslen &pl ) {
   Mnohocslen* polin = new Mnohocslen ( pl ) ;
   polin->Vvid();

   for(int i = 0; i<=pl.n; i++) {
        for(int j=0; j<=pl.n; j++) {
             if( a[i]==pl.a[j]) {
               polin->a[i]=a[i]+pl.a[j];
             }
             else
               polin->a[i]=a[i];
        }
   }


   return *polin;


};

Mnohocslen Mnohocslen :: operator -( Mnohocslen &pl ) {
   Mnohocslen* polin = new  Mnohocslen  (pl ) ;
   polin->Vvid();

   for(int i = 0; i<=pl.n; i++) {
        for(int j=0; j<=pl.n; j++) {
             if( a[i]==pl.a[j]) {
               polin->a[i]=a[i]-pl.a[j];
             }
             else
               polin->a[i]=a[i];
        }
   }


   return *polin;


};

main () {


   Mnohocslen* polinom1 = new Mnohocslen (*polinom1);
   Mnohocslen* polinom2 = new Mnohocslen (*polinom2);
   Mnohocslen* polinom3 = new Mnohocslen (*polinom3);

   cout<<"Vvedit polinon_1: \n";
   polinom1->Vvid();
   polinom1->Vuvid();
   cout<<"Znacsenya polinona y t. x: "<<polinom1->Obcuslenya()<<endl;
   cout<<"Znacsenya poxidnoi polinona y t. x: "<<polinom1->ObcuslenyPoxidoi()<<endl;
// polinom3=polinom1 + polinom2;
  // polinom1->~Mnohocslen();
   system("pause");
}
Исправил кучу ошибок, но операторы перегрузки не работают(((
Я думаю что логика додавання не пашет(((
Что и как делать???
ВасяСВВ вне форума Ответить с цитированием
Старый 29.12.2010, 17:11   #9
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Проблема из перегрузкой оператора +(((
Может кто то прояснить что делать??
ВасяСВВ вне форума Ответить с цитированием
Старый 05.01.2011, 11:29   #10
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Пожалуйста..
ВасяСВВ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класси Friend, помогите пожалуйста Suren Общие вопросы C/C++ 2 28.05.2009 22:42