Título: ¿Dónde está el error? Publicado por: asa5 en 29 Noviembre 2017, 01:07 am Hola, estoy tratando de hacer un programa que simule un polinomio, pero cuando introduzco los coeficientes siempre me arroja el resultado 0.
¿Podríais indicarme el error? #include <iostream> using namespace std; float LeBucle(unsigned grado, unsigned i, float coeficientes, float x, float polinomio,float potencia) {for (i=0; i<=grado; i++){ cin>>coeficientes; polinomio=polinomio+coeficientes*potencia; potencia=x*potencia; } return polinomio;} int main(){ float coeficientes, x, polinomio=0, potencia=1; unsigned grado, i; cout<<"Indica el grado del polinomio."<<endl; cin>>grado; cout<<"Introduce el punto x"<<endl; cin>>x; coeficientes=grado+1; cout<<"Introduce "<<coeficientes<<" coeficientes."<<endl; LeBucle(grado,i,coeficientes,x,polinomio,potencia); cout<<"P("<<x<<")="<<polinomio<<endl; } Título: Re: ¿Dónde está el error? Publicado por: CalgaryCorpus en 29 Noviembre 2017, 03:12 am En C existe el paso por valor solamente. En C++ existe el paso por referencia.
El resultado es 0 porque pasas el valor, se hace una copia se modifica la copia. EL original queda en su valor original, o sea 0. Compruebalo cambiando el valor inicial de la variable polinomio en tu main(). Solucion? Asigna el valor de polinomio a lo que devuelva la funcion. i.e. polinomio = LeBucle( ... los parametros que ya tienes ... ) Título: Re: ¿Dónde está el error? Publicado por: asa5 en 29 Noviembre 2017, 12:03 pm ¡Muchas gracias! ¿Podrías explicar un poco mejor tu mensaje? el problema está resuelto pero llevo la sintaxis a nivel teórico un poco mal.
|