Hola buenas, necesito hacer un programa que me realice el agoritmo de Horner, es decir, que le introduzcas un polinomio y calcule las dererivadas n-esimas...
alguien me puede ayudar?
aqui les pogno el codigo que llevo hecho pero se hace un bucle infinito al meterle por que deseo realizar la division..
#include <iostream>
#include <vector>
using namespace std;
void Ruffini (const int n , vector<double> &v, const double z);
int main()
{
cout.precision(16);
int n,rg;
double z;
vector<double> v;
cout<<"introduce el numero que desee realizar:"<<endl;
cout<<"1.- Introducir polinomio"<<endl;
cout<<"2.- Realiza el algoritmo de Horner"<<endl;
cout<<"3.- Salir"<<endl;
cin>>n;
while(n<=3)
{
switch (n){
case 1:
cout<<"introduce el rango del polinomio:"<<endl;
cin>>rg;
v.resize(rg+1);
cout<<"introduce los coeficientes del polinomio:"<<endl;
for (int i=0;i<v.size();i++)
{
cin>>v[i];
}
case 2:
cout<<"introduce el valor con el que desea realizar la division:"<<endl;
cin>>z;
Ruffini(n,v,z);
cout<<"el cociente de la divison es:"<<endl;
for(int i =0;i<v.size()-1;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
cout<<"El resto de la division es: "<<v[n]<<endl;
if(v[n]==0)
cout<< z <<" es raiz del polinomio"<<endl;
break;
case 3:
cout<<"Ha pulsado salir"<<endl;
break;
}
}
system("pause");
return 0;
}
void Ruffini (const int n, vector <double> &v, const double z)
{
v[0]=v[0];
for (int i=1;i<=n;i++)
{
v[i]=(v[i-1]*z+v[i]);
}
}