Ciao, qualcuno sa dirmi la differenza tra procedura e funzione ? e cosa è una procedura parametrica?
Grazie
Ciao, qualcuno sa dirmi la differenza tra procedura e funzione ? e cosa è una procedura parametrica?
Grazie
Queste cose le trovi su google o su un libro ... o anche in altre discussioni su questo forum ,,, falla qualche ricerca ...
http://forum.html.it/forum/showthread/t-988308.html
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ok, in un esercizio che devo fare parla di una procedura parametrica a cui vengono forniti gli elementi N(dimensione vettori) A e B (vettori) e che restituisca gli elementi C(vettore delle medie dei vettori A e B). In questo caso per "procedura parametrica" intende Funzione?
Intende una funzione
void
che accetta alcuni parametri, N per valore e gli altri per indirizzo
No MP tecnici (non rispondo nemmeno!), usa il forum.
Sì è così. Quello che restituisci lo fai tramite i puntatori passati (vedi terzo array)
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ho fatto in questo modo, ma mi da errore di segmentation fault e non capisco dov'è l'errore
dove sbaglio ?codice:#include <stdio.h> #define N 3 float* procedura(int a[], int b[], int size); int main() { int A[N]; int B[N]; int i; float* C; printf("Inserisci i numeri del vettore A : \n"); for ( i = 0; i < N; i++ ) { printf("Inserisci l'elemento %d di A : \n", i); scanf("%d", &A[i]); } printf("Inserisci i numeri del vettore B : \n"); for ( i = 0; i < N; i++ ) { printf("Inserisci l'elemento %d di B : \n", i); scanf("%d", &B[i]); } C = procedura(A, B, N); printf("Il vettore C è : \n"); for ( i = 0; i < N; i++ ) { printf("%f", C[i]); printf("\n"); } return 0; } float* procedura(int a[], int b[], int size) { int i; float* c; for ( i = 0; i < size; i++ ) { c[i] = (( a[i] + b[i] ) / 2); } return c; }
Ultima modifica di sizeof; 16-10-2013 a 17:29
Mi sembrava di averti detto che la funzione era void e passavi anche C già allocato ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
ma come faccio a passare C già allocato ?codice:#include <stdio.h> #define N 3 void* procedura(int a[], int b[], int size); int main() { int A[N]; int B[N]; int i; float* C; printf("Inserisci i numeri del vettore A : \n"); for ( i = 0; i < N; i++ ) { printf("Inserisci l'elemento %d di A : \n", i); scanf("%d", &A[i]); } printf("Inserisci i numeri del vettore B : \n"); for ( i = 0; i < N; i++ ) { printf("Inserisci l'elemento %d di B : \n", i); scanf("%d", &B[i]); } C = procedura(A, B, N); printf("Il vettore C è : \n"); for ( i = 0; i < N; i++ ) { printf("%f", C[i]); printf("\n"); } return 0; } void* procedura(int a[], int b[], int size) { int i; float* c; for ( i = 0; i < size; i++ ) { c[i] = (( a[i] + b[i] ) / 2); } return c; }
Come hai fatto con A e B
No MP tecnici (non rispondo nemmeno!), usa il forum.