elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema ejercicio de class - CONSULTA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema ejercicio de class - CONSULTA  (Leído 1,301 veces)
Cero++

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
Problema ejercicio de class - CONSULTA
« en: 13 Diciembre 2018, 22:39 pm »

Buenas, acá les dejo el código que hice ya comentado con mis dudas, a ver si me pueden dar un poco de iluminación que no estoy entendiendo  :-\
PD: el método sumar, me pide que lo haga de este modo:
Código
  1. P_resuesta=P1.Sumar(P2)
[/b]

Código
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. class Polinomio{
  5. int coeficiente[20]; int grado;
  6. public:
  7. Polinomio(int _grado=0){
  8. grado=_grado;
  9. for(int i=0;i<grado;i++) {
  10. coeficiente[i]=0;
  11. }
  12. };
  13. int Ver_coeficientes(int _i){
  14. return coeficiente[_i];
  15. }
  16. void Cambiar_coeficiente(int _c, int _pos);
  17. Polinomio Sumar_polinomios(Polinomio p2);
  18. int Evaluar(int _x);
  19.  
  20.  
  21. };
  22. void Polinomio::Cambiar_coeficiente(int _c, int _pos){
  23. coeficiente[_pos]=_c;
  24. }
  25. Polinomio Polinomio:: Sumar_polinomios(Polinomio p2){
  26. for(int i=0;i<grado;i++) {
  27. coeficiente[i]+=p2.Ver_coeficientes(i); //Que deberia retornar?
  28. }
  29. }
  30. int Polinomio::Evaluar(int _x){
  31. int aux=0;
  32. for(int i=0;i<grado--;i++) {
  33. aux+=coeficiente[i]*(pow(_x,(grado-i)));
  34. }
  35. aux+=coeficiente[grado];
  36. return aux;
  37. }
  38. int main(int argc, char *argv[]) {
  39. int size; int coeficiente;
  40. cout<<"Ingrese el grado del Polinomio: "; cin>>size;
  41. Polinomio P(size);
  42. /*Carga del polinomio*/
  43. cout<<"Ingrese los coeficientes, de mayor grado a menor "; cin>>coeficiente;
  44. int i=0;
  45. while(i<size){
  46. P.Cambiar_coeficiente(coeficiente,i);
  47. cout<<"Ingrese los coeficientes, de mayor grado a menor "; cin>>coeficiente;
  48. ++i;
  49. }
  50. /*Veamos la carga inicial*/
  51. for(int i=0;i<size;i++) {
  52. cout<<P.Ver_coeficientes(i)<<"x^"<<size-i; //Por que no veo el termino independiente?
  53. }
  54. cout<<endl;
  55. /*Evaluemos con un valor x el polinomio*/
  56. int x;
  57. cout<<"Ingrese la incognita: "; cin>>x;
  58. cout<<P.Evaluar(x); //Obtengo basura, por que?
  59. cout<<endl;
  60. /*Probemos el metodo sumar Polinomio*/
  61. /* nada*/
  62.  
  63.  


En línea

Código:
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Problema ejercicio de class - CONSULTA
« Respuesta #1 en: 13 Diciembre 2018, 23:10 pm »

Hay varios problemas:
- Cuando indicas grado 3, tienes que meter los coeficientes {0,1,2,3}, es decir, 4 coeficientes.
Código
  1. for(int i = 0; i < 3; i++)
Ese bucle se repite 3 veces, no 4. Te faltaría añadir el igual en la comparación, es decir, "i <= 3".
- Cuando introduces coeficientes, introduces el primero y lo guardas. Pero el <while> va en el siguiente orden: primero cambias coeficiente, después pides coeficiente. Entonces el último que ingreses no se va a guardar.
- En el método de sumar tienes que crear un polinomio nuevo de tamaño igual al mayor de los dos polinomios que sumas. En tu método, modificas el primero y la suma solo se hace hasta el grado más alto del primer polinomio, si el segundo es mayor, se pierden esos coeficientes. Debes retornar el nuevo polinomio que has creado que es donde has ido almacenando la suma.

No he mirado más código. Personalmente creo que es mejor guardarlo al revés. En la posición 0, el coeficiente de grado 0, en la posición 1, el coeficiente de grado 1, etc... Es más fácil de imaginar y si quieres añadir un grado más grande, puedes hacerlo sin mover todos los elementos que ya tienes dentro.
Para mostrar un polinomio añade el signo si el coeficiente es negativo, nada y si es positivo añade un "+". Es muy complicado ver bien el polinomio cuando se muestra, si de momento no quieres gastar tiempo en eso añade al menos un espacio entre monomios. Suerte :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Cero++

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
Re: Problema ejercicio de class - CONSULTA
« Respuesta #2 en: 18 Diciembre 2018, 02:06 am »

Es muy complicado ver bien el polinomio cuando se muestra, si de momento no quieres gastar tiempo en eso añade al menos un espacio entre monomios. Suerte :-X

Buenas, ya pude arreglar casi todo, los únicos métodos que no funcionan son estos, te paso el código además:

Código
  1. //C)
  2. Polinomio Sumar_polinomio(Polinomio P2){ //Asi es como me decias que tenia que hacerlo?
  3. if(P2.grado<grado){
  4. Polinomio aux(grado);
  5. for(int i=0;i<P2.grado;i++) {
  6. aux.monomio[i]=P2.monomio[i]+monomio[i];
  7. }
  8. for(int i=P2.grado;i<grado;i++) {
  9. aux.monomio[i]=monomio[i];
  10. }
  11. return aux;
  12. }else{
  13. Polinomio aux(P2.grado);
  14. for(int i=0;i<grado;i++) {
  15. aux.monomio[i]=P2.monomio[i]+monomio[i];
  16. }
  17. for(int i=grado;i<P2.grado;i++) {
  18. aux.monomio[i]=monomio[i];
  19. }
  20. return aux;
  21. }
  22.  
  23. }
  24. //D)
  25. int Evaluar_polinomio(int _x){
  26. int contador=0;
  27. for(int i=0;i<=grado;i++) {
  28. contador+=(monomio[i])*(pow(_x,i)); //El resultado que obtengo siempre es 1 menos que el verdadero
  29. }
  30. return contador;
  31. }
En línea

Código:
Ser diligente es lo ÚNICO que importa para lograr el éxito[c/ode]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
consulta ejercicio C++
Programación C/C++
15minutos 3 2,709 Último mensaje 18 Octubre 2010, 21:51 pm
por Littlehorse
consulta con ejercicio de practica « 1 2 »
Programación C/C++
urvreak 14 6,224 Último mensaje 20 Enero 2011, 22:39 pm
por urvreak
consulta ejercicio strings
Programación C/C++
johnstafe 4 2,261 Último mensaje 14 Abril 2012, 00:02 am
por flony
Consulta sobre un ejercicio de clases « 1 2 »
Java
zonahurbana 11 9,049 Último mensaje 24 Noviembre 2013, 21:02 pm
por Mitsu
Consulta de ejercicio lenguaje C
Programación C/C++
grossgore 2 1,736 Último mensaje 19 Febrero 2017, 23:52 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines