Como evaluar el polinomio con memoria dinamica, corregir errores.
Publicado por Luis (5 intervenciones) el 12/02/2020 04:32:55
no se si genere bien la memoria dinamica, el punto es que al compilar aveces suma uno o dos datos mas, y aveces ya no eleva X a la 0, simplemtente almacena un cero
por decir
3x^2+2x^1+2x^0 = 17
pero el programa me hace esto
3x^2+2x^1+2x^2=16
/**EJERCICIO 5. Memoria dinámica
Haciendo uso de memoria dinámica realice un programa que pueda crear un vector
dinámico de tipo float. El vector dinámico almacenará los coeficientes de un polinomio de
grado N, crear las siguientes funciones:
a) Leer vector
b) Imprimir el polinomio de grado N
c) Que evalúe la función solicitando el valor de x, imprimir el resultado.*/
por decir
3x^2+2x^1+2x^0 = 17
pero el programa me hace esto
3x^2+2x^1+2x^2=16
/**EJERCICIO 5. Memoria dinámica
Haciendo uso de memoria dinámica realice un programa que pueda crear un vector
dinámico de tipo float. El vector dinámico almacenará los coeficientes de un polinomio de
grado N, crear las siguientes funciones:
a) Leer vector
b) Imprimir el polinomio de grado N
c) Que evalúe la función solicitando el valor de x, imprimir el resultado.*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
#include <math.h>
void Leer_vector(int*,int);
void Imprimir_polinomio(int *, int);
int evalua_poli(int *,int,int);
int main()
{
int *vec,n,x;
cout<<"ingresa el grado del polinomio: ";
cin>>n;
vec=NULL;
vec=new int[n];
cout<<"ingresa los valores de el vector:"<<endl;
Leer_vector(vec,n);
cout<<"ingresa el valor de x: ";
cin>>x;
cout<<"-------------------------------------------------"<<endl;
cout<<"El polinomio de grado n es: ";
Imprimir_polinomio(vec,n);
cout<<endl<<"el polinomio evaludado da como resultado: "<<evalua_poli(vec,n,x);
return 0;
}
void Leer_vector(int *vec1,int N)
{
for(int i=0;i<=N;i++)
{
cin>>vec1[i];
}
}
void Imprimir_polinomio(int *vec1,int N)
{
for(int i=0;i<=N;i++)
{
cout<<vec1[i]<<"x^"<<N--<<" + ";
}
}
int evalua_poli(int *vec1, int N, int X)
{
int total;
int cont=N;
for(int i=0;i<=N;i++)
{
total+=vec1[i]*pow(X,N--);
}
return total;
}
Valora esta pregunta
0