POLINOMIOS EN C++...AYUDA!!!!!!!!

EVER
14 de Abril del 2005
AYUDA POR FAVOR...UN PROGRAMA QUE HAGA LAS 4 OPERACIONES BASICAS ARITMETICAS CON 2 POLINOMIOS SIN ORDEN ESPECIFICO AL PRINCIPIO DEL PROGRAMA. EL PROGRAMA LEE LAS 2 EXPRESIONES Y DESPUES PRESENTA UN MENU QUE DESPLEGARA EL RSULTADO QUE SE LE INDIQUE...TODO ESTO CON LISTAS DOBLES LINEALES EN C++...POR FAVOR AYUDA!!!!

B Ortega
14 de Abril del 2005
ando en busca de este mismo programa, si lo conseguiste, podrias enviarmelo???
muchas gracias

Lorena
14 de Abril del 2005
Hola necesito el programa de operaciones con polinonomios el mismo que ustedes buscaban ..........porfis si lo tienen envienmelos urgente.
Gracias.

Noel Solw
14 de Abril del 2005
// program k14a13.h - page 281
// polynomial - header file for program k14a13.cpp
// 1/6/2002
// written in Borland CPP ver 3.1

#include <conio.h>
#include<iostream.h>
#include <iomanip.h>

class Polynomial
{
private:
unsigned int size;
float *p;
public:
Polynomial(unsigned int,const float*);
Polynomial(const Polynomial &);
~Polynomial();
int operator==(const Polynomial &) const;
Polynomial &operator=(const Polynomial &);
Polynomial operator+(const Polynomial &) const;
Polynomial operator-(const Polynomial &) const;
Polynomial operator-();
Polynomial operator*(const Polynomial &) const;
Polynomial operator/(const Polynomial &) const;
Polynomial operator%(const Polynomial &) const;
friend ostream &operator<<(ostream &,const Polynomial &);
friend istream &operator>>(istream &,Polynomial &);
}; // POLYNOMIAL
// ----------------------- public functions ---------------------------
Polynomial::Polynomial(unsigned int SIZE = 0,const float *data = NULL)
{
if(!SIZE)
{
size = 0;
p = NULL;
}
else
{
size = SIZE;
p = new float[size];
if(data)
{
for(int i = 0;i < size;i++)
p[i] = data[i];
}
else
for(int i = 0;i < size;i++)
p[i] = 0;
}
} // POLYNOMIAL CONSTRUCTOR

Polynomial::Polynomial(const Polynomial &poly)
{
size = poly.size;
if(size)
{
p = new float[size];
for(int i = 0;i < size;i++)
p[i] = poly.p[i];
}
} // POLYNOMIAL COPY CONSTRUCTOR

Polynomial::~Polynomial()
{
if(p)
delete []p;
} // POLYNOMIAL DESTRUCTOR

int Polynomial::operator==(const Polynomial &right) const
{
if(size != right.size)
return 0;
for(int i = 0;i < size;i++)
if(p[i] != right.p[i])
return 0;
return 1;
} // POLYNOMIAL OPERATOR EQUAL


Polynomial &Polynomial::operator=(const Polynomial &right)
{
if(&right != this)
{
int len = right.size;
if(size != len)
{
delete []p;
size = len;
p = new float[size];
}
for(int i = 0;i < size;i++)
p[i] = right.p[i];
}
return *this;
} // POLYNOMIAL OPERATOR ASSIGNAMENT

Polynomial Polynomial::operator+(const Polynomial &right) const
{
Polynomial ret;
if(size >= right.size)
{
ret = *this;
int i = size,
j = right.size;
while(j)
ret.p[--i] += right.p[--j];
}
else
{
ret = right;
int i = right.size,
j = size;
while(j)
ret.p[--i] += p[--j];
}
return ret;
} // POLYNOMIAL OPERATOR PLUS

Polynomial Polynomial::operator-(const Polynomial &right) const
{
Polynomial temp = right,ret = *this + (-temp);
return ret;
} // POLYNOMIAL OPERATOR MINUS

Polynomial Polynomial::operator-()
{
Polynomial ret(size);
for(int i = 0;i < size;i++)
ret.p[i] = -p[i];
return ret;
} // POLYNOMIAL OPERATOR UNARY MINUS

Polynomial Polynomial::operator*(const Polynomial &right) const
{
Polynomial ret(size+right.size-1);
for(int i = 0;i < size;i++)
for(int j = 0;j < right.size;j++)
ret.p[i+j] += p[i]*right.p[j];
return ret;
} // OPERATOR MULT

Polynomial Polynomial::operator/(const Polynomial &right) const
{
if(size < right.size)
{
Polynomial ret(1);
return ret;
}
else
{
Polynomial ret(size-right.size+1),
temp(*this);
for(int i = 0; i <= size-right.size; i++)
{
ret.p[i] = temp.p[i] / right.p[0];
for(int j = 0; j < right.size; j++)
temp.p[i+j] -= ret.p[i]*right.p[j];
}
return ret;
}
} // OPERATOR DIV

Polynomial Polynomial::operator%(const Polynomial &right) const
{
Polynomial ret(right.size),temp;
temp = (*this/right)*right;
return *this - temp;
} // OPERATOR MOD
// ----------------------- friend functions ---------------------------
ostream &operator<<(ostream &out,const Polynomial &right)
{
switch(right.size)
{
case 0 : out << ". . . empty polynomial";
break;
case 1 : out << "{" << right.p[0] << "}";
break;
default : int i = 0;
while(!right.p[i++]);
i--;
out << "{" << right.p[i++];
while(i < right.size)
out << "," << right.p[i++];
out << "}";
break;
}
return out;
} // OPERATOR <<

istream &operator>>(istream &in,Polynomial &right)
{
cout << "type polynomial size : ";
in >> right.size;
right.p = new float[right.size];
for(int i = 0;i < right.size;i++)
{
cout << " p[" << i << "] = ";
in >> right.p[i];
}
return in;
} // OPERATOR >>
// --------------------------------------------------------------------




// program k14a13.cpp - page 281
// polynomial.
// 1/6/2002
// written in Borland CPP ver 3.1

#include "k14a13.h"

char *msg[] = {"FALSE","TRUE"};

void Process()
{
float aa[4] = {1,2,3,4},
bb[7] = {1,2,3,4,5,6,7},
ff[3] = {1,2,3},
gg[5] = {1,2,3,4,5},
hh[6] = {7,-8,3,-4,2,5},
ii[3] = {1,-1,1};
Polynomial a(4,aa),b(7,bb),c,d,f(3,ff),g(5,gg),h(6,hh),i(3,ii);
cout << setw(10) << "a = " << a << endl;
cout << setw(10) << "b = " << b << endl;
cout << setw(10) << "c = " << c << endl;
c = b;
cout << setw(10) << "c = " << c << endl;
cout << endl;
cout << a << " == " << b << " ---> " << msg[a==b] << endl;
cout << b << " == " << c << " ---> " << msg[b==c] << endl << endl;
cin >> d;
cout << setw(10) << "d = " << d << endl << endl;
d = a + b;
cout << a << " + " << b << " = " << d << endl;
d = b + a;
cout << b << " + " << a << " = " << d << endl;
d = a - b;
cout << a << " - " << b << " = " << d << endl;
d = b - a;
cout << b << " - " << a << " = " << d << endl;
d = f * g;
cout << f << " * " << g << " = " << d << endl;
d = h / i;
cout << h << " / " << i << " = " << d << endl;
d = i / h;
cout << i << " / " << h << " = " << d << endl;
d = h % i;
cout << h << " % " << i << " = " << d << endl;
d = i % h;
cout << i << " % " << h << " = " << d << endl;
} // PROCESS

void main()
{
clrscr();
cout << setprecision(3) << "unsorted set.n";
cout << "-----------------------------------------------------"
"-------------------------n";
Process();
cout << "-----------------------------------------------------"
"-------------------------n";
cout << "end of program - good bye ! ! !n";
getch();
} // MAIN