29/12/09 10:36
Puffetta
Ciao a tutti!! ho un problema con questo codice
Il mio problema è che non riesco quando leggo i coefficienti del polinimio a farmi dare solo ed escusivamente quelli di grado pari. ad esempio x^0; x^2;x^4;...; x^2n eliminando quelli di grado dispari intermedi... c'è un modo per farlo?
grazie in anticipo per l'aiuto!!!!!!!!!
/*Scrivere un programma C++ che legge un intero positivo n, un numero reale a e i coefficienti di un polinomio p(x) di grado 2n; successivamente calcola il valore p(a) - sfruttando l'esistenza di sole potenze pari - e lo stampa sul video.*/ #include<stdio.h> #include<stdlib.h> const int size=100; typedef double vettore[size]; int leggigradopolinomio(); void leggicoefficienti(vettore, int); double leggia(); double pna(vettore, double, int); void stampa(double, double); main() { int n; vettore c; double a, s; n=leggigradopolinomio(); leggicoefficienti(c, n); a=leggia(); s=pna(c, a, n); stampa(a, s); system("PAUSE"); return 0; } int leggigradopolinomio() { int a; do { printf("\n\n Qual'e' il grado pari massimo del polinomio? 2n="); scanf("%d", &a); } while((a>size)||!(a%2==0)); return a; } void leggicoefficienti(vettore x, int a) { for(int i=0; i<a; i++) { printf("\n Il coefficiente a[%d] del polinomio vale: ", i); scanf("%lf", &x[i]); } return; } double leggia() { double x; printf("\n\n In quale punto dobbiamo calcolare il valore del polinomio? x="); scanf("%lf", &x); return x; } double pna(vettore x, double a, int n) { double s, pot; pot=a*a; s=x[0]+(x[1]*pot); for(int k=2; k<n; k++) { pot=pot*(a*a); s=s+(x[k]*pot); } return s; } void stampa(double d, double b) { printf("\n\n Il valore del polinomio p(x)nel punto x=%lf e' uguale a %lf\n\n", d, b); return; }
Il mio problema è che non riesco quando leggo i coefficienti del polinimio a farmi dare solo ed escusivamente quelli di grado pari. ad esempio x^0; x^2;x^4;...; x^2n eliminando quelli di grado dispari intermedi... c'è un modo per farlo?
grazie in anticipo per l'aiuto!!!!!!!!!
aaa