Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113

    [C] differenza tra procedura e funzione

    Ciao, qualcuno sa dirmi la differenza tra procedura e funzione ? e cosa è una procedura parametrica?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    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?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Intende una funzione

    void

    che accetta alcuni parametri, N per valore e gli altri per indirizzo
    scusa, ma una funzione void non restituisce nulla ?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sì è così. Quello che restituisci lo fai tramite i puntatori passati (vedi terzo array)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Ho fatto in questo modo, ma mi da errore di segmentation fault e non capisco dov'è l'errore
    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;
    }
    dove sbaglio ?
    Ultima modifica di sizeof; 16-10-2013 a 17:29

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    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;
    }
    ma come faccio a passare C già allocato ?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Come hai fatto con A e B
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.