Oppure

Loading
25/11/09 17:40
stella.p
Scrivere un programma C++ che legge un intero positivo n, un numero
reale alfa e i coefficienti di un polinomio p2n(x) di grado 2n; successivamente
calcola il valore p2n(alfa) - sfruttando l'esistenza di sole potenze pari - e lo stampa
sul video.

#include <stdio.h>
#include <stdlib.h>

#define N 20

int leggi_coefficienti(float v[N]) {
    int i,n;
    printf("\n\nInserisci il grado del polinomio:");
    scanf("%d",&n);
    
    for (i=n;i>=0;i--){
    printf("\n\nInserisci il coefficiente numero ");
    printf("%d: ",i);
       scanf("%f",&v[i]);}
    return (n);
}

void stampa_polinomio(float a[N], int n) {
     int i;
     printf("\n\nP(x)=%f * x^%d",a[n],n);
     for (i=n-1;i>0;i--)
       if(a[i]!=0.0)
          printf("+ %f * x^%d",a[i],i);
       if(a[0]!=0.0)
          printf("+ %f",a[0]);
          return;
}
     
float P_alfa(float a[N], int n, float &alfa){
      float s=a[n];
      int i;
      printf("\n\n\nInserisci un numero reale alfa: ");
      scanf("%f",&alfa);
      
      for (i=n-1;i>=0;i--)
      s=s*alfa+a[i];
      return(s);
}

int main(void) {
    int n;
    float a[N],p,alfa;
    
    n=leggi_coefficienti(a);
    stampa_polinomio(a,n);
    p=P_alfa(a,n,alfa);
    printf("\n\nP(%f)=%f\n",alfa,p);
    system ("PAUSE"); return (1);
}



io con questo codice ho calcolato pn(alfa) ma non riesco a calcolare p2n(alfa).. le ho provate tutte ma non riesco a far uscire in video il polinomio con soli potenze pari di alfa.
Qualcuno sa aiutarmi?? Grazie mille a tutti coloro che mi aiuteranno..

EDIT by HeDo: Il codice va racchiuso tra i tag code
Ultima modifica effettuata da HeDo 25/11/09 19:05
aaa
25/11/09 19:16
HeDo

beh prima di scrivere del codice devi pensare a cosa fare. Il polinomio 2n penso sia il polinomio con potenze doppie, vuol dire che i coefficienti che inserisci non si riferiscono a x^0, x^1, x^2, x^3, ... ma a x^0, x^2, x^4, ...

per calcolare p2n(alfa) basta scrivere un ciclo che ha una variabile accumulatrice alla quale man mano aggiungi coeff * (alfa ^ (2 * n)) dove n è indice del ciclo. (N.B l'operatore ^ non esiste in C/C++, puoi usare la funzione pow contenuta in math.h oppure, essendo una potenza nota, puoi svolgere n^2 come n*n)
aaa
26/11/09 10:26
stella.p
Grazie mille per la tua risposta.. Ho provato a fare come hai detto tu ma credo di sbagliare ancora qualcosa.. In output quando mi chiede di inserire i coefficienti del polinomio, dovrebbe chiedermi solo quelli delle potenze pari e poi calcolare p(alfa), invece se per esempio scrivo n=2 mi chiede di inserire i coefficienti di x^4, x^3, x^2, x^1, x^0.. :om:
aaa
26/11/09 13:10
HeDo
Postato originariamente da stella.p:

Grazie mille per la tua risposta.. Ho provato a fare come hai detto tu ma credo di sbagliare ancora qualcosa.. In output quando mi chiede di inserire i coefficienti del polinomio, dovrebbe chiedermi solo quelli delle potenze pari e poi calcolare p(alfa), invece se per esempio scrivo n=2 mi chiede di inserire i coefficienti di x^4, x^3, x^2, x^1, x^0.. :om:


codice?
aaa