PDA

Visualizza la versione completa : Ma dov' l'errore ?


johnnny
09-12-2010, 18:43
ragazzi sono ancora alle prese con un programma in c di cui ovviamente non tutto fila liscio, arrivo subito al succo: il programma calcola i valori che la funzione assume in alcuni punti di un'intervallo da noi fissato. Questi punti vengono calcolati tramite il passo ( con relativa istruzione ) e credo sia proprio l il problema dato che se metto l'intervallo [2,10] con numero di punti =2, lui dovrebbe calcolarmi la funzione per x=2 e x=10. Nel caso di x=2 calcola bene, mentre per x=10 me lo calcola con x=5...Riuscite a capire il perch? so che difficile...ma se potete darmi una mano vi sar grato. Ecco il programma:


#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
float campionatura(float a,float b,float f_campionata[],float vetcoef[],int n,int grado);
float f(float x,float vetcoef[],int grado);

int main()
{
float a,b,f_campionata[100],vetcoef[100];
int n,i,grado;
printf("Inserisci il primo estremo dell'intervallo \n");
scanf("%f",&a);
printf("Inserisci il secondo estremo dell'intervallo \n");
scanf("%f",&b);
printf("Inserisci il numero di punti \n");
scanf("%d",&n);
printf("Inserire il grado del polinomio \n");
scanf("%d",&grado);
for(i=0;i<=grado;i++)
{vetcoef[i]=0;
}

for(i=grado;i>=0;i--)
{printf("Inserire il coefficiente di grado %d\n",i);
scanf("%f",&vetcoef[i]);
}
campionatura (a,b,f_campionata,vetcoef,n,grado);
printf("I valori che la funzione assume nei punti dell'intervallo sono:");
for(i=1;i<=n;i++)
{ printf("%f\n",f_campionata[i]);
}
system("PAUSE");
return 0;
}

float campionatura(float a,float b,float f_campionata[],float vetcoef[],int n,int grado)
{ int i;
float passo,x;
passo=(b-a)/(n-1);
x=a;
for(i=1;i<=n;i++)
{
f_campionata[i]=f(x,vetcoef,grado);
x=x+passo;
}
system("PAUSE");
return 0;
}

float f(float x,float vetcoef[],int grado)
{ float valpol;
int j,h;
valpol=0;
valpol=valpol+vetcoef[0];
for(h=1;h<=grado;h++)
{for(j=1;j<h;j++)
{x=x*x;
}
valpol=(x*vetcoef[h])+valpol;
}
system("PAUSE");
printf("Il valore del polinomio %f\n",valpol);
return valpol;
}

johnnny
09-12-2010, 18:45
no ragazzi tutto risoltooooo, finalmente !!!

LeleFT
09-12-2010, 18:51
Ecco, magari la prossima volta leggi il Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887), prima di postare.

Titolo errato.
Mancata indicazione del linguaggio sempre nel titolo
Posting del codice senza tag CODE.


Chiudo questa discussione.


Ciao. :ciauz:

Loading