|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2011
Messaggi: 469
|
[C] funzione che deriva un polinomio semplice, puntatori
Ciao a tutti!
sono nuovo in questo forum(anche se vio ho sempre seguito con frequenza 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 : Codice:
typedef int *poli; typedef poli *der; der derivata(poli P, int N, int k); poli prodDeriv(der d, int k); 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 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. Ultima modifica di Sibbo : 21-01-2011 alle 02:05. Motivo: insicurezza |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:29.



















