Ciao a tutti!
sono nuovo in questo forum(anche se sono passto di quà varie volte) e anche nuovo nella programmazione C.
devo fare un homework per l'università che consiste nelllo scrivere due funzioni: una che derivi ripetutamente un polinomio fino ad ottenere 0 e l'altra che faccia il prodotto della derivata 0-esima e della derivata prima ( sempre se possibile).
spero di essermi spiegato bene, altrimenti i link sono questi:
{prima funzione} http://tmancini.di.uniroma1.it/index...ttaglioHW&hw=2
{seconda funzione}http://tmancini.di.uniroma1.it/index...ttaglioHW&hw=2
le funzioni devono derivare un polinomio semplice, cioè un polinomio di grado k>=0 che è un array di interi di lunghezza k+1, in cui p[i] rappresenta il coefficiente di grado i.
assumendo queste definizioni :
ho scritto le due funzionicodice:typedef int *poli; typedef poli *der; der derivata(poli P, int N, int k); poli prodDeriv(der d, int k);
ora il mio problema è che non riesco a scrivere un main adatto che mi permetta di provare le funzioni.codice:der prodDeriv(poli P, int N, int k){ der D; int r, lato, deg, i; if(k < 0 || N > k) return; for(lato = 0; lato < (N+1); lato++){ D[0][lato] = D[1][lato] = P[lato]; } i = deg = k; for(r = 1; r < (N+1); r++, k--){ for(lato = 0, i = k; lato < i+1; lato++){ D[r][lato] *= deg; deg--; } } return D; } poli prodDeriv(der D, int k){ int deg = k + (--k); int elem = 2 * k; poly R[elem]; int pos, i, j; for(i = 0; i <= elem; i++) R[i] = 0; for(i = 0; i < k+1; i++){ for(j = 0; j < k; j++){ pos = deg - ((k-i) + (k-1) - j); R[pos] += D[0][i] * D[1][j]; } } return *R; }
ho provato in tutti i modi ma dato che non sono bravo con i puntatori non ci sono riuscito:mc: ; questo è il main che ho scritto:
spero di essere stato abbastanza chiaro ed esauriente, vi prego di aiutarmi se potete.codice:int main(){ poly P; int A[4]; int N=3; int k=3; *P[4] = {4, 2, 7, 5} derivata(P, N, k); prodDeriv(&D, k); return 0; }
qualsiasi commento è ben gradito.
Ciao!
Gabriele
p.s. spero di non aver sbagliato nulla nello scrivere e collocare il messaggio, in caso negativo mi scuso anticipatamente.

Rispondi quotando