Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 51
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    81

    [C] Funzioni

    Ciao raga ho un problema con le FUNZIONI!!ho appena iniziato a studiarle ma nn c sto capendo molto..allora un po di giorni fa, ho fatto questo ex:
    codice:
    #include <stdio.h>
    #include <math.h>
    #define MAX 100
    
    float vet[MAX];
    
    main()
    {
          int i,a;
          float media,var;
          
          printf("CALCOLO MEDIA E VARIANZA\n\n");
          printf("Specificare gli elementi dell'array: ");
          scanf("%d", &a);
          printf("\n");
          
          for(i=0; i<a; i++){
                   printf("Array[%d]: ", i+1);
                   scanf("%f", &vet[i]);
                   }
          media = 0;
          for(i=0; i<a; i++)
                   media = media + vet[i];
                   media = media/a;
          printf("\nMedia: %f\n", media);
          
          var = 0;
          for(i=0; i<a; i++)
                   var = var + pow(vet[i]-media,2);
                   var = var/a;
          printf("\nVarianza: %f\n", var);
    }
    Ebbene dovrei fare lo stesso esercizio ma cn le funzioni..ossia creare due funzioni,una ke calcoli la media di valori di un vettore e una che calcoli la varianza..sinceramente nn so dove mettere mano..sapete aiutarmi??

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... almeno provaci, altrimenti non impari ...

    Una funzione deve avere un nome, un valore da restituire e dei parametri in ingresso.

    Ad esempio il titolo di una di queste puo' essere

    CalcolaMedia

    deve restituire la media quindi un

    float

    deve accettare dei parametri, nel tuo caso

    il vettore vet e il numero a di elementi da considerare

    Quindi questa funzione sara'

    codice:
    float CalcolaMedia(float v[], int n)
    {
    }
    al suo interno andra' il codice tenendo conto che dovrai utilizzare i parametri specificati.
    Quindi

    codice:
    float CalcolaMedia(float v[], int n)
    {
      int x;
      float m;
    
      m = 0;
      for(x=0; x<n; x++)
        m += v[x];
                   
      m /= n;
          
      return(m);
    }
    e la inserirai prima del main. Nel main la utilizzerai semplicemente con

    codice:
      media=CalcolaMedia(vet, a);
      printf("\nMedia: %f\n", media);
    Analogamente per la varianza, che farai tu ...

  3. #3
    La spiegazione di Oregon è ottima..cmq se vuoi un'ulteriore fonte da cui imparare, ti consiglio la guida presente in questo stesso sito, molto chiara. Ti posto il link specifico del sottocapitolo delle funzioni:

    http://programmazione.html.it/guide/...2/le-funzioni/

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    81
    Grazie oregon..a prima vista già mi hai fatto capire delle cosette ke avevo poco chiare..utile anche la guida..oggi pom ci smanetto un pò e vi faccio sapere

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Moderazione

    Io suggerisco anche l'uso di titoli un po' più prolissi e significativi...

    Questo l'ho corretto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    81
    grazie alka!
    Allora ragazzi ci sto provando ma nn ne sta uscendo un bel lavoro
    questo è quello ke ho scritto io:
    codice:
    #include <stdio.h>
    #define MAX 100
    
    float CalcolaMedia(float, int);
    main()
    {
          int i,n;
          float media,v[MAX];
          
          printf("Specificare gli elementi dell'array: ");
          scanf("%d", &n);
          printf("\n");
          
          media = 0;
                 for(i=0; i<n; i++)
                          media = media + v[i];
                          media = media/n; 
          media = CalcolaMedia(v, n);
          printf("\nMedia: %f\n", media);
          
          float CalcolaMedia(float v[], int n)
          {       
                 return(media);
          }
    }
    Dove e perchè sbaglio??

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da InferNOS
    Dove e perchè sbaglio??
    Le funzioni non vanno messe dentro altre funzioni. E comunque è nella funzione che devi fare i calcoli della media, vedo solo un return ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    81
    Le funzioni non vanno messe dentro altre funzioni. E comunque è nella funzione che devi fare i calcoli della media, vedo solo un return ....
    Lascia stare!!Sto fuso!!Ora penso di averlo fatto corretto..vedete un attimo se è giusto..
    codice:
    #include <stdio.h>
    #define MAX 100
    
    float CalcolaMedia(float, int);
    main()
    {
          int i,n;
          float media,v[MAX];
          
          printf("Specificare gli elementi dell'array: ");
          scanf("%d", &n);
          printf("\n");
     
          for(i=0; i<n; i++){
                   printf("Array[%d]: ", i+1);
                   scanf("%f", &v[i]);
                   }
          media = 0;
                 for(i=0; i<n; i++)
                          media = media + v[i];
                          media = media/n; 
          
          float CalcolaMedia(float v[], int n)
          { 
                 return(media);
          }
          media = CalcolaMedia(v, n);
          printf("\nMedia: %f\n", media);
    }
    Cmq ora ke l'ho fatto..mi sfugge quale sia il reale beneficio rispetto al programma senza funzione...boh..

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da InferNOS
    Lascia stare!!Sto fuso!!Ora penso di averlo fatto corretto..vedete un attimo se è giusto..
    No, ripeto: le funzioni non vanno dichiarate dentro altre funzioni!!!

    Focalizza l'attenzione su cosa deve fare la funzione: viene passato un array di float e il numero di elementi, nella funzione calcoli la media e la restituisci.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    81
    Ora ci siamo???
    codice:
    #include <stdio.h>
    #define MAX 100
    
    int i,n;
    float media,v[MAX];
    
          float CalcolaMedia(float v[], int n)
          {       
                media = 0;
                 for(i=0; i<n; i++)
                          media = media + v[i];
                          media = media/n; 
                return(media);
          }
    main()
    {
           printf("Specificare gli elementi dell'array: ");
           scanf("%d", &n);
           printf("\n");
     
          for(i=0; i<n; i++){
                   printf("Array[%d]: ", i+1);
                   scanf("%f", &v[i]);
                   }   
          media = CalcolaMedia(v, n);
          printf("\nMedia: %f\n", media);
    }

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.